Strona 1 z 2
Całkowanie, pochodne w czasie rzeczywistym
: 25 kwie 2007 09:52
autor: Tutenhamon
Witam,
Chciałbym z całkować np. funkcje sin(x) w czasie rzeczywistym. Chciałbym, żeby to działało podobnie jak integrator w Symulinku Matlaba. Probuje to wszystko zrobic w pętli while ale coś mi nie wychodzi. Byłbym wdzięczny za jakiekąkolwiek pomoc.
Re: Całkowanie, pochodne w czasie rzeczywistym
: 25 kwie 2007 13:36
autor: vugie
Signal Processing->Point by Point->Integ & Difff->Integral
Re: Całkowanie, pochodne w czasie rzeczywistym
: 26 kwie 2007 07:25
autor: Tutenhamon
dzęki popróbuje
Re: Całkowanie, pochodne w czasie rzeczywistym
: 26 kwie 2007 11:36
autor: wino
albo jest jeszcze Mathematics-->Integ & Difff->Integral
co tam wolisz, zawsze można help'a otworzyć(ctrl+?) i wpisać Integral
Re: Całkowanie, pochodne w czasie rzeczywistym
: 02 maja 2007 11:58
autor: Tutenhamon
Integral z signal processing przydała się lepiej i działa bez zarzutów. Miałem problem z ustawieniem warunków początkowych bo maja całka była zależna od czasu i chciałem ja z całkować z warunkiem początkowym zero.Ale miałem problem bo zegar w Labview działa od uruchomienia programu Labview a nie jak ja chciałem od uruchomienia mojego SubVIva. Wykorzystałem funckje Elepsed time i wszystko jest jak trzeba.

