Strona 1 z 1

Integrator jak w Simulinku

: 28 wrz 2011 15:59
autor: Mikkaelo
Witam!
Chciałbym zaimplementować model z Simulinka do Labview. Stworzyłem .vi z integratorem, znajduje się on w pętli while. Nie wiem w jaki sposób wyrzucać dane z integratora, tzn co ustawić jako warunek opuszczenia pętli?
z góry dziękuje za każdą wskazówkę.

Re: Integrator jak w Simulinku

: 28 wrz 2011 16:41
autor: PiDi
Nie bardzo rozumiem problem - to Ty musisz zdecydować, kiedy zakończyć pętlę. Napisz coś więcej, do czego zmierzasz?

Integrator jak w Simulinku

: 28 wrz 2011 16:51
autor: Mikkaelo
Chciałbym tego integratora używać w drugiej pętli while tak jak w simulinku budować model. Za pomocą inegrator.vi rozwiązywać równania.

Re: Integrator jak w Simulinku

: 28 wrz 2011 18:01
autor: PiDi
Potrzebujesz zrobić coś, co się nazywa Functional Global Variable. Jest to po protsu VI, który korzysta z tego, że w czasie wykonania programu zapamiętywane są wartości w shift register - dlatego pętla w takim VI wykonuje się tylko raz. Ja przerobiłem twój integrator (swoją drogą - nie wiem, co on za całkowanie wykonywał, ale wyniki dawał kosmicznie dziwne) na takie cuś. Zauważ, że ustawiłem w VI properties -> execution opcję reentrant execution, a to po to, żeby móc używać wielu instancji tego samego VI niezależnie od siebie (co pewnie będzie Ci niezbędne).
Na marginesie, w palecie Signal Processing -> Point by Point -> Integral & Differential jest bloczek, który robi to samo (Integral x(t) PtByPt). Tylko jakieś wątpliwe z niego wyniki u mnie wychodzą...

Re: Integrator jak w Simulinku

: 28 wrz 2011 19:13
autor: Mikkaelo
znalazłem błąd w moim integratorze.. poprawiłem już, więc nie powinny wychodzić głupoty. Napisałem również wzór z którego korzystam. Chodzi tutaj dokładnie o metodę Eulera.