
simulink及模型转换.ppt
96页通常用颜色来区分程序内容的类别:通常用颜色来区分程序内容的类别: 绿色:注释部分程序不执行绿色:注释部分程序不执行 黑色:程序主题部分黑色:程序主题部分 红色:属性值的设定红色:属性值的设定 蓝色:控制流程,比蓝色:控制流程,比for,if…then等语句等语句t=0:0.1:7;x=sin(t);plot(t,x,'k');title('正弦曲线正弦曲线');xlabel('x轴轴');ylabel('y轴轴');s=0; a=[12,13,14;15,16,17;18,19,20;21,22,23]; for k=a s=s+k; s end disp(s');%输出行向量输出行向量2021/8/612021/8/62Simulink在系统仿真中的应用在系统仿真中的应用SimulinkSimulink是一种用于在是一种用于在MATLABMATLAB下建立模块化的集成软件工具包下建立模块化的集成软件工具包SimulinkSimulink建模的基础知识建模的基础知识SimulinkSimulink含两层含义:含两层含义:“Simu”“Simu”表示仿真(表示仿真(simulationsimulation);而);而linklink表示它能够进行系统连接,即:把一系列模块连接起来,构成复杂表示它能够进行系统连接,即:把一系列模块连接起来,构成复杂的系统模型。
正是由于它的这些功能和特色,使得它成为计算机仿的系统模型正是由于它的这些功能和特色,使得它成为计算机仿真领域首选的仿真环境真领域首选的仿真环境 前面涉及到的仿真都是较为简单的静态仿真,为了处理更复杂前面涉及到的仿真都是较为简单的静态仿真,为了处理更复杂的和时间有关的动态系统,就必须学习的和时间有关的动态系统,就必须学习simulink的使用Simulink是是matlab提供的实现系统建模和仿真的一个软件包提供的实现系统建模和仿真的一个软件包它它让用户把精力从编程转向模型的构造让用户把精力从编程转向模型的构造2021/8/63启动启动simulink,,只需要在只需要在matlab命命令窗口输入:令窗口输入:>>simulink 或者单击命或者单击命令窗口里令窗口里工具栏上工具栏上的按钮的按钮Simulink库浏览器库浏览器2021/8/64模型窗口模型窗口 Simulink最让人振奋的一点就是支持图形用户界面最让人振奋的一点就是支持图形用户界面2021/8/65SIMULINK的基本操作的基本操作1、、SIMULINK窗口:库浏览器、窗口:库浏览器、 SIMULINK模型窗口模型窗口2、、 SIMULINK模块操作:模块操作:模块是建立模块是建立SIMULINK模型的基本单元,用适当的方式把各种模型的基本单元,用适当的方式把各种模块连接在一起就能够建立任何动态系统模型。
模块连接在一起就能够建立任何动态系统模型选取模块、放大或缩小模块、改变模块名字选取模块、放大或缩小模块、改变模块名字双击某一模块或在模块上单击鼠标右键,选择双击某一模块或在模块上单击鼠标右键,选择Block Parameters可以对参数进行设置,选择可以对参数进行设置,选择Block Properties可以设置和查看模可以设置和查看模块的特性块的特性模块的连线:模块的连线:移动鼠标到某一模块的输出端,鼠标的箭头会变成移动鼠标到某一模块的输出端,鼠标的箭头会变成十字形光标,按住鼠标左键移动鼠标到另一模块的输入端,十字形光标,按住鼠标左键移动鼠标到另一模块的输入端,当十当十字光标出现重影时,释放左键即可字光标出现重影时,释放左键即可P1152021/8/662 SIMULINK的基本模块的基本模块在在SIMULINK中包含:中包含:连续系统模块库(连续系统模块库(Continuous)、)、离散系统模块库(离散系统模块库(Discrete)、)、数学运算模块库(数学运算模块库(Math)、)、非线性模块库(非线性模块库(Nonlinear)、)、信号与系统模块库(信号与系统模块库(Signal&System)、)、接收(输出)模块库(接收(输出)模块库(Sinks)、)、输入源模块库(输入源模块库(Sources)等。
等每一个模块又包含很多子模块每一个模块又包含很多子模块2021/8/67连续系统模块连续系统模块Continuous功能:功能:模块名模块名 功能简介功能简介Integrator 积分环节积分环节Derivative 微分环节微分环节State-Space 状态方程状态方程Transfer Fcn 传递函数传递函数Zero-Pole 零-极点模型零-极点模型Memory 把前一步的输入作为输出把前一步的输入作为输出Transport Delay 把输入信号按给定的时间做延迟把输入信号按给定的时间做延迟Variable Transport Delay 按第二个输入指定的时间把第一按第二个输入指定的时间把第一 个输入做延迟个输入做延迟2021/8/68离散系统模块离散系统模块Discrete功能:功能:模块名模块名 功能简介功能简介Zero-Order Hold 零阶保持器零阶保持器Unite Delay 采样保持,延迟一个周期采样保持,延迟一个周期Discrete-Time Integrator 离散时间积分离散时间积分Discrete State-Space 离散状态方程离散状态方程Discrete Filter 离散滤波器(离散滤波器(IIR、、FIR))Discrete Transfer Fcn 离散传递函数离散传递函数Discrete Zero-Pole 离散零-极点模型离散零-极点模型First-Order Hold 一阶保持器一阶保持器2021/8/69非线性模块库非线性模块库 Rate Limiter 限制输入变化率的变化大小限制输入变化率的变化大小 Saturation 让输出超过某一值时能够饱和让输出超过某一值时能够饱和 Quantizer 把输入转化成阶梯状的量化输出把输入转化成阶梯状的量化输出 Backlash 由由deadband设定,设定, 输出依据输入的改变而改变输出依据输入的改变而改变 Dead Zone 死区特性死区特性 Relay 限制输出值在某一范围内变化限制输出值在某一范围内变化 Switch 根据临界值自动判断选择所接受的输入端根据临界值自动判断选择所接受的输入端 Manual Switch 人工判断选择所接受的输入端人工判断选择所接受的输入端 Mutiport Switch 在多输入中选一个输出在多输入中选一个输出 Coulumb & Viscous Friction 当输出值达到一定值时,输出才当输出值达到一定值时,输出才 会根据输入而改变会根据输入而改变2021/8/610接收模块接收模块sink功能:功能:模块名模块名 功能简介功能简介Scope 示波器示波器XY Graph 两个信号的关系图,用两个信号的关系图,用MATLAB图形显示图形显示Display 实时数值显示实时数值显示To File 保存到文件保存到文件To Workspace 输出到当前工作空间的变量输出到当前工作空间的变量Stop Simulation 输入为非零时停止仿真输入为非零时停止仿真2021/8/611•用示波器模块来观察输出用示波器模块来观察输出–Sinks库库•Scope 示波器窗口示波器窗口•X Y graph 绘制二维的图形绘制二维的图形•Display 将数据以数字的形式显示出来将数据以数字的形式显示出来•使用使用Workspace模块模块–将信号输入至将信号输入至Workspace模块,该模块将数模块,该模块将数据输出到据输出到Matlab的命令窗口中,以的命令窗口中,以‘simout’变量名保存下来,也可以改变变变量名保存下来,也可以改变变量名用另外的名字保存量名用另外的名字保存–时间数据用时间数据用sources中的中的clock模块模块•使用返回值将输出返回使用返回值将输出返回Matlab命令窗口中命令窗口中–out12021/8/612输入源模块输入源模块source功能:功能:模块名模块名 功能简介功能简介Constant 常数常数Signal Generator 信号发生器信号发生器Step 阶跃信号阶跃信号Ramp 线性增加或减少的信号线性增加或减少的信号Sine Wave 正弦波正弦波Repeating Sequence 重复的线性信号,类似锯齿形重复的线性信号,类似锯齿形Discrete Pulse Generator 离散脉冲发生器,和采样时间有关离散脉冲发生器,和采样时间有关Pulse Generator 脉冲发生器,和采样时间无关脉冲发生器,和采样时间无关Chirp Signal 频率不断变化的正弦信号频率不断变化的正弦信号Clock 输出当前的仿真时间输出当前的仿真时间2021/8/613Digital Clock 按指定速率输出当前仿真时间按指定速率输出当前仿真时间,用于离用于离 散系统仿真散系统仿真From File 从文件读数据从文件读数据Random Number 高斯分布的随机信号高斯分布的随机信号Uniform Random Number 平均分布的随机信号平均分布的随机信号Band-Limited White Noise 带限白噪声带限白噪声2021/8/6143仿真模型参数的设置仿真模型参数的设置 建立模型之后,就可以对模型进行动态仿真,但在仿真前建立模型之后,就可以对模型进行动态仿真,但在仿真前必须对模型的仿真参数进行相应的设置。
必须对模型的仿真参数进行相应的设置1、、输入信号的参数设置输入信号的参数设置 双击信号源对象,改变其可设置值双击信号源对象,改变其可设置值 例如,阶跃信号的可设置参数有例如,阶跃信号的可设置参数有 Step time 阶跃时间阶跃时间 Initial value 初值初值 Final value 终值终值2 2、、、、示波器参数的设置示波器参数的设置示波器参数的设置示波器参数的设置 双击示波器,则出现示波器窗口,用于显示波形;双击示波器,则出现示波器窗口,用于显示波形;双击示波器,则出现示波器窗口,用于显示波形;双击示波器,则出现示波器窗口,用于显示波形;在示波器上端可设置属性,包括显示时间,采样周期等在示波器上端可设置属性,包括显示时间,采样周期等在示波器上端可设置属性,包括显示时间,采样周期等在示波器上端可设置属性,包括显示时间,采样周期等3 3、、、、其他环节的设置其他环节的设置其他环节的设置其他环节的设置 与输入信号的设置一样,通过双击对象弹出属性窗口,与输入信号的设置一样,通过双击对象弹出属性窗口,与输入信号的设置一样,通过双击对象弹出属性窗口,与输入信号的设置一样,通过双击对象弹出属性窗口, 设置不同的参数。
设置不同的参数设置不同的参数设置不同的参数2021/8/615 2. 2. 运行运行模型模型用户在选择适当的算法并且设置好仿真参数后,就可以运行用户在选择适当的算法并且设置好仿真参数后,就可以运行Simulink仿真模型了有两种方法可以启动仿真:仿真模型了有两种方法可以启动仿真:1 1)选择)选择Simulation→Start;;2 2)点击图标)点击图标“ ”“ ” 注意:缺省时,示波器历史数据只保存最后的注意:缺省时,示波器历史数据只保存最后的50005000个如果我们希个如果我们希望显示完整的仿真曲线,就需要将望显示完整的仿真曲线,就需要将““Limit data to last 5000””前面复前面复选框中的选框中的“√”“√”去掉2021/8/6164、、仿真参数的设置:仿真参数的设置:主菜单主菜单Simulation选项下的选项下的Parameters选项用于设置仿真参选项用于设置仿真参数,主要包括:数,主要包括:(1) 仿真算法,分别为仿真算法,分别为:: Euler 欧拉法欧拉法 Runge-Kutta3 三阶龙格库塔法三阶龙格库塔法 Runge-Kutta5 五阶龙格库塔法(缺省)五阶龙格库塔法(缺省) Adams Adams算法算法 Gear 基耶算法基耶算法 Adams/Gear A/G混合算法混合算法 Linsim 线性系统仿真算法线性系统仿真算法(2) 仿真时间与仿真步长的设置仿真时间与仿真步长的设置 start time 开始时间开始时间 stop time 结束时间结束时间 Relative Tolerance 相对精度相对精度 Absolute Tolerance 绝对精度绝对精度 Max(min) step size最大最大(最小最小)允许的步长允许的步长最大步长最大步长=(停止时间停止时间-起始时间起始时间)/50,若仿真时间很长,有可能若仿真时间很长,有可能会出现失根,这时可根据需要设置较小的步长。
会出现失根,这时可根据需要设置较小的步长2021/8/617输出选项输出选项output optionsrefined output 细化输出细化输出produce additional 产生附加输出产生附加输出produce specified output only只产生指定输出只产生指定输出2021/8/6181、简单例子、简单例子例1双击双击Signal Generator跳出属性窗口跳出属性窗口Signal Generator模块的位置在模型库的模块的位置在模型库的simulink的的source下,下,Scope模块的位置在模型库的模块的位置在模型库的simulink的的sinks下2021/8/619未进一步设置时的仿真图线未进一步设置时的仿真图线:(双击:(双击Scope)) 可见,正弦图线不够连续,这是因为显可见,正弦图线不够连续,这是因为显示的采样步长参数没有调整到最好的结果示的采样步长参数没有调整到最好的结果 在模型窗口选择菜单中的在模型窗口选择菜单中的simulation下下的的Configuration Parameters,进一步设置:,进一步设置:将将max step size设置为设置为0.01,将,将min step size设置为设置为0.001,再次仿真得到新的图线:,再次仿真得到新的图线:步长为auto时步长调整后步长调整后设置步长的窗口设置步长的窗口2021/8/6202、火炮随动系统、火炮随动系统稳定的情况稳定的情况开环比例系数增大开环比例系数增大5倍倍2021/8/6213、、“最最”复杂的例子(复杂的例子(F14))在在matlab命令窗口中输入:命令窗口中输入:f142021/8/622默认的方波仿真结果:2021/8/6235.2.3 5.2.3 Simulink在控制系统仿真研究中的应用举例在控制系统仿真研究中的应用举例【例【例1 1】某一】某一SISO的线性定常如图所示,试用的线性定常如图所示,试用MATLAB观测其单位观测其单位阶跃响应曲线。
阶跃响应曲线解:建立一个解:建立一个Simulink模型文件,构造如下图所示的仿真模型模型文件,构造如下图所示的仿真模型 2021/8/624仿真运行结果仿真运行结果 :2021/8/625【例【例5-25-2】】 某一非线性控制系统如图某一非线性控制系统如图5-205-20所示,判断该系统是否有所示,判断该系统是否有稳定的极限环,并且分析该系统的稳定性稳定的极限环,并且分析该系统的稳定性解:解: 根据题意,可以列写出以下方程根据题意,可以列写出以下方程建立绘制系统相轨迹的建立绘制系统相轨迹的SimulinkSimulink模型如下图所示模型如下图所示 2021/8/626运行仿真模型就绘制出该非线性控制系统相轨迹运行仿真模型就绘制出该非线性控制系统相轨迹从相轨迹可以看到该非线性系统具有稳定的极限环从相轨迹可以看到该非线性系统具有稳定的极限环2021/8/627再建立另一种形式的系统仿真模型,并且得到仿真结果(下图所再建立另一种形式的系统仿真模型,并且得到仿真结果(下图所示)可以看到极限环对应的等幅振荡的振幅大约为示)可以看到极限环对应的等幅振荡的振幅大约为0.60.6;周期大;周期大约为约为6 6秒。
秒2021/8/628例例 有初始状态为有初始状态为0的二阶微分方程的二阶微分方程x"+0.2x'+0.4x=0.2u (t), 其中其中u(t)是单是单位阶跃函数,试建立系统模型并仿真位阶跃函数,试建立系统模型并仿真方法方法1:用积分器直接构造求解微分方程的模型用积分器直接构造求解微分方程的模型方法方法2:利用传递函数模块建模利用传递函数模块建模方法方法3:利用状态方程模块建模利用状态方程模块建模例分别采取细化输出、产生附加输出和只产生指例分别采取细化输出、产生附加输出和只产生指定输出这三种方式仿真正弦输入输出系统,细定输出这三种方式仿真正弦输入输出系统,细化系统为化系统为2,仿真时间,仿真时间10s,正弦波频率为,正弦波频率为82021/8/629signal&systems--mux把向量或标量组合为大的向量把向量或标量组合为大的向量mux2021/8/630子系统的建立子系统的建立两种方法:两种方法:通过通过Subsystem模块建立子系统模块建立子系统和和通过已有的模块建立子系统通过已有的模块建立子系统两者的区别是:前者先建立子系统,再为其添加功能模块;后者两者的区别是:前者先建立子系统,再为其添加功能模块;后者先选择模块,再建立子系统。
先选择模块,再建立子系统1.通过.通过Subsystem模块建立子系统模块建立子系统操作步骤为:操作步骤为:(1) 先打开先打开Simulink模块库浏览器,新建一个仿真模型模块库浏览器,新建一个仿真模型2) 打开打开Simulink模块库中的模块库中的Ports & Subsystems模块库,模块库,将将Subsystem模块添加到模型编辑窗口中模块添加到模型编辑窗口中3) 双击双击Subsystem模块打开一个空白的模块打开一个空白的Subsystem窗口,将窗口,将要组合的模块添加到该窗口中,另外还要根据需要添加输入模块要组合的模块添加到该窗口中,另外还要根据需要添加输入模块和输出模块,表示子系统的输入端口和输出端口这样,一个子和输出模块,表示子系统的输入端口和输出端口这样,一个子系统就建好了系统就建好了2021/8/631创建一个简单的三角函数方程创建一个简单的三角函数方程 作为子系统作为子系统Ports&subsystems subsystemPorts&subsystems In1,out1math operationssources constant2021/8/6322.通过已有的模块建立子系统.通过已有的模块建立子系统操作步骤为:操作步骤为:(1) 先选择要建立子系统的模块,不包括输入端口和输出端口。
先选择要建立子系统的模块,不包括输入端口和输出端口2) 选择模型编辑窗口选择模型编辑窗口Edit菜单中的菜单中的Create Subsystem 命令,这样,子系统就建好了命令,这样,子系统就建好了 在这种情况下,系统会自动把输入模块和输出模块添加到子系在这种情况下,系统会自动把输入模块和输出模块添加到子系统中,并把原来的模块变为子系统的图标统中,并把原来的模块变为子系统的图标2021/8/633选中要压缩的子系统选中要压缩的子系统 压缩成子系统以后压缩成子系统以后 2021/8/634子系统封装技术子系统封装技术---模块封装方法模块封装方法 创建一个封装模块的创建一个封装模块的主要主要步骤步骤如下:如下:((1 1)) 创建一个子系统创建一个子系统 ((2 2)) 选中该子系统模选中该子系统模块,执行模型窗口菜块,执行模型窗口菜单中的单中的““Edit→Mask Edit→Mask subsystemsubsystem””命令,将命令,将子系统转化为封装模子系统转化为封装模块这时系统弹出封块这时系统弹出封装编辑对话框(右图装编辑对话框(右图所示) ((3 3)) 使用封装编辑使用封装编辑对话框设置封装文本、对话框设置封装文本、对话框和图标。
对话框和图标 2021/8/6352021/8/636我们以简单的三角函数方程我们以简单的三角函数方程 的子系统为例,学习如何的子系统为例,学习如何封装一个子系统封装一个子系统 ( (见教材见教材8787页页) )IconIcon(图标)设置(图标)设置2021/8/637ParameterParameter(参数)设置(参数)设置 该页分为两个区:对话框参数区(该页分为两个区:对话框参数区(Dialog parameters)和已选择参)和已选择参数选项区数选项区( (Options for selected parameters) )对话框参数区用于选对话框参数区用于选择和改变封装参数的主要性质择和改变封装参数的主要性质已选择参数选项区用于设置已选择已选择参数选项区用于设置已选择参数的其他选项参数的其他选项2021/8/638Initialization( (初始化初始化) )设置设置 初始化页分为两个区:对话框变量区初始化页分为两个区:对话框变量区( (Dialog variables) )和初始化命和初始化命令区(令区(Initialization commands)。
对话框变量区显示在参数页中设)对话框变量区显示在参数页中设置好的子系统封装参数初始化命令区中可以输入置好的子系统封装参数初始化命令区中可以输入MATLABMATLAB语句,如语句,如定义变量、初始化变量等定义变量、初始化变量等2021/8/639Documentation(文本)设置(文本)设置文本编辑页分为文本编辑页分为3 3个区:封装类型区(个区:封装类型区(Mask typeMask type)、封装描述区()、封装描述区(Mask Mask descriptiondescription)和封装帮助区()和封装帮助区(Mask helpMask help)封装类型区中的内容将作为模块的类型显示在封装模块的对话框中封装描述区封装类型区中的内容将作为模块的类型显示在封装模块的对话框中封装描述区中的内容包括描述该模块功能的简短语句,该区中的内容将显示在封装模块对话中的内容包括描述该模块功能的简短语句,该区中的内容将显示在封装模块对话框的上部封装帮助区的内容包括使用该模块的详细说明等,当选择对话框中框的上部封装帮助区的内容包括使用该模块的详细说明等,当选择对话框中HelpHelp选项时,选项时,MATLABMATLAB的帮助系统将显示该区的内容。
的帮助系统将显示该区的内容2021/8/6405.3.3 5.3.3 模块库构造模块库构造要构造一个模块库,在要构造一个模块库,在SimulinkSimulink库浏览器的窗口上选择:库浏览器的窗口上选择:“File→New→Library”,“File→New→Library”,这时打开一个空白的模块库窗口这时打开一个空白的模块库窗口 将需要的模块(用户创建的模块或将需要的模块(用户创建的模块或SimulinkSimulink本身的系统模块)复制本身的系统模块)复制到新的库中,然后给这个模块库命名(例如:到新的库中,然后给这个模块库命名(例如:mylibrary.mdlmylibrary.mdl)), ,并并且保存,这样就创建了自己的模块库且保存,这样就创建了自己的模块库以后创建仿真模型需要用到以后创建仿真模型需要用到该模块库中的模块时,首先打开该模块库,再将需要的模块拖拽到该模块库中的模块时,首先打开该模块库,再将需要的模块拖拽到新的模型编辑窗口即可新的模型编辑窗口即可2021/8/641实验二实验二 MATLAB符号计算及绘图符号计算及绘图一、实验目的一、实验目的1.掌握符号表达式的微分、积分运算以及极限掌握符号表达式的微分、积分运算以及极限2. 和方程求解的运算等和方程求解的运算等2.掌握掌握MATLAB二维、三维的绘图函数,并利用不同的色彩、二维、三维的绘图函数,并利用不同的色彩、线型和绘制出自己满意的图形。
线型和绘制出自己满意的图形3.掌握掌握MATLAB的图形处理的图形处理—网格、标记、坐标系的控制等网格、标记、坐标系的控制等2021/8/6421. 计算计算二、实验内容二、实验内容4.求解方程组求解方程组2求函数求函数 展开到含展开到含 的项的项3求函数求函数 关于关于 的一阶导数的一阶导数2021/8/643 5.绘图绘图(1) 作作sinx, cosx, 2sinx*cosx, sinx/cosx的图形,的图形,在不同坐标内绘制几条曲线并给图形添加坐标及图形标注在不同坐标内绘制几条曲线并给图形添加坐标及图形标注2) 三次抛物线方程为三次抛物线方程为当参数当参数a分别为分别为-3、、-2、、-1、、0、、1、、2、、3时在同一坐标绘制时在同一坐标绘制其波形图,试探讨参数其波形图,试探讨参数a对其图形的影响,其中对其图形的影响,其中x∈∈[-2,2],,步长步长0.13) 绘制绘制z=sin(x)*cos(y)的三维曲线的三维曲线(plot3)和三维曲面图和三维曲面图(mesh),,x,y的变化范围均为的变化范围均为[0,,2 ],并加上适当的三维图形标注,并加上适当的三维图形标注。
4)绘制一个三维图形()绘制一个三维图形( ),),并加上适当的三维图形标注并加上适当的三维图形标注2021/8/644实验三实验三 Simulink仿真、控制系统数学模型及其转换仿真、控制系统数学模型及其转换一、实验目的一、实验目的1掌握掌握Simulink的建模方法的建模方法(1)模块的建立、连接、仿真参数的修改和子系统的创建及封装模块的建立、连接、仿真参数的修改和子系统的创建及封装2)熟悉系统以结构图形式描述的连续系统的数字仿真方法和步骤熟悉系统以结构图形式描述的连续系统的数字仿真方法和步骤3)学会分析环节参数变化对系统动态特性的影响学会分析环节参数变化对系统动态特性的影响2熟悉各类数学模型的表示方法熟悉各类数学模型的表示方法3掌握模型间转换的技巧掌握模型间转换的技巧4灵活应用各种数学模型灵活应用各种数学模型2021/8/6451. 有初始状态为有初始状态为0的二阶微分方程的二阶微分方程 ,,其中其中u(t)是单位阶跃函数,试用两种方法建立系统模型并仿真。
是单位阶跃函数,试用两种方法建立系统模型并仿真 2.某一单位负反馈控制系统,其开环传递函数为某一单位负反馈控制系统,其开环传递函数为它的输入信号为它的输入信号为试使用试使用Simulink构造其仿真模型,并且观察其响应曲线构造其仿真模型,并且观察其响应曲线3.将将2题中的闭环控制系统封装成一个子系统题中的闭环控制系统封装成一个子系统 2021/8/6464 某系统的传递函数为某系统的传递函数为5 某单输入单输出系统:某单输入单输出系统:试求该系统状态空间表达式的对角线标准形试求该系统状态空间表达式的对角线标准形6 求出以下系统的传递函数求出以下系统的传递函数使用使用MATLAB求出状态空间表达式和零极点模型求出状态空间表达式和零极点模型2021/8/647第第4 4章章 控制系统数学模型及其转换控制系统数学模型及其转换 性系统中,常用的数学模型有微分方程模型、传递函数模性系统中,常用的数学模型有微分方程模型、传递函数模型、状态空间模型以及零极点模型等不同的模型应用于不同的场型、状态空间模型以及零极点模型等不同的模型应用于不同的场合掌握模型间的转换才能灵活应用各种数学模型。
本章将主要介合掌握模型间的转换才能灵活应用各种数学模型本章将主要介绍系统数学模型及转换、系统环节模型的连接及标准型实现等内容绍系统数学模型及转换、系统环节模型的连接及标准型实现等内容4.1 4.1 控制系统类型控制系统类型1 1 连续系统和离散系统连续系统和离散系统 2 2 线性系统和非线性系统线性系统和非线性系统 3 3 时变系统和定常(时不变)系统时变系统和定常(时不变)系统4 4 确定性系统和随机系统确定性系统和随机系统 2021/8/6484.2 4.2 控制系统常用数学模型控制系统常用数学模型4.2.1 4.2.1 连续系统数学模型连续系统数学模型1 1.系统微分方程形式模型.系统微分方程形式模型对于线性定常系统单入单出对于线性定常系统单入单出( (简称简称SISO)SISO)系统系统 ,可用以下方程描述:,可用以下方程描述:2 2.系统传递函数形式模型.系统传递函数形式模型 输出拉氏变换输出拉氏变换 与输入拉氏变换与输入拉氏变换 之比,即为单输入-单输之比,即为单输入-单输出系统的传递函数出系统的传递函数。
传递函数分子、分母多项式系数向量可以分别定义如下传递函数分子、分母多项式系数向量可以分别定义如下 2021/8/649这里分子、分母多项式系数向量中的系数均按这里分子、分母多项式系数向量中的系数均按 s s 的降幂排列用的降幂排列用printsys, tfprintsys, tf来建立传递函数的系统模型,其基本格式为来建立传递函数的系统模型,其基本格式为例,例, 已知系统的传递函数如下,利用已知系统的传递函数如下,利用MATLABMATLAB建立其相应的传递函数建立其相应的传递函数系统模型系统模型运行命令运行命令结果为结果为(注:(注:printsysprintsys只能在命令窗口中显示模型只能在命令窗口中显示模型,不能将模型输入到,不能将模型输入到workspaceworkspace中)中)2021/8/650num=5*[2 0 3];den=conv(conv(conv([1 0 0],[3 1]),conv([1 2],[1 2])),[5 0 3 8]);printsys(num,den,'s');tf(num,den)2021/8/6513 3.系统的零极点(.系统的零极点(ZPKZPK)形式模型)形式模型在在MATLABMATLAB中零极点可以分别定义为中零极点可以分别定义为使用使用zpk( )zpk( )函数建立零极点形式的系统模型,其基本格式为函数建立零极点形式的系统模型,其基本格式为如果已知传递函数,可按以下方法求得如果已知传递函数,可按以下方法求得z z和和p p2021/8/652例:已知系统传递函数如下例:已知系统传递函数如下应用应用MatlabMatlab语言建立系统的语言建立系统的零极点形式零极点形式模型模型。
运行命令运行命令结果为结果为z=[-4];p=[-1 -2 -3];k=5;sys=zpk(z,p,k)2021/8/6534 4.系统的部分分式形式.系统的部分分式形式传递函数也可以表示成为部分分式或传递函数也可以表示成为部分分式或留数留数形式,如下式形式,如下式例,写出以下传递函数的部分分式形式例,写出以下传递函数的部分分式形式运行命令运行命令结果为结果为这表示这表示residue余数余数 2021/8/6545 5.系统的状态空间(.系统的状态空间(state spacestate space)模型)模型在在MATLABMATLAB中建立系统模型的基本格式中建立系统模型的基本格式 2021/8/655例:某线性定常系统的状态空间表达式如下,请输入到例:某线性定常系统的状态空间表达式如下,请输入到MATLABMATLAB的的work spacework space中去运行命令运行命令结果为结果为2021/8/6564.2.2 4.2.2 离散系统数学模型离散系统数学模型离散系统常用的数学模型通常可以用差分方程、脉冲传递函数(或离散系统常用的数学模型通常可以用差分方程、脉冲传递函数(或Z Z传递函数)、状态空间表达式三种形式对系统加以描述。
传递函数)、状态空间表达式三种形式对系统加以描述1 1.系统差分方程形式模型.系统差分方程形式模型2 2.系统的传递函数模型.系统的传递函数模型这里分子、分母多项式系数向量中的系数仍按这里分子、分母多项式系数向量中的系数仍按Z Z的降幂排列的降幂排列 2021/8/657函数函数tf( )tf( )也可建立脉冲传递函数的系统模型,其基本格式为也可建立脉冲传递函数的系统模型,其基本格式为其中,其中,Ts为系统采样周期为系统采样周期 对于离散系统,也可以用对于离散系统,也可以用zpk( )zpk( )函数建立零极点模型,基本格式为函数建立零极点模型,基本格式为3 3.系统的状态空间模型.系统的状态空间模型 在在MATLABMATLAB中建立系统模型的基本格式中建立系统模型的基本格式 printsys(num,den, 'z')2021/8/658例例, , 假设某离散系统的脉冲传递函数为假设某离散系统的脉冲传递函数为采样周期为采样周期为 T=0.1 T=0.1秒,将其输入到秒,将其输入到MATLABMATLAB的的workspaceworkspace中,并且绘制中,并且绘制零、极点分布图。
并且将该离散系统脉冲传递函数模型转换成状态零、极点分布图并且将该离散系统脉冲传递函数模型转换成状态空间表达式空间表达式 再输入再输入输入下列语句输入下列语句 运行结果为运行结果为num=[0.31 0.57 0.38 0.89];den=[1 3.23 3.98 2.22 0.47];Gyu=tf(num,den,0.1)2021/8/659计算机绘制出零极点分布图计算机绘制出零极点分布图pzmap再输入再输入得到得到2021/8/6604.2.3 4.2.3 系统模型参数的获取系统模型参数的获取对于连续系统,调用格式为对于连续系统,调用格式为对于离散系统,调用格式为对于离散系统,调用格式为 ‘V’表示返回的数据行向量,只适用于单输入单输出系统表示返回的数据行向量,只适用于单输入单输出系统2021/8/6614.3 4.3 系统数学模型的转换系统数学模型的转换4.3.1 4.3.1 系统模型向状态方程形式转换系统模型向状态方程形式转换直接利用直接利用MATLABMATLAB函数实现所需要的系统模型向状态方程的转换,基函数实现所需要的系统模型向状态方程的转换,基本格式为本格式为 (注意:在英语中,(注意:在英语中,‘2’‘2’和和‘‘to’’谐音)谐音)【例【例4-24-2】】 已知系统传递函数如下,应用已知系统传递函数如下,应用MATLABMATLAB的函数将其转换为的函数将其转换为状态方程形式的模型。
状态方程形式的模型 可以将任意线性定常系统模型转换为状态方程可以将任意线性定常系统模型转换为状态方程2021/8/662MATLAB求解求解m文件如下:文件如下: 运行结果为运行结果为num=[12 24 0 20];den=[2 4 6 2 2];[A,B,C,D]=tf2ss(num,den)2021/8/6634.3.2 4.3.2 系统模型向传递函数形式转换系统模型向传递函数形式转换1 1.状态空间模型向传递函数形式转换.状态空间模型向传递函数形式转换 MATLAB MATLAB提供了函数提供了函数ss2tf( )ss2tf( )实现将状态空间方程转换为传递函实现将状态空间方程转换为传递函数形式,基本格式为数形式,基本格式为其中,其中,iu用于指定变换所使用的输入量用于指定变换所使用的输入量 还可以采用下面的方式,即还可以采用下面的方式,即2021/8/664【例【例4-34-3】】 某线性定常系统的状态空间表达式如下,求该系统的传某线性定常系统的状态空间表达式如下,求该系统的传递函数编写编写m文件如下:文件如下: 运行结果为运行结果为A=[0 1 0;0 0 1;-10 -17 -8];B=[0;0;1];C=[5 6 1];D=0;[num,den]=ss2tf(A,B,C,D);G=tf(num,den)2021/8/665例,某线性定常系统的状态空间表达式如下,求该系统的传递函数例,某线性定常系统的状态空间表达式如下,求该系统的传递函数矩阵。
矩阵输入并且运行以下程序输入并且运行以下程序计算机输出:计算机输出:2021/8/666计算机输出的计算结果表明,传递函数矩阵为计算机输出的计算结果表明,传递函数矩阵为2021/8/6672 2.零极点增益模型向传递函数形式转换.零极点增益模型向传递函数形式转换其基本格式其基本格式 4.3.3 4.3.3 系统模型向零极点形式转换系统模型向零极点形式转换 MATLAB MATLAB提供了实现系统模型向零极点形式转换的函数,其基本提供了实现系统模型向零极点形式转换的函数,其基本格式为格式为或或2021/8/668【例【例4-44-4】】 对于例对于例4-34-3题中的线性定常系统,将其转换为题中的线性定常系统,将其转换为zpkzpk形式形式 编写编写m m文件如下文件如下运行结果为运行结果为2021/8/669例,某线性定常系统的状态空间表达式如下,将其转换成例,某线性定常系统的状态空间表达式如下,将其转换成ZPKZPK形式形式输入并且运行以下程序输入并且运行以下程序计算机输出:计算机输出:2021/8/670计算机输出的计算结果表明,传递函数矩阵的计算机输出的计算结果表明,传递函数矩阵的ZPKZPK形式为形式为2021/8/6714.3.4 4.3.4 传递函数形式与部分分式形式的转换传递函数形式与部分分式形式的转换MATLABMATLAB提供函数提供函数residue( )residue( )实现极点留数的求取,其基本格式实现极点留数的求取,其基本格式为为【例【例4-54-5】】 某系统的传递函数如下,求它的部分分式形式。
某系统的传递函数如下,求它的部分分式形式编写编写m m文件如下文件如下 运行结果为运行结果为 表示表示 2021/8/672如果此时在命令窗口中输入如果此时在命令窗口中输入 则计算机返回则计算机返回 可见,可见,residue( )residue( )函数,既可以将传递函数形式转换成部分分式形函数,既可以将传递函数形式转换成部分分式形式,也可以将部分分式形式转换成传递函数形式式,也可以将部分分式形式转换成传递函数形式2021/8/6734.3.5 4.3.5 连续和离散系统之间的转换连续和离散系统之间的转换如果对离散化处理结果提出具体的转换方式要求,则可以采用如果对离散化处理结果提出具体的转换方式要求,则可以采用c2dc2d或或c2dmc2dm函数进行,基本格式为函数进行,基本格式为(其中,其中,Gc表示连续系统模型,表示连续系统模型,Ts表示系统采样周期,表示系统采样周期,method指定指定转换方式转换方式zoh”表示采用零阶保持器;表示采用零阶保持器; “foh”表示采用一阶保持器表示采用一阶保持器)【例【例4-64-6】】 某连续系统的状态空间表达式如下,采用零阶保持器将某连续系统的状态空间表达式如下,采用零阶保持器将其离散化,设采样周期为其离散化,设采样周期为0.10.1秒,求离散化的系统方程。
秒,求离散化的系统方程 2021/8/674编写编写m m文件如下文件如下运行结果为运行结果为 计算结果表示离散化后的系统方程为计算结果表示离散化后的系统方程为2021/8/675[Ad,Bd,Cd,Dd] = C2DM(A,B,C,D,Ts,'method')[NUMd,DENd] = C2DM(NUM,DEN,Ts,'method') SYSD = C2D(SYSC,Ts,METHOD)A=[0 1 0;0 0 1;-10 -17 -8];B=[0;0;1];C=[5 6 1];D=0;[Ad,Bd,Cd,Dd]=c2dm(A,B,C,D,0.1)2021/8/676模型转换的函数小结模型转换的函数小结•residueresidue:传递函数模型与部分分式模型互换:传递函数模型与部分分式模型互换:传递函数模型与部分分式模型互换:传递函数模型与部分分式模型互换•ss2tfss2tf:::: 状态空间模型转换为传递函数模型状态空间模型转换为传递函数模型状态空间模型转换为传递函数模型状态空间模型转换为传递函数模型•ss2zpss2zp:::: 状态空间模型转换为零极点增益模型状态空间模型转换为零极点增益模型状态空间模型转换为零极点增益模型状态空间模型转换为零极点增益模型•tf2sstf2ss:::: 传递函数模型转换为状态空间模型传递函数模型转换为状态空间模型传递函数模型转换为状态空间模型传递函数模型转换为状态空间模型•tf2zptf2zp:::: 传递函数模型转换为零极点增益模型传递函数模型转换为零极点增益模型传递函数模型转换为零极点增益模型传递函数模型转换为零极点增益模型•zp2sszp2ss:::: 零极点增益模型转换为状态空间模型零极点增益模型转换为状态空间模型零极点增益模型转换为状态空间模型零极点增益模型转换为状态空间模型•zp2tfzp2tf:::: 零极点增益模型转换为传递函数模型零极点增益模型转换为传递函数模型零极点增益模型转换为传递函数模型零极点增益模型转换为传递函数模型2021/8/677状态空间SS传递函数tf零极点ZP极点留数ss2tftf2sszp2ssss2zpzp2tftf2zpresiduess2ss2021/8/678SYS = SS2SS(SYS,T) performs the similarity transformation z = Tx on the state vector x of the state-space model SYS. The resulting state-space model is described by: . -1 z = [TAT ] z + [TB] u -1 y = [CT ] z + D u or, in the descriptor case, -1 . -1 [TET ] z = [TAT ] z + [TB] u -1 y = [CT ] z + D u . SS2SS is applicable to both continuous- and discrete-time models. For LTI arrays SYS, the transformation T is performed on each individual model in the array.2021/8/6794.4 4.4 控制系统模型的连接控制系统模型的连接 系统模型连接的方式主要有串联、并联、反馈等形式。
系统模型连接的方式主要有串联、并联、反馈等形式MATLABMATLAB提供了模型连接函数提供了模型连接函数4.4.1 4.4.1 模型串联模型串联对于对于SISOSISO系统,其基本格式为系统,其基本格式为对于对于MIMOMIMO系统,其基本格式为系统,其基本格式为4.4.2 4.4.2 模型并联模型并联对于对于SISOSISO系统,其基本格式为系统,其基本格式为对于对于MIMOMIMO系统,其基本格式为系统,其基本格式为in1,in2指定了相连接的输入端指定了相连接的输入端out1,out2指定了指定了进行信号相加的输出端进行信号相加的输出端2021/8/6802021/8/6812021/8/682DenosExampleConsider a state-space system sys1 with five inputs and four outputs and another system sys2 with two inputs and three outputs. Connect the two systems in series by connecting outputs 2 and 4 of sys1 with inputs 1 and 2 of sys2. outputs1 = [2 4];inputs2 = [1 2];sys = series(sys1,sys2,outputs1,inputs2)2021/8/6834.4.3 4.4.3 反馈连接反馈连接对于对于SISOSISO系统,其基本格式为系统,其基本格式为其中,其中,signsign缺省时即为负反馈,缺省时即为负反馈,sign=1sign=1时为正反馈。
时为正反馈对于对于MIMOMIMO系统,其基本格式为系统,其基本格式为其中,其中,feedin为为sys1 1的输入向量,用来指定的输入向量,用来指定sys1 1的哪些输入与反馈环的哪些输入与反馈环节相连接;节相连接;feedout为为sys1 1的输出向量,用来指定的输出向量,用来指定sys1 1的哪些输出端用的哪些输出端用于反馈于反馈2021/8/6842021/8/685【例【例4-74-7】】 已知系统如图所示,利用已知系统如图所示,利用MATLABMATLAB求出系统的状态空间表求出系统的状态空间表达式 其中其中 sys1: sys1: ,, ;;sys2: sys2: 编写编写m m文件如下文件如下 2021/8/686计算机的运行结果为计算机的运行结果为表示该反馈系统的状态空间表达式为表示该反馈系统的状态空间表达式为 2021/8/6874.5 4.5 系统模型的实现系统模型的实现 根据状态空间表达形式不同,系统状态空间实现可分为:根据状态空间表达形式不同,系统状态空间实现可分为:能控标准型实现,能观测标准型实现,对角线标准型实现,能控标准型实现,能观测标准型实现,对角线标准型实现,约旦标准型实现。
约旦标准型实现 设系统的微分方程为设系统的微分方程为设状态变量为设状态变量为写成状态空间表达式形式为写成状态空间表达式形式为能控标准型能控标准型2021/8/688如果系统微分方程为如果系统微分方程为两边进行拉氏变换,得到传递函数两边进行拉氏变换,得到传递函数引入辅助变量引入辅助变量 z z以及以及返回到微分方程形式:返回到微分方程形式:2021/8/689选择状态变量如下:选择状态变量如下:┆┆写成矩阵形式写成矩阵形式2021/8/690【例【例4-84-8】】 已知系统的状态空间表达式如下,已知系统的状态空间表达式如下,求线性变换,将其变求线性变换,将其变换成能控标准形换成能控标准形编写并运行以下编写并运行以下m m文件文件运行结果为运行结果为2021/8/691计算变换矩阵计算变换矩阵输入以下语句输入以下语句计算结果为计算结果为计算出能控标准形,输入以下语句计算出能控标准形,输入以下语句计算结果为计算结果为2021/8/692表明经过线性变换以后的系统方程为表明经过线性变换以后的系统方程为4.5.2 4.5.2 能观测标准型能观测标准型能控标准型的对偶系统就是能观标准型能控标准型的对偶系统就是能观标准型2021/8/6934.5.3 4.5.3 对角线标准型对角线标准型令状态变量令状态变量则则2021/8/6944.5.4 4.5.4 标准型的实现标准型的实现MATLABMATLAB中提供函数中提供函数canoncanon生成标准型状态模型,基本格式为生成标准型状态模型,基本格式为其中,其中,syssys表示原系统状态方程模型,字串表示原系统状态方程模型,字串typetype为标准类型选项,为标准类型选项, ’modal’’modal’为对角标准型实现,为对角标准型实现, 【例【例4-94-9】】 已知系统传递函数如下,用不同状态空间实现函数进行已知系统传递函数如下,用不同状态空间实现函数进行转换。
转换MATLABMATLAB求解求解m m文件如下文件如下 2021/8/695运行该运行该m m文件后,对于同一传递函数的系统得出以下文件后,对于同一传递函数的系统得出以下4 4种状态空间表种状态空间表达式达式G1:G2:G3:G4:2021/8/696。






![河南新冠肺炎文件-豫建科[2020]63号+豫建科〔2019〕282号](http://img.jinchutou.com/static_www/Images/s.gif)





