[t,y]=solver('F',tspan,y0)
function ydot=F(t,y)
ydot=[function1;function2;function3;....]
functionn是以列向量形式组成为系统的状态方程(一阶微分方程组)
tspan运算的起止时间[t0,t1]
y0为初始状态值,用列向量来表示,维数为状态向量数
时域响应函数:
initial(零输入响应)
impulse(单位冲击响应)
step(单位阶跃响应)
lsim(任意输入响应)
频域响应函数:
bode(系统频率响应-伯德图曲线)
nyquist(系统奈奎斯特曲线)
单自由度振动系统和多自由度振动系统:---自由度:状态变量的个数
另外一种整理方法
取弹簧和阻尼器对左侧壁和质量m1的水平作用力z1、z2和质量m1、m2的位移z3、z4为所要研究的输出
D=0
m1=1.5
c1=0.5
k1=0.3
m2=2
c2=0.3
k2=0.6
t1=0:0.1:10
f1=0*t1
f2=0.1*sin(5*t1)
u=[f1;f2]
A=[-c1/m1 c1/m1 -k1/m1 k1/m1;c1/m1 -(c1+c2)/m2 k1/m2 -(k1+k2)/m2;...
1 0 0 0;0 1 0 0]
B=[1/m1 0;0 1/m2;0 0;0 0]
C=[0 c2 0 k2;-c1 c1 -k1 k1;0 0 1 0;0 0 0 1]
D=0
G=ss(A,B,C,D)
x=[0 0 0 0]
[y,t1,x]=lsim(G,u,t1,x)
plot(t,x(:,1),'g',t,x(:,2),'r',t,x(:,3),'--',t,x(:,4),'-*')
legend('x(1)','x(2)','x(3)','x(4)')
其中遇到的问题:
错误使用 DynamicSystem/lsim (第 84 行)
Invalid syntax for time or frequency response command. See command help for more information.出错 main (第 21 行)
[y,t1,x]=lsim(G,f1,f2,t1,x)解决:
lsim(SYS,U,T)绘制动态系统SYS对输入信号用U和T表示,时间向量T表示为的时间单位,由规则间隔的时间样本组成。矩阵U的列数与SYS中的输入数一样多,并且它的第i行指定
T(i)时刻的输入值。
f1=0*t1
f2=0.1*sin(5*t1)
u=[f1;f2]
上图中,图线x1、x2、x3、x4为质量块m1、m2的状态变量-位移(也即输出变量z3、z4)。