wrong outcomes when using lsim and step function

4 Ansichten (letzte 30 Tage)
Eliraz Nahum
Eliraz Nahum am 7 Dez. 2018
hello everyone,
I am trying to define a 2nd order system y''(t)+5y'(t)+6y(t)=15u(t) in the state space and get outcomes (y) for different incomes (u).
the initial conditions are y(0)=y'(0)=0.
u=const=2;
the analytical solution is y=5 -15*exp(-2t) +10*exp(-3t), so it's clear that yss, the steady state output, is 5.
but when using the lsim or even step functions I am getting strange results (yss=0.33). any idea what's wrong?
error.JPG
the code is:
clear all
close all
clc
syms t y(t) %creating symbolic variable
%defining the ODE that describes the physical behaviour of the system
a=[6,5,1]; %creating a vector that represents the Input function derivatives coefficients - [a0,a1,...,an-1,...,a0] - 6y+5y'+y''
b=[15,0,0]; %creating a vector that represents the Output function derivatives coefficients - [b0,b1,...,bn-1,...,b0] - 15u+0u'+0u''
ode_order=length(a)-1; %determines the system order
%creating the matrices of the space state y''=-(a1/a2)*y'-(a0/a2)*y+(b0/a0)*u
%X=[x1,x2]=[y,y'] and X'=[x1',x2']=[y',y'']=[x2,-(a0/a2)*x1-(a1/a2)*x2+(b0/a0)*u]
A=zeros(ode_order,ode_order);
for k=[1:1:(ode_order-1)]
A(k,k+1)=1;
end
for k=[1:1:ode_order]
A(ode_order,k)=-(a(k)/a(ode_order+1));
end
B=zeros(ode_order,1);
B(ode_order,1)=1;
C=zeros(1,ode_order);
C(1,1)=1;
D=zeros(1,1);
end
%DEFINING OUR SYSTEM IN TERMS OF STATE SPACE
sys=ss(A,B,C,D);
t2=[0:0.01:15];
u2=zeros(1,length(t2));
for counter=1:1:length(t2)
u2(counter)=2;
end
lsim(sys,u2,t2,[0,0])

Antworten (0)

Kategorien

Mehr zu Symbolic Math Toolbox finden Sie in Help Center und File Exchange

Tags

Produkte


Version

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by