资源描述:
《传递函数、零极点增益与状态空间转换的matlab算法实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、传递函数、零极点增益与状态空间三种模型转换的MATLAB算法实现一、引言微分方程是自控控制系统最原始的数学模型,它反映系统动态运行规律。时域分析中要用拉普拉斯变换定义传递函数,再做其它转化。为了方便我们对自动控制理论的理解和学习,本人总结了传递函数、零极点增益与状态空间三种模型转换的MATLAB算法,用处多多。二、状态空间模型转换为传递函数、零极点增益模型1、MATLAB算法%将状态空间模型x(t)=Ax(t)+Bu(t),y(t)=Cx(t)+Du(t)转化成传递函数G(s)=num(s)/den(s)%或零极点模型G(s)=k(s+z1)(s+z2).
2、..(s+zm)/(s+p1)(s+p2)...(s+pn)的函数ssto2.m%调用格式G=ssto2(key,A,B,C,D),其中输入参数A,B,C,D为状态空间四个矩阵,输出参数当key=1%时为传递函数;当key=2时,为状态空间模型functionG=ssto2(key,A,B,C,D)ifkey==1sys=ss(A,B,C,D);G=tf(sys),elseifkey==2sys=ss(A,B,C,D);G=zpk(sys),end2、例题分析【例1】已知一加压液流箱系统,该系统的状态变量是液位h(t)与料浆总压H(t),输入变量是料浆流入
3、量u1(t)与空气流入量u2(t),输出变量就是状态变量H(t)与h(t)本身,系统状态空间模型为H(t)h(t)=-0.39120.01234-0.0220H(t)h(t)+0.033440.012340.0008960u1(t)u2(t)y1(t)y2(t)=11H(t)h(t)+00u1(t)u2(t)求多个输入到输出的传递函数模型与多个输入到输出的零极点增益模型。>>clear;A=[-0.3912,0.01234;-0.022,0];B=[0.03344,0.01234;0.000896,0];C=[1,1];D=[0,0];key=1;G=ss
4、to2(key,A,B,C,D);key=2;G=ssto2(key,A,B,C,D);G=Frominput1tooutput:0.03434s-0.0003741--------------------------s^2+0.3912s+0.0002715Frominput2tooutput:0.01234s-0.0002715--------------------------s^2+0.3912s+0.0002715Continuous-timetransferfunction.G=Frominput1tooutput:0.034336(s-0.0
5、109)------------------------(s+0.3905)(s+0.0006952)Frominput2tooutput:0.01234(s-0.022)------------------------(s+0.3905)(s+0.0006952)Continuous-timezero/pole/gainmodel.三、传递函数模型转换为状态空间、零极点增益模型1、MATLAB算法%将传递函数模型G(s)=num(s)/den(s)转换成零极点模型%G(s)=k(s+z1)(s+z2)...(s+zm)/(s+p1)(s+p2)...(s
6、+pn)%或状态空间模型x(t)=Ax(t)+Bu(t),y(t)=Cx(t)+Du(t)的函数%tfto2.m,函数的调用格式为G=tfto2(key,n,d)%其中输入参数n与d为传递函数分子、分母均按s的降幂排列的两个向量%输出参数key=1时,为零极点模型;key=2时,为状态空间模型%sys=tf(num,den)命令可以建立一个传递函数,其中分子和分母分别为num和den。输出sys是储存传递函数数据的传递函数目标。functionG=tfto2(key,n,d)ifkey==1sys=tf(n,d);G=zpk(sys),elseifkey=
7、=2sys=tf(n,d);G=ss(sys),end2、例题分析【例2】设一系统传递函数Gs=6(s+4)(s+1)(s+2)(s+3),将其转换为状态空间与零极点模型。>>clear;n=[624];d=[16116];key=1;G=tfto2(key,n,d);key=2;G=tfto2(key,n,d);G=6(s+4)-----------------(s+3)(s+2)(s+1)Continuous-timezero/pole/gainmodel.G=a=x1x2x3x1-6-2.75-1.5x2400x3010b=u1x12x20x30c=
8、x1x2x3y100.753d=u1y10Continuous-t