2010-10-2012010-10-201控制系统仿真北京科技大学信息工程学院自动化专业选修课2010年9月2010-10-2022010-10-202第五章第五章基于基于MATLABMATLAB工具箱的控制系统分析与设计工具箱的控制系统分析与设计控制系统工具箱简介控制系统工具箱简介5.1线性时不变系统的对象模型线性时不变系统的对象模型5.2线性时不变系统浏览器线性时不变系统浏览器——LTIViewerLTIViewer5.3单变量系统设计工具单变量系统设计工具——SISODesignToolSISODesignTool5.4非线性控制系统的设计非线性控制系统的设计5.52010-10-203为了进一步方便用户,在MATLAB的控制系统工具箱中提供了一套基于图形界面的系统分析和设计的工具。该工具包含了丰富的线性系统分析和设计函数,并以线性时不变(LinearTime-Invariant,LTI)对象为基本数据类型,对线性时不变系统进行操作与控制。它能够完成系统的时域和频域分析,用户可以设计与分析控制系统;然后使用Simulink对所设计的控制系统进行仿真分析,并在需要的情况下修改控制系统的结构和参数以达到特定的目的,从而使得用户快速完成系统分析和设计的任务,大大提高分析和设计的效率。第五章第五章基于基于MATLABMATLAB工具箱的控制系统分析与设计工具箱的控制系统分析与设计2010-10-204在控制系统的分析和设计中,线性系统的设计、分析与实现具有重要的地位,因为对大多数的非线性控制系统,可以在工作点附近将其进行线性化,最终按线性控制系统进行设计分析。但是当系统的非线性特性较强时,就需要采用其他方法对非线性系统控制器进行优化设计和仿真。Simulink中基于图形界面的SignalConstraint(或NCDOutport)模块为非线性系统控制器的优化设计和分析提供了有效的手段。第五章第五章基于基于MATLABMATLAB工具箱的控制系统分析与设计工具箱的控制系统分析与设计2010-10-2055.1控制系统工具箱简介MATLAB的控制系统工具箱,主要处理以传递函数为主要特征的经典控制和以状态空间为主要特征的现代控制中的问题。该工具箱对控制系统,尤其是线性时不变系统的建模、分析和设计提供了一个完整的解决方案。概括的说,控制系统工具箱具有以下几个方面的功能。1.系统建模控制系统工具箱中的大部分函数同时支持离散时间系统和连续时间系统,从而更易于使用。能够建立系统的状态空间、传递函数、零极点增益模型,并可实现任意两者之间的转换;可通过串联、并联、反馈连接及更一般的框图建模来建立系统的模型;可通过多种方式实现连续时间系统的离散化,离散时间系统的连续化及重采样。2010-10-2062.系统分析控制系统工具可计算系统的各种特性。如系统的能控性和能观测性矩阵、传递零点、Lyapunov方程;时域特性,如超调量、峰值时间、上升时间和调整时间等;频域特性,如稳定裕度、阻尼系数以及根轨迹的增益选择等。支持系统的标准型实现、系统的最小实现、均衡实现、降阶实现以及输入延时的padè估计。控制系统工具箱不仅支持对SISO系统的分析,也可对MIMO系统进行分析。对系统的时域响应,可支持系统的单位阶跃响应、单位脉冲响应、零输入响应,以及更广泛的对任意信号进行仿真;对于系统的频率响应,可支持系统的Bode图、Nichols图和Nyquist图的计算和绘制。另外,在控制系统工具箱中,提供一个可视化的LTI观测器(LTIViewer),大大方便了用户对系统的各种曲线的绘制和分忻。5.1控制系统工具箱简介2010-10-2073.系统设计控制系统工具箱可以进行各种系统的补偿设计,如LQG线性二次型设计、线性系统的根轨迹设计和频率法设计、线性系统的极点配置,以及线性系统观测器设计等。在控制系统工具箱中,提供了一个功能非常强大的单输入单输出线性系统设计器(SISODesignTool),它为用户设计单输入单输出线性控制系统提供了非常友好的图形界面。5.1控制系统工具箱简介2010-10-208一、创建LTI模型对象一、创建LTI模型对象5.2线性时不变系统的对象模型MATLAB中的控制系统工具箱(控制系统工具箱)为线性时不变系统(LTI)的建模和分析提供了丰富的函数和工具,既支持连续和离散系统,也能够处理SISO和MIMO系统。并且,用户可以将多个LTI模型放在同一个数组中统一进行计算和分析。2010-10-2095.2线性时不变系统的对象模型使用控制系统工具箱的第一步是为系统选择适当的模型。MATLAB支持的LTI模型包括:1)传递函数模型(TF),例如22()10sPsss+=++2)零极点-增益模型(ZPK),例如2(0.5)(1)()[](0.1)(0.2)(0.1)zzHzzzzz−+=+++3)状态空间模型(SS),例如dxAxBudtyCxDu=+=+一、创建LTI模型对象一、创建LTI模型对象2010-10-20105.2线性时不变系统的对象模型一、创建LTI模型对象一、创建LTI模型对象4)频率响应数据模型(FRD),由系统频率响应的采样测量值构成。例如,可以在FRD模型中存放实验中测量的系统频率响应值。一旦在MATLAB工作空间中创建了上述模型,就可以使用各种函数来对系统模型进行分析和计算。例如,可以针对系统的各种模型设计补偿器,分析系统的各种属性,如可控性、可观性、时域和频域响应等等。2010-10-20115.2线性时不变系统的对象模型一、创建LTI模型对象一、创建LTI模型对象不同的系统模型在MATLAB中的存储形式是不同的。例如,用简单的分子分母多项式表示传递函数模型;用四个矩阵A、B、C和D表示状态空间模型;用零极点集合来说明系统的零极点-增益模型等等。MATLAB分别用定制的数据结构来存储这些模型,称为LTI对象,包括TF、ZPK、SS和FRD对象。这些对象将所有模型的信息封装起来,从而让用户可以从整体上对模型代表的系统进行操作。2010-10-20125.2线性时不变系统的对象模型一、创建LTI模型对象一、创建LTI模型对象表5.1LTI模型的创建函数2010-10-20135.2线性时不变系统的对象模型一、创建LTI模型对象一、创建LTI模型对象1.创建传递函数模型1)SISO传递函数模型连续SISO系统的传递函数为()()()nshsds=(5.1)可以采用两种方法创建SISO传递函数模型。一种是使用tf命令,另一种则可以直接引用Laplace变量s的多项式。使用tf命令的方法是h=tf(num,den) 2010-10-20145.2线性时不变系统的对象模型一、创建LTI模型对象一、创建LTI模型对象其中,行向量num和den分别是多项式n(s)和d(s)的系数。注意这里的多项式是按照s的降幂排列的。例如,如果某个SISO系统的传递函数是h(s)=s/(s2+2s+10),则可以通过下面的命令来创建该系统的传递函数模型:h=tf([10],[1210])MATLAB的输出结果为Transferfunction:s--------------s^2+2s+10 h是一个TF对象,存放传递函数的分子分母多项式数据。2010-10-20155.2线性时不变系统的对象模型一、创建LTI模型对象一、创建LTI模型对象当然,也可以按照通常习惯用s的多项式来直接表示SISO系统的传递函数。为此,首先将s定义为Laplace算子:s=tf(′s′); 然后输入s的多项表达式。例如,输入H=s/(s^2+2*s+10); 将产生与h=tf([10],[1210])相同的系统模型。2010-10-20165.2线性时不变系统的对象模型一、创建LTI模型对象一、创建LTI模型对象2)MIMO传递函数模型MIMO系统的传递函数是由基本的SISO传递函数所组成的二维数组。同样有两种方法来创建MIMO系统模型:一种是将组成该MIMO系统的多个SISO传递函数进行串联;另一种方法则可以使用带元胞数组参数的tf命令。考虑下面的有理传递函数矩阵211()245ssHssss−⎡⎤⎢⎥+=⎢⎥+⎢⎥⎢⎥++⎣⎦2010-10-2017一、创建LTI模型对象一、创建LTI模型对象5.2线性时不变系统的对象模型可以将H(s)定义为两个SISO系统的组合:h11=tf([1-1],[11]);h21=tf([12],[145]);H=[h11;h21]如果使用tf命令方式,则必须首先定义两个元胞数组N和D:N={[1-1];[11]};D={[11];[145]};H=tf(N,D)2010-10-2018一、创建LTI模型对象一、创建LTI模型对象5.2线性时不变系统的对象模型MATLAB的输出结果为:s-1#1:-----s+1使用tf命令可以创建只有单个增益或增益矩阵的TF对象,例如G=tf([10;21])将产生增益矩阵1021G⎡⎤=⎢⎥⎣⎦而E=tf将创建空的传递函数。s+2#2:-------------s^2+4s+52010-10-2019一、创建LTI模型对象一、创建LTI模型对象5.2线性时不变系统的对象模型2.创建零极点-增益模型1)SISO零极点-增益模型连续SISO系统的零极点-增益模型的一般形式为11()()()()()mnszszhskspsp−−=−−LL同样可以采用两种方法来创建SISO系统的零极点模型。一种是直接使用zpk命令h=zpk(z,p,k)(5.2)2010-10-2020一、创建LTI模型对象一、创建LTI模型对象5.2线性时不变系统的对象模型这里的z、p、k分别是系统的零极点和增益问题。例如h=zpk(0,[1-i1+i2],-2)将创建下面的SISO系统:Zero/pole/gain:-2s---------------(s-2)(s^2-2s+2)另一种方法是直接引用s的多项式,首先将s定义成Laplace算子:s=zpk(‘s’)然后直接写出s的多项式:-2*s/((s-2)*(s^2+2*s+2))2010-10-2021一、创建LTI模型对象一、创建LTI模型对象5.2线性时不变系统的对象模型2)MIMO零极点-增益模型与TF模型类似,可以将MIMO系统的ZPK模型视作多个SISOZPK模型的组合形式。也可以使用带元胞数组参数的zpk命令。创建p×m维MIMO系统的ZPK模型的调用方法为:H=zpk(Z,P,K)例如:Z={[],-5;[1-i1+i][]};P={0,[-1-1];[123],[]};K=[-13;20];H=zpk(Z,P,K)2010-10-2022一、创建LTI模型对象一、创建LTI模型对象5.2线性时不变系统的对象模型⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−−−+−++−=0)3)(2)(1()22(2)1()5(31)(22sssssssssH将创建如下的MIMO系统:2010-10-2023一、创建LTI模型对象一、创建LTI模型对象5.2线性时不变系统的对象模型3)创建状态空间模型状态空间模型是采用线性微分或差分方程来描述系统的动态行为。连续时间系统具有如下的一般形式dxAxBudt=+yCxDu=+(5.3)使用ss命令创建系统的状态空间模型的调用格式为sys=ss(A,B,C,D)2010-10-2024一、创建LTI模型对象一、创建LTI模型对象5.2线性时不变系统的对象模型例5.1在MATLAB中创建下面系统的状态空间模型:010[01]523xABCddtθθ⎡⎤⎡⎤⎡⎤⎢⎥====⎢⎥⎢⎥⎢⎥−−⎣⎦⎣⎦⎣⎦输入sys=ss([01;-5-2],[0;3],[01],0)创建的系统状态空间模型为2010-10-2025一、创建LTI模型对象一、创建LTI模型对象5.2线性时不变系统的对象模型4)创建描述符状态空间模型描述符状态空间(DSS)模型是上述标准状态空间模型的一般形式。其基本形式为dxEAxBudtyCxDu⎧=