在MATLAB中数学模型的表示

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
>>p=roots(deng) >>p=-1.0000+0.0000i >>-1.0000+0.0000i; >>-1.0000+0.0000i %G(s)的极点
%G(s)的零点
>>n1=[1,1];n2=[1,2];d1=[1,2*i]; >>d2=[1,-2*i];d3=[1,3]; >>numh=conv(n1,n2); >>denh=conv(d1,conv(d2,d3)); >>printsys(numh,denh)
>>A=[1,3]; B=[10,20,3]; >>C = conv(A,B) >>C = 10 50 63 9
即得出的C(s)多项式为10s3 +50s2 +63s +9
MATLAB提供的conv( )函数的调用允许多级嵌套, 例如
>>G(s)=4(s+2)(s+3)(s+4)
可由下列的语句来输入
>>P=[1 0 2 4]
注意尽管s2项系数为0,但输入P(s)时不可缺省0。
MATLAB下多项式乘法处理函数调用格式为:
>>C=conv(A,B)
例如给定两个多项式A(s)=s+3和B(s)=10s2+20s+3,求 C(s)=A(s)B(s),则应先构造多项式A(s)和B(s),然后 再调用conv( )函数来求C(s)
R(s)
+ G2(s) C2(s)
反馈
反馈连接如图所示。使用MATLAB中的feedback( )函数来实现 反馈连接,其调用格式为 R (s) E(s)

C(s) G (s) H(s)
B(s)
>>[num,den]=feedback(numg,deng,numh,denh,sign)
式中:
sign为反馈极性,若为正反馈其为1,若为负反馈其为-1或缺省。
点图上,零点用“○。”表示,极点用“×”表示。其调用格式为
>>[p,z]=pzmap(num,den)
其中, p─传递函数G(s)=den的极点
z─传递函数G(s)= num的零点 例如,传递函数
用MATLAB求出G(s)的零极点,H(s)的多项式形式,及G(s)H(s)的 零极点图
>>numg=[6,0,1]; deng=[1,3,3,1]; >>z=roots(numg) >>z=0+0.4082i >>0-0.4082i;
传递函数G(s)输入之后,分别对分子和分母多项式作因式
分解,则可求出系统的零极点,MATLAB提供了多项式求
根函数roots(),其调用格式为:
>>roots(p)
其中p为多项式。
例如,多项式p(s)=s3+3s2+4
>>p=[1,3,0,4]; %p(s)=s3+3s2+4 >>r=roots(p);%p(s)=0的根 >>r=-3.3533
>>[z,p,k]= tf2zp(num,den) >>[num,den]= zp2tf(z,p,k)
其中第一个函数可将传递函数模型转换成零极点表示形式,而 第二个函数可将零极点表示方式转换成传递函数模型。
例如
用MATLAB语句表示:
>>num=[12241220];den=[24622]; >>[z,p,k]=tf2zp(num,den) >>z= -1.9294 >>-0.0353+0.9287i
2.6.1传递函数
单输入单输出线性连续系统的传递函数为:
dnc(t) dn-1c(t) a0 n +a1 n-1 +· +an-1 dc(t)+anc(t) · · dt dt dt dmr(t)+b dm-1r(t) +· +b dr(t)+b r(t) = b0 dtm · m-1 · 1 dtm-1 m dt
反馈
例如 负反馈连接
>>numg=[1,1];deng=[1,2]; >>numh=[1];denh=[1,0]; >>[num,den]=feedback(numg,deng,numh,denh,-1); >>printsys(num,den)
MATLAB中的函数series,parallel和feedback可用来简化多回路方
框图。另外,对于单位反馈系统,MATLAB可调用cloop( )函数求
闭环传递函数,其调用格式为
>>[num,den]=cloop(num1,den1,sign)
2.6.4 控制系统的零极点模型
传递函数可以是时间常数形式,也可以是零极点形式,零极点形
式是分别对原系统传递函数的分子和分母进行因式分解得到的。 MATLAB控制系统工具箱提供了零极点模型与时间常数模型 之间的转换函数,其调用格式分别为
>>pzmap(num,den) >>title(‘pole-zero Map’)
零极点图如图所示 :
2.6.3 控制系统的方框图模型
若已知控制系统的方框图,使用MATLAB函数可实现方框 图转换。
串联
R(s) G1(s)
G2(s)
C(s)
如图所示G1(s)和G2(s)相串联,在MATLAB中可用串联函数series( ) 来求G1(s)G2(s),其调用格式为
其中m≤n。G(s)的分子多项式的根称为系统的零点,分母 多项式的根称为系统的极点。令分母多项式等于零,得系
统的特征方程:
D(s)=a0sn+a1sn-1+……+an-1s+an=0
因传递函数为多项式之比,所以我们先研究MATLAB 是如何处理多项式的。MATLAB中多项式用行向量表 示,行向量元素依次为降幂排列的多项式各项的系数,例 如多项式P(s)=s3+2s+4,其输入为:


