opóźnienie wykonywania pętli while 0,0001s możliwe?

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Mikkaelo
Posty: 33
Rejestracja: 02 sie 2011 16:13
Wersja środowiska: LabVIEW 8.5

opóźnienie wykonywania pętli while 0,0001s możliwe?

Post autor: Mikkaelo »

Witam!
Tak jak w temacie, chciałbym aby mój .vi wykonywał się z taką dokładnością czasu, a to dlatego że taki dobrałem krok całkowania w metodzie Eulera. Chciałbym więc zapytać czy taka dokładność w LV jest w ogóle możliwa i jak ją uzyskać. Bloczek wait(ms) raczej odpada ponieważ przyjmuje pełne ms...
z góry dziękuję za każdą odpowiedź
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: opóźnienie wykonywania pętli while 0,0001s możliwe?

Post autor: PiDi »

Nie pod Windowsem, po mikrosekundy trzeba sięgnąć do RT.
ObrazekObrazekObrazekObrazek
Mikkaelo
Posty: 33
Rejestracja: 02 sie 2011 16:13
Wersja środowiska: LabVIEW 8.5

opóźnienie wykonywania pętli while 0,0001s możliwe?

Post autor: Mikkaelo »

a jakiś inny pomysł jak obejść ten problem?
Zależy mi na tym żeby mój vi wykonywał się w czasie rzeczywistym.
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: opóźnienie wykonywania pętli while 0,0001s możliwe?

Post autor: PiDi »

Pod windą po prostu tego nie wyciągniesz. Aaaaale... Zrób w jednej iteracji pętli 1000 kroków całkowania, daj do pętli timing 10 ms i masz zachowaną proporcję i wszystko gra. Chyba. Jest noc, więc to może być jakiś głupi senny pomysł :D
ObrazekObrazekObrazekObrazek
Mikkaelo
Posty: 33
Rejestracja: 02 sie 2011 16:13
Wersja środowiska: LabVIEW 8.5

opóźnienie wykonywania pętli while 0,0001s możliwe?

Post autor: Mikkaelo »

właśnie o czymś takim myślałem.. tonący brzytwy się chwyta :) myślałem żeby w pętli for podać N=1000 wrzucić to do pętli while z timing 10ms..faktycznie jest noc... i moje rozwiązanie może być zupełnie pozbawione sensu
Awatar użytkownika
Nowszy
Posty: 504
Rejestracja: 30 maja 2008 08:33
Wersja środowiska: LabVIEW 2011
Lokalizacja: Katowice
Kontakt:

opóźnienie wykonywania pętli while 0,0001s możliwe?

Post autor: Nowszy »

Może przedstaw swój problem szerzej - co dokładnie chcesz osiągnąć? Jeśli chodzi ci o rozwiązywanie równań różniczkowych metodą Eulera (Runge-Kutta 1), to po prostu wykorzystaj pętlę Simulation Loop z Control Design and Simulation Module - tam możesz zdefiniować tak mały step size. Nie będzie to działało w czasie rzeczywistym (do tego trzeba to uruchomić na systemie czasu rzeczywistego, a najlepiej na FPGA), ale dlaczego chcesz żeby działało to w czasie rzeczywistym? Opisz całą aplikację to pomożemy więcej
Pozdrawiam, Maciek Antonik
Edu4Industry
Mikkaelo
Posty: 33
Rejestracja: 02 sie 2011 16:13
Wersja środowiska: LabVIEW 8.5

opóźnienie wykonywania pętli while 0,0001s możliwe?

Post autor: Mikkaelo »

Wcześniej na forum już pisałem, ale może w tym temacie faktycznie nie wyraziłem się jasno. Mój vi. jest modelem maszyny wyciągowej, w modelu występują m.in. równania różniczkowe drugiego rzędu. Równania te rozwiązuje metodą Eulera, a tak mały krok całkowania pozwala zachować stabilność całego modelu. Zadaję napięcie w ob.głównym oraz wzbudzenia i uzyskuje prędkość. Tak mały krok całkowania potrzebny mi jest jedynie do działania modelu ale mnie ogólnie nie zależy na takiej ilości próbek. Ponieważ model ten chciałbym następnie wizualizować więc spokojnie wystarczy mi jedna próbka na 0,5s.
Awatar użytkownika
Nowszy
Posty: 504
Rejestracja: 30 maja 2008 08:33
Wersja środowiska: LabVIEW 2011
Lokalizacja: Katowice
Kontakt:

opóźnienie wykonywania pętli while 0,0001s możliwe?

Post autor: Nowszy »

No to w takim razie wspomniana pętla Simulation Loop jest rozwiązaniem dla ciebie. Daj znać jak idzie.
Pozdrawiam, Maciek Antonik
Edu4Industry
ODPOWIEDZ