matlab-微分方程-SS模型-TF模型-模型对比.docx

matlab-微分方程-SS模型-TF模型-模型对比.docx

ID:58820420

大小:34.83 KB

页数:7页

时间:2020-10-25

matlab-微分方程-SS模型-TF模型-模型对比.docx_第1页
matlab-微分方程-SS模型-TF模型-模型对比.docx_第2页
matlab-微分方程-SS模型-TF模型-模型对比.docx_第3页
matlab-微分方程-SS模型-TF模型-模型对比.docx_第4页
matlab-微分方程-SS模型-TF模型-模型对比.docx_第5页
资源描述:

《matlab-微分方程-SS模型-TF模型-模型对比.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、matlab微分方程、SS模型、TF模型、ZPK模型的关系以最简单的单自由度振动模型为例:y(t)+4y(t)=3u(t)微分方程左边为输出微分函数以系统特征参数为系数的线性组合,右边为输入微分函数的线性组合。对微分方程进行拉普拉斯变换,得到传递函数G(s)=Y(s)/U(s)=3-------s^2+4用模型转换函数可以将TF模型转成SS模型:[A,B,C,D]=tf2ss([3],[104])Sys=ss(A,B,C,D);A=0-410B=10C=03D=0SS模型的表达式为:X=AX+Buy=CX+Du其本质是状态变量

2、X的线性方程组(选择合适的状态变量消去原微分方程中的输入函数的微分项),X为选择的状态变量,这里,X=x1x2=x2x2X=x1x2=x2x2因为TF只能表示线性系统,对线性系统而言,当输入函数线性组合输入到系统(微分方程左式表示的系统)时,输出函数可表示成输入函数单独输入系统产生的响应函数的线性组合。比如y(t)+4y(t)=u(t),响应y(t)设为状态变量x2;y(t)+4y(t)=u(t),响应y(t)设为状态变量x1=x2;所以原微分方程可以表示为:X=x1x2=x2x2=0-410x1x2+10u以上表示u(t)单独输

3、入系统时求系统的响应(即状态变量)y=[03]x1x2+0u以上表示u(t)线性组合输入系统(这里是3u(t))时求系统的响应(即输出函数y(t))SS模型也可转成TF模型:tf(ss(A,B,C,D))TF转零极点增益ZPK模型[zpk]=tf2zp([3],[104])z=Emptymatrix:0-by-1p=0+2.0000i0-2.0000ik=3即33-0.75i0.75i-------=-------------------------------=0+--------------------+-----------

4、-------s^2+4(s-2i)(s+2i)(s-2i)(s+2i)还可以用residue函数将传递函数变成部分分式展开式[zpk]=residue([3],[104])z=0-0.7500i0+0.7500ip=0+2.0000i0-2.0000ik=[]二、对系统输出进行积分和微分计算对原系统:y(t)+4y(t)=3u(t);G(s)=3------------s^2+41、设原系统输出为y1(t),怎么求其微分y1(t)?对微分方程右边进行微分,新的系统为:y(t)+4y(t)=3u(t);G(s)=3s-------

5、-----s^2+4ABD同,就C不同,因为输入由u(t)变成了u(t)。A=0-410B=10C=30D=0所以,对原系统y(t)+4y(t)=3u(t),输出函数y1(t)=CX+0D,只需改C=[03]为[30],或者取dy=3*X(:,1)就可得到y(t)+4y(t)=3u(t)的输出函数y1(t)。实际上,对原系统y(t)+4y(t)=3u(t),A(1,:)*X+u还可得到u(t)输入的响应,再乘以3,就可得到y(t)+4y(t)=3u(t)的输出y1(t),但是u(t)更进一步的微分输入无法计算响应,所以对传递函数G

6、(s),理论上分子num的次数应不大于分母den的次数。Matlab编程验证:[A,B,C,D]=tf2ss([30],[104])Sys=ss(A,B,C,D);G=tf(ss(A,B,C,D))X0=[0,0];%X0=zeros(2*n,1);%X0=[x1_0,...,dx1_0,...]t=0:0.05:pi;U=sin(4*t);[Y,t,X]=lsim(Sys,U,t,X0);subplot(4,1,1)plot(t,U)[A,B,C,D]=tf2ss([3],[104])Sys=ss(A,B,C,D);[Y2,t,

7、X]=lsim(Sys,U,t,X0);dy=3*X(:,1);subplot(4,1,2)%plot(t,X(:,1:2))plot(t,Y2,t,Y,t,dy,'*',t,3*(A(1,2)*X(:,2)+U'))2、设原系统输出为y1(t),怎么求其积分y1_(t)?对原系统:y(t)+4y(t)=3u(t);G(s)=3------------s^2+4方程左边微分,右边输入不变,微分方程变为:y(t)+4y(t)=3u(t);G(s)=3------------s^3+4sA2=0-40100010B2=100C2=00

8、3D2=0所以状态参数增加了一个x3,x1x2x3X1,x2与原系统一样,x1=x2,x2=x3。所以对原系统而言,相当于多了个积分状态参数。其输出函数为y1_(t)=3*x3Matlab编程验证:subplot(4,1,3)[A2,B2,C2,D

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。