1、 本章内容(1)LTI对象的三种表示方法及其相互转换;(2)采用多个分离变量进行描述的系统模型与LTI对 象模型之间的相互转换;(3)线性时不变系统观测器(LTI Viewer)的使用方法 及其在线性和非线性系统分析中的应用;(4)单变量线性系统设计器(SISO Design Tool)的 使用方法及其在线性系统分析和设计中的应用;(5)利用Simulink的Signal Constraint模块(或NCD Outport模块)对系统输出信号具有约束的作用,实现对具有不确定参数的非线性系统进行控制器的优化设计。第第9章章 基于基于MATLAB工具箱的工具箱的控制系统分析与设计控制系统分析与设计
2、1系统建模系统分析系统设计 2l能够建立系统的状态空间、传递函数、零极点增益模型,并可实现任意两者之间的转换:l可通过串联、并联、反馈连接及更一般的框图建模来建立系统的模型:可通过多种方式实现连续时间系统的离散化,离散时间系统的连续化及重采样。3l控制系统工具箱不仅支持对SISO系统的分析,也可对MIMO系统进行分析。l对系统的时域响应,可支持系统的单位阶跃响应、单位脉冲响应、零输入响应以及更广泛的对任意信号进行仿真;l对系统的频率响应,可支持系统的Bode图、Nichols图和Nyquist图进行计算和绘制。l另外,在控制系统工具箱中,提供一个可视化的LTI 观测器(LTI Viewer),
3、它大大方便了用户对系统的各种绘制和分析。4l控制系统工具箱可以进行各种系统的补偿设计,如 LQG线性二次型设计、线性系统的根轨迹设计和频率法设计、线性系统的极点配置,以及线性系统观测器设计等。l在控制系统工具箱中,也提供了一个功能非常强大的单输入单输出线性系统设计器(SISO Design Tool),它为用户设计单输入单输出线性控制系统提供了非常友好的图形界面。5l为了避免对一个系统采用多个分离变量进行描述,在新版本的控制系统工具箱中,将线性时不变系统的各种描述,都封装成了一个模型,这里称为LTI对象。6ltf对象:封装了由传递函数模型描述的线性时不变系统的所有数据。lzpk对象:封装了由零
4、极点模型描述的线性时不变系统的所有数据。lss对象:封装了由状态空间模型描述的线性时不变系统的所有数据。7lsys=tf(num,den)l 生成连续系统的LTI传递函数模型lsys=tf(num,den,TS)l 生成离散系统的LTI传递函数模型8lsys=zpk(z,p,k)l 生成连续系统的LTI零极点模型lsys=zpk(z,p,k,TS)l 生成离散系统的LTI零极点模型9l sys=ss(A,B,C,D)l生成连续系统的LTI传递函数模型lsys=ss(A,B,C,D,Ts)l 生成离散系统的LTI传递函数模型10lMATLAB函数tfdata()的调用格式为l num,den=t
5、fdata(sys)l num,den=tfdata(sys,v)l num,den,Ts,Td=tfdata(sys)11lMATLAB函数zpkdata()的调用格式为l z,p,k=zpkdata(sys)l z,p,k=zpkdata(sys,v)l z,p,k,Ts,Td=zpkdata(sys)12lMATLAB函数ssdata()的调用格式为l A,B,C,D=ssdata(sys)l A,B,C,D,Ts,Td=ssdata(sys)13l 在使用线性时不变系统浏览器LTI Viewer对系统进行分析时首先要把系统模型转换成LTI对象(线性时不变系统对象)的三种形式(ss 对象
6、、tf对象和zpk对象)之一,因LTI对象是控制系统工具箱中最为基本的数据类型。14l 在MATLAB命令窗口中,可以用以下两种方法启动LTI Viewer:l(1)在MATLAB的命令窗口中直接键入ltiview命令;l(2)在MATLAB窗口的左下角“Start”菜单中,单击“ToolboxsControl system”命令子菜单中的“LTI Viewer”选项。l 在第一种方式启动下,系统给出了单位阶跃响应曲线的显示窗口,此时由于尚未输入系统模型,故无响应曲线显示,如图9-1(a)所示。在第二种方式启动下,它采用了默认系统模型,且同时显示系统的单位阶跃响应曲线(Step)和单位脉冲响应
7、(Impulse)曲线,如图9-1(b)所示。15图9-116l 在启动LTI Viewer之后,需要利用LTI Viewer窗口中File菜单下的Import命令,输入用户所要进行分析的线性系统的LTI模型。该线性系统的LTI模型可来自MATLAB工作空间或磁盘文件中。但如果对象模型来源为Simulink系统模型框图,则必须对此进行线件化处理以获得系统的 LTI对象描述。这是因为在LTI Viewer中所分析的线性系统的所有对象必为LTI对象(ss 对象、tf对象和zpk对象)。17l例例9-8 绘制例6-15中非线性系统进行线性化处理后所得线性化状态空间模型l的单位阶跃响应曲线。l解解(1
8、)首先根据以上线性化状态空间模型的系数矩阵(A,b,c,d)的值,在MATLAB窗口中利用以下命令获得该系统的ss 对象ex9_8的描述。lA=-0.199;b=0.001;c=1;d=0;ex9_8=ss(A,b,c,d);xyuxx001.0199.018l(2)然后按第一种方式启动LTI Viewer,并利用LTI Viewer窗口中的菜单FileImport命令,打开如图9-2所示的系统模型输入对话框。19l(3)最后在图9-2所示的对话框中,选中所要进行分析的线性系统的LTI模型ex9_8,单击【OK】按钮,便可以完成线性系统的模型输入。此时便可得到如图9-3所示的单位阶跃响应曲线。
9、20l在已有系统响应曲线的LTI Viewer窗口中,利用单击鼠标右键,选择如图9-4所示的弹出菜单Polt Type选项下的子菜单,可以来改变此窗口中系统响应曲线的类型。图9-421l 由图9-4所示的菜单可知,使用LTI Viewer,除可以绘制系统的单位阶跃响应曲线(Step)外,还可以绘制系统的单位脉冲响应曲线(Impulse)、波特图(Bode)、零输入响应(Initial Condition)、波特图幅值图(Bode Magnitude)、奈奎斯特图(Nyquist)、尼科尔斯图(Nichols)、奇异值分析(Singular Value)以及零极点图(PoleZero)等。22图
10、9-5 响应曲线布局设置2324l 使用LTI Viewer不仅可以方便地绘制系统的各种响应曲线,还可以从系统响应曲线中获得系统响应信息,从而使用户可以对系统性能进行快速的分析。首先,通过单击系统响应曲线上任意一点,可以获得动态系统在此时刻的所有信息,包括运行系统的名称、系统的输入输出以及其他与此响应类型相匹配的系统性能参数。例如,对于系统的单位脉冲响应,单击响应曲线中的任意一点,可以获得系统响应曲线上此点所对应的系统运行时间(Time)、幅值(Amplitude)等信息,如图9-7所示。25图9-726l对LTI Viewer图形窗口的控制有两种方式。l(1)对整个浏览器窗口LTI View
11、er进行控制:单击LTI Viewer窗口的Edit菜单下的Viewer Preferences命令对浏览器进行设置(此设置的作用范围为LTI Viewer窗口以及所向系统响应曲线绘制区域),如图9-8所示。27图9-828l(2)对某一系统响应曲线绘制窗口进行操作:在系统响应曲线绘制窗口中单击鼠标右键,选择弹出菜单中的Propertise对指定响应曲线的显示进行设置,如图9-9所示。Propertise对话框中共有5个选项卡:29图9-930l 除了使用第6章的命令行方式对非线性系统进行线性化处理分析之外,还可以利用Simulink系统模型窗口中的菜单命令ToolsControl Desig
12、nLinear Analysis,对非线性系统进行线性分析。在利用Simulink对系统进行线性分析时,会同时调出线性时不变系统浏览器LTI Viewer。LTI Viewer图形界面可以使用户对非线性系统的性能有一个非常直观的认识与理解。用户可以从相应的系统输出图形中来定性判断系统输出是否满足设计要求。31l 使用LTI Viewer 对非线性系统进行分析之后。用户可以使用LTI Viewer窗口中File菜单下的Export命令将此线性化线性模型输出到MATLAB工作空间或磁盘文件(*.mat文件,即MATLAB数据文件),此时输出的线性化模型为LTI 对象。32l 单输入单输出系统设计工
13、具(SISO Design Tool)是控制系统工具箱所提供的一个非常强大的单输入单输出线性系统设计器,它为用户设计单输入单输出线性控制系统提供了非常友好的图形界面。在SISO设计器中,用户可以同时使用根轨迹图与波特图,通过修改线性系统相关环节的零点、极点以及增益等进行SISO线性系统设计。33l 由于在MATLAB7.x版和MATLAB6.x版中,单输入单输出系统设计工具(SISO Design Tool)的功能设置和使用方法是有区别的,为了便于教学和使用,下面将按两种版本分别进行讨论,读者可根据自己的需要选择阅读。34l9.4.1 MATLAB7.5版的SISO Design Tooll1
14、.启动SISO设计器l 在MATLAB命令窗口中,可以用以下两种方法启动SISO Design Tool:l (1)在MATLAB的命令窗口中直接键入sisotool或rltool命令;l (2)在MATLAB窗口的左下角“Start”菜单中,单击“ToolboxsControl system”命令子菜单中的“SISO Design Tool”选项。l 在以上两种方式启动下,便可打开如图9-10所示的SISO Design for SISO Design Task窗口和如图9-11所示的Control and Estimation Tools Manager窗口。35图9-10 SISO De
15、sign for SISO Design Task36图9-11 Control and Estimation Tools Manager37l2.控制系统结构图l 利用图9-11窗口的系统结构图(Architeture)页面中的Control Architeture选项,可以改变系统的结构、标号和反馈极性等,如图9-12所示。l图9-12 系统结构图设置窗口l 由图9-12可见,在窗口左半的Select Control Architeture选择框中,系统为用户提供了6种结构的形式供选择。通过选择该窗口右下角的设置,可以方便改变系统的反馈极性。38l3.输入系统模型l 当选定系统的结构后,需
16、要为所设计的线性系统输入模型数据。利用SISO Design for SISO Design Task窗口中File菜单下的Import命令,将打开如图9-13所示的输入系统数据(System Data)窗口。图9-1339l 在图9-13窗口的System Model对话框中显示了当前系统的四个环节(控制对象G、传感器H、控制器C和预滤波器F)及参数值(均为1)。系统各环节的参数值,用户可利用两种方法灵活改变。一是首先用鼠标双击相关环节Data框中的当前值,然后利用键盘直接输入环节模型参数即可;二是首先选定相关环节,然后利用该窗口中的【Browse】按钮便可打开一个如图9-14所示的模型输入
17、(Model Import)窗口。40l 如在该窗口中当前显示的系统模型ex9_8,就是在例9-8中获得系统的LTI对象描述。如果输入模型数据来源为Simulink系统模型框图,则必须对此进行线性化处理以获得系统的 LTI对象描述。最后利用该窗口中【Import】按钮便可将选定的模型文件输入系统。图9-1441l例9-10 利用单输入单输出系统设计工具SISO Design Tool求解例8-1所示系统在校正前的相位裕量。l解(1)首先根据第8章的例8-1所给单位反馈系统的开环传递函数l在 MATLAB窗口中利用以下命令,得到该系统的LTI对象模型ex9_10_G0。lnum=40;den=c
18、onv(1,0,1,2);lex9_10_G0=tf(num,den);)2(40)(0sssG42(2)在启动SISO Design Tool窗口后,首先保持如图9-12中所示默认的控制系统结构。然后利用SISO Design for SISO Design Task窗口中的菜单命令FileImport,打开系统数据输入(System Data)对话框窗口,输入模型文件ex9_10_G0。可得图 9-15 从图可知,原系统的相位裕量为 r=180,这与第8章的例8-1中所得结果一致。图 9-15 434.系统设计 在完成线性系统数据的输入之后,用户便可以使用诸如零极点配置、根轨迹分析以及系统
19、波特图分析等传统的方法对线性系统进行设计。在系统根轨迹图中,蓝色o和X表示控制对象G的零极点,而红色表示系统控制器C的零极点。在波特图中除了显示当前补偿器下的系统增益与相位裕度之外,还显示了零点与极点的位置。445.系统分析 在系统设计完成后,需要对其做进一步的分析。分析反馈系统的开环和闭环响应,以确保系统是否满足特定的设计要求。用户可以选择SISO Design for SISO Design Task窗口中Analysis菜单下的Other Loop Responses命令,来打开一个如图9-17所示的系统响应曲线分析(Analysis Plots)页面。45 在该页面中,可为同一系统设置
20、6个窗口,且在每个窗口中,均可任意绘制系统的6中不同响应曲线(Step,Impulse,Bode,Nyquist,Nichols,Pole/Zero)。另外针对各个窗口响应曲线的输入输出参考点也可利用该页面中Plots下面的选项来选择。当选定Plots下面的选项后,将立即打开一个LTI浏览器窗口,在此窗口中用户同样可对系统的性能如超调量、调整时间、峰值时间和上升时间等等进行分析。466.系统验证 在使用SISO Design Tool完成系统的设计之后,在系统实现之前必须对设计好的系统通过Simulink进行仿真分析,进一步对控制器进行验证,以确保系统设计的正确性。如果直接按照系统设计逐步建立
21、系统的Simulink,将是一件很麻烦的工作;庆幸的是,SISO Design Tool提供了Simulink集成的方法,用户可以利用SISO Design for SISO Design Task窗口中Tools菜单下的 Draw Simulink Diagram命令,直接由设计好的系统生成相应的 Simulink系统框图。在生成Simulink系统模型之前,必须保存线性系统的执行结构、补偿器以及传感器等LTI对象至MATLAB工作空间中。47l例例9-11 利用串联校正装置将例9-10中所述系统的相位裕量提高到500以上,并画出系统的Simulink仿真框图和单位阶跃响应曲线。l解解(1)
22、由第8章的例8-1知,利用串联校正方法将系统的相位裕量提高到500以上时,串联校正装置的传递函数可选为:6776.184366.42099.410.0535410.2254)(sssssGc48l(2)在MATLAB窗口中利用以下命令得到LTI模型ex9_11_Gc;lnumc=0.2254 1;denc=0.05354 1;lex9_11_Gc=tf(numc,denc);l(3)利用设置控制对象G的方法,再将例9-10所述系统的控制器C设置成ex9_11_Gc,其他的选项的设置同例9-10。然后单击【OK】按钮,此时可得校正后系统的根轨迹图以及系统开环波特图,如图9-18所示 49图9-1
23、8 校正后系统的根轨迹图以及系统开环波特图 由此可见,这时系统的相位裕量变为 r=50.70,满足设计要求。50(4)利用图9-18中Analysis菜单下的Other Loop Responses命令,打开一个如图9-17所示的系统响应曲线分析(Analysis Plots)页面。仅将该页面Plot1窗口中的曲线类型(Plot Type)选为Step(其余窗口选为None),并且利用Plots下面的选项来选定Plot1窗口中的响应曲线的输入输出参考点为Closed Loop r To y,如图9-17所示。则可得该系统的闭环阶跃响应曲线,如图9-19所示。51图9-19 闭环阶跃响应曲线 在
24、所得系统的闭环阶跃响应曲线中,利用LTI Viewer的使用方法,同样可显示出系统的超调量、调整时间、峰值时间和上升时间等时域性能指标参数,如图9-19中所示。52(5)利用图9-18中的ToolsDraw Simulink Diagram命令,便可得到系统相应的Simulink系统模型,如图9-20所示。图9-20 由系统直接生成相应的 Simulink模型 53 将图9-20中的输入信号模块Input,用Sources模块库中的 Step模块代替(阶跃时刻设置为 0),并将仿真时间设为0.8,然后运行仿真,便可在示波器中得如图9-21所示的仿真曲线。系统的仿真结果与图9-19中的阶跃响应曲
25、线完全一致,从而验证了系统设计的正确性 图9-21 Simulink的仿真结果 54l 在MATLAB命令窗口中,可以用以下两种方法启动SISO Design Tool:l 1)在MATLAB的命令窗口中直接键入sisotool或rltool命令;l 2)在MATLAB窗口的左下角“Start”菜单中,单击“ToolboxsControl system”命令子菜单中的“SISO Design Tool”选项。l 在以上两种方式启动下,SISO Design Tool窗口如图9-22所示。55图9-2256l 在启动SISO Design Tool之后,需要为所设计的线性系统输入模型数据,选择S
26、ISO Design Tool中File菜单下的Import命令输入系统模型数据,此时将打开如图9-23所示的对话框。57l 在图9-23的SISO Models对话框中显示的系统模型ex9_8,就是在例9-8中获得系统的LTI对象描述。如果输入模型数据来源为Simulink系统模型框图,则必须对此进行线性化处理以获得系统的 LTI对象描述。这是因为 SISO Design Tool线性系统中的所有环节(G控制对象、H传感器、F预滤波器、C控制器)均为LTI对象。另外,在系统数据(System Data)栏中,用户可以单击控制系统结构右下方的【Other】按钮以改变控制系统结构。58l例例9-
27、12 利用单输入单输出系统设计工具SISO Design Tool求解例8-1所示系统在校正前的相位裕量。l解解(1)首先根据第8章的例8-1所给单位反馈系统的开环传递函数l在 MATLAB窗口中利用以下命令,得到该系统的LTI对象模型ex9_12_G0。lnum=40;den=conv(1,0,1,2);lex9_12_G0=tf(num,den);)2(40)(0sssG59图9-24 从图9-24可知,原系统的相位裕量为 r=180,这与第8章的例8-1中所得结果一致。l(2)在启动SISO Design Tool窗口后,利用该窗口中的菜单命令FileImport,打开系统模型数据输入对
28、话框窗口。输入对象模型ex9_12_G0,可得图9-24.60l 在完成线性系统数据的输入之后,用户便可以使用诸如零极点配置、根轨迹分析以及系统波特图分析等传统的方法对线性系统进行设计。l 在系统根轨迹图中,蓝色o和X表示控制对象G的零极点,而红色表示系统控制器C的零极点。在波特图中除了显示当前补偿器下的系统增益与相位裕度之外,还显示了零点与极点的位置。61l4.系统分析l 在系统设计完成后,需要对其做进一步的分析。分析反馈系统的开环和闭环响应,以确保系统是否满足特定的设计要求。用户可以选择SISO Design Tool窗口中Analysis菜单下的Other Loop ResponsesS
29、tep命令,来绘制系统的闭环阶跃响应曲线。此时将打开LTI浏览器窗口,在此窗口中用户同样可对系统的性能如超调量、调整时间、峰值时间和上升时间等等进行分析。l 如果用户需要实现连续系统与离散系统之间的相互转换,可以选择SISO Design Tool窗口中Tools菜单下的Continuous/Discrete Conversions命令,以对连续系统的连续时间、离散系统的采样时间和转换方法等进行设置。62l5.系统验证l 在使用SISO Design Tool完成系统的设计之后,在系统实现之前必须对设计好的系统通过Simulink进行仿真分析,进一步对控制器进行验证,以确保系统设计的正确性。如
30、果直接按照系统设计逐步建立系统的Simulink,将是一件很麻烦的工作;庆幸的是,SISO Design Tool提供了Simulink集成的方法,用户可以利用SISO Design Tool窗口中Tools菜单下的 Draw Simulink Diagram命令,直接由设计好的系统生成相应的 Simulink系统框图。在生成Simulink系统模型之前,必须保存线性系统的执行结构、补偿器以及传感器等LTI对象至MATLAB工作空间中。63l例例9-13 利用串联校正装置将例9-12中所述系统的相位裕量提高到500以上,并画出系统的Simulink仿真框图和单位阶跃响应曲线。l解解(1)由第8
31、章的例8-1知,利用串联校正方法将系统的相位裕量提高到500以上时,串联校正装置的传递函数可选为:6776.184366.42099.410.0535410.2254)(sssssGc64l(2)在MATLAB窗口中利用以下命令得到LTI模型ex9_13_Gc;lnumc=0.2254 1;ldenc=0.05354 1;ex9_13_Gc=tf(numc,denc);l(3)利用设置控制对象G的方法,再将例9-12所述系统的控制器C设置成ex9_13_Gc,其他的选项的设置同例9-12。然后单击【OK】按钮,此时可得校正后系统的根轨迹图以及系统开环波特图,如图9-26所示 65l可见,相位裕
32、量变为 r=50.70,满足设计要求。图9-26 校正后系统的根轨迹图以及系统开环波特图 66l(4)利用图9-26中Analysis菜单下的Other Loop ResponsesStep命令,可得该系统的闭环阶跃响应曲线,如图9-27所示。图9-27 闭环阶跃响应曲线 在所得系统的闭环阶跃响应曲线中,利用LTI Viewer的使用方法,同样可显示出系统的超调量、调整时间、峰值时间和上升时间等时域性能指标参数,如图9-27中所示。67l(5)利用图9-26中的ToolsDraw Simulink Diagram命令,便可得到系统相应的Simulink系统模型,如图9-28所示。图9-28 由
33、系统直接生成相应的 Simulink模型 68l 将图9-28中的输入信号模块Input,用Sources模块库中的 Step模块代替(阶跃时刻设置为 0),并将仿真时间设为0.8,然后运行仿真,便可在示波器中得如图9-29所示的仿真曲线。系统的仿真结果与图9-27中的阶跃响应曲线完全一致,从而验证了系统设计的正确性。图9-29 Simulink的仿真结果 69l 当系统的非线性特性较强时,传统的基于线性化建模的线性系统设计方法难以获得良好的控制效果。为了解决这一问题,需要对非线性系统进行控制器优化设计和仿真。Simulink中的Signal Constraint模块(适用于MATLAB7.5
34、)或Check Step Response Characteristics模块(适用于MATLAB7.13)或NCD Outport模块(适用于MATLAB6.5及以下版本)为非线性系统的控制器优化设计和仿真提供了有效的手段。70l Signal Constraint模块(或Step Response Characteristics模块或NCD Outport模块)以Simulink模块的形式,集成了基于图形界面的非线性系统控制器优化设计和仿真功能。l 在非线性控制系统中,用户可在指定的信号上连接一个Signal Constraint模块(或Step Response Characterist
35、ics模块或NCD Outport模块),并确定对此信号的约束。Signal Constraint模块(或Step Response Characteristics模块或NCD Outport模块)按照信号的约束优化非线性系统中控制器的参数,使系统能够满足约束的要求。71l 首先将Simulink响应优化模块集(Simulink Response Optimization)中的信号约束(Signal Constraint)模块复制到用户模型编辑窗口,然后用鼠标双击Signal Constraint模块,即打开该模块的时域性能约束窗口,如图9-30所示。72图9-30 Signal Constr
36、aint模块的时域性能约束窗口 73 在该窗口的图形显示部分给出了对变量的时域性能约束,横坐标为时间轴,纵坐标为约束变量的取值。水平的长条形线段用于指定变量约束的上界和下界,可以通过鼠标拖拉改变各段长条的长度和水平位置,也可以利用鼠标双击长条形线段打开约束编辑窗口(Edit Constraint)通过输入约束的位置数据来改变。在此约束窗口中初始参数下的响应曲线,约束下的优化结果曲线均是在单位阶跃信号输入下的响应,且阶跃时刻为1。在Signal Constraint模块的时域性能约束窗口中提供如下5种菜单功能。74(1)文件菜单(File)文件菜单的功能包括:Load-从文件中加载约束数据 Sa
37、ve-保存约束到磁盘文件中 Save As-另存约束到磁盘文件中 Print-打印约束数据 Close-关闭当前窗口(2)编辑菜单(Edit)编辑菜单的功能包括:Undo Scale Constraint-撤消上次的修改操作;Redo-重做;Scale Constraint-约束数据的编辑窗口的比例;Reset Constraint-复原约束数据的编辑窗口;Axes properties-坐标轴的设置。75(3)绘图菜单(Plots)绘图菜单功能包括:Plot Current response-绘制当前响应曲线 ShowInitial response-显示初始响应 ShowIntermedi
38、ate steps-显示中间步骤 ShowReference Signal-显示参考信号 ShowUncertainty-显示不确定范围 Clear Plots-清除响应曲线76(4)目标菜单(Goals)目标菜单功能包括:Enforce Signal Bounds-执行信号限制 Track Reference Signal-跟踪参考信号 Desired Response-期望响应特性 当选择Desired Response(期望响应特性)命令后,则打开如图9-34所示的设置期望阶跃响应特性(Specify Step response characteristics)窗口。在图9-34期望阶跃
39、响应特性窗口中,可以对阶跃信号的初始值(Initial value)、终止值(Final value)和作用时间(Step time),以及阶跃响应曲线的上升时间(Rise Time)、调整时间(Settling Time)和最大超调量(%Overshoot)等特性参数进行设置,从而改变阶跃响应约束的形状。77图9-3478l(5)优化菜单(Optimization)l 选项菜单功能包括:l Star-开始优化和仿真;l Stop-停止优化和仿真;l Tuned Parameters-设置优化参数;l Uncertain Parameters-设置不确定参数范围;l Smulation Opt
40、ions-设置优化仿真参数;l Optimization Options-设置优化选项。79l选择Tuned Parameters命令后,系统弹出如图9-35所示的优化参数设置窗口。80l设置对象模型的不确定参数(Parameter)和不确定参数的变化范围(Min&Max)。81l 在使用Simulink响应优化模块集(Simulink Response Optimization)对非线性控制系统进行优化设计和仿真之前,需要在Simulink中建立非线性控制系统(闭环形式)的系统模型。对于系统的各种模块(如控制器、补偿器等),无论是线性的还是非线性的,都应该在 MATLAB的工作空间中定义这些
41、模块的初始值信息。最后将Simulink响应优化模块集中的Signal Constraint模块连接到待控制的信号下。82l 要求系统单位阶跃响应的上升时间小于12秒、过渡过程时间小于25秒、最大超调量不大于15%。试求PID控制器的最佳整定参数Kp、Ki和Kd。假设PID控制器的初始值Kp=0.5,Ki=0.1,Kd=2;三阶线性对象模型的不确定参数a1和a2的取值范围分别为:40 a1Kp=0.5;Ki=0.1;Kd=2;85(4)在系统模型窗口中,打开传递函数(Transfer Fcn)模块的参数对话框,将分子系数和分母系数两个对话框中分别输入:1.5和50 a1 a2 1。按【OK】按
42、键后,在MATLAB窗口中利用以下命令对三阶对象模型的不确定参数a1和a2的初值进行设置:a1=45;a2=5;86(5)在系统模型窗口中,首先利用Simulation Configuration Parameters命令,将仿真的停止时间设置为100,其余参数采用默认值。然后打开示波器,启动仿真,便可在示波器中得到如图9-40所示的单位阶跃响应曲线。由该曲线可知,当PID控制器取以上参数时,系统显然不满足所要求的动态性能指标。因此有必要利用Signal Constraint模块,对PID控制器的参数进行优化。87(6)根据系统给定的时域性能指标设置阶跃响应特性参数 在系统模型窗口中,用鼠标双
43、击 Signal Constraint模块,即打开该模块的时域性能约束窗口,如图9-30所示。在时域性能约束窗口中,利用GoalsDesired Response命令,打开设置期望响应特性约束参数的窗口,并设置上升时间(Rise Time)为12、调整时间(Settling Time)为25、最大超调量(%Overshoot)为15,其余参数采用默认值,如图9-41所示。当利用【OK】按键接收以上数据后,再利用EditAxes properties命令,将X坐标轴的最大值由10改为100,Y坐标轴的范围由-0.5,1.5改为0,1.5,接收数据后时域性能约束窗口将变为如图9-42所示。88图9
44、-41 阶跃响应约束参数的窗口 图9-42 时域性能约束窗口 89l(7)设置优化参数l 在本例中为进行PID控制器的优化设计,将PID控制器的参数Kp、Ki和Kd作为Signal Constraint模块的优化参数,故首先利用OptimizationTuned Parameters命令,打开设置优化参数(Tuned Parameters)的窗口。然后利用该窗口中的增加按钮【Add】,根据增加参数(Add parameters)提示窗口中显示的MATLAB工作空间中的变量名,依次将Kp、Ki和Kd变量定义为系统将要优化的参数,如图9-43所示。最后利用该窗口中的【OK】按键接收以上数据。90图
45、9-43 优化参数设置窗口 91(8)设置不确定参数范围 为适应对象的不确定性,在不确定参数窗口中设置对象模型的不确定参数a1和a2及不确定参数的变化范围。首先利用OptimizationUncertain Parameters命令,打开设置不确定参数(Uncertain Parameters)范围设置窗口。然后利用该窗口中的增加按钮【Add】,根据增加参数(Add parameters)提示窗口中显示的MATLAB工作空间中的变量名,依次将a1和a2变量定义为系统的不确定参数,并且分别将a1和a2参数的变化范围设置为40.5,49.5和2.5,10,如图9-44所示。最后利用该窗口中的【OK
46、】按键接收以上数据。92图9-44 不确定参数设置窗口 93l(9)开始控制器参数的优化计算l 利用Signal Constraint模块窗口中的OptimizationSmulation Options命令,打开优化仿真参数设置(Smulation Options)对话框窗口,将仿真的停止时间(Stop time)修改为100,其余参数采用默认值。在完成上述的参数设置过程后,用鼠标单击Signal Constraint模块的时域性能约束窗口中的开始按钮“”,便开始对系统中的PID控制器模块的参数进行优化计算。在优化计算过程中,系统的响应曲线变化情况在时域约束窗口中显示,优化过程结束后,可得如
47、图9-45中所示的一系列曲线。94图9-45 系统输出响应曲线95l 图9-45中的曲线分别为优化前的初始曲线、中间响应曲线和优化计算后的最优曲线。其中,初始曲线和最优曲线为粗实线,中间响应曲线为虚线。从优化过程和结果可以看出,优化过程中系统的响应曲线特性逐渐接近约束的要求,直到优化结束后的最优曲线全部限制在要求的约束范围内。96l(10)优化结束后,在系统模型窗口中,再次启动仿真,在示波器中便可得到如图9-46所示的单位阶跃响应曲线。该曲线应该就是图9-45中优化结束后的最优曲线。由此可见,PID控制器参数进行优化后,系统的动态性能指标完全满足设计要求。PID控制器的优化参数,在MATLAB
48、窗口中可以利用以下命令得到。lKp,Ki,Kdl结果显示:lKp=l 3.1696lKi=l 0.1150lKd=l 11.6465图9-46 单位阶跃响应曲线97l 首先将Simulink中的设计优化模块集(Simulink Design Optimization)中的信号约束模块库(Signal Constraints)中Check Step Response Characteristics的模块复制到用户模型编辑窗口,然后用鼠标双击Check Step Response Characteristics模块,即打开该模块的时域性能参数设置窗口,如图9-30所示。9899l 要求系统单位阶跃
49、响应的上升时间小于12秒、过渡过程时间小于25秒、最大超调量不大于15%。试求PID控制器的最佳整定参数Kp、Ki和Kd。假设PID控制器的初始值Kp=0.5,Ki=0.1,Kd=2;三阶线性对象模型的不确定参数a1和a2的取值范围分别为:l 40 a1 a1=45;a2=5;102103104105106107l 在MATLAB6.5版本中,同样能对非线性控制系统进行设计的模块为NCD Outport,该模块包含在Simulink库浏览窗口中的非线性控制设计模块集(NCD Blockset)中,NCD Outport模块的功能和使用方法与Signal Constraint模块基本类似。108
50、l 将非线性控制器设计模块集(Nonlinear Control Design Blockset)中的NCD Outport模块复制到用户模型编辑窗口,用鼠标双击 NCD Outport模块,即打开一个NCD Outport模块的时域性能约束窗口,如图9-47所示。1.NCD Blockset模块109图9-47110l 在该窗口的图形显示部分绘出了对变量的时域性能约束,横坐标为时间轴,纵坐标为约束变量的取值。水平的长条形线段用于指定变量约束的上界和下界,可以通过鼠标拖拉改变各段长条的长度和水平位置,也可以通过下面将要介绍的约束数据的编辑窗口来改变。在此约束窗口中初始参数下的响应曲线,约束下的