4机电系统动态性能的计算机仿真_第1页
4机电系统动态性能的计算机仿真_第2页
4机电系统动态性能的计算机仿真_第3页
4机电系统动态性能的计算机仿真_第4页
4机电系统动态性能的计算机仿真_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图4-10系统阶跃响应4.5Matlab中的系统仿真工具SIMULINK应用4.5.1Simulink应用简介Simulink是MATLAB下的面向结构图方式的仿真环境,对于结构复杂的控制系统,要快速地建立系统模型是较为困难的,Mathworks公司所提供的这种采用图形化方式的对系统建模和仿真的工具为用户带来了极大的方便。Simulink与用户交互接口是基于Windows的图形编程方法,因此非常易于为用户所接受,使用十分灵活方便。特别是它的S-Function使其更增强了功能扩展能力。目前Simulink作为MATLAB的重要组成部分,已经成为仿真研究的重要工具。下面将简要介绍有关Simulink的基本应用。在进入MATLAB后,键人Simulink命令,就可以打开一个名为Simulink的模型库窗口,如图4-11所示。图4-11图4-11Simulin模型库窗口图4-12信号源Source库图4-13输出方式(Sinks)库Simulink模型库包含功能齐全的子模型库:Sources(信号源库)、Sinks输出方式库)、Discrete(离散模型库)、Linear(线性环节库)、Nonlinear(非线性环节库)、Connections(连接及接口库)、Blocksetsandtoolboxes(模块建立和工具箱库)和Demos(示例库)。每个子模型库包含很多的功能模块,双击这些模型库即可打开它们,图4-12、图4-13、图4-14、图4-15分别给出了双击打开的信号源库、输出方式库、线性环节库以及连接模块库等。每个子模块都可以从相应的库被鼠标拖(即复制)到用户建立的模型窗口中。在用户窗口内,可以用鼠标对各个模块进行连接,并相应设置子模块参数、仿真算法参数,以便进行仿真。设计好的系统模型应加以存盘,在MATLAB5.x中Simulink的文件名以.mdl作为后缀,这一点是与MATLAB4.x不同的。为了说明Simulink的使用,下面以简单示例介绍在Simulink环境中建立系统模型以及对其进行仿真分析的方法。例4-6已知系统开环传递函数为试分析闭环系统的阶跃响应。解首先在Simulink的Library窗口中的File中选择New,打开一个新工作平台,然后分别在信号源库、输出方式库以及线性环节库中找到Step、Scope、TransferFun以及Sum各功能块,将其拖至工作平台并按要求加以连接。在对相关参数进行正确设置后,即可启动仿真命令,如图4-16所示,从而自动得到由图4-17给出的系统仿真结果。有关Simulink的详细应用请参阅Mathworks的simulink使用手册。图4-14线性环节模块(Linear)库图4-15连接及接口模块(Connection)库图4-16在Simulink中建立仿真系统图4-17Simulink仿真结果4.5.2S-Function(S函数)应用前面已经介绍过Simulink是一类面向结构图的仿真环境,然而由于Simulink提供了S-Function(S函数)的功能,从而极大地提高和丰富了Simulink对系统进行分析与研究的能力。S-Function通过MATLAB语言进行编程与Simulink中的S-Function功能模块有机地结合在一起,实现了用户所需的各种运算和分析功能,因此说S-Function是Simulink中极为重要的一部分内容。S-Function的使用必须严格按照所规定的格式加以进行,S-Function的运行走向是由Flag标志加以控制的,其实现的功能主要由sys参数及其相关的功能语句块所决定。在高版本(5.x)的MATLAN中,用户可以利用模板程序进行编程,保留所需功能,删掉多余的内容,从而简化了编程工作量,保证了程序编制质量,S-Function的模版程序可以在Blocks目录中找到。在S-Function中根据Flag提供的标志,执行6种不同的任务(case0,case1,case2,case3,case4与case9),其中最为重要的是下述三种:Case0,[sys,x0,str,ts]=mdllnitializeSizes;easel,sys=mdlDerivatives(t,x,u);Case3,sys=mdloutputs(t,x,u);它们分别为S-Function提供进行结构初始化设置、状态微分和状态输出功能。因此,欲灵活地使用S-Function,就必须首先掌握它们的应用。在mdllnitializeSizes的返回变量中sys是根据Flag的标志运算得到的解,x0为初始状态,str对于M类文件设置为空阵(S-Function也可由其他类文件构成),ts为列向量,定义了取样时间与偏移量。下面通过一个示例对S-Function的具体应用加以说明例4-6已知系统状态方程的系数阵为试应用S-Function求取系统的阶跃响应。解:应用S-Function一般可分为三步进行。①在Simulink窗口构造所需结构图,其中必须包括S-Function功能块。②根据用户的需要编写S-Function程序,这是最为重要的一步,当然可以借助模版程序加以进行。③编写相关的主运行程序。图4-18系统结构图首先建立结构图,如图4-18所示。在结构图中S-Function模块是关键,该模块名应与所编制的S-function程序名相同;ToWorkspace模块将计算数据写入工作空间;Fcn模块为自定义函数模块,用户可根据需要自行定义。然后可利用模版根据要求编制如下相应程序。S-function程序:ssq.mfunction[sys,x0,str,ts]=ssq(t,x,u,flag)A=[-1819-24;19-2120;44-24-36];B=[0ll」’;C=[102];switchflag,case0,[sys,x0,str,ts]=mdlInitializeSizes(A,B,C);case1,sys=mdlDerivatives(t,x、u,A,B,C);case2,sys=[];case3,sys=mdlOutputs(t,x,u,A,B,C);sys=simsizes(sizes);x0=[000];str=[];ts=[00];functionsys=mdlDerivatives(t,x,u,A,B,C)ys=A*x+B*u;functionsys=mdlUpdate(t,x,u)sys=[];functioncase4,sys=[];case9,sys=[];otherwiseerror(['Unhandledflag=',num2str(flag)]);endfunction[sys,x0,str,ts]=mdlInitializeSizes(A,B,C)sizes=simsizes;sizes.NumContstates=3;sizes.NumDiscStates=0;sizes.NumOutputs=1;sizes.NumInputs=1;sizes.DirFeedthrough=1;sizes.NumSampleTimes=1;%atleastonesampletimeisneededsys=mdlOuputs(t,x,u,A,B,C)sys=C*x;functionsys=mdlGetTimeOfNextVarHit(t,x,u)sampleTime=1;sys=t+sampleTime;functionsys=mdlTerminate(t,x,u)sys=[];无关函数一律赋空阵,函数是根据用户的具体情况加以设置的,因为本系统有三个状态变量,所以对NumContStates设置3;又因为是单输入单输出系统,所以NumOutPuts=1,NumInputs=1。最后编制主程序,在这里主程序的功能就是运行该S-Function并将结果绘制出来。主程序为sim('sspaceq')plot(t,simout)运行主程序后,图4-17示出了系统运行结果。这里仅给出了一个简单的示例说明S-Function的应用,显然这种功能可以推广到各种复杂的系统,请读者自行加以尝试。表4-1至表4-7分别给出了Simulink的基本模块库及其相应的功能说明。无关函数一律赋空阵,函数是根据用户的具体情况加以设置的,因为本系统有三个状态变量,所以对NumContStates设置3;又因为是单输入单输出系统,所以NumOutPuts=1,NumInputs=1。最后编制主程序,在这里主程序的功能就是运行该S-Function并将结果绘制出来。主程序为sim('sspaceq')plot(t,simout)运行主程序后,图4-17示出了系统运行结果。这里仅给出了一个简单的示例说明S-Function的应用,显然这种功能可以推广到各种复杂的系统,请读者自行加以尝试。表4-1至表4-7分别给出了Simulink的基本模块库及其相应的功能说明。图4-19利用S-Function的仿真结果表4-1信号源库模块名功能说明模块名功能说明Constant常量ChirpSignal脉冲信号SignalGenarator信号发生器Clock时钟信号Step阶跃信号DigitalClock数字时钟信号Ramp斜坡信号FromFile来源于文件数据SineWave正弦信号FromWorkspace来源于工作空间RepeatingSequence频率信号RandomNumber随机数DiscretePluseGenerator离散脉冲信号源UniformRandomNumber均匀分布随机数PluseGenerator脉冲信号源Band-LimitedWhiteNoise有界白噪音表4-2输出方式库模块名功能说明模块名功能说明Scope示波器ToFile存到文件XYGraphXY图形窗口ToWorkspace记录到工作空间Display数字显示StopSimulation停止仿真表4-3离散模型库模块名功能说明模块名功能说明UnitDelay单位延迟DiscreteState-Space离散状态方程DiscreteTimeIntegrator离散时间积分器DiscreteFilter滤波器Zero-orderHold零阶保持器DiscreteTransterFcn离散传递函数First-orderHold一阶保持器DiscreteZero-Pole离散零极点方程表4-4线性环节模型库模块名功能说明模块名功能说明Gain增益Derivative微分器Sum加法器DotProduct点乘Integrator积分器MrtrixGain增益矩阵State-Space状态方程SliderGain可变增益Zero-Pole零极点方程表4-5连接模型库模块名功能说明模块名功能说明In输入DataStoreMemory数据存储单元Out输出DataStoreWrite数据存储写Mux综合Enable使能Denux综合Trigger触发From从变量读取Subsystem子系统Goto写到变量Selector选择器DataStoreRead数据存储器表4-6模块建立和工具箱模块库模块名功能说明模块名功能说明ControlsToolbox控制工具箱NNETBlocks神经网络模块DSPBloxkset信号处理模块Stat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论