1第五章Simulink的控制系统建模与仿真本节基于MATLAB7.1版本,Simulink6.3版本详细介绍Simulink在控制系统中的建模与仿真方法。25.1Simulink模块库图5.1.1Simulink启动界面3常用模块组(CommonlyUsedBlocks)图5.1.2常用模块组4表5.1.1常用模块组模块介绍及说明模块名称模块形状功能说明常数模块Constant恒值输出;数值可设置。分路器模块Demux将一路信号分解成多路信号。混路器模块Mux将几路信号按向量形式混合成一路信号。增益模块Gain将模块的输入信号乘以设定的增益值。输入端口模块In1标准输入端口;生成子系统或作为外部输入的输入端。5输出端口模块ut1标准输出端口;生成子系统或作为模型的输出端口。示波器模块Scope显示实时信号。求和模块Sum实现代数求和;与ADD模块功能相同。饱和模块Saturation实现饱和特性;可设置线性段宽度。积分模块Integrator输入输出信号的连续时间积分;可设置输入信号的初始值。子系统模块Subsystems子系统模块。单位延迟模块UnitDelay将信号延迟一个时间单位;可设置初始条件6连续模块组(Continuous)7连续模块组的模块及功能介绍名称形状功能说明积分模块Integrator计算积分。微分模块Derivative计算微分。状态空间模块State-Space创建状态空间模型。传递函数模块TransferFcn创建传递函数模型。零极点增益模块Zero-Pole创建零极点增益模型。时间延迟模块TransportDelay创建延迟环节模型;输入、输出信号在给定时间的延迟。可变时间延迟模块VariableTimeDelay输入、输出信号的可变时间延迟。变量延迟模块VariableTransportDelay与可变时间延迟模块相似。8非连续模块组(Discontinuities)9非连续模块组的模块及功能介绍名称形状功能说明饱和模块Saturation实现饱和特征。死区模块DeadZone实现死区非线性特征。动态死区模块DeadZoneDynamic实现动态死区。磁滞回环模块Backlash实现磁滞回环。滞环继电模块Relay实现有滞环的继电特性。量化模块Quantizer对输入信号进行数字化处理。库仑与粘性摩擦模块Coulomb&ViscousFriction实现库仑摩擦加粘性摩擦。10离散模块组(Discrete)11离散模块组的模块及功能介绍名称形状功能介绍单位延迟模块UnitDelay实现Z域单位延迟,等同于离散时间算子z-1。离散时间积分模块Discrete-TimeIntegrator实现离散时间变量积分。离散传递函数模块DiscreteTransferFcn实现脉冲传递函数模型。离散滤波器模块DiscreteFilter实现数字滤波器的数学模型。离散零极点增益模块DiscreteZero-Pole实现零极点增益形式脉冲传递函数模型。离散状态空间模块DiscreteState-Space实现离散状态空间模型。一阶保持器模块First-OrderHold实现一阶保持器。零阶保持器模块Zero-OlderHold实现零阶保持器。12数学运算模块组(MathOperations)13数学运算模块组的模块及功能介绍名称形状功能介绍求和模块Sum实现代数求和;和ADD模块功能相同。相减模块Subtract对输入信号进行减运算。增益模块Gain将输入信号值乘以该增益值输出。叉乘模块Product实现乘法运算。点乘模块DotProduct对两个输入矢量进行点积运算。符号函数模块Sign实现符号函数运算。数学函数模块MathFunction实现数学函数运算。正弦波模块SineWaveFunction正弦波输出。实部和虚部转换为复数模块Real-ImagtoComplex将实部和虚部的输入转换为复数。幅相转换成复数模块Magnitude-AngletoComplex将幅值和相角输入转换为复数。14信源模块组(Sources)15信源模块组的模块及功能介绍名称形状功能介绍输入端口模块In1标准输入端口。接地模块Ground将未连接的输入端接地,输出为零从文件中输入数据模块FromFile从MATLAB文件中获取数据从工作空间输入数据模块FromWorkspace从MATLAB工作空间中获取数据常数模块Constant恒值输出。信号发生器模块SignalGenerator周期信号输出。16脉冲信号发生器PulseGenerator脉冲信号输出。斜坡信号模块Ramp斜坡信号输出。正弦波信号模块SineWave正弦波信号输出。阶跃信号模块Step阶跃信号输出。随机信号模块RandomNumber随机数输出。时钟模块Clock连续仿真时钟;在每一仿真步输出当前仿真时间。数字时钟模块DigitalClock离散仿真时钟;在指定的采样间隔内输出仿真时间。17信宿模块组(Sinks)18信宿模块组的模块及功能介绍名称形状功能介绍输出端口模块Out1标准输出端口。示波器模块Scope示波器。X-Y示波器模块XYGraph显示X-Y图形。显示数据模块Display数值显示。终止仿真模块StopSimulation终止仿真。195.2Simulink基本操作•利用Simulink进行建模和仿真,首先应该熟悉Simulink的一些基本操作,包括对Simulink模块的操作,对模块间信号线的操作,以及最后模块的仿真操作等。•Simulink的建模和仿真是在其模型窗口内操作的。用户可以选择菜单“File|new”,选择“Model”打开模型窗口20•模块操作最重要的是模块参数的设置。用鼠标双击模块即可打开其参数设置对话框,然后可以通过改变对话框提供的对象进行参数的设置。•信号线操作和模块操作类似,信号线的移动可以用鼠标左键按住拖拉,信号线的删除可以按下“Delete”键。•仿真操作Simulink模型建立完成后,就可以对其进行仿真运行。用鼠标单击Simulink模型窗口工具栏内“仿真启动或继续”图标,即可启动仿真;当仿真开始时图标就变成“暂停仿真”图标。仿真过程结束后,图标又变回。215.3Simulink建模与仿真•Simulink提供了友好的图形用户界面,模型又模块组成的框图表示,用户通过单击和拖动鼠标的动作即可完成系统的建模,如同使用笔来画图一样简单。而且Simulink支持线性和非线性系统、连续和离散时间系统以及混合系统的建模与仿真。22线性连续时间系统的建模与仿真•【例5.3.1】控制系统结构图如下图所示,试建立Simulink模型并显示在单位阶跃信号输入下的仿真结果。()Cs()Rs0.1s10(1)ss23•【例5.3.2】考虑下图所示的阻尼二阶系统。图中,小车所受外力为,小车的位移为。设小车质量,弹簧的弹性系数,阻尼系数。并设系统的初始状态为静止在平衡点处,即,,外力函数为幅值恒等于1的阶跃量。试仿真其运动。24010000103201xxu试求系统单位阶跃响应。100yx•【例5.3.3】已知控制系统的状态空间方程为25非线性连续时间系统的建模与仿真•在工程实际中,严格意义上的线性系统很少存在,大量的系统或器件都是非线性的。非线性系统的Simulink建模方法很灵活。应用Simulink构建非线性连续时间系统的仿真模型时,根据非线性元件参数的取值,既可以使用典型非线性模块直接实现,也可通过对典型非线性模块进行适当组合实现。26•【例5.3.4】设具有饱和非线性特性的控制系统如图5.3.14所示,通过仿真研究系统的运动。10(1)ssec0r2227线性离散时间系统的建模与仿真•离散系统包括离散时间系统和连续-离散系统混合系统。离散时间系统既可以用差分方程描述,也可以用脉冲传递函数描述。而连续-离散系统混合系统则可用微分-差分方程,或传递函数-脉冲传递函数描述。28•【例5.3.5】如图5.3.18所示的离散系统,采样周期=1s,为零阶保持器,而,求系统的单位阶跃响应。()Rs()Cs()Gsh()GsTs()Hs)(sGhsT)5(10)(sssG