Wstawianie danych do wektora

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
Tadeo
Posty: 24
Rejestracja: 01 mar 2010 20:17
Wersja środowiska: LabVIEW 8.5
Lokalizacja: Warszawa

Wstawianie danych do wektora

Post autor: Tadeo »

Witam,
Pojawił się taki oto problem: wykonuję pomiar z zadanym krokiem częstotliwościowym. Po odczytaniu mam 1000 próbek zapisanych w wektorze np. A o rozmiarze 1000. W specjalnych miejscach wykonuje dodatkowy pomiar z mniejszym krokiem i ilość tych miejsc przed pomiarem jest nieznana. Muszę teraz stowrzyć wektor wynikowy, tj. taki żeby były w nim wyniki pomiarów całości i zagęszczone. Np. wektor częstotliwości f=1000, 2000, 3000, 4000, 5000, 6000, miejsce specjalne to np. 3000, wektor częstotliwości po wstawieniu zagęszczenia f'=1000, 2000, 2100, 2200, ..., 3000, 3100, ..., 3900, 4000, 5000, 6000.
Wyniki pomiarów dla f ->A=1, 2, 3, 4, 5, 6. Wyniki pomiarów dla miejsca zagęszconego f''=2000, 2100, ..., 3000, 3100, ..., 4000 ->B=2.1, 2.2, ..., 3.9, 4.
Znane są indeksy miejsc wstawienia.
LabView1.JPG
Ostatnio zmieniony 11 sty 2011 14:34 przez Tadeo, łącznie zmieniany 1 raz.
Awatar użytkownika
Pitol
Moderator
Posty: 987
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Wstawianie danych do wektora

Post autor: Pitol »

W przykładzie, który zamieściłem w Twoim poprzednim temacie miałeś miejsca do wstawienia w postaci stałej tablicy. Piszesz teraz, że nie wiesz przed pomiarem ile tych miejsc będzie. Zatem wystarczy w programie budować sobie z każdym pomiarem tablicę, która zawierać będzie pozycje do wstawienia, a następnie po zakończeniu wszystkich pomiarów skorzystać z tego samego rozwiązania (z poprzedniego tematu) i powstawiać do wektora wynikowego dane zagęszczone na podstawie przygotowanej tablicy pozycji.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Tadeo
Posty: 24
Rejestracja: 01 mar 2010 20:17
Wersja środowiska: LabVIEW 8.5
Lokalizacja: Warszawa

Re: Wstawianie danych do wektora

Post autor: Tadeo »

Tzn. tak - pomiar ten który wskazalem w poprzednim przypadku był OK - wszystko wiedziałem bo to służylo do sprawdzenia działania. Poprzedni program, bardzo dziekuję tak nawiasem wszystko śmiga, służył do ustawienia wektora częstotliwości, gdzie zadane wielkości były mi znane. Teraz program wraca do zadanej częstotliwości i tam w jej okolicy robi pomiar. Chciałem po wykonaniu calości mieć 2 wektory: częstotliwości z zagęszczonymi pomiarami (dzięki użytkownikowi Pitol mam juz taki wektor) oraz wektor pomiarów - i tutaj mam problem, bo znam indeksy miejsc w których okolicy robię gęstszy pomiar. Także zamieściłem rysunek z czymś co tworzę z prośbą o weryfikacje czy w ogóle idę w dobrym kierunku.
Awatar użytkownika
Pitol
Moderator
Posty: 987
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Wstawianie danych do wektora

Post autor: Pitol »

Hmm... trochę nie ogarniam. Masz na początku zadany wektor (bez zagęszczeń). Uruchamiasz program, coś tam sie policzyło, ale jeszcze dla kilku punktów chciałbyś zagęścic pomiary? Dlatego w tych punktach przeprowadzasz dodatkowe pomiary, po czym otrzymujesz kilka wektorów wyników i teraz chcesz je wszystkie wsadzić do wyników ogólnych (z wektora nie zagęszczonego) ? Dobrze rozumiem? Jak nie to rozjaśnij mi trochę ideę działania Twojego programu.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Tadeo
Posty: 24
Rejestracja: 01 mar 2010 20:17
Wersja środowiska: LabVIEW 8.5
Lokalizacja: Warszawa

Re: Wstawianie danych do wektora

Post autor: Tadeo »

W wyniku pomiaru otrzymuję jeden wektor przy częstotliwości f=1000:1000:1E6. Następnie program cofa się do punktów charakterystycznych i w ich okolicy zagęszcza pomiar z krokiem 100. Wektor częstotliwości z zagęszczeniem juz mam - wszystko tak jak powinno. Teraz pozostaje skleić w całość wektor pomiarów, tj. ten z całością z tymi pomiarami zagęszczonymi. Coś podobnego jak w przypadku poprzednim czyli wektora częstotliwości, ale tam znałem wartości których mam szukać, a przy pomiarze znam tylko początkowe indeksy pomiarów zagęszczonych.
Awatar użytkownika
Pitol
Moderator
Posty: 987
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Wstawianie danych do wektora

