- 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 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Sebastian Castro
2015-5-6
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 个评论
更多回答(2 个)
Sam
2015-5-6
4 个评论
Sebastian Castro
2015-5-6
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
2020-3-31
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 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!