本章要求学生熟练掌握系统数学模型的建立和拉氏变换方法。 对于线性定常系统,能够列写其微分方程,会求传递函数, 会画方框图和信号流图,并掌握方框图的变换及化简方法。
1. 数学模型是描述元件或系统动态特性的数学表达式,是对
系统进行理论分析研究的主要依据。用解析法建立实际系统 的数学模型时,分析系统的工作原理,忽略一些次要因素, 运用基本物理、化学定律,获得一个既简单又能足够精确地 反映系统动态特性的数学模型。
>>polyval(p,a)
其中p为多项式;a为给定变量值
例如,求n(s)=(3s2+2s+1)(s+4)在s=-5时值:
>>n=conv([3,2,1],[1,4]); >>value=polyval(n,-5) >>value=-66
传递函数在复平面上的零极点图,采用pzmap()函数来完成,零极
2. 实际系统均不同程度地存在非线性,但许多系统在一定条 件下可近似为线性系统,故我们尽量对所研究的系统进行线 性化处理(如增量化法),然后用线性理论进行分析。但应注 意,不是任何非线性特性均可进行线性化处理。 3. 传递函数是经典控制理论中的一种重要的数学模型。其定 义为:在零初始条件下,系统输出的拉普拉斯与输入的拉普 拉斯变换之比。 4. 根据运动规律和数学模型的共性,任何复杂系统都可划分 为几种典型环节的组合,再利用传递函数和图解法能较方便
>>G=4*conv([1,2],conv([1,3],[1,4]))
有了多项式的输入,系统的传递函数在MATLAB下可
由其分子和分母多项式唯一地确定出来,其格式为
>>sys=tf(num,dΒιβλιοθήκη Baidun)
其中num为分子多项式,den为分母多项式
>>num=[b0,b1,b2,…,bm]; den=[a0,a1,a2,…,an];
>>0.1777+1.0773i >>0.1777-1.0773i
反过来,若已知特征多项式的特征根,可调用MATLAB中的
poly( )函数,来求得多项式降幂排列时各项的系数,如上例
>>poly(r) >>p = 1.0000 3.0000 0.0000 4.0000
polyval函数用来求取给定变量值时多项式的值,其调 用格式为
即 3.0000 1.0000
2.6.5 状态空间表达式
状态空间表达式是描述系统特性的又一种数学模型,它由状态 方程和输出方程构成,即 x(t)=Ax(t)+Bu(t)
y(t)=Cx(t)+Du(t) 式中 x(t)∈Rn 称为状态向量,n为系统阶次;
A∈Rn×n 称为系统矩阵; B∈Rn×p 称为控制矩阵,p为输入量个数; C∈Rq×n 称为输出矩阵; D∈Rq×p 称为连接矩阵,q为输出量个数。
>>-0.0353-0.9287i
>>p=-0.9567+1.2272i >>-0.9567-1.2272i >>-0.0433+0.6412i >>-0.0433-0.6412i >>k=6
用MATLAB语句表示:
可以验证MATLAB的转换函数,调用zp2tf()函数将得到原传递函 数模型。
>>[num,den]=zp2tf(z,p,k) >>num = 0 6.0000 12.0000 6.0000 10 >>den = 1.0000 2.0000
地建立系统的数学模型。
5. 方框图是研究控制系统的一种图解模型,它直观形象地表 示出系统中信号的传递特性。应用梅逊公式不经任何结构变 换,可求出源节点和汇节点之间的传递函数。信号流图的应 用更为广泛。
6.利用MATLAB来进行多项式运算,传递函数零点和极点
的计算,闭环传递函数的求取,方框图模型的化简等。
§2-6 在MATLAB中数学模型的表示
控制系统的数学模型在系统分析和设计中是相 当重要的,在线性系统理论中常用的数学模型有微
分方程、传递函数、状态空间表达式等,而这些模
型之间又有着某些内在的等效关系。MATLAB主要
使用传递函数和状态空间表达式来描述线性时不变
系统(Linear Time Invariant简记为LTI)。
对于其它复杂的表达式,如:
可由下列语句来输入 :
>>num=conv([1,1],conv([1,2,6],[1,2,6])); >>den=conv([1,0,0],conv([1,3],[1,2,3,4])); >>G=tf(num,den)
Transfer function:
2.6.2传递函数的特征根及零极点图
>>[num,den]=series(num1,den1,num2,den2)
其中:
并联
如图所示G1(s)和G2(s)相并联,可由MATLAB的并联函数parallel( ) 来实现,其调用格式为
>>[num,den]=parallel (num1,den1,num2,den2)
其中: G1(s) C1(s) + C(s)
相关文档
最新文档