收藏 分销(赏)

传递函数、零极点增益与状态空间转换的matlab算法实现.docx

上传人:s4****5z 文档编号:8926840 上传时间:2025-03-08 格式:DOCX 页数:4 大小:23.17KB 下载积分:10 金币
下载 相关 举报
传递函数、零极点增益与状态空间转换的matlab算法实现.docx_第1页
第1页 / 共4页
传递函数、零极点增益与状态空间转换的matlab算法实现.docx_第2页
第2页 / 共4页


点击查看更多>>
资源描述
传递函数、零极点增益与状态空间三种模型转换的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)...(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时,为状态空间模型 function G=ssto2(key,A,B,C,D) if key==1 sys=ss(A,B,C,D); G=tf(sys), elseif key==2 sys=ss(A,B,C,D); G=zpk(sys), end 2、例题分析 【例1】已知一加压液流箱系统,该系统的状态变量是液位h(t)与料浆总压H(t),输入变量是料浆流入量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=ssto2(key,A,B,C,D); key=2;G=ssto2(key,A,B,C,D); G = From input 1 to output: 0.03434 s - 0.0003741 -------------------------- s^2 + 0.3912 s + 0.0002715 From input 2 to output: 0.01234 s - 0.0002715 -------------------------- s^2 + 0.3912 s + 0.0002715 Continuous-time transfer function. G = From input 1 to output: 0.034336 (s-0.0109) ------------------------ (s+0.3905) (s+0.0006952) From input 2 to output: 0.01234 (s-0.022) ------------------------ (s+0.3905) (s+0.0006952) 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)的函数 %tfto2.m,函数的调用格式为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=6(s+4)(s+1)(s+2)(s+3),将其转换为状态空间与零极点模型。 >> clear;n=[6 24];d=[1 6 11 6]; 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-time zero/pole/gain model. G = a = x1 x2 x3 x1 -6 -2.75 -1.5 x2 4 0 0 x3 0 1 0 b = u1 x1 2 x2 0 x3 0 c = x1 x2 x3 y1 0 0.75 3 d = u1 y1 0 Continuous-time state-space model. 四、零极点增益模型转换为状态空间、传递函数模型 1、MATLAB算法 %将零极点模型转化成传递函数模型G(s)=num(s)/den(s)或状态空间模型 %x(t)=Ax(t)+Bu(t),y(t)=Cx(t)+Du(t)的函数zpkto2.m,函数调用格式为 %G=zpkto2(key,z,p,k),其中输入参数z,p,k为系统零点、系统极点、系统增益 %当输入参数key=1时,为传递函数模型,key=2时为状态空间模型 function G=zpkto2(key,z,p,k) if key==1 sys=zpk(z,p,k); G=tf(sys), elseif key==2 sys=zpk(z,p,k); G=ss(sys), end 2、例题分析 【例3】对【例2】的程序进行验证。 >> clear;k=6;z=-4;p=[-1,-2,-3]; key=1;G=zpkto2(key,z,p,k); G = 6 s + 24 ---------------------- s^3 + 6 s^2 + 11 s + 6 Continuous-time transfer function. 【例4】调用ssto2.m函数验证。 >> clear;A=[-6 -2.75 -1.5;4 0 0;0 1 0];B=[2;0;0];C=[0 0.75 3]; D=0;key=1;G=ssto2(key,A,B,C,D); key=2;G=ssto2(key,A,B,C,D); G = 6 s + 24 ---------------------- s^3 + 6 s^2 + 11 s + 6 Continuous-time transfer function. G = 6 (s+4) ----------------- (s+3) (s+2) (s+1) Continuous-time zero/pole/gain model.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服