1、第九章第九章 MATLAB在控制原理中在控制原理中 的应用的应用 9.1 MATLAB软件界面软件界面 9.2 MATLAB程序基础程序基础9.3 Simulink操作简介操作简介9.4 线性控制系统仿真线性控制系统仿真9.5非线性控制系统仿真非线性控制系统仿真9.6离散控制系统仿真离散控制系统仿真 MATLABMATLAB简介:简介:MATLABMATLAB是矩阵实验室(是矩阵实验室(Matrix LaboratoryMatrix Laboratory)的简称,美国)的简称,美国MathWorksMathWorks公司出品的数学软件。公司出品的数学软件。MATLABMATLAB软件主要包括软
2、件主要包括MATLABMATLAB和和SimulinkSimulink两大部分:两大部分:MATLABMATLAB是一种用于是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境;互式环境;SimulinkSimulink 是一个用于对动态系统进行多域建模和模型设计的平是一个用于对动态系统进行多域建模和模型设计的平台,它提供了一个交互式图形环境,以及丰富的模块库,并可针对特定应台,它提供了一个交互式图形环境,以及丰富的模块库,并可针对特定应用加以扩展。用加以扩展。经典控制理论中,可利用经典控制理论中,可
3、利用MATLABMATLAB提供的资源来构建各类系统的数学模提供的资源来构建各类系统的数学模型,进行系统的设计、系统的性能分析和仿真实验研究。型,进行系统的设计、系统的性能分析和仿真实验研究。9.1 MATLAB软件界面软件界面 一、一、MATLAB主操作界面主操作界面当前目录浏览窗口 工作空间窗口命令窗口 历史命令窗口 Simulink启动图标 当前目录指示器 目录设置按钮开始按钮二、常用的工具栏图标和菜单二、常用的工具栏图标和菜单 工具栏中工具栏中Simulink启动图标可启动启动图标可启动Simulink,当前目录指示器显示,当前目录指示器显示当前的工作目录,目录设置按钮可以设置当前工作
4、目录当前的工作目录,目录设置按钮可以设置当前工作目录.菜单菜单菜单说明菜单说明File:New:M-file新建M文件File:Open 打开文件File:Import Data导入数据Mat文件File:Save Workspace as将工作空间所有变量和数据保存为数据Mat文件File:Set Path设置MATLAB文件搜索路径File:Preferences设置MATLAB软件参数Desktop界面配置和切换HelpMATLAB软件帮助三、界面窗口三、界面窗口1、当前目录浏览器窗口当前目录浏览器窗口(Current Directory)浏览浏览MATLAB软件当前工作目录的文件。软件
5、当前工作目录的文件。2、工作空间窗口工作空间窗口(Work space)显示当前工作空间中的变量,可以显示每个变量的名称显示当前工作空间中的变量,可以显示每个变量的名称(Name)、值、值(value)、数组大小、数组大小(size)、字节大小、字节大小(bytes)和类型和类型(class)。双击变量将在界面右上方弹出双击变量将在界面右上方弹出矩阵编辑器矩阵编辑器(Array editor)。3、历史命令窗口历史命令窗口(Command History)历史命令窗口显示记录的历史命令窗口显示记录的MATLAB软件启动时间,和启动后命令窗口软件启动时间,和启动后命令窗口(Command Win
6、dow)输入的所有)输入的所有MATLAB命令命令/函数。函数。4、命令窗口命令窗口(Command Window)MATLAB软件操作最主要的窗口,用于输入命令和数据、运行软件操作最主要的窗口,用于输入命令和数据、运行MATLAB函数和程序并显示结果;函数和程序并显示结果;命令窗口的提示符为命令窗口的提示符为“”;命令窗口显示的数值格式默认为短格式命令窗口显示的数值格式默认为短格式(format short)。矩阵编辑器 9.2 MATLAB9.2 MATLAB程序基础程序基础 一、一、MATLABMATLAB的变量的变量 赋值语句格式:赋值语句格式:变量名变量名=值或表达式值或表达式 变量
7、被赋值后在工作空间变量被赋值后在工作空间 (Work space)(Work space)显示。赋值语句后可以不带显示。赋值语句后可以不带 “;”或带或带“;”,不带不带“;”的含义是在命令窗口显示赋值的结果,带的含义是在命令窗口显示赋值的结果,带“;”则不显示。则不显示。例例9-19-1:为变量为变量 a a 赋值行向量赋值行向量 1 2 1 2,分别不带,分别不带“;”或带或带“;”。解:解:a=1 2%a=1 2%显示赋值结果显示赋值结果a=a=1 2 1 2a=1 2;%a=1 2;%不显示结果不显示结果 ansans是是MATLABMATLAB的默认变量的默认变量,为,为answer
8、answer的缩写。当某个表达式或函数没有的缩写。当某个表达式或函数没有指定赋值变量时,指定赋值变量时,MATLABMATLAB把结果赋值给把结果赋值给ansans。MATLABMATLAB的的保留变量应尽量避免重新赋值。保留变量应尽量避免重新赋值。MATLABMATLAB常用的保留变量:常用的保留变量:i,j i,j 虚部单位,即虚部单位,即i=sqrt(-1);i=sqrt(-1);pi pi 圆周率(浮点)圆周率(浮点);eps eps 浮点运算误差限浮点运算误差限 2.22042.220410-1610-16,当计算结果小于,当计算结果小于epseps时,作为时,作为0 0处理处理;i
9、nf/Inf inf/Inf 无穷大无穷大;NaN NaN不定式,表示不定式,表示0/0,/0/0,/等无法确定的值。等无法确定的值。二、二、MATLABMATLAB命令命令/函数的基本语法函数的基本语法 命令命令/函数调用格式:函数调用格式:返回参数列表返回参数列表 命令命令/函数名(输入参数列表)函数名(输入参数列表)命令命令/函数的用法、输入参数和返回参数,均能通过帮助菜单函数的用法、输入参数和返回参数,均能通过帮助菜单HELPHELP查询,查询,也可以直接在命令窗口输入也可以直接在命令窗口输入“help help 命令命令/函数名函数名”进行查询。进行查询。多个命令多个命令/函数输入时
10、,相互间可以用函数输入时,相互间可以用“,”或或“;”隔开。隔开。例例9-39-3:用多项式相乘函数用多项式相乘函数convconv()()计算多项式计算多项式s+1s+1和和s+2s+2之积,并把结之积,并把结果赋值变量果赋值变量a a。解:解:a=conv(1 1,1 2)a=conv(1 1,1 2)a=a=1 3 2 1 3 2三、常用的基本命令三、常用的基本命令/函数函数format shortformat short 设置数值显示格式为短格式,显示小数点后设置数值显示格式为短格式,显示小数点后4 4位有效数位有效数字;字;format longformat long 设置数值显示格
11、式为长格式,双精度数显示小数点后设置数值显示格式为长格式,双精度数显示小数点后1515位有效数字,单精度显示小数点后位有效数字,单精度显示小数点后7 7位有效数字;位有效数字;clear clear 清除工作空间中的变量;清除工作空间中的变量;clrclr 清屏命令;清屏命令;who who 查看工作空间中的变量名;查看工作空间中的变量名;plot(x,yplot(x,y)打开一个绘图窗口绘制打开一个绘图窗口绘制2 2维曲线,并以维曲线,并以x x为横坐标,为横坐标,y y为纵为纵坐标。坐标。x,yx,y应该为维数相同的向量。应该为维数相同的向量。四、常用的运算符和数学函数四、常用的运算符和数
12、学函数符号运算符号运算加减*乘/除/矩阵右除矩阵左除共扼转置.+点加.-点减.*点乘./点除幂&逻辑与|逻辑或逻辑非xor 逻辑异或()表达式优先级 构成向量或矩阵:循环 冒号冒号“:”是是MATLABMATLAB中比较特殊的一个运算符,表示循环。可以用中比较特殊的一个运算符,表示循环。可以用“:”产生行向量。产生行向量。调用格式:行向量调用格式:行向量=s1:s3:s2=s1:s3:s2。s1s1为起始值,为起始值,s2s2为终止值,循环步距值为为终止值,循环步距值为s3s3。当。当s3s3为为1 1时可省略,写成时可省略,写成“行向量行向量=s1:s2”=s1:s2”。例如,例如,B=1:
13、1:4B=1:1:4,运算后,运算后B=1 2 3 4B=1 2 3 4。冒号运算符在矩阵运算时还可以用于矩阵剪裁。冒号运算符在矩阵运算时还可以用于矩阵剪裁。例如例如,A=1 2 3,4;5,6 7 8 A(1:2,3:4)表示A矩阵第1、2行中的第3、4列元素所构成的矩阵。34(1:2,3:4)78A 常用的数学函数常用的数学函数 函数运算函数运算sin()正弦asin()反正弦cos()余弦acos()反余弦tan()正切atan()反正切cot()余切acot()反余切abs()绝对值sqrt()平方根exp()指数log()自然对数log10()以10为底的对数mod()模除五、五、M
14、ATLABMATLAB语言流程控制语句语言流程控制语句1 1、循环语句、循环语句 for.end for.end 语句通常的调用格式为:语句通常的调用格式为:for for 循环变量循环变量=s1:s3:s2=s1:s3:s2 循环体语句组循环体语句组endend 例例9-49-4:用用for.end for.end 语句计算语句计算解:解:x_sum=0;for x=1:1:100,x_sum=x_sum+x;end;x_sumx_sum=0;for x=1:1:100,x_sum=x_sum+x;end;x_sumx_sumx_sum=50505050 while.end while.en
15、d 语句通常的调用格式为:语句通常的调用格式为:while while 逻辑表达式逻辑表达式 循环体语句组循环体语句组end end 1001xx2 2、条件转移语句、条件转移语句if if 条件式条件式1 1条件块语句组条件块语句组1 1elseifelseif 条件式条件式2 2条件块语句组条件块语句组2 2.elseelse条件块语句组条件块语句组n+1n+1endend3 3、开关结构语句:、开关结构语句:switch switch 开关表达式开关表达式case case 表达式表达式1 1语句段语句段1 1case case 表达式表达式2,2,表达式表达式3,.,3,.,表达式表达
16、式mm语句段语句段2 2.otherwiseotherwise语句段语句段n nendend 0六、六、MATLABMATLAB程序的格式程序的格式 MATLABMATLAB编程语言是一种编程语言是一种解释型解释型的程序语言,分为两种格式:的程序语言,分为两种格式:(1 1)M M脚脚本文件;(本文件;(2 2)M M函数(函数(FunctionFunction)。)。1 1、M M脚本文件脚本文件 M M脚本文件没有输入和返回参数,其内容是脚本文件没有输入和返回参数,其内容是MATLABMATLAB命令命令/函数的集合。函数的集合。例例9-69-6:用多项式相乘函数用多项式相乘函数convc
17、onv()()计算多项式计算多项式(s+1)(s+1)4 4解:解:Example9_6.mExample9_6.mresult=1;result=1;for x=1:4for x=1:4 result=conv(result,1 1);result=conv(result,1 1);endendresultresult2 2、M M函数文件(函数文件(FunctionFunction)M M函数文件具有输入和返回参数,且其编写格式必须符合规则。函数文件具有输入和返回参数,且其编写格式必须符合规则。M M函数文函数文件的文件名应与其函数名相同。件的文件名应与其函数名相同。M M函数文件格式:函
18、数文件格式:函数名函数名.m.m function function 输出变量列表输出变量列表=函数名函数名(输入变量列表输入变量列表)函数体语句函数体语句;例例9-79-7:编写多项式求正整数幂的:编写多项式求正整数幂的M M函数文件函数文件conv_power.mconv_power.m解:解:function result=conv_power(poly,powfunction result=conv_power(poly,pow)result=1;result=1;for(x=1:pow)for(x=1:pow)result=conv(result result=conv(result
19、,poly);,poly);end end polypoly为多项式系数向量,为多项式系数向量,powpow为幂次数。为幂次数。七、七、MATLABMATLAB程序的操作程序的操作1 1、新建新建M M程序程序 点击菜单点击菜单File:New:MFile:New:M-file-file,将弹出编辑器(,将弹出编辑器(EditorEditor),在编辑器中可),在编辑器中可以输入程序。在编辑器点击菜单以输入程序。在编辑器点击菜单File:SaveFile:Save或或File:SaveFile:Save as as,保存,保存M M文件。文件。2 2、M M程序编辑、运行和调试程序编辑、运行和
20、调试断点符号运行指针单步运行单步运行跳入子函数单步运行跳出子函数 程序的运行方法可采用下列三种方法中的任意一种:程序的运行方法可采用下列三种方法中的任意一种:第一种方法第一种方法,点击编辑器的菜单,点击编辑器的菜单Debug:RunDebug:Run;第二种方法第二种方法,在命令窗口输入该程序的文件名(后缀,在命令窗口输入该程序的文件名(后缀.m.m不用输入),不用输入),对于对于M M函数文件,须指定输入参数函数文件,须指定输入参数;第三种方法第三种方法,通过其他程序调用本程序。,通过其他程序调用本程序。注意:对于注意:对于M M函数文件,由于存在输入参数,只能通过后面两种方函数文件,由于存
21、在输入参数,只能通过后面两种方法运行。法运行。9.3 Simulink操作简介操作简介 一、一、Simulink的启动的启动 点击点击SimulinkSimulink启动图标可启动启动图标可启动SimulinkSimulink;或者在命令窗口输入命令:;或者在命令窗口输入命令:SimulinkSimulink。当前目录浏览窗口 工作空间窗口命令窗口 历史命令窗口 Simulink启动图标 当前目录指示器 目录设置按钮开始按钮 Simulink Simulink启动后出现的启动后出现的Simulink模块库浏览器:模块库浏览器:二、二、SimulinkSimulink的模块库的模块库1 1、信号
22、源模块(、信号源模块(SourcesSources)2 2、连续模块(、连续模块(ContinuousContinuous)3 3、非线性模块(、非线性模块(DiscontinuousDiscontinuous)4 4、离散模块(、离散模块(DiscreteDiscrete)5 5、数学运算模块、数学运算模块(Math Operations)(Math Operations)和信号连接模块和信号连接模块(Signal Routing)(Signal Routing)6 6、输出模块(、输出模块(SinksSinks)三、仿真框图绘制三、仿真框图绘制例例9-89-8:用用SimulinkSimu
23、link对图对图9-129-12所示的一阶控制系统进行仿真。所示的一阶控制系统进行仿真。解:解:步骤步骤1 1、建立新的空白框图、建立新的空白框图 点击模块库浏览器的菜单点击模块库浏览器的菜单File:New:ModelFile:New:Model,或工具栏的第,或工具栏的第1 1个空白文个空白文档图标档图标“Create a new model”Create a new model”,将弹出,将弹出1 1个新建模型窗口,点击模型窗口个新建模型窗口,点击模型窗口菜单菜单File:SaveFile:Save或或File:SaveFile:Save as as,命名并保存模型为后缀,命名并保存模型
24、为后缀.mdl.mdl的文件。的文件。2+_r=2u(t)12sc步骤步骤2 2、放置模块、放置模块步骤步骤3 3、修改模块属性、修改模块属性步骤步骤3 3、修改模块属性、修改模块属性步骤步骤4 4、连接模块、连接模块 仿真启动按钮仿真结束时间仿真结束按钮四、启动仿真四、启动仿真1、仿真参数设置、仿真参数设置(1 1)仿真起始、终止时间:)仿真起始、终止时间:Start timeStart time栏,栏,Stop timeStop time栏栏(2 2)仿真算法参数:)仿真算法参数:Solver optionsSolver options框框 (3 3)仿真输出数据)仿真输出数据 在仿真参数
25、设置对话框左边的树形目录中选择在仿真参数设置对话框左边的树形目录中选择Data Import/ExportData Import/Export。2 2、仿真启动、停止和错误处理、仿真启动、停止和错误处理 仿真的仿真的启动方法启动方法:(:(1 1)点击模型窗口菜单)点击模型窗口菜单Simulation:StartSimulation:Start;或(;或(2 2)点击工具栏的仿真启动按钮点击工具栏的仿真启动按钮。仿真的仿真的停止方法停止方法:(1 1)点击模型窗口菜单)点击模型窗口菜单Simulation:StopSimulation:Stop;或(;或(2 2)点击工具栏的仿真终止按钮。点击
26、工具栏的仿真终止按钮。仿真的仿真的错误处理方法错误处理方法:如果模块的设置参数、连接出现错误如果模块的设置参数、连接出现错误,启动仿真启动仿真后出现出错提示,并把出错的增益模块以后出现出错提示,并把出错的增益模块以黄色标识黄色标识。若仿真框图中有多处错。若仿真框图中有多处错误,错误提示框内将出现多行错误信息;误,错误提示框内将出现多行错误信息;选择了某行错误信息后,其对应的选择了某行错误信息后,其对应的出错模块将以黄色标识。出错模块将以黄色标识。例如例如,把例把例9-89-8中增益模块的增益设置为未定义的变量中增益模块的增益设置为未定义的变量k k,启动仿真后出,启动仿真后出现现“Undefi
27、ned function or variable kUndefined function or variable k(函数或变量(函数或变量k k未定义)未定义)”的出错的出错提示。提示。3 3、查看仿真结果、查看仿真结果 例例9-89-8的仿真框图中设置了的仿真框图中设置了2 2个输出模块。一个是个输出模块。一个是输出端口模块输出端口模块,它把仿,它把仿真结果输出到工作空间中;另一个是真结果输出到工作空间中;另一个是示波器模块示波器模块。(1 1)查看工作空间的输出)查看工作空间的输出 绘制阶跃响应曲线:绘制阶跃响应曲线:plot(tout,youtplot(tout,yout)(2 2)查
28、看示波器的输出)查看示波器的输出 9.4 9.4 线性控制系统仿真线性控制系统仿真一、一、MATLABMATLAB的线性系统数学模型的线性系统数学模型1 1、传递函数模型函数、传递函数模型函数tftf()()调用格式:调用格式:sys=tf(numsys=tf(num,den),den)num num与与denden分别为传输函数分子、分母多项式的系数向量,分别为传输函数分子、分母多项式的系数向量,从左至右从左至右与与s s值降幂对应。值降幂对应。例例9-99-9:系统闭环传递函数为系统闭环传递函数为 ,请用,请用tftf()()函数建模。函数建模。解:解:num=1 3 1;den=1 2
29、7 6;sys1=tf(num,dennum=1 3 1;den=1 2 7 6;sys1=tf(num,den)2 2、零极点增益模型函数、零极点增益模型函数zpkzpk()()调用格式:调用格式:sys=zpk(z,p,ksys=zpk(z,p,k)z z为零点组成的向量,为零点组成的向量,p p为极点组成的向量,为极点组成的向量,k k为增益。为增益。建模时要把建模时要把系统转换为博德型。系统转换为博德型。例例9-109-10:系统的零点为系统的零点为 -1+i,-1-i,-1+i,-1-i,极点为极点为 -2,-3,0-2,-3,0,增益为,增益为2020,请用请用zpkzpk()()
30、函数建模。函数建模。解:解:z=-1+i,-1-i;p=-2-3,0;k=20;Sys2=zpk(z,p,kz=-1+i,-1-i;p=-2-3,0;k=20;Sys2=zpk(z,p,k)24331276sssss3 3、状态方程模型函数、状态方程模型函数ssss()()调用格式:调用格式:sys=sssys=ss(A,B,C,D)(A,B,C,D)A A,B B,C C,D D为状态方程为状态方程 的矩阵。的矩阵。4 4、模型间的转换、模型间的转换 直接利用上述函数可以实现模型间的转换。直接利用上述函数可以实现模型间的转换。例例9-119-11:把例把例9-99-9中模型转换为零极点增益模
31、型,把例中模型转换为零极点增益模型,把例9-109-10中模型中模型转换为传递函数模型。转换为传递函数模型。解:解:sys3=zpk(sys1)sys3=zpk(sys1)Zero/pole/gain:Zero/pole/gain:(s+2.618)(s+0.382)(s+2.618)(s+0.382)-(s+1)(s2 +s+6)(s+1)(s2 +s+6)sys4=tf(sys2)sys4=tf(sys2)20 s2+40 s+40 20 s2+40 s+40 -s3+5 s2+6 s s3+5 s2+6 sxAxBuyCxDu二、框图化简二、框图化简 series()series()为串
32、联环节化简函数为串联环节化简函数 G=G1G=G1*G2G2调用格式:调用格式:G=series(G1,G2)G=series(G1,G2)parallel()parallel()为并联环节化简函数为并联环节化简函数 G=G1G=G1G2G2 调用格式:调用格式:G=parallel(G1,G2)G=parallel(G1,G2)feedback()feedback()为反馈环节化简函数,为反馈环节化简函数,调用格式:调用格式:G=feedback(G,H)G=feedback(G,H)G G为前向通道系统模型,为前向通道系统模型,H H为反馈通道系统模型。为反馈通道系统模型。例例9-129-
33、12:化简图:化简图9-239-23所示的系统,并求出闭环传递函数。所示的系统,并求出闭环传递函数。212ss 0.11s4ss 101s 0.13s+_R(s)Y(s)解:解:G1=tf(0.1,1 1);G2=tf(1,1 1 2);G3=tf(1 G1=tf(0.1,1 1);G2=tf(1,1 1 2);G3=tf(1 4,1);%4,1);%前向通道传递函数前向通道传递函数 H1=tf(0.1,1 3)H1=tf(0.1,1 3)*(-1);%(-1);%把正反馈转换为负反馈把正反馈转换为负反馈 H2=tf(10,1 1)H2=tf(10,1 1)*inv(G3);%inv(G3);
34、%把分叉点往后移动;把分叉点往后移动;GG1=feedback(G2GG1=feedback(G2*G3,H1);%G3,H1);%化简内部环路化简内部环路 HH1=H2+1;HH1=H2+1;合并反馈通道传递函数合并反馈通道传递函数 G=feedback(G1G=feedback(G1*GG1,HH1)GG1,HH1)求总的闭环传递函数求总的闭环传递函数Transfer function:Transfer function:0.1 s4+1.2 s3+5.1 s2+8.8 s+4.8 0.1 s4+1.2 s3+5.1 s2+8.8 s+4.8 -s6+10 s5+38 s4+76.2 s3
35、+99.8 s2+85.8 s+39.2 s6+10 s5+38 s4+76.2 s3+99.8 s2+85.8 s+39.2 三、系统特性分析三、系统特性分析 1 1、闭环极点计算、闭环极点计算 roots()roots()函数函数 调用格式:调用格式:r=roots(cr=roots(c)。r r为返回列向量,其元素是多项式为返回列向量,其元素是多项式c c的根;的根;c c为多项式的系数向量,为多项式的系数向量,按照降幂排列的。按照降幂排列的。例例9-139-13:续例续例9-129-12,计算图,计算图9-239-23中系统的特征根。中系统的特征根。解:解:从例从例9-129-12求解
36、的闭环传递函数可以得到求解的闭环传递函数可以得到 1 1GH(sGH(s)的系数向的系数向量为量为c c:c=1 10 38 76.2 99.8 85.8 39.2;r=roots(c c=1 10 38 76.2 99.8 85.8 39.2;r=roots(c)r=-4.0000-2.9876 -0.2795+1.2762i%r=-4.0000-2.9876 -0.2795+1.2762i%解出解出6 6个闭环极点个闭环极点 -0.2795-1.2762i -1.2267+0.6458i -1.2267-0.6458i-0.2795-1.2762i -1.2267+0.6458i -1.2
37、267-0.6458i2 2、零极点分布、零极点分布 pzmappzmap()()函数函数 调用格式:调用格式:pzmap(Gpzmap(G),G G为系统模型。为系统模型。例例9-149-14:续例续例9-129-12,计算图,计算图9-239-23系统的零极点分布图。系统的零极点分布图。解:解:pzmap(Gpzmap(G)3 3、阶跃响应曲线绘制、阶跃响应曲线绘制 step()step()函数函数 调用格式:调用格式:step(Gstep(G),G G为系统模型。为系统模型。例例9-159-15:续例:续例9-129-12,计算图,计算图9-239-23系统的单位阶跃响应曲线。系统的单位
38、阶跃响应曲线。解:解:step(G step(G)4 4、根轨迹图的绘制、根轨迹图的绘制 rlocusrlocus()()函数函数 调用格式:调用格式:rlocus(Open_Grlocus(Open_G),Open_GOpen_G为系统的开环传递函数。为系统的开环传递函数。例例9-169-16:单位反馈系统的开环传递函数为单位反馈系统的开环传递函数为 ,绘制系,绘制系统的根轨迹。统的根轨迹。解:解:首先把开环传递函数转换为博德型首先把开环传递函数转换为博德型 Open_G Open_G=zpk(,0-1/2-1/3,1/6);%=zpk(,0-1/2-1/3,1/6);%无零点,增益为无零点
39、,增益为1/61/6 rlocus(Open_G rlocus(Open_G)(12)(1 3)ksss1/6(1/2)(1/3)ks ss5 5、奈奎斯特图绘制、奈奎斯特图绘制 nyquistnyquist()()函数函数 调用格式:调用格式:nyquist(Open_Gnyquist(Open_G),Open_GOpen_G为系统的开环传递函数。为系统的开环传递函数。例例9-179-17:续例:续例9-169-16,k=0.5k=0.5,绘制系统的奈奎斯特图。,绘制系统的奈奎斯特图。解:解:Open_G Open_G=zpk(,0-1/2-1/3,1/12);=zpk(,0-1/2-1/3
40、,1/12);nyquist(Open_G nyquist(Open_G)6 6、博德图绘制、博德图绘制 bode()bode()函数函数调用格式:调用格式:bode(Open_Gbode(Open_G),Open_GOpen_G为系统的开环传递函数模型。为系统的开环传递函数模型。例例9-189-18:续例续例9-169-16,k=0.5k=0.5,绘制系统的博德特图。,绘制系统的博德特图。解:解:Open_G Open_G=zpk(,0-1/2-1/3,1/12);%=zpk(,0-1/2-1/3,1/12);%无零点,增益为无零点,增益为1/61/6*k k bode(Open_G bod
41、e(Open_G)四、线性系统四、线性系统SimulinkSimulink仿真仿真例例9-199-19:如图所示的控制系统,控制器为如图所示的控制系统,控制器为PIDPID控制器,输入为单位阶跃信号,控制器,输入为单位阶跃信号,用用SimulinkSimulink建立仿真框图,选择适当的建立仿真框图,选择适当的PIDPID控制器参数对系统进行仿真,并控制器参数对系统进行仿真,并绘制单位阶跃曲线。绘制单位阶跃曲线。1(2)(3)s sspiKTs+_R(s)Y(s)pdK T sPK+解:解:(1 1)根据系统框图搭建仿真框图)根据系统框图搭建仿真框图(2)(2)整定整定PIDPID参数参数Kp
42、Kp,Ti Ti,TdTd。采用扩充临界比例度法对参数进行整定。采用扩充临界比例度法对参数进行整定。把被控对象的传递函数作为系统开环传递函数,绘制根轨迹图。把被控对象的传递函数作为系统开环传递函数,绘制根轨迹图。plant=zpk(,0-2-3,1);rlcous(plantplant=zpk(,0-2-3,1);rlcous(plant)虚轴穿越点的增益虚轴穿越点的增益K K3030,阻尼振荡频率,阻尼振荡频率dd2.47 rad/s2.47 rad/s,即等幅振,即等幅振动周期时间为动周期时间为T=2/dT=2/d2.57s2.57s。根据经验公式选择。根据经验公式选择KpKp=0.6K=
43、18=0.6K=18,Ti=0.5T=1.285Ti=0.5T=1.285,Td=0.125 T=0.32Td=0.125 T=0.32。(3)(3)确定仿真时间为确定仿真时间为0-100-10秒,启动仿真。秒,启动仿真。(4)(4)观察仿真结果。观察仿真结果。五、单输入单输出(五、单输入单输出(SISOSISO)设计工具)设计工具 SISOSISO设计工具是设计工具是MATLABMATLAB工具箱中的一个图形化设计工具,用于单输入工具箱中的一个图形化设计工具,用于单输入单输出线性系统设计。单输出线性系统设计。主要功能有:主要功能有:利用根轨迹方法调整系统的闭环动态性能;利用根轨迹方法调整系统
44、的闭环动态性能;基于开环系统博德图的系统设计;基于开环系统博德图的系统设计;配置补偿器的零极点;配置补偿器的零极点;设计超前设计超前/滞后网络和滤波器;滞后网络和滤波器;分析闭环系统响应;分析闭环系统响应;调整系统的幅值或相角裕度;调整系统的幅值或相角裕度;连续连续/离散模型的转换。离散模型的转换。1 1、SISOSISO工具的启动工具的启动 点击点击MATLABMATLAB界面左下角的开始按钮界面左下角的开始按钮“Start”Start”进入启动菜单,浏览顺序进入启动菜单,浏览顺序StartStartToolboxesToolboxesControl SystemControl System
45、SISO Design ToolSISO Design Tool。2 2、输入系统的开环传递函数、输入系统的开环传递函数 例例9-209-20:续例续例9-169-16,利用,利用SISOSISO工具绘制系统的根轨迹,并校正系统增工具绘制系统的根轨迹,并校正系统增益值使主导闭环极点阻尼比为益值使主导闭环极点阻尼比为0.30.3。解:解:(1 1)建立开环传递函数模型如下)建立开环传递函数模型如下 Open_G Open_G=zpk(,0-1/2-1/3,1/6);=zpk(,0-1/2-1/3,1/6);(2 2)在)在SISOSISO工具界面点击工具界面点击File:ImportFile:I
46、mport菜单,导入数据菜单,导入数据(3 3)在根轨迹上,调整系统的增益,使主导闭环极点阻尼比为)在根轨迹上,调整系统的增益,使主导闭环极点阻尼比为0.3 0.3。3 3、SISOSISO工具的操作工具的操作(1 1)调整系统增益)调整系统增益 方法:方法:在根轨迹上拖动系统闭环极点。在根轨迹上拖动系统闭环极点。(2 2)设计补偿器进行系统校正)设计补偿器进行系统校正 下图为根轨迹图右键菜单。通过该菜单,可以直接用鼠标点击在根轨下图为根轨迹图右键菜单。通过该菜单,可以直接用鼠标点击在根轨迹图迹图增加增加/删除零极点删除零极点,并直观地观察补偿后的变化。,并直观地观察补偿后的变化。(3 3)导
47、出校正后的系统)导出校正后的系统六、六、LTI LTI 观测器观测器 LTILTI观测器是一个可以观测线性系统模型响应曲线的图形化工具,它可观测器是一个可以观测线性系统模型响应曲线的图形化工具,它可以显示下列曲线:以显示下列曲线:阶跃响应;阶跃响应;脉冲响应;脉冲响应;博德图;博德图;奈奎斯特图;奈奎斯特图;尼柯斯图;尼柯斯图;频率响应单幅值图;频率响应单幅值图;零极点分布图。零极点分布图。1 1、LTI LTI 观测器的启动和配置观测器的启动和配置 点击点击MATLABMATLAB界面左下角的开始按钮界面左下角的开始按钮“Start”Start”进入启动菜单,浏览顺序进入启动菜单,浏览顺序S
48、tartStartToolboxesToolboxesControl SystemControl SystemLTI ViewerLTI Viewer。通过。通过EditEdit:Plot Plot Configurations Configurations 菜单,打开曲线配置对话框。菜单,打开曲线配置对话框。2 2、输入系统模型、输入系统模型 在在LTI LTI 观测器界面点击观测器界面点击File:ImportFile:Import菜单。菜单。LTI LTI 观测器允许输入多个系观测器允许输入多个系统模型,在同一个曲线画面中显示多条曲线,重复统模型,在同一个曲线画面中显示多条曲线,重复Fi
49、le:ImportFile:Import菜单的操菜单的操作可输入多个系统模型。作可输入多个系统模型。例例9-219-21:续例续例9-169-16,k=0.5k=0.5,利用,利用LTI LTI 观测器观察开环传递函数和闭环传递观测器观察开环传递函数和闭环传递函数的阶跃响应曲线、博德图、奈奎斯特图、尼柯斯图和零极点分布图。函数的阶跃响应曲线、博德图、奈奎斯特图、尼柯斯图和零极点分布图。解:解:在工作空间中输入开环传递函数和闭环传递函数:在工作空间中输入开环传递函数和闭环传递函数:Open_G Open_G=zpk(,0-1/2-1/3,1/12);=zpk(,0-1/2-1/3,1/12);k
50、=0.5k=0.5 Close_G Close_G=feedback(Open_G,1);=feedback(Open_G,1);在在LTI LTI 观测器中导入观测器中导入Open_GOpen_G和和Close_GClose_G 3 3、LTI LTI 观测器的操作观测器的操作 (1 1)切换曲线类型)切换曲线类型 在右键菜单中选择在右键菜单中选择Plot TypePlot Type项,对列表中的类型进行勾选,可改变曲项,对列表中的类型进行勾选,可改变曲线的类型。线的类型。(2 2)显示)显示/隐藏某个系统模型的曲线隐藏某个系统模型的曲线 在右键菜单中选择在右键菜单中选择SystemsSys