Wpis z mikrobloga

Robię sobie symulację numeryczną działania pewnego urządzenia. Opracowałem sobie model w #octave (trochę więc #matlab), liczę sobie to jakimś ode45 (RFK45) czy innym Runge-Kuttą (ok. 20-30 równań i kilka lookup tables) i chciałbym teraz dodać sobie do tego modelu prosty 'program sterownika", który wykonuje się cyklicznie np. co 1 s, ma kilka rejestrów przesuwnych i nie wiem jak to pożenić: raz, że nie zawsze liczony krok całkowania liczy się zgodnie z osią czasu (przez co zwykłe przepisywanie wyniku do zmiennej nie daje chronologcznej przesuwności), a dwa że fajnie jakby do tych swoich zmiennych kroków całkowania dodać te wymuszone kroki cyklicznie, żeby tylko w nich się jakoś wykonywał skrypt sterowania. Możecie polecić jakieś rozwiązanie? Może jakiś inny solver/metoda?
#inzynieria #fizyka #symulacja
  • 4
via Wykop Mobilny (Android)
  • 0
@mecht: każdy jeden język programowania. Nawet w PHP to ogarniesz jak się postarasz chociaż python czy c++ będzie zdaje się wygodniejszy. Model zdefiniujesz jak chcesz a określone metody do przesuwu rejestrów masz podane gotowe
@grafffik: Nie specjalnie rozumiem co ma do tego wybór innego języka programowania. Nie chodzi o to, że w Octave nie mogę przesuwać rejestrów, tylko że jak liczę ze zmiennym krokiem całkowania, to metoda numeryczna tak zadziała, że raz policzy późniejszy krok symulacji, a potem się cofnie, więc metoda:

dx_poprzednie=dx;
dx=jakies_obliczenia();

nie zadziała.
Poza tym c++, czy pythona to tak słabo znam raczej.
@grafffik: Ja wiem, że chciałeś dobrze, ale zmierzyłeś mnie niestety swoją miarą. Nie sądzę żeby przepisywanie mojego kodu na język, którym nie umiem się sprawnie posługiwać miało cokolwiek przyspieszyć (a tym bardziej być wygodne). Jeżeli jest jakiś sposób postępowania numerycznego, który pozwoli mi osiągnąć cel, to ja go sobie chętnie zapiszę w Octave. A jeżeli to kwestia tego, że ty znasz jakąś funkcję/metodę w C++ czy innym htmlu to nie wiem,