




已阅读5页,还剩103页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
多分支判断语句switch-case 作用:多分支判断选择。 一般表达形式: switch选择判断量 case 选择判断值1 选择判断语句1 case 选择判断值2 选择判断语句2 otherwise 判断执行语句 end 注意:当其中一个case语句后的条件为真时,switch-case语句不对其后的case语句进行判断。,1,例如:利用switch_case语句编写判断季节的函数文件。 function demo_switch_case(month) switch month case 3,4,5 season=spring case 6,7,8 season=summer case 9,10,11 season=autumn otherwise season=winter end 将该函数文件以demo_switch_case.m为文件名保存后,在命令窗口输入“demo_switch_case(1)”,可调用该函数文件,返回结果为:season = winter。,2,人机交互命令 作用:在执行 MATLAB 主程序文件时,在适当的地方对程序的运行进行观察或干预。 重要性:在调试程序的时候,人机交互命令更是不可缺少。 MATLAB 语言提供的基本人机交互命令有 :echo、input、pause 和 keyboard 四种。,3,echo 命令 作用:使M文件的命令在执行时可见,有利于程序的调试和演示。,4,input命令 input 命令用来提示用户从键盘输入数据、字符串或表达式,并接收输入值。,5,例:R = input(How many apples),pause 命令 作用:使程序暂时终止执行,等待用户按任意键后继续执行基本调用格式: pause %暂停程序等待回应。 pause (n) %在程序运行中等待 n秒后继续运行。 pause on %显示其后的 pause 命令,并且执行 pause 命令。 pause off %显示其后的 pause 命令,但不执行该命令。,keyboard命令 keyboard命令与input命令的作用相似。当程序遇到此命令时,MATLAB就将暂时停止运行程序,处于等待键盘输入状态且在屏幕上显示字符 K。键盘处理完毕后,输入字符串return,程序将继续执行。在M文件中使用该命令,对于程序的调试和在程序运行中修改变量都很方便。,6,例如: disp( please input a month: ) % 显示提示信息 keyboard % 控制权交给键盘 demo_switch_case (ans) 输入数字(例如3)回车,继续在命令行输入“return”,控制权返回给MATLAB,即可显示3月是春天。,程序调试与诊断 MATLAB程序出错时的基本处理方法 语法格式错误 如缺“(”或“)”等,在运行时可检测出大多数该类错误,并指出错在哪一行。 算法逻辑错误 这样的错误非常隐蔽,往往是对算法考虑不周全,程序可以顺利通过,显示的结果也是正常的数值,但是与先验的预期不符合。,7,注意:在包含函数调用的 MATLAB 程序运行时,当发生运行错误时,不会显示出错信息,又无法检测各个局部变量。应采用调试技术来查找问题。,8,(1)在可能发生错误的 M 文件中,删去某些语句行末的分号,使显示其运行中间结果,从中可发现一些问题; (2)在 M 文件的适当位置上加上keyboard命令,使在执行时在此暂停,从而检查局部工作空间中变量的内容,从中找到出错的线索,利用 return 命令可恢复程序的执行; (3)注释掉 M 函数文件的函数定义行,使函数文件转变成脚本文件; (4)使用MATLAB调试器,设置断点,或单步执行。,MATLAB的代码编辑调试器 MATLAB的代码编辑调试器是一个综合了代码编写与调试的集成开发环境。MATLAB代码调试过程主要是通过调试器菜单Debug下的各子项进行的。调试选项及其功能见表1-3。,9,M文件调试器Debug菜单,表1-3 调试选项及其功能,10,Set/Clear Breakpoint: 设置或清除断点。 1、可以选择该选项对当前行进行操作; 2、通过快捷键F12; 3、直接点击该行左侧的“-”。 注:设置断点时该处显示为红点。再次进行相同的操作则删除该断点。 例子:tiyidianba,11,Set/Modify Conditional Breakpoint:该选项用于设置或修改条件断点。 条件断点为一种特殊的断点,当满足指定的条件时则程序执行至此时停止,否则程序继续进行。其设置界面如图1-12所示,在输入框中输入断点条件则将当前行设置为条件断点。此时设置的断点处显示为黄色。例子:tiyidianba,12,Enable/Disable Breakpoint:开启或关闭当前行的断点,如果当前行不存在断点,则设置当前行为断点;如果当前行是断点,则改变该断点的状态。在调试时,被关闭的断点将会被忽略。例子:tiyidianba,13,在程序调试中,变量的值是查找错误的重要线索,在MATLAB中查看变量的值可以有三种方法: (1)在编辑器中将鼠标放置在待查看的变量处,停留,则在此处显示该变量的值; (2)在工作空间中查看该变量的值; (3)在命令窗口中输入变量名,则显示该变量的值。,以上介绍了程序调试的方法和工具,在真正编写程序时,需要根据不同的情况灵活应用这些功能,达到最高的调试效率。,本章小结 简要介绍了控制系统仿真的基本概念及仿真工具MATLAB的语言特点;(1.1) 详细讲述了在系统仿真过程中可能用到的MATLAB基本功能,从数值计算功能入手,介绍了MATLAB中的数组、矩阵、绘图、函数、M文件及编程控制等基础知识。 希望通过本章的学习能够掌握MATLAB的基本用法,为后续利用MATLAB进行仿真打下基础。,14,习题: 1. 查看MATLAB的目录结构,并检查计算机中安装了 哪些MATLAB工具箱。 2. 使用help命令查找函数plot和plot3的帮助信息。 3. 已知矩阵A为四阶魔方矩阵,矩阵B =1 2 3 4;3 4 5 6;5 6 7 8;7 8 9 0,求矩阵A和矩阵B的矩阵乘积和数 组乘积。 %magic(4) 4. 用符号计算验证三角等式。 % expand(),15,syms x y;expand(sin(x-y),5. 求f = sin(x)2的导数,求 f = sin(x)2 + cos(y)2对y 的导数。 % diff() 6. 求积分 。%int(f,t,a,b) 7. 解方程x3-6*x2+11*x-5=1 。%solve() 8. 绘图:f = (x2 + y2)4 - (x2 - y2)2, 其中1 x 1。 9. 编程求12+22+32+.+1002,并计算运算时间。 %(tic toc) 10. Fibonacci数组的元素满足规则:(k=1,2,), ;且 。试编程求该数组中 第一个大于10000的元素及序号。,16,17,6. syms tao omiga t A;int(A*exp(-i*omiga*t),t,-tao/2,tao/2) 8. x=-1:0.01:1; y=x; X,Y=meshgrid(x,y); F=(X.2+Y.2).4-(X.2-Y.2).2; mesh(X,Y,F); xlabel(x);ylabel(y);title(f的图像) 9. tic a(1)=12; sum(1)=a(1); for i=2:100 a(i)=i2; sum(i)=sum(i-1)+a(i); end sum_100=sum(100) toc,10. a(1)=1;a(2)=1; for i=3:50 a(i)=a(i-1)+a(i-2); if a(i)10000 element=a(i) order=i break end end,控制系统仿真与CAD,第2章 控制系统的数学描述 河南工业大学 电气工程学院 闫晶晶,系统的数学模型,系统数学模型的重要性 系统仿真分析必须已知数学模型 系统设计必须已知数学模型 数学模型是本课程的基础 系统数学模型的获取 建模方法:从已知的物理规律出发,用数学 推导的方法建立起系统的数学模型 辨识方法:由实验数据拟合系统的数学模型,19,第2章 控制系统的数学描述,2.1 控制系统数学模型与控制工具箱函数 2.1.1 传递函数模型 2.1.2 状态空间模型 2.2 控制系统模型的转换及连接 2.2.1 模型转换函数 2.2.2 模型连接与化简 2.3 控制系统建模工程实例,20,2.1.1 传递函数模型,主要内容:介绍一下如何把经典控制里最常用的传递函数模型输入给计算机。 线性系统通常是以线性常微分方程来描述:,2.1 控制系统数学模型与控制工具箱函数,21,22,传递函数的理论基础 Laplace变换,Pierre-Simon Laplace (1749-1827),法国数学家 Laplace变换,t域s域,定义:,Laplace变换的一条重要性质: 若,传递函数模型 传递函数即放大倍数G(s)=Y(s)/U(s) 在零初始条件下,线性常微分方程经Laplace变换后,即为线性系统的传递函数模型: 对线性定常系统,式中s的系数均为常数,且不等于零,这时系统在MATLAB中可以方便地由分子(numerator)和分母(denominator)系数构成的向量组唯一地确定出来。,23,在MATLAB中,传递函数的分子、分母分别用num和den表示,表达方式为: num=b0,b1,b(m-1),bm den=a0,a1,a(n-1),an 其中:它们都是按s的降幂进行排列的,缺项补零。如果ai,bi都为常数,这样的系统又称为线性时不变系统(Linear Time-invariant systems ,简称LTI);系统的分母多项式称为系统的特征多项式。对物理可实现系统来说,一定要满足mn。 对于离散时间系统,其单输入单输出系统的LTI系统差分方程为:,24,对应的脉冲传递函数为: 用不同向量分别表示分子和分母多项式,就可以利用控制系统工具箱的函数表示传递函数变量G: num=b0,b1,b(m-1),bm den=a0,a1,a(n-1),an 在MATLAB中,不论是连续还是离散时间系统,都用函数命令tf( )来建立控制系统的传递函数模型,还可以将零极点模型或者状态空间模型转换为传递函数模型。,25,表2-1 tf( )函数的具体用法见下表,26,例2-1 将已知系统的传递函数模型 输入到MATLAB工作空间中。 解:方法一:在MATLAB命令窗口中输入: num=1 1; %分子多项式向量 den=1 3 2 0; %分母多项式向量 G=tf(num,den) %系统传递函数模型 执行后结果如下: Transfer function: s + 1 - s3 + 3 s2 + 2 s,27,方法二:在MATLAB命令窗口中输入: s=tf( s ) %定义Laplace算子符号变量 G=(s+1)/( s3 + 3 *s2 + 2*s) %直接给出系统传递函数表达式 执行后结果如下: Transfer function: s + 1 - s3 + 3 s2 + 2 s,28,例2-2 已知传递函数模型 ,将其输入到MATLAB工作空间中。 解:方法一:在MATLAB命令窗口中输入: num=conv(10,2 1); %分子向量多项式 den=conv(1 0 0,1 7 13); %分母向量多项式 G=tf(num,den) %系统传递函数模型 执行后结果如下: Transfer function: 20 s + 10 - s4 + 7 s3 + 13 s2,29,方法二:在MATLAB命令窗口中输入: s=tf(s); %定义Laplace算子符号变量 G=10*(2*s+1)/(s2* (s2+7*s+13) %直接给出系统传递函数表达式 执行后结果如下: Transfer function: 20 s + 10 - s4 + 7 s3 + 13 s2,30,例2-3 RLC电路如图2-1所示,试建立以电容上电压Uc(t)为输出变量,输入电压Ur(t)为输入变量的运动方程;如果R=1.6,L=1.0H,C=0.40F时,建立其传递函数模型。 解: 第一步:建立系统的微分方程。 设回路电流为i(t),根据基尔霍夫电压定律、电流定律得到系统的回路方程为: (2-6) (2-7) 将(2-7)代入(2-6),消去中间变量i(t),得到描述RLC网络输入输出关系的微分方程为:,(2-8),31,第二步:根据微分方程写出传递函数。 在零初始条件下,对上述方程中各项求拉氏变换,并令 , ,可得s的代数方程为: 由传递函数定义,得系统传递函数为: 将R=1.6,L=1.0H,C=0.40F代入(2-10)得:,(2-9),(2-10),(2-11),32,33,第三步:将系统模型输入到MATLAB工作空间中。 程序如下: clear clc s=tf(s) ; %定义Laplace算子符号变量 G=25/(10* s2 + 16 *s + 25) %直接给出系统传递函数表达式 程序运行结果为: Transfer function: 25 - 10 s2 + 16 s + 25,例2-4 某一以微分方程描述系统的传递函数,其微分方程描述如下: 试使用MATLAB建立其模型。 解:首先求取系统传递函数。在零初始条件下,对微分方程两边取Laplace变换,可得系统传递函数: 然后建立系统模型,MATLAB程序如下: num=1 0 6; %分子多项式系数行向量 den=1 6 11 6; %分母多项式系数行向量 G=tf(num,den) %建立传递函数模型 程序运行结果如下: Transfer function: s2 + 6 - s3 + 6 s2 + 11 s + 6,34,例2-5 已知传递函数的分子为(s+1),分母项为(s3+4s2 +2s+6),时滞是2,试建立系统的传递函数模型。 解:方法一,由于系统有时滞项,除了设置分子项num和分母项den外,还要在tf( )函数中设置输入传输延时iodelay的属性,其值赋给变量dt,程序如下: num=1 1; den=1 4 2 6; dt=2; G=tf(num,den,iodelay,dt) 程序运行结果为: Transfer function: s + 1 exp(-2*s) * - s3 + 4 s2 + 2 s + 6,35,方法二,也可以采用Laplace算子的符号变量直接建立传递函数模型,程序为: s=tf(s); G=(s+1)/(s3+4*s2+2*s+6); set(G,iodelay,2);G 程序运行后结果与方法一相同。,36,零极点增益模型 实质:零极点增益模型实际上是传递函数模型的另一种表现形式。 原理:分别对原系统传递函数的分子、分母进行因式分解处理,获得系统的零点和极点的表示形式。 其中:K为系统增益,zi(i=1,2,m)为零点,pj(j=1,2,n)为极点。 注:对系数为实数的传递函数模型来说,系统的零极点或者为实数,或者以共轭复数的形式出现。,37,(2-12),离散系统的传递函数也可表示为零极点增益模式: 在MATLAB中零极点增益模型用z,p,k矢量组表示。即: z=z1,z2,zm p=p1,p2,.,pn k=K 调用zpk( )函数就可以输入这个零极点增益模型,还可以将传递函数模型或者状态空间模型转换为零极点增益模型,具体用法如表2-2所示。,38,(2-13),表2-2 zpk函数的具体用法,39,例2-6 双T网络如图2-2所示,试求以Uc为输出,Ur为输入的传递函数和零极点增益模型。其中R1=40,R2=80,C1=100F,C2=50F。 解:首先,根据基尔霍夫电压 定律、电流定律建立各元件的 微分方程。方程如下: (2-14),图2-2 双T网络,40,再求取系统传递函数。将(2-14)中各元件的微分方程进行拉氏变换,并改写成以下形式: 消去中间变量I1(s)和I2(s),得到系统的传递函数为:,(2-15),(2-16),41,将R1=40,R2=80,C1=100F,C2=50F代入上式,可得系统的传递函数为: 最后,编写MATLAB程序。程序如下: num=1; den=16 10 1; G=tf(num,den) G1=zpk(G) 运行后,获得系统的传递函数和零极点增益模型,结果为: Transfer function: 1 - 16 s2 + 10 s + 1 Zero/pole/gain: 0.0625 - (s+0.5) (s+0.125),42,例2-7 已知系统的传递函数为 , 将零极点增益模型输入MATLAB工作空间。 解:在MATLAB的命令窗口输入: z1=-5;-5; %零点向量 p1=-1;-2;-2-2*j;-2+2*j; %极点向量 k=4; %增益向量 G1=zpk(z1,p1,k) %得到系统零极点增益模型 则执行后得到如下结果: Zero/pole/gain: 4 (s+5)2 - (s+1) (s+2) (s2+ 4s + 8),43,例2-8 已知系统的传递函数为: ,求系统 的零极点向量和增益值,并绘制系统零极点分布图。 解:在MATLAB的命令窗口输入: s=zpk( s ); %定义算子 G=4*(s+5)/(s+1)/(s+2)/(s+6) %直接得到系统模型 z,p,k=zpkdata(G, v ) %得到系统零极点向量和增益值 pzmap(G) %绘制系统零极点分布图 则执行后得到的系统传递函数及零极点向量和增益值: Zero/pole/gain: 4 (s+5) - (s+1) (s+2) (s+6) z = -5 p = -1 -2 -6 k = 4 系统的零极点分布图,44,部分分式模型 优点:方便应用Laplace反变换求系统的输出响应。函数:r,p,k=residue(b,a)可以求出传递函数的部分分式之和形式。 传递函数的部分分式之和形式为: 注:使用函数r,p,k=residue(b,a)时,余数返回到向量r,极点返回到列向量p,常数项返回到k。 另外,函数b,a=residue(r,p,k)也可以将部分分式转化为多项式比p(s)/q(s)。,45,(2-17),例2-9 已知系统的传递函数为 ,求取系统的部分分式模型。 解:在MATLAB命令窗口中输入: num=2,0,9,1; den=1,1,4,4; r,p,k=residue(num,den) 则执行后得到如下结果: r = 0.0000 - 0.2500i 0.0000 + 0.2500i -2.0000 p = -0.0000 + 2.0000i -0.0000 - 2.0000i -1.0000 k = 2 根据MATLAB程序运行结果,可写出系统的部分分式模型:,46,状态:系统中存在着若干个动态信息,称为状态。 状态向量:在表征系统动态信息的所有变量中,能够完全描述系统运行的最少数目的一组独立变量(不惟一)称为系统的状态向量。 n维状态空间:以n维状态变量为基所构成的空间称为n维状态空间。 状态空间模型:由状态向量所表征的模型便是状态空间模型。,47,2.1.2 状态空间模型,任何系统都可以用状态空间表达式来进行数学描述,状态空间表达式(又称为动态方程),由状态方程与输出方程组成,揭示了系统内部状态对系统性能的影响。 具有n个状态、m个输入和p个输出的线性时不变系统,状态空间模型即状态空间表达式为: 离散系统的状态空间模型为:,48,(2-18),(2-19),函数ss( )可用来建立控制系统的状态空间模型,连续和离散系统的状态空间模型建立有所区别,具体用法如表2-3 另外,要得到状态空间模型,还可以从传递函数模型或者零极点模型转换过来。,49,例2-10 RLC无源网络如图2-1所示,ur(t)为输入,uc(t)为输出,若选择i(t), uc(t)为状态变量,试建立系统的状态空间模型,并用MATLAB实现。 解:第一步:求取系统的状态 空间模型。由图2-1可列系统 微分方程:,(2-20),(2-21),(2-22),50,写成矩阵形式: 若选择 , ,则系统的状态空间模型为:,51,(2-23),(2-24),其中: 将R=1.6,L=1.0H,C=0.40F代入得: 则系统的状态空间模型为:,52,第二步:MATLAB实现。在MATLAB命令窗口中输入: A=-16 -1;25 0; %给状态矩阵A赋值 B=1;0; %给输入矩阵B赋值 C=0 1; %给输出矩阵C赋值 D=0; %给前馈矩阵D赋值 G=ss(A,B,C,D) %输入并显示系统状态空间模型 执行后得到如下结果: a = b= x1 x2 u1 x1 -16 -1 x1 1 x2 25 0 x2 0 c = d= x1 x2 u1 y1 0 1 y1 0 Continuous-time model.,53,例2-11 将如下系统的状态空间模型输入到MATLAB工作空间中。 解:在MATLAB命令窗口中输入: A=6 5 4;1 0 0;0 1 0; B=1;0;0; C=0 6 7; D=0; G=ss(A,B,C,D) %输入并显示系统状态空间模型,54,则执行后得到如下结果: a = x1 x2 x3 x1 6 5 4 x2 1 0 0 x3 0 1 0 b = u1 x1 1 x2 0 x3 0 c = x1 x2 x3 y1 0 6 7 d = u1 y1 0 Continuous-time model.,55,例2-12 将如下一个两输入两输出系统的状态空间模型输入到MATLAB工作空间中,并求其系统参数。 , 解:首先,在MATLAB命令窗口中输入以下程序,将状态空间模型输入到MATLAB工作空间: A=1 6 9 10; 3 12 6 8; 4 7 9 11; 5 12 13 14; B=4 6; 2 4; 2 2; 1 0; C=0 0 2 1; 8 0 2 2; D=zeros(2,2); %D为一个22的零方阵 Gss=ss(A,B,C,D) %得到系统状态空间模型,56,程序执行后结果如下: a = x1 x2 x3 x4 x1 1 6 9 10 x2 3 12 6 8 x3 4 7 9 11 x4 5 12 13 14 b = u1 u2 x1 4 6 x2 2 4 x3 2 2 x4 1 0 c = x1 x2 x3 x4 y1 0 0 2 1 y2 8 0 2 2 d = u1 u2 y1 0 0 y2 0 0 Continuous-time model.,57,然后在MATLAB命令窗口输入以下语句,可获取系统模型参数 A,B,C,D=ssdata(Gss) 执行后结果如下: A = 1 6 9 10 3 12 6 8 4 7 9 11 5 12 13 14 B = 4 6 2 4 2 2 1 0 C = 0 0 2 1 8 0 2 2 D = 0 0 0 0,58,在MATLAB命令窗口中输入以下语句可得所有参数的属性值: get(Gss) 执行后结果如下: a: 4x4 double b: 4x2 double c: 2x4 double d: 2x2 double e: StateName: 4x1 cell InternalDelay: 0x1 double Ts: 0 InputDelay: 2x1 double OutputDelay: 2x1 double InputName: 2x1 cell OutputName: 2x1 cell InputGroup: 1x1 struct OutputGroup: 1x1 struct Name: Notes: UserData: ,59,2.2 控制系统模型的转换及连接 2.2.1 模型转换函数,控制系统的模型表示:传递函数模型、零极点模型和状态空间模型,这三种模型之间也可以进行相互转换。 模型转换的函数:ss2tf、ss2zp、tf2ss、tf2zp、zp2ss、zp2tf。它们的关系可用图2-4所示的结构来表示,,60,表2-4 数学模型转换函数及其功能,61,例2-13 已知系统传递函数为 ,试求其零极点增益模型及状态空间模型。 解:在MATLAB命令窗口中输入: num=9;den=conv(1 3,1 4 4); Gtf=tf(num,den); Gzpk=zpk(Gtf) Gss=ss(Gtf),62,执行后结果如下: Transfer function: 9 - s3 + 7 s2 + 16 s + 12 Zero/pole/gain: 9 - (s+3) (s+2)2 a = x1 x2 x3 x1 -7 -4 -1.5 x2 4 0 0 x3 0 2 0 b = u1 x1 1 x2 0 x3 0 c = x1 x2 x3 y1 0 0 1.125 d = u1 y1 0 Continuous-time model.,63,例2-14 已知某系统的零极点增益模型为: 求其传递函数模型及状态空间模型。 解:在MATLAB命令窗口中输入: z=-1;-2; %零点向量 p=-3 -5; %极点向量 k=3; %增益 Gzpk=zpk(z,p,k) %零极点模型 a,b,c,d=zp2ss(z,p,k) %将零极点模型转换为状态空间模型 num,den=zp2tf(z,p,k) %由零极点模型得到传递函数的分子和分母向量,64,执行后结果如下: Zero/pole/gain: 3 (s+1) (s+2) - (s+3) (s+5) a = -8.0000 -3.8730 3.8730 0 b = 1 0 c = -15.0000 -10.0698 d = 3 num = 3 9 6 den = 1 8 15,65,例2-15 将双输入单输出的系统模型转换为多项式传递函数模型。 解:在MATLAB命令窗口中输入: a=0 1;-3 -2;b=1 0;0 1;c=1 0;d=0 0; num,den=ss2tf(a,b,c,d,1) num2,den2=ss2tf(a,b,c,d,2) Gss=ss(a,b,c,d); Gtf=tf(Gss),66,执行后得到如下结果: num = 0 1.0000 2.0000 den = 1.0000 2.0000 3.0000 num2 = 0 0 1.0000 den2 = 1.0000 2.0000 3.0000 Transfer function from input 1 to output: s + 2 - s2 + 2 s + 3 Transfer function from input 2 to output: 1 - s2 + 2 s + 3,67,例2-16 造纸工业中的一加压液流箱系统。该系统的状态变量是箱中的液位h(t)与料浆的总压头H(t),输入变量是料浆流入量u1(t)与空气流入量u2(t),输出变量是状态变量H(t)与h(t)的和。系统状态空间模型为: 试求系统的状态空间模型、传递函数模型及零极点增益模型。 解:由系统的状态空间模型,编写如下MATLAB程序: a=-0.5620 0.05114;-0.254 0;b=0.03247 1.145;0.112541 0; c=1 1;d=0 0;G=ss(a,b,c,d), G1=tf(G), G2=zpk(G),68,运行后结果如下: a = x1 x2 x1 -0.562 0.05114 x2 -0.254 0 b = u1 u2 x1 0.03247 1.145 x2 0.1125 0 c = x1 x2 y1 1 1 d = u1 u2 y1 0 0 Continuous-time model.,69,Transfer function from input 1 to output: % 系统从u1到y的传递函数模型 0.145 s + 0.06076 - s2 + 0.562 s + 0.01299 Transfer function from input 2 to output: % 系统从u2到y的传递函数模型 1.145 s - 0.2908 - s2 + 0.562 s + 0.01299 Zero/pole/gain from input 1 to output: % 系统从u1到y的零极点增益模型 0.14501 (s+0.419) - (s+0.5378) (s+0.02415) Zero/pole/gain from input 2 to output: % 系统从u2到y的零极点增益模型 1.145 (s-0.254) - (s+0.5378) (s+0.02415),70,模型间的基本连接方式主要有: 串联连接:series() 并联连接:parallel() 反馈连接:feedback(),2.2.2 模型连接与化简,71,若控制系统由几个环节串联而成,即环节按照信号传递的方向串联在一起(如图2-5所示),并且各环节之间没有负载效应和返回影响,则系统可以等效为一个环节,其等效传递函数为各环节传递函数的乘积,即 在MATLAB中,series( )函数可完成等效传递函数的求取。,图2-5 串联连接结构,串联连接结构,72,例2-17 已知两个系统的传递函数 和 ,求其G1(s)和G2(s)进行串联后的系统模型 解:MATLAB程序为: num1=10;den1=20 1 0; num2=1 1;den2=1 6 1; num,den=series(num1,den1,num2,den2); printsys(num,den) %将系统模型写成“num/den”格式 程序运行结果为: num/den = 10 s + 10 - 20 s4 + 121 s3 + 26 s2 + s,73,模型并联 若组成控制系统的环节具有相同的输入信号,且各环节输出信号的代数和作为系统的输出,则这几个环节的连接方式为并联,如图2-6所示,此时系统可等效为一个环节,其等效传递函数为各环节传递函数的和,即 注:在MATLAB中,parallel( )函数可完成等效传递函数的求取。,图2-6 并联连接结构,74,例2-18 已知两个系统的传递函数 和 ,求G1(s)和G2(s)进行并联后的系统模型 解:MATLAB的程序为: num1=10;den1=20 1 0; num2=1 1;den2=1 6 1; num,den=parallel(num1,den1,num2,den2); printsys(num,den) 程序运行结果为: num/den = 20 s3 + 31 s2 + 61 s + 10 - 20 s4 + 121 s3 + 26 s2 + s,75,反馈连接 自动控制系统中,若两个环节具有图2-7所示的结构形式,则称为反馈联接。 对于(a)所示的正反馈系统,其等效传递函数为: 对于(b)所示的负反馈系统,其等效传递函数为: 注:在MATLAB中,feedback( )函数可计算闭环传递函数。,(a)正反馈连接,(b) 负反馈连接,76,例2-19 已知系统 和 ,求G1(s) 和G2(s)分别进行串联、并联和反馈连接后的系统模型。 解:由系统的传递函数模型,编写MATLAB程序(程序1): num1=1 1; den1=1 4 26; G1=tf(num1,den1); num2=1; den2=1 6;G2=tf(num2,den2); Gs=series(G1,G2) , %求取G1(s)和G2(s)串联的等效传递函数 Gp=parallel(G1,G2), %求取G1(s)和G2(s) 并联的等效传递函数 Gf=feedback(G1,G2) %求取负反馈的等效传递函数,前向通道传递函数为G1(s),反馈通道传递函数为G2(s),77,程序1执行后结果如下: Transfer function: %串联等效传递函数为Gs=G1(s)*G2(s) s + 1 - s3 + 10 s2 + 50 s + 156 Transfer function: %并联的等效传递函数为Gp=G1(s)+G2(s) 2 s2 + 11 s + 32 - s3 + 10 s2 + 50 s + 156 Transfer function: %反馈的等效传递函数为Gf =G1/(1+G1*G2) s2 + 7 s + 6 - s3 + 10 s2 + 51 s + 157,78,本例还可以用如下程序(程序2)完成: num1=1 1; den1=1 4 26; G1=tf(num1,den1); num2=1; den2=1 6;G2=tf(num2,den2); Gs=G2*G1, Gp=G1+G2, Gf=G1/(1+G1*G2) 程序2执行后结果为: Transfer function: % Gs s + 1 - s3 + 10 s2 + 50 s + 156 Transfer function: % Gp 2 s2 + 11 s + 32 - s3 + 10 s2 + 50 s + 156 Transfer function: % Gf s4 + 11 s3 + 60 s2 + 206 s + 156 - s5 + 14 s4 + 117 s3 + 621 s2 + 1954 s + 4082,79,注意:程序2执行后结果的Gf与程序1的Gf表达式不同,这是因为程序2的Gf分子分母存在公约项,这里可用函数Gf=minreal(Gf)来获得系统的最小实现模型。 说明:对于反馈连接,虽然运算式与feedback( )函数等效,但得到的系统阶次可能高于实际系统阶次,需通过 minreal( )函数进一步求其最小实现。严格意义上的传递函数定义为经过零极点对消之后的输入-输出关系,当分子分母有公因式时,必须消除。 minreal( )函数,即最小实现是一种模型的实现,它消除了模型中过多的或不必要的状态。对传递函数或零极点增益模型,这等价于将可彼此对消的零极点对进行对消。,80,例2-20 给定一个多回路控制系统的结构方框图如图2-8所示,试求系统的传递函数。 解:方法一:在MATLAB命令窗口中输入: G1=tf(1,1 1);G2=tf(1,3 4 1);Gp=G1+G2; G3=tf(1,1 0);Gs=series(G3,Gp); Gc=Gs/(1+Gs); Gc1=minreal(Gc) 执行结果为: Transfer function: s + 0.6667 - s3 + 1.333 s2 + 1.333 s + 0.6667,81,图2-8 例2-20多回路控制 系统的结构框图,方法二:新建一个空的M文件,将上述程序写在Editor窗口中,完成后单击Run图标或选择Debug菜单栏中Run运行,打开“Workspace”窗口中相应的变量,可看到运行结果,例如:打开变量Gc,可看到: Transfer function: 9 s6 + 36 s5 + 56 s4 + 42 s3 + 15 s2 + 2 s - 9 s8 + 42 s7 + 88 s6 + 112 s5 + 95 s4 + 52 s3 + 16 s2 + 2 s 打开变量Gc1,可看到: Transfer function: s + 0.6667 - s3 + 1.333 s2 + 1.333 s + 0.6667,82,例2-21: 组合机床动力滑台铣平面时的情况如图2-9(a)所 示,试分析并求该系统的微分方程和传递函数。 (a)动力滑台 (b)动力滑台力学模型 图2-9 例2-21中组合机床动力滑台及其力学模,83,2.3 控制系统建模工程实例,84,解: 第一步:建立系统的微分方程并求取系统传
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年自考专业(工商企业管理)高分题库带答案详解(轻巧夺冠)
- 居间合同法律风险及案例分析
- 河南省南阳市高一期末数学试题扫描版
- 四年级语文作文专项训练与范文集
- 安徽省中考数学历年真题全收录
- 2023年度护士资格证练习题附完整答案详解(各地真题)
- 加油站操作安全与服务标准培训资料
- 公司文件销毁申请格式模板
- 2025山东德州市武城县教育系统引进第二批高层次人才20人模拟试卷附答案详解(综合卷)
- 2024年广播电视编辑记者能力检测试卷(必刷)附答案详解
- 《多元统计分析-基于R(第3版)》课件全套 费宇 第1-13章-多元统计分析与R简介-多维标度分析
- 法学论文开题报告模板范文
- 输变电工程施工质量验收统一表式附件1:线路工程填写示例
- 2024年山东省高考物理试卷(真题+答案)
- 人音版小学六年级上册音乐教案 全册
- 2024年国家义务教育质量监测体育与健康学科成绩提升培训会
- DLT 5630-2021 输变电工程防灾减灾设计规程-PDF解密
- 装饰图案-从图案到设计作业
- 眼科手术器械的清洁与消毒
- 《小英雄雨来》读书分享会
- 婚恋工作室交友计划书
评论
0/150
提交评论