Post autor: Pitol »

Ok, rozumiem... Zaraz coś wymyślimy...

EDIT: Drobna modyfikacja poprzedniego rozwiązania załatwiła sprawę. W załączniku.
Załączniki
wektor_v2.png
wektor_8.5.vi
(20.25 KiB) Pobrany 259 razy
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Tadeo
Posty: 24
Rejestracja: 01 mar 2010 20:17
Wersja środowiska: LabVIEW 8.5
Lokalizacja: Warszawa

Re: Wstawianie danych do wektora

Post autor: Tadeo »

Tutaj wektor wynikowy to np. przykładowy pomiar bez zagęszczania? Jutro sprawdzę na urządzeniu jak to śmiga, bo muszę sam jeszcze ideę zrozumieć. Dam znać jutro czy działa.
Awatar użytkownika
Pitol
Moderator
Posty: 987
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Wstawianie danych do wektora

Post autor: Pitol »

Tadeo pisze:Tutaj wektor wynikowy to np. przykładowy pomiar bez zagęszczania?
Tak :)
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Tadeo
Posty: 24
Rejestracja: 01 mar 2010 20:17
Wersja środowiska: LabVIEW 8.5
Lokalizacja: Warszawa

Re: Wstawianie danych do wektora

Post autor: Tadeo »

Żeby zrozumieć program zmodyfikowałem go troszkę. Niestety nie smiga tak jak powinien. Wstawia tylko jeden nowy pomiar w miejscu zagęszczenia, okolica pozostaje bez zmian.


wektor_8.5(2).vi
(45.01 KiB) Pobrany 329 razy
Awatar użytkownika
Pitol
Moderator
Posty: 987
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Wstawianie danych do wektora

Post autor: Pitol »

Przy generacji pseudo-wyników popełniłeś błąd (w wersji, którą Ci dałem wcześniej było dobrze):
wektor.PNG
wektor.PNG (3.88 KiB) Przejrzano 11050 razy
Włącz tu auto-indexing to będzie generował całe otoczenie.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Tadeo
Posty: 24
Rejestracja: 01 mar 2010 20:17
Wersja środowiska: LabVIEW 8.5
Lokalizacja: Warszawa

Wstawianie danych do wektora

Post autor: Tadeo »

Witam,
Program już prawie śmiga. Występują jednak pewne błędy, których nie za bardzo wiem jak sie pozbyć. Po pierwsze program robi pierwszy pomiar i otrzymuje wektor częstotliwości i pomiaru oba o wymiarze 1000. Nastepnie znajduje ekstrema i w okolicy tych ekstremów robi dokładniejszy pomiar. Wektor wynikowy częstotliwości dla 16 ekstremów ma rozmiar 1288, natomiast pomiarowy jest większy bo 1320. Wektor wynikowy pomiaru jest błędny i nie wiem skąd się ów błąd wkrada. Chyba że to ja cos sknociłem, ale mam wrażenie że dane są w błędnych miejscach wpisywane do wektora. Program poniżej
Awatar użytkownika
Pitol
Moderator
Posty: 987
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Wstawianie danych do wektora

Post autor: Pitol »

Trochę sprzątania w Twoim kodzie by się przydało. Postaraj się to jakoś uporządkować. Kod zajmuje dużo miejsca a wcale taki rozbudowany nie jest.
Z tego co widzę to w tym przypadku (jeden.png) możesz wewnętrzną pętlę for wyciągnąć z zewnętrznej. Nie ma sensu, żeby wykonywała się wiele razy, skoro w niej chodzi tylko o jednorazowe zbudowanie wektora częstotliwości (rozszerzonego).
jeden.PNG
A co do samych pomiarów zagęszczeń to tutaj (drugi.png) robisz pomiary w każdej iteracji, ale terminal wyjściowy jest ustawiony w funkcji Disable Indexing, czyli po zakończeniu pętli będziesz miał dostępne tylko pomiary z ostatniego kroku pętli. Zmień to na Enable Indexing. Wyjście zmieni Ci się w tablicę 2-D, w której kolejne wiersze będą stanowić wyniki kolejnych kroków pomiarowych.
drugi.PNG
Więcej nie widzę, ale to dlatego, że jest bałagan na diagramie.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Tadeo
Posty: 24
Rejestracja: 01 mar 2010 20:17
Wersja środowiska: LabVIEW 8.5
Lokalizacja: Warszawa

Wstawianie danych do wektora

Post autor: Tadeo »

Wiem gdzie pojawia sie błąd - program nie usuwa z zagęszczonego wektora pomiaru składowych n-1 i n+1, dlatego za każdym razem przy pomiarze te wartości są dublowane. Jak to rozwiązać?
Piotol - co masz na myśli uporządkuj? Są jakieś wytyczne co do schematu kodu? Pytam bo jestem samoukiem jeśli chodzi o LabView i nie znam się jeszcze na poprawnym zapisywaniu kodu.
ODPOWIEDZ