传递函数、零极点增益与状态空间三种模型转换的 MATLAB算法实现 一、引言 微分方程是自控控制系统最原始的数学模型,它反映系统动态运行规律。 时域分析中要用拉普拉斯变换定义传递函数,再做其它转化。为了方便我们对 自动控制理论的理解A,B,C,D); G = From input 1 to output: s - sA2 + s + From input 2 to output: s - sA2 + s + Continuous-time transfer function. G = From input 1 to output: (s-) (s+) (s+) From input 2 to output: (s-) (s+) (s+) Continuous-time zero/pole/gain model. 三、传递函数模型转换为状态空间、零极点增益模型 1、MATLAB算法 %将传递函数模型G(s尸num(s)/den(s轮换成零极点模型 %G(s)=k(s+z1)(s+z2)...(s+zm)/(s+p1)(s+p2)...(s+pn) %或状态空间模型x(t尸Ax(t)+Bu(t),y(t尸Cx(t)+Du(t£勺函数 %, 函数的调用格式为 G=tfto2(key,n,d) %其中输入参数 n 与 d 为传递函数分子、分母均按 s 的降幂排列的两个向量 %输出参数 key=1 时,为零极点模型; key=2 时,为状态空间模型 %sys = tf(num,den命令可以建立一个传递函数,其中分子和分母分别为 num和den。输出sys是储存传递函数数据的传递函数目标。 function G=tfto2(key,n,d) if key==1 sys=tf(n,d); G=zpk(sys), elseif key==2 sys=tf(n,d); G=ss(sys), end 2、例题分析 【例 2】设一系统传递函数 Gs= (?+?1)(??+2)(?+?3),将其转换为状态空间与零极点模型。 >> clear;n=[6 24];d=[1 6 11 6]; key=1;G=tfto2(key,n,d); key=2;G=tfto2(key,n,d);6(??+4) G = 6 (s+4) (s+3) (s+2) (s+1) Continuous-time zero/pole/gain model. G = a = x1x2x3 x1-6-- x2400 x3010 b = u1 x12 x20 x30 c = x1x2x3
d = u1 y10 Continuous-time state-space model. 四、零极点增益模型转换为状态空间、传递函数模型 1、MATLAB算法 %将零极点模型转化成传递函数模