Voiman F(t) ja massan välistä siirtymää kuvaa alla oleva yhtälö.
F(t)= ma+bv+kx
Yhtälö voidaan esittää myös seuraavassa muodossa
F(t)=m d2x/dt+b dx/dt+kx
Eli kiihtyvyys on aseman toinen ja nopeus ensimmäinen derivaatta.
Yhtälö voidaan Laplace-muuntaa seuraavaan muotoon
F(s)= m s2X(s)-sx(0)-x'(0)+bsX(s)-x(0)+kX(s)
Oletetaan alkuarvot nollaksi eli kappale on paikoillaan ja siirtymä 0.
F(s)= m s2X(s)+bsX(s)+kX(s)
Eli differentiaaliyhtälöstä päästiin Laplace-muunnettuun muotoon korvaamalla derivaatat s-operaattorin potensseilla. Muokataan yhtälö vielä muotoon X(s)/F(s) .
X(s)/F(s)=1/( m s2+bs+k)
Nyt kyseessä on siirtofunktio, joka kertoo miten lähtö muuttuu kun tuloa muutetaan askelmuotoisesti Matlabilla.
Code Block |
---|
function Askelvaste()
osoittaja=1;
nimittaja=[1 10 20];
aparaatti=tf(osoittaja,nimittaja);
step(aparaatti)
|
Sama Scilabilla ja lyhyt ohje Scilabista
Code Block |
---|
s=poly(0,'s'); //määrää s polynomin muuttujaksi
K=1;m=10; b=1;k=1; //Vahvistus ja aikavakio
sys=syslin('c',K/(m*s^2+b*s+k));//muodostetaan systeemi aikajatkuvana ('c') lineaarisena mallina.
t=[0:0.05:50]; //aika vektori, jota käytetään simulaatiossa alku:resoluutio:loppuaika
y1=csim('step',t,sys); // Simuloidaan järjestelmää askelfunktiolla
scf(1);clf; //avataan ja puhditetaan kuva-alue
plot(t,y1)
|
Bode-diagrammi Scilabilla
Code Block |
---|
s=poly(0,'s'); //Defines s to be a polynomial variable
K=1;m=10; b=1;k=1; //Vahvistus ja aikavakio
sys=syslin('c',K/(m*s^2+b*s+k));//muodostetaan systeemi aikajatkuvana ('c') lineaarisena mallina.
t=[0:0.05:50]; //aika vektori, jota käytetään simulaatiossa alku:resoluutio:loppuaikafmin=0.01; //Min freq in Hz
fmax=10; //Max freq in Hz
scf(1);clf;
bode(sys,fmin,fmax); //Plots frequency response in Bode diagram
|