您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 第七章Simulink仿真案例
第七章Simulink仿真自动化与电气工程学院许春磊第七章Simulink仿真•7.1Simulink基础•7.2Simulink模型操作和仿真系统设置•7.3系统建模实例•7.4仿真系统中的子系统•Simulink是MATLAB软件的一个软件包,能够对动力学系统进行建模、仿真以及各种分析。Simulink仿真模拟支持完全的图形化界面。•Simulink提供了图形用户界面,使得构建模型变的更直观、简单,只需要鼠标的点击与拖放。Simulink模块是分层次结构的,为用户寻找需要的模块提供了方便,提高了工作效率。所以Simulink是MATLAB软件一个非常重要的组成部分。7.1Simulink基础•1.启动Simulink的两种方法:•a.通过点击工具栏“”图标启动;•b.在MATLAB命令窗口输入simulink然后点击回车键启动。•打开的SimulinkLibraryBrowser2.Simulink模块库浏览器名称描述CommonlyUsedBlocks常用模块库Continuous连续信号模块库Discontinuities不连续信号模块库Discrete离散信号模块库LogicandBitOperations逻辑和位操作模块库LookupTables查表模块库MathOperations数学运算模块库ModelVerification模型确认模块库Model-WideUtilities模型工具模块库Ports&Subsystems端口和子系统模块库SignalAttributes信号贡献模块库SignalRouting信号传输模块库Sinks信号接收器模块库Sources信号源模块库User-DefinedFunctions用户定义函数模块库AdditionalMath&Discrete附加数学和离散模块库3.CommonlyUsedBlocks模块库常用模块库中模块模块名称描述BusCreator母线产生器BusSelector母线选择器Constant常数DataTypeConversion数据类型转换Delay延迟Demux拆分信号Discrete-TimeIntegrator离散时间积分器Gain增益Ground接地In1输入Integrator积分器LogicalOperator逻辑算符Mux合并信号Out1输出Product相乘RelationalOperator关系算符Saturation饱和度Scope示波器Subsystem子系统Sum求和Switch开关Terminator终端VectorConcatenate矢量连接4.Simulink模型窗口•模型窗口含有菜单栏、工具栏、编辑框和状态栏等部分5.Simulink建模仿真示例•例7.1用Simulink模拟正弦信号产生与输出。•创建Simulink的步骤:•(1)创建新模型界面•(2)添加正弦信号产生模块和波形显示模块•(3)模块属性设置•(4)运行仿真系统正弦信号模块属性设定示波器属性设置窗口系统运行结果练一练•如何产生余弦信号?•如何产生振幅为3的余弦信号?•如何产生振幅为3、周期为4的余弦信号?例7.2用Simulink模拟chirp信号和正弦信号叠加的信号输出。SineWave模块属性设置ChirpSignal模块属性设置属性设置窗口示波器属性设置示波器结果图练一练•仿真正弦信号与chirp信号相乘的波形图,示波器同时观察三个波形。•例7.3现有一待显示图形函数为•现需要在同一示波器中分别显示,和曲线。212()2*sinxfxxesinx212xe()fx作业:•请借助Simulink工具完成将摄氏度转换为华氏度,公式如下:9325fcTT7.2Simulink模型操作和仿真系统设置•7.2.1Simulink模型操作•操作模块•操作连线•7.2.2Simulink仿真系统设置•例7.4借助积分器求微分方程•其中为单位阶跃函数。0.20.40.2()xxxut()ut0.2()0.40.2xutxx•方法1:•解:将微分方程改写为7.3系统建模实例0.2()0.40.2xutxx图形窗口属性设置最终仿真结果•%EXAMP070031•%(从工作空间加载数据).•t=simout.x.Time(:);•%输入信号标线为x•x=simout.x.Data(:);•%(在变量x中寻找最大值).•[xm,km]=max(x);•%(绘制最终结果图形).•plot(t,x)•holdon•%(标注x的最大值位置).•plot(t(km),xm,'ro','markersize',15,'linewidth',2);•holdoff•gridon•title('仿真结果')方法2:•解:传输函数20.20.20.4ss•方法3:状态空间模型•G=tf([0.2],[10.20.4])•G1=ss(G)试一试•借助Simulink仿真求解微分方程•初始条件为210(1)10sin(2)xxxxt(0)2,(0)2xx,。210sin(2)10(1)xtxxx•例7.5用Simulink创建系统,求解非线性微分方程•其初始值为,绘制函数的波形。2(32)44xxxxx(0)2,(0)0xx例7.6力-质量系统,要拉动一个箱子(拉力f=1N),箱子质量为M(1kg),箱子与地面存在摩擦力[(b=0.4N(/m/s)],其大小与车子的速度成正比。其运动方程式为xMxbf拉力作用时间为2s,建构的模型为例7.7下图所示简单的单摆系统,假设杆的长度为L,且质量不计,钢球的质量为m.单摆的运动可以以线性的微分方程式来近似,但事实上系统的行为是非线性的,而且存在粘滞阻尼,假设粘滞阻尼系数为bkg/ms-1.选取b=0.03,g=9.8,L=0.8,m=0.3,所构建的模型mLbLmgsin单摆系统的运动方程式为24.0024.0sin94.21.0sin25.12Integrator初始状态为0Integrator1初始状态为1•创建Simulink仿真系统模型步骤如下:•(1)将Sources模块库中SignalGenerator模块拖入模型窗口;将Continuous模块库中State-Space模块拖入模型窗口;将Sinks模块库中Scope模块拖入模型窗口。•(2)连线,设置模块属性。SignalGenerator模块,Waveform设置为square,Amplitude设置为25;State-Space模块,ParametersA设置为[-1/0.02,-0.3/0.02;0.3/0.0001,-0.000005/0.0001],B设置为[1/0.02;0],C设置为[0,1],D设置为0,Initialconditions设置为[1,10]。结果如图7.40所示。•(3)将上面仿真系统模型保存为EXAMP07006,Stoptime设置为2秒。作业:•请借助Simulink工具完成下面动力学系统仿真411()[cos(2)cos(6)cos(10)]925xtttt7.4仿真系统中的子系统•7.4.1创建子系统•当用户创建一些模块能够实现某些特定功能,想把这些模块变成子系统。操作步骤如下:•(1)将需要放到子系统中的所有模块都选中;•(2)选择菜单/Diagram/Subsystem&modelReferecence/CreateSubsystemfromSelection命令,或者单击鼠标右键,在弹出菜单中选择CreateSubsystemfromSelection命令,子系统建立。•通过Subsystem模块创建子系统,可以按照下面步骤:•(1)打开Simulink模块库,将Ports&Sybsystems模块库中Subsystem模块拖入模型窗口;•(2)双击Subsystem模块,打开Subsystem窗口;•(3)把要组合的模块拖入Subsystem窗口内,然后在窗口中加入Inport模块表示从子系统外部到内部的输入,加入Output模块表示从子系统内部到外部的输出,把这些模块按顺序连接起来,子系统建立。•例7.9PID控制器是在自动控制中经常使用的模块,在工程应用中其标准的数字模型为•其中采用了一阶环节来近似纯微分动作,为保证有良好的微分近似的效果,一般选。试建立PID控制器的模型并建立子系统。1()(1)()1/dpidTsUsKEsTsTsN10N•借助Simulink创建PID控制器模型步骤如下:•(1)将Sources模块库中In1模块拖入模型窗口;将Sinks模块库中Out1模块拖入模型窗口;将MathOperations模块库中Grain模块和Add模块拖入模型窗口;将Continuous模块库中2个TransferFcn模块拖入模型窗口。•(2)连线,设置各个模块属性。Gain模块,Gain属性设置为Kp;TransferFcn模块,Parameters中Denominatorcoefficients设置为[Ti0];TransferFcn1模块,Parameters中Numeratorcoefficients设置为[Td0],Denominatorcoefficients设置为[Td/N1];Add模块,Listofsigns设置为+++。•创建子系统有两种方法,方法一步骤如下:•(1)按住shift键,通过鼠标选中Gain模块、TransferFcn模块、TransferFcn1模块和Add模块;•(2)单击鼠标右键打开悬挂菜单,选中Createsubsystemfromselection命令,子系统建立;也可以借助快捷键ctrl+G创建子系统。•方法二步骤如下:•(1)将Ports&Subsystems模块库中拖入建模窗口;•(2)双击Subsystem模块,打开子系统窗口;•(3)将MathOperations模块库中Grain模块和Add模块拖入模型窗口;将Continuous模块库中2个TransferFcn模块拖入模型窗口;•(4)连线,设置各个模块属性。Gain模块,Gain属性设置为Kp;TransferFcn模块,Parameters中Denominatorcoefficients设置为[Ti0];TransferFcn1模块,Parameters中Numeratorcoefficients设置为[Td0],Denominatorcoefficients设置为[Td/N1];Add模块,Listofsigns设置为+++。子系统建立。7.4.2子系统的条件执行•1.使能子系统•例7.10利用使能子系统构成一个正弦半波整流器•创建子系统步骤如下:•(1)打开SimulinkLibraryBrowser窗口,创建一仿真模型;•(2)将Sources模块库中SineWave模块拖入模型窗口;将Ports&Subsystems中的EnabledSubsystem模块拖入模型窗口;将Sinks模块库中Scope模块拖入模型窗口;•(3)连线,设置模块属性。Scope模块,Numberofaxes设置为2。设置Stoptime为20秒。2.触发子系统•触发事件由系统内触发模块对话框定义,有4种触发事件形式可以选择:•(1)rising:触发信号以增长的方式穿越0时,子系统开始接收输入值;•(2)falling:触发信号以减小的方式穿越0时,子系统开始接收输入值;•(3)either:每当触发信号穿越0时,子系统开始接收输入值;•(4)function-call:这种触发方式必须和S函数配合使用。•Trigger模块参数设置对话框中,有Showoutputport复选框,表示是否为Trigger模块添加一个输出端口,用来输出控制信号。选中后,下面参数Outputdatatype被激活,在这里的输出控制信号的
本文标题:第七章Simulink仿真案例
链接地址:https://www.777doc.com/doc-3387375 .html