- You have an extra parenthesis when you define sys1
- If you want to output both position and velocity, then your C matrix should be [1 0;0 1] , or eye(2)
Plotting State Space Model with Disturbance
11 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi! I am trying to simulate a very simple dynamical system with disturbance matrix u (Dirac function).
mx''+bx'+kx=u(t)
I want to drow the displacement(position) and velocity of the system. This is my code, which seems to be not completely correct:
m=5;
c=20;
k=100;
% solves m x''+ c x' + k x = f(t)
t=0:0.1:10
A=[0 1; -(-k/m) (-c/m)];
B=[0 ; (1/m)];
C=[1 0];
D=0;
u=ones(2,1)*(heaviside(t-2)-heaviside(t-2.5));
sys1=(ss(A,B,C,D);
step (sys1)
Any suggestion for completing the code?
Thanks Sam
0 Commenti
Risposta accettata
Sebastian Castro
il 6 Mag 2015
I see...
In your A matrix, your spring term is -(-k/m) , and that double negative makes it positive and therefore an unstable system. Try removing one of those minus signs and you should be good.
Also, couple other things:
- Sebastian
0 Commenti
Più risposte (2)
Sam
il 6 Mag 2015
4 Commenti
Sebastian Castro
il 6 Mag 2015
Your system only has 1 input (B matrix has 1 column), while you defined "u" as having 2 rows (it's a 2x101 matrix). It worked for me with these changes:
u = heaviside(t-2)-heaviside(t-2.5);
lsim(sys1,u,t);
- Sebastian
Marco Boutrus
il 31 Mar 2020
Hello! a very old page! but i hope u guys are still active!
i have the same formula that i need to plot (both the x and the v graphs). however i cant seem to change the stepsize, if i add
dt = 0.25; % Time step [s]
t = 0:dt:10; % Time range [s]
do i have to rewrite the whole ss form or is there a better way?
Marco
0 Commenti
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!