- 1、本文档共101页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本章主要教学内容
在MATLAB中描述控制系统的数学模型
系统方框图模型的简化及应用
控制系统的时域分析
控制系统的频域分析
利用MATLAB语言进行仿真编程的具体应用;本章教学目的及要求
熟悉MATLAB的基本应用
掌握利用MATLAB建立数学模型的方法
熟悉控制系统的时域和频域分析
掌握MATLAB的仿真编程应用;; 7.1.1 系统的传递函数模型表示
传递函数模型通常表示线性定常时不变系统(LTI),可以是连续的时间系统,也可以是离散的时间系统。
对于离散的时间系统,其脉冲传递函数可表示为:; 在MATLAB中,可用函数命令tf()来建立控制系统的传递函数模型,其调用格式和功能分别为:
(1)sys= tf(num, den);
(2)sys= tf(num, den, Ts) ;。
(3)sys= tf(M) ;
(4)tfsys= tf(sys); ;7.1.2 零极点增益模型
当连续系统的传递函数表达式采用系统增益、系统零点与系统极点来表示时,称之为系统零极点增益模型。系统零极点增益模型是传递函数模型的一种特殊形式。
离散系统的传递函数零极点增益模型: ;; 在MATLAB中,可用函数命令zpk()来建立控制系统的零极点增益模型,其调用格式和功能分别为:
(1)sys= zpk(num, den) ;
(2)sys= zpk(num,den, Ts);
(3)sys= zpk(M);
(4)tfsys= zpk(sys);; 7.1.3 状态空间模型
控制系统在主要工作区域内的一定条件下可近似为线性时不变(LTI)模型,连续LTI对象系统总是能用一阶微分方程组来表示,写成矩阵形式即为状态空间模型:;; MATLAB中的函数ss()可用来建立控制系统的状态空间模型,或者将传递函数模型与零极点增益模型转换为系统状态空间模型。
ss()函数的调用格式为:
(1)sys= ss(a, b, c, d);
(2)sys= ss(a, b, c, d, Ts);
(3)sys= ss(d);该函数等价于sys= ss([ ],[ ],[ ],d)。
(4)sys_ss= ss(sys);;;解:采用状态空间模型表示时,可在MATLAB命令窗口中输入以下命令:
?? A=[1 0 0 0;0 1 0 0;0 0 1 0;-1 -5 0 -2];
?? B=[0;0;0;1];
?? C=[3 2 1 0];D=0;
?? sys=ss(A,B,C,D)
上述指令执行后可得指定系统的状态空间模型为:
a =
x1 x2 x3 x4
x1 1 0 0 0
x2 0 1 0 0
x3 0 0 1 0
x4 -1 -5 0 -2;; 7.1.4 系统不同模型间的相互转换
在MATLAB 2011b的信号处理工具箱与控制系统工具箱中,提供了传递函数模型、零极点增益模型与状态空间模型之间转换的函数:ss2tf(),ss2zp(),tf2ss(),tf2zp(),zp2ss(),zp2tf()。
这些函数之间的转换功能如表7-1所示。 ;;【例7.2】 已知某系统的传递函数为:;;;;由以上数据可写出系统的状态空间模型为:;;7.2 环节方框图模型的化简
7.2.1 环节串联连接的化简
多个环节串联的连接形式是控制系统最基本的组成结构形式之一。控制系统的环节串联及其化简就是模块方框图模型的串联及其化简。可以用MATLAB的函数命令series()将串联模块进行等效变换。
使用series()函数命令不必做多项式的乘除运算即可实现两个环节传递函数的串联连接。如果令sys1= tf(num1,den1),sys2= tf(num2,den2),其命令格式为:
sys= series(sys1,sys2);如果已知两个环节的状态空间模型矩阵组分别为:(a1,b1,c1,d1)与(a2,b2,c2,d2),则求两个环节串联连接等效系统状态空间模型[a,b,c,d]矩阵组的命令格式为:
[a,b,c,d]= series(a1,b1,c1,d1,a2,b2,c2,d2)
series()函数命令还可以将多个环节按两两串联的形式多次递归调用加以连接,进行等效化简。
sys= series(sys1,sys2)命令可以用命令sys=sys1*sys2*…*sysn取代,不仅省掉“series()”字符,且可以实现多个环节的串联等
文档评论(0)