Re: Całkowanie, pochodne w czasie rzeczywistym
: 07 maja 2007 07:12
autor: mjaskula
a mozesz pokazac przykładowy vi?
jak Ci to wyszlo?
Marek
Re: Całkowanie, pochodne w czasie rzeczywistym
: 09 maja 2007 17:14
autor: Tutenhamon
Sorki, że tak pózno. Załaczam plik. Jakieś pytanie to walić śmiało postaram się pomóc.
Re: Całkowanie, pochodne w czasie rzeczywistym
: 10 maja 2007 08:12
autor: vugie
Ja z całkowaniem z Signal Processing miałem duże problemy w momencie gdy uzywałem go kilka razy w obrębie różnych pętli. Gdy kilka tych bloczków działa "obok siebie" wszystko jest w porządku, natomiast gdy są w kodzie trochę od siebie oddalone (w sensie struktury) robi się kasza. Chciałem zrobić z tego nawet jakiś modelowy przykład, ale dałem spokój. Rozwiązanie znalazłem takie, że zrobiłem kilka identycznych subVI, różniących się tylko nazwą i zawierających wyłącznie bloczek Integral z powórzonymi wejściami i wyjściami i w każdym miejscu kodu używałem innego z tych subVI. Domyślam się, że ten efekt wynika z tego, że blok ten pracuje na Shift Register i mają tu udział zagadnienia związane z przydziałem pamięci dla poszczególnych instancji bloku, ale dlaczego efekt jest taki, a nie inny, tego do końca nie rozumiem.
To tak na wypadek jakby komuś całkowanie point by point nie działało...
Re: Całkowanie, pochodne w czasie rzeczywistym
: 11 maja 2007 15:26
autor: Tutenhamon
Mam małe pytanie i postanowiłem podpiąć to pod ten topic. Chce przenieść mój projekt z Symulinka do Labview. Ale pewne rzeczy nie działają podobnie jak w Symulinku. Chciałbym zrobić takie coś załącznik I. Czyli obliczyć całkę dla pewnego okresu czasu.W Symulinku otrzymałem linie prostą załącznik II a w Labview sygnał oscyluje i nie mogę otrzymać podobnego wyniku (załączam Subviva). Nie wiem czy jest to z powodowane dokładnościa obliczeń czy może ja coś źle robie. Byłbym wdzięczny za jakieś wskazówki.
Re: Całkowanie, pochodne w czasie rzeczywistym
: 14 maja 2007 08:06
autor: vugie
Pierwsze primo: Generujesz sygnał w czasie rzeczywistym, nie gwarantując sobie, że krok pętli będzie trwał tyle ile chcesz (0.1 s). IMO Wait Until Milisecond Multiple tego nie gwarantuje - głupie kręcenie kółkiem myszki generuje lagi. Zaleznie od przeznaczenia programu: albo olać czas rzeczywisty i brać go z licznika pętli, albo mierzyć rzeczywisty czas trwania każdego cyklu i podpinać go jako krok całkowania.
Drugie primo: Blok Hold oczekuje liczby całkowitej i podanie 10.15cośtam zamienia to na 10. Jak zamienisz okres sygnału na liczbę całkowitą (wszędzie, gdzie jest on zdublowany) + pkt. 1, to gra i buczy.
Trzecie primo: to już Mikrobi ci powie...
Re: Całkowanie, pochodne w czasie rzeczywistym
: 14 maja 2007 08:16
autor: Tutenhamon
Dzięki za odpowiedz. Co do pierwszego to potrzebuje pętli w czasie rzeczywistym. To jest cześć programu, który ma posłużyć do kontroli przesunięć silnika liniowego. Ma on imitować uderzenie ludzkiego serca dlatego sygnał jest periodyczny i moja całka nie zawsze ma okres całkowity więc jak zamienię wartość w bloku hold na całkowitą to będzie się mijało z rzeczywistością. Masz rację co do całkowanie, w zależności jak nacisnę przycisk myszki taki wynik dostanę, tzn. wyniki się nie pokrywają co mnie ciekawiło. Postaram się zrobić tak jak piszesz i pomyśleć co z blokiem hold.
Re: Całkowanie, pochodne w czasie rzeczywistym
: 19 maja 2007 13:31
autor: Tutenhamon
Dalej mam problem z całkowaniem, użyłem pętli czasowej ale chyba to nie za bardzo zmieniło. Dostaje dobre rezultaty tylko dla okresu całkowania dt -100 milisekund. Jak to zmieniam wszystko pada:/ Może ma ktoś jakieś lepsze pomysły ode mnie? Załączam plik.
Re: Całkowanie, pochodne w czasie rzeczywistym
: 19 maja 2007 19:16
autor: Mikrobi
Oj, vugie nie drażnij czarownika ;)
Pytanie zasadnicze Tutenhamon: na jakiej rozdzielczości pracujesz?
Re: Całkowanie, pochodne w czasie rzeczywistym
: 19 maja 2007 20:29
autor: Tutenhamon
hmm, no to mnie zagiąłeś

W sumie nie wiem co masz na myśli jeśli chodzi o rozdzielczość:/ Chodzi Ci na ilu bitach pracują moje urządzenia? Jeśli tak to na 12, 16 i 32 bitach zależy jakie urządzenie. A jeśli nie to proszę o podpowiedź:)
Re: Całkowanie, pochodne w czasie rzeczywistym
: 19 maja 2007 20:58
autor: Tutenhamon
Trochę poczytałem:) I jeśli dobrze zrozumiałem to chodzi o ilości bitów. Więc tak, to co podpiąłem jako plik to jest symulacja moich urządzeń. Chcę na podstawię przepływu ( 12 bitowy pomiar, 10ms czas odpowiedzi), zadać ruchy silnika liniowego ( 32 bitowy kontroler przesuwu). Ale problem polega na tym, że ta symulacja działa tylko dla dt = 100ms a w Simulinku w Matlabie działa bez problemu tylko, że tam kroki całkowania są ustawione automatycznie. Nie rozumiem dlaczego działa to tylko dla dt=100ms:/