版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
控制系统综合实践ComprehensivePractiseonControlSystem
主讲人:谢海斌讲师单位:机电工程与自动化学院自动化研究所电话:76342-806Email:
hbxie@
hbxie@gfkd.mtn《控制系统综合实践》第一部分公共综合实践模块课时:15学时主要内容1基于Simulink的动态系统建模与仿真 (讲授3学时)2基于dSPACE的控制系统快速原型设计 (讲授3学时)3基于dSPACE的电机控制系统设计 (实验9学时)参考教材薛定宇.《控制系统计算机辅助设计—MATLAB
语言与应用》(第2版),清华大学出版社,2006.黄永安,马路,刘慧敏.MATLAB7.0/Simulink6.0建模仿真开发与高级工程应用,清华大学出版社,2005.基于dSPACE的电机控制系统设计(9学时)时间:2010年10月18、19、20、21、23 2010年10月25、26、27、28、30地点:03教学楼4楼现代控制技术实验室分组:8人一组,共分10组(共80人)形式:
1、每组8人独占一天,每人1套设备,上、下、晚共9学时2、建议不同组的组员自由组合成一个2人合作组,这样每个人实际上机时间可扩展为18学时。
实验安排被控对象:步进电机、增量编码器、旋转电位计实验内容:
1、熟悉步进电机与编码器的工作原理,使用说明以及电气特性 2、以步进电机为被控对象,设计电机闭环控制系统 3、熟悉Simulink建模与仿真方法 4、dSPACE软硬件环境熟悉及设计流程实践 (3学时) 5、电机系统建模、控制器设计与离线仿真 (3学时) 6、电机控制系统快速原型设计与实时控制 (3学时)实验安排引子讨论:如何完成一个完整的控制系统设计与实现任务?第一步:问题描述与需求分析第二步:被控对象建模与特性分析第三步:控制器设计、仿真验证与优化第四步:控制算法软件开发与控制器硬件设计第五步:软、硬件联调与验证迭代纸上谈兵实战控制对象理论模型的建立初步控制系统设计通过离线仿真对控制系统测试生成模型实时代码通过ControlDesk采集数据及观测、修改变量定义模型I/O基于dSPACE的控制系统快速原型设计引子实现了仿真模型与实际系统的无缝集成;可靠的自动代码生成与优化能力,省却了复杂控制算法的软件代码编写;高可靠的硬件板卡集成了丰富的硬件I/O资源和高速处理器,可以满足一般被控对象的控制需求,在控制系统设计之初省却了复杂硬件电路的设计;高速的内部总线和处理器,使控制周期可达到ms级,能够满足一般被控对象的实时性控制需求;在同一技术框架下可以完成系统描述、动态系统建模、控制器设计与优化、离线仿真、实时控制、目标代码生成的整个开发流程。引子第一讲基于Simulink的动态系统建模与仿真本讲内容:
Simulink简介Simulink建模的基础知识Simulink建模与仿真动态系统建模与仿真实例子系统与模块封装技术Simulink自定义功能模块《控制系统综合实践》1.
Simulink简介Simulink是MATLAB4.0版本(1993年)后推出的用以实现动态系统图形化建模与仿真的软件包,并随着MATLAB版本的升级而不断更新。目前MATLAB的最新版本为2010a,Simulink的最新版本为V7.5(R2010a)。图形化建模是指Simulink提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入、输出及功能,而不必考察其内部实现方式,通过对这些基本模块的调用,再将它们连接起来就可以构成所需的系统模型(*.mdl),进而进行仿真与分析。用户利用图形化建模方式可以更方便、更直观的实现动态系统的建模与仿真,可以把更多的精力投入到系统模型构建与算法研究,而非编程上。一、什么是Simulink1.
Simulink简介二、MATLAB产品体系二、MATLAB产品体系(续)1.Simulink简介基本数学计算、编程环境(M语言)、数据可视化、Guide二、MATLAB产品体系(续)1.Simulink简介复杂动态系统建模、仿真、分析的可视化开发平台基于有限状态机理论对事件驱动模型进行建模与仿真的可视化开发环境1.
Simulink简介三、控制相关的工具箱(Toolbox)与模块集(Blocksets)
ControlSystemToolboxFuzzyLogicToolboxNeuralNetworkToolboxModelPredictiveControlToolboxRobustControlToolboxSystemIdentificationToolbox
SimulinkControlDesign
SimulinkDesignOptimization
Stateflow…
1.
Simulink简介四、一个简单的控制系统设计例子(演示)被控对象:控制器:建模仿真闭环系统阶跃响应?第一讲基于Simulink的动态系统建模与仿真本讲内容:
Simulink简介Simulink建模的基础知识Simulink建模与仿真动态系统建模与仿真实例子系统与模块封装技术Simulink自定义功能模块《控制系统综合实践》2.Simulink建模的基础知识命令行方式启动工具栏方式启动一、Simulink启动在CommandWindow中输入>>simulinkSimulink图标2.Simulink建模的基础知识二、Simulink界面(版本2010a)库窗口工作窗口2.Simulink建模的基础知识三、Simulink的常用模块集>>open_system('simulink')2.Simulink建模的基础知识三、Simulink的常用模块集(续)
CommonlyUsedBlocks 常用模块库
Sources 输入源模块库
Sinks 接收器模块库
Continuous 连续模块库
Discrete 离散模块库
Discontinuities 非线性模块库
SignalRoutes 信号路由模块库
MathOperations 数学模块库
Ports&Subsystems 端口和子系统模块库
User-definedFunctions 用户自定义模块库2.Simulink建模的基础知识三、Simulink的常用模块集(续)
LogicandBitOperations 逻辑与位操作库
LookupTables 查表操作库
ModelVerification 模型验证模块库
SignalAttributes 信号属性模块库
AddionalMath&Discrete 附加数学与离散模块库
Model-wideUtilities 模型应用模块库2.Simulink建模的基础知识
CommonlyUsedBlocks(常用模块库)将其它模块库中最常用的一些功能模块提取出来以方便用户调用
Sources(输入源模块库)ConstantClockInSineWaveStepSignalBuilderSignalGeneratorFromWorkspaceFromFile(*.mat)…2.Simulink建模的基础知识
Sinks(接收器模块库)ScopeDisplayXYGraphFloatingScopeOutTerminatorToWorkspaceToFile(*.mat)…2.Simulink建模的基础知识
Continuous(连续模块库)
Derivative:微分
Integrator:积分
IntegratorLimited:限幅积分TransferFcn:传递函数模型
Zero-Pole:零极点传递函数模型
State-Space:状态空间模型
PIDController:PID控制器
TransportDelay:固定时延模块…2.Simulink建模的基础知识
Discrete(离散模块库)
Discrete-timeIntegrator:离散积分
DiscreteDerivative:离散微分
DiscreteFilter:离散滤波器
DiscretePIDController:离散PID控制器
DiscreteTransferFcn:离散传递函数模型
DiscreteZero-Pole:离散零极点传递函数模型
DiscreteState-Space:离散状态空间模型
First-OrderHold:一阶采样保持器
Zero-OrderHold:零阶采样保持器
UnitDelay:一个采样周期的延时
Memory:存储器
…2.Simulink建模的基础知识
Discontinuities(非线性模块库)
Saturation:饱和输出
Baddash:回滞
DeadZone:死区
…
SignalRoutes(信号路由模块库)
Mux
&
DemuxBusCreator&SelectorFrom&
GotoSwitch
MamualSwitchSelector…2.Simulink建模的基础知识
MathOperations (数学模块库)
Abs&Sign:绝对值与符号函数
add&Sum:加减
Product&Divide:乘除
MinMax:最值运算
Gain:增益
SliderGain:滑动增益MathFunction:数学函数
TrigonometricFunction:三角函数复数运算取整运算
…2.Simulink建模的基础知识
Ports&Subsystems(端口和子系统模块库)
User-definedFunctions(用户自定义模块库)
AtomicSubsystem:原子子系统
EnabledSubsystem:使能子系统
TriggeredSubsystem:触发子系统
Function-CallSubsystemIf&SwitchCaseActionSubsystemFor&WhileIteratorSubsystem…
Fcn
&
Matlab
Fcn:自定义函数
S-Function:S函数
S-FunctionBuilder:S函数生成器
EmbeddedMatlabFunction2.Simulink建模的基础知识四、Simulink的扩展模块集(Bocksets)Simulink扩展库物理系统仿真
Stateflow
SimEvents
SimPowerSystems
Simscape
SimDriveline
SimElectronics
SimHydraulics
SimMechanics
Simulink3DAnimation…实时系统与硬件设计
SimulinkFixedPointReal-TimeWindowsTarget
xPCTarget
xPCTargetEmbeddedOption
SimulinkHDLCoder
SimulinkPLCCoderInstrumentControlToolboxVideoandImageProcessingBlockset
建模与控制系统设计方案
AerospaceBlockset
SimulinkControlDesign
SimulinkDesignOptimizationRobustControlToolboxNeuralNetworkToolboxFuzzyLogicToolboxSystemIdentificationToolbox…代码生成
Real-TimeWorkshopReal-TimeWorkshopEmbeddedCoder
StateflowCoder…第一讲基于Simulink的动态系统建模与仿真本讲内容:
Simulink简介Simulink建模的基础知识Simulink建模与仿真动态系统建模与仿真实例子系统与模块封装技术Simulink自定义功能模块《控制系统综合实践》3.Simulink建模与仿真Simulink建模可归纳为:
模型=模块+信号连接Simulink仿真可归纳为:
仿真=模型+仿真条件
“Simulink”一词中的“Simu”表示仿真,“Link”表示连接,即将一系列简单的功能模块按照信号流向和输入输出关系连接起来,即可构建出复杂系统的仿真模型;通过适当的仿真条件设置,即可完成复杂系统动态特性的计算机仿真。使用Simulink的步骤启动Simulink打开模型编辑窗口(工作窗口)从库窗口中向工作窗口中复制相关模块修改模块参数模块连接设置仿真条件运行仿真分析仿真结果,并修正系统模型重复上述步骤,进行系统优化3.Simulink建模与仿真构建系统仿真模型系统动态特性仿真分析参考课件
Simulink建模模块操作将所需模块从模块库中拖入工作窗口中选择模块移动模块改变模块大小旋转与翻转对象改变模块外观(标签、前景、背景、阴影)复制模块删除模块设置模块参数连接操作连接线段分支线段(Ctrl+左键)移动线段、删除线段分割连接线(Shift+左键)注释线段模型操作打开与关闭模型保存模型打印与拷贝模型模型属性与注释3.Simulink建模与仿真Simulink功能模块的处理模块库中的模块可以直接用鼠标进行拖曳(选中模块,按住鼠标左键不放)而放到模型窗口中进行处理。在模型窗口中,选中模块,则其4个角会出现黑色标记。此时可以对模块进行以下的基本操作。移动:选中模块,按住鼠标左键将其拖曳到所需的位置即可。若要脱离线而移动,可按住shift键,再进行拖曳。复制:选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块。删除:选中模块,按Delete键即可。若要删除多个模块,可以同时按住Shift键,再用鼠标选中多个模块,按Delete键即可。也可以用鼠标选取某区域,再按Delete键就可以把该区域中的所有模块和线等全部删除。功能模块的基本操作,包括模块的移动、复制、删除、转向、改变大小、模块命名、颜色设定、参数设定、属性设定、模块输入输出信号等。转向:为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。在菜单Format中选择FlipBlock旋转180度,选择RotateBlock顺时针旋转90度。或者直接按Ctrl+F键执行FlipBlock,按Ctrl+R键执行RotateBlock。改变大小:选中模块,对模块出现的4个黑色标记进行拖曳即可。模块命名:先用鼠标在需要更改的名称上单击一下,然后直接更改即可。名称在功能模块上的位置也可以变换180度,可以用Format菜单中的FlipName来实现,也可以直接通过鼠标进行拖曳。HideName可以隐藏模块名称。颜色设定:
Format菜单中的ForegroundColor可以改变模块的前景颜色,BackgroundColor可以改变模块的背景颜色;而模型窗口的颜色可以通过ScreenColor来改变。Simulink功能模块的处理参数设定:用鼠标双击模块,就可以进入模块的参数设定窗口,从而对模块进行参数设定。参数设定窗口包含了该模块的基本功能帮助,为获得更详尽的帮助,可以点击其上的help按钮。通过对模块的参数设定,就可以获得需要的功能模块。属性设定:选中模块,打开Edit菜单的BlockProperties可以对模块进行属性设定。包括Description属性、Priority优先级属性、Tag属性、Openfunction属性、Attributesformatstring属性。其中Openfunction属性是一个很有用的属性,通过它指定一个函数名,则当该模块被双击之后,Simulink就会调用该函数执行,这种函数在MATLAB中称为回调函数。模块的输入输出信号:模块处理的信号包括标量信号和向量信号;标量信号是一种单一信号,而向量信号为一种复合信号,是多个信号的集合,它对应着系统中几条连线的合成。缺省情况下,大多数模块的输出都为标量信号,对于输入信号,模块都具有一种“智能”的识别功能,能自动进行匹配。某些模块通过对参数的设定,可以使模块输出向量信号。Simulink功能模块的处理Simulink线的处理改变粗细:线所以有粗细是因为线引出的信号可以是标量信号或向量信号,当选中Format菜单下的WideVectorLines时,线的粗细会根据线所引出的信号是标量还是向量而改变,如果信号为标量则为细线,若为向量则为粗线。选中VectorLineWidths则可以显示出向量引出线的宽度,即向量信号由多少个单一信号合成。设定标签:只要在线上双击鼠标,即可输入该线的说明标签。也可以通过选中线,然后打开Edit菜单下的SignalProperties进行设定,其中signalname属性的作用是标明信号的名称,设置这个名称反映在模型上的直接效果就是与该信号有关的端口相连的所有直线附近都会出现写有信号名称的标签。线的折弯:按住Shift键,再用鼠标在要折弯的线处单击一下,就会出现圆圈,表示折点,利用折点就可以改变线的形状。线的分支:按住鼠标右键,在需要分支的地方拉出即可以。或者按住Ctrl键,并在要建立分支的地方用鼠标拉出即可。Simulink模型的构建是通过用线将各种功能模块进行连接而构成的。用鼠标可以在功能模块的输入与输出端之间直接连线。所画的线可以改变粗细、设定标签,也可以把线折弯、分支。3.Simulink建模与仿真常规显示显示粗细显示线宽显示类型模型显示(信号类型)3.Simulink建模与仿真常规显示模型显示(采样类型)颜色显示注示显示颜色+注示显示(1)Simulink仿真参数设置
选取菜单Simulation->【ConfigurationParameters】,弹出“ConfigurationParameters”对话框,设置仿真参数,然后按【OK】即可;[说明]若不设置仿真参数,则采用Simulink缺省设置.3.Simulink建模与仿真
Simulink仿真求解器设置(Solver页)
Simulationtime:仿真时间Starttime:仿真开始时间Stoptime:仿真终止时间Solveroptions:求解器选项Type:定步长或变步长Solver:求解器算法关于步长的设置关于误差容限的设置TaskingandsampletimeoptionsZero-crossingoptions(1)Simulink仿真参数设置Solveroptions(仿真算法选择):
分为定步长算法和变步长算法两类。定步长支持的算法可在Fixedstepsize编辑框中指定步长或选择auto,由计算机自动确定步长,离散系统一般默认地选择定步长算法,在实时控制中则必须选用定步长算法;变步长支持的算法如图所示,对于连续系统仿真一般选择ode45,步长范围使用auto项。
(1)Simulink仿真参数设置变步长算法定步长算法ErrorTolerance(误差容限):算法的误差是指当前状态值与当前状态估计值的差值,分为Relativetolerance(相对容限)和Absolutetolerance(绝对容限),通常可选auto。变步长模式解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。ode45:缺省值,四/五阶龙格-库塔法,适用于大多数连续或离散系统,但不适用于刚性(stiff)系统。它是单步解法器,也就是,在计算y(tn)时,它仅需要最近处理时刻的结果y(tn-1)。一般来说,面对一个仿真问题最好是首先试试ode45。ode23:二/三阶龙格-库塔法,它在误差限要求不高和求解的问题不太难的情况下,可能会比ode45更有效。也是一个单步解法器。ode113:是一种阶数可变的解法器,它在误差容许要求严格的情况下通常比ode45有效。ode113是一种多步解法器,也就是在计算当前时刻输出时,它需要以前多个时刻的解。(1)Simulink仿真参数设置ode15s:是一种基于数字微分公式的解法器(NDFs)。也是一种多步解法器。适用于刚性系统,当用户估计要解决的问题是比较困难的,或者不能使用ode45,或者即使使用效果也不好,就可以用ode15s。
ode23s:它是一种单步解法器,专门应用于刚性系统,在弱误差允许下的效果好于ode15s。它能解决某些ode15s所不能有效解决的stiff问题。ode23t:是梯形规则的一种自由插值实现。这种解法器适用于求解适度stiff的问题而用户又需要一个无数字振荡的解法器的情况。ode23tb:是TR-BDF2的一种实现,TR-BDF2是具有两个阶段的隐式龙格-库塔公式。discrtet:当Simulink检查到模型没有连续状态时使用它。(1)Simulink仿真参数设置固定步长模式解法器有:ode5,ode4,ode3,ode2,ode1和discrete。ode5:缺省值,是ode45的固定步长版本,适用于大多数连续或离散系统,不适用于刚性系统。ode4:四阶龙格-库塔法,具有一定的计算精度。ode3:固定步长的二/三阶龙格-库塔法。ode2:改进的欧拉法。ode1:欧拉法。discrete:是一个实现积分的固定步长解法器,它适合于离散无连续状态的系统。(1)Simulink仿真参数设置步长参数:对于变步长模式,用户可以设置最大的和推荐的初始步长参数,缺省情况下,步长自动地确定,它由值auto表示。Maximumstepsize(最大步长参数):它决定了解法器能够使用的最大时间步长,它的缺省值为“仿真时间/50”,即整个仿真过程中至少取50个取样点,但这样的取法对于仿真时间较长的系统则可能带来取样点过于稀疏,而使仿真结果失真。一般建议对于仿真时间不超过15s的采用默认值即可,对于超过15s的每秒至少保证5个采样点,对于超过100s的,每秒至少保证3个采样点。Initialstepsize(初始步长参数):一般建议使用“auto”默认值即可。仿真精度的定义(对于变步长模式)Relativetolerance(相对误差):它是指误差相对于状态的值,是一个百分比,缺省值为1e-3,表示状态的计算值要精确到0.1%。Absolutetolerance(绝对误差):表示误差值的门限,或者是说在状态值为零的情况下,可以接受的误差。如果它被设成了auto,那么simulink为每一个状态设置初始绝对误差为1e-6。(1)Simulink仿真参数设置Mode(固定步长模式选择)Multitasking:选择这种模式时,当simulink检测到模块间非法的采样速率转换,它会给出错误提示。所谓的非法采样速率转换指两个工作在不同采样速率的模块之间的直接连接。在实时多任务系统中,如果任务之间存在非法采样速率转换,那么就有可能出现一个模块的输出在另一个模块需要时却无法利用的情况。通过检查这种转换,Multitasking将有助于用户建立一个符合现实的多任务系统的有效模型。使用速率转换模块可以减少模型中的非法速率转换。Simulink提供了两个这样的模块:unitdelay模块和zero-orderhold模块。对于从慢速率到快速率的非法转换,可以在慢输出端口和快输入端口插入一个单位延时unitdelay模块。而对于快速率到慢速率的转换,则可以插入一个零阶采样保持器zero-orderhold。Singletasking:这种模式不检查模块间的速率转换,它在建立单任务系统模型时非常有用,在这种系统就不存在任务同步问题。Auto:这种模式,simulink会根据模型中模块的采样速率是否一致,自动决定切换到multitasking和singletasking。(1)Simulink仿真参数设置
Loadfromworkspace勾选相应项表明从工作空间获得输入或初始状态。若勾选Input,则工作空间提供矩阵形式输入。即输入矩阵的第一列是升序时间向量,其余列对应不同的输入信号。
Savetoworkspace勾选相应项表明将相应参数按照指定名称、格式和存储方式存入工作空间。
SaveOptions:存储选项指定数据存储的方式与格式。可选数组、结构体、包含时间数据的结构体。数据I/O设置(DataImport/Export页)
(1)Simulink仿真参数设置t=(0:0.1:10)';u=[cos(t),sin(t)];如在指令窗中输入且在模型窗中的模型为数据I/O设置(DataImport/Export页)
(1)Simulink仿真参数设置输出选项(OutputOptions)Refineoutput:精细输出选项,在仿真输出太稀松时,simulink会产生额外的精细输出,类似插值处理。可在refinefactor设置仿真时间步间插入的输出点数。要产生更光滑的输出曲线,改变精细因子比减小仿真步长更有效。该选项出只能在变步长模式中使用,并且在ode45效果最好。Produceadditionaloutput:允许用户直接指定产生输出的时间点。选择该项后,则出现一个outputtimes编辑框,在这里用户指定额外的仿真输出点,它既可以是一个时间向量,也可以是表达式。与精细因子相比,这个选项会改变仿真的步长。Producespecifiedoutputonly:simulink只在指定的时间点上产生输出。为此解法器要调整仿真步长以使之和指定的时间点重合。这个选项在比较不同的仿真时可以确保它们在相同的时间输出。(1)Simulink仿真参数设置此页仿真选项和配置选项分成两个部分。配置选项下的列表框主要列举了一些常见的事件类型,以及当Simulink检查到这些事件时给予的处理。仿真选项options主要包括是否进行一致性检验、是否禁用过零检测、是否禁止复用缓存、是否进行不同版本的Simulink的检验等几项。诊断选项设置(Diagnostics页)(1)Simulink仿真参数设置SolverSampleTime(2)Simulink模型窗口运行模式
打开Simulink仿真模型窗口,或打开指定的.mdl文件;设置仿真参数3.Simulink建模与仿真仿真运行和终止:在模型窗口选取菜单【Simulation:Start】,仿真开始,至设置的仿真终止时间,仿真结束。若在仿真过程中要中止仿真,可选择【Simulation:Stop】菜单。也可直接点击模型窗口中的(或)启动(或停止)仿真。(3)MATLAB命令窗口下的仿真运行在Matlab命令窗口下可直接运行一个已存在的Simulink模型:[t,x,y]=sim(‘model’,timespan,option,ut)其中,t为返回的仿真时间向量;
x为返回的状态矩阵;
y为返回的输出矩阵;
model为系统Simulink模型文件名;
timespan为仿真时间,形式为[totf];option为仿真参数选择项,由simset设置;ut为选择外部产生输入,ut=[T,u1,u2,…,un]。[说明]上述参数中,若省略timespan、option、ut,则默认取框图模型的ConfigurationParameters对话框中设置的仿真参数。3.Simulink建模与仿真Option=simset(‘参数1’,参数值1,‘参数2’,参数值2,…)simset定义了仿真参数,包括以下一些主要参数:AbsTol:默认值为1e-6设定绝对误差范围。Decimation:默认值为1,决定隔多少个点返回状态和输出值。Solver:解法器的选择。MaxRows:默认值为0,表示不限制。若为大于零的值,则表示限制输出和状态的规模,使其最大行数等于该数值。InitialState:一个向量值,用于设定初始状态。FixedStep:用一个正数表示步阶的大小,仅用于固定步长模式。MaxStep:默认为auto。用于变步长模式,表示最大步阶大小。若知道模型文件名称,可以用以下命令得到该模型的仿真参数:simget(‘模型文件名’)3.Simulink建模与仿真提问: 什么情况下需要用命令行方式执行Simulink仿真?3.Simulink建模与仿真在同一模型结构下:需要比较不同模型参数需要考察不同输入条件需要比较不同初始状态需要考察不同仿真条件
…(4)Simulink仿真结果的分析使用Sinks库的数据显示模块来观察输出将数据输出到Workspace中,利用Matlab命令进行分析将数据存储到文件中,使用时用load指令调入Workspace中,再利用Matlab进行后处理。3.Simulink建模与仿真使用Sinks库的数据显示模块来观察输出Scope&FloatingScope示波器Display将数据以数字形式显示出来XYgraph绘制二维图形3.Simulink建模与仿真将数据输出到Workspace中,利用Matlab命令进行分析使用Sink库中的ToWorkspace模块使用Scope&FloatingScope,设置Parameters/DataHistory使用Sink库中的Out模块,设置ConfigurationParameters/DataImportExport页中的Output项时间数据用clock模块获得(将其数据用上述方式引出)3.Simulink建模与仿真使用Sink库中ToFile模块将数据存储到文件中,或用save指令将仿真后存到Workspace中的数据存储到文件中,使用时用load指令调入Workspace中,再利用Matlab命令后处理。3.Simulink建模与仿真>>save‘filename.mat’>>load‘filename.mat’第一讲基于Simulink的动态系统建模与仿真本讲内容:
Simulink简介Simulink建模的基础知识Simulink建模与仿真动态系统建模与仿真实例子系统与模块封装技术Simulink自定义功能模块《控制系统综合实践》【例1】图中给出的是一个典型非线性反馈系统框图,其中控制器为PI控制器,其模型为:4.动态系统建模与仿真实例Example_01.mdl【例2】非线性微分方程的框图求解考虑方程,其数学表达式为:4.动态系统建模与仿真实例Example_02x.mdl
这样用下面的语句就可以绘制出各个状态变量的时间响应曲线,如图Example_02xx.mdl4.动态系统建模与仿真实例【例3】计算机控制系统的仿真下图所示的是经典的计算机控制系统模型,其中,控制器D(z)是离散模型,采样周期为T秒,ZOH为零阶保持器,而受控对象模型G(s)为连续模型,假设受控对象和控制器都已经给定。其中,,对这样的系统来说,直接写成微分方程形式再进行仿真的方法是不可行的,因为其中既有连续环节,又有离散环节,不可能直接写出系统的微分方程模型。4.动态系统建模与仿真实例解决这样的系统仿真问题也是Simulink的强项,由给出的控制系统框图,可以容易地绘制出系统的Simulink仿真框图,如下图所示。4.动态系统建模与仿真实例Example_03.mdl4.动态系统建模与仿真实例【例4】时变系统的仿真4.动态系统建模与仿真实例Example_04.mdl4.动态系统建模与仿真实例【例5】多采样速率系统的仿真4.动态系统建模与仿真实例Simulink仿真框图如下:4.动态系统建模与仿真实例Example_05.mdl第一讲基于Simulink的动态系统建模与仿真本讲内容:
Simulink简介Simulink建模的基础知识Simulink建模与仿真动态系统建模与仿真实例子系统与模块封装技术Simulink自定义功能模块《控制系统综合实践》5.子系统与模块封装技术层次化建模的基本思想子系统概念及构成方法模块封装方法模块集构造5.子系统与模块封装技术自顶向下设计建模时将整个系统划分为若干个功能模块,并且明确各模块之间的信号接口与连接关系。随着建模的深入,逐步细化各个子模块,最终完成设计。自顶向下设计有助于我们把握系统的宏观构架和逻辑关系,而不至于一开始就拘泥于细节。
自底向上设计建模时就从细节入手,整个系统的每个部分都是确切的可实现的,建模完成后,为了使模型结构更加简洁,按照功能将某些模块进行封装,从而形成一个层次化的模型。比较适合对象各子模块功能化分不太明确的建模。双向设计建模时兼具自顶向下设计与自底向上设计的特点。层次化建模的基本思想5.子系统与模块封装技术自顶向下设计原子子系统触发子系统使能子系统触发使能子系统条件子系统(if&Switch)迭代子系统(for&while)函数调用子系统
S-Function
FcnEmbeddedMATLABFunction…5.子系统与模块封装技术【例6】触发子系统示例上升沿触发下降沿触发双边触发Example_06.mdl【应用】触发子系统应用的一个示例。触发器设为下降沿触发,正弦输入经触发控制后,成为阶梯波,如图所示。系统仅在脉冲信号的下降沿导通,并保持导通时刻的输入值至下一个脉冲下降沿。5.子系统与模块封装技术5.子系统与模块封装技术【例7】使能子系统示例Example_07.mdl【应用】积分分离式PID控制器。这种PID控制器可以让控制器中的积分项在系统响应进入稳态时投入运行,以提高稳态精度;而在系统响应处于瞬态过程时,将积分项断开以改善系统动态响应质量。积分分离式PID控制器建立如图所示:使能模块的控制信号为delta与abs(e)的差值。delta为一很小的正数,当偏差e的绝对值小于delta时,控制器的积分项才投入使用,从而实现了控制器中的积分项的分离控制。5.子系统与模块封装技术5.子系统与模块封装技术【例8】触发使能子系统示例Example_08.mdl在建立的Simulink系统模型比较大或很复杂时,可将一些模块组合成子系统,这样可使模型得到简化,便于连线;可提高效率,便于调试;可生成层次化的模型图表,用户可采取自上而下或自下而上的设计方法。将一个创建好的子系统进行封装,也就是使子系统象一个模块一样,例如可以有自己的参数设置对话框,自己的模块图标等。这样就使子系统使用起来非常方便。5.子系统与模块封装技术
自底向上设计--子系统创建与封装5.子系统与模块封装技术创建子系统框选需要被打包成一个子系统的所有模块,可采用如下三种方式创建子系统:a)
点击鼠标右键,在弹出的快捷菜单中选择【CreateSubsystem】选项;b)
点击Edit菜单中的【CreateSubsystem】选项;c)
快捷键
Ctrl+G
新生成的子系统会代替选中的所有模块。双击该子系统,则在新的窗口中打开该子系统。子系统的输入端口用In模块表示,输出端口用Out模块表示。子系统可以建立自己的参数设置对话框,以避免对子系统内每个模块分别进行参数设置,因此在子系统建立好以后可对其进行封装。子系统封装的基本步骤如下:设置好子系统中各模块的参数变量;定义提示对话框及其特性;定义被封装子系统的描述和帮助文档;定义产生模块图标的命令。5.子系统与模块封装技术子系统封装5.子系统与模块封装技术子系统封装若想封装一个用户自建模型,首先应该用建立子系统的方式将其转化为子系统模块,选中该子系统模块的图标,可采用如下三种方式封装子系统:a)选择Edit->MashSubsystem菜单项;b)点击鼠标右键,在弹出的快捷菜单中选择MashSubsystem选项;c)快捷键
Ctrl+M则可弹出下图所示的模块封装编辑界面。5.子系统与模块封装技术子系统封装四个设置页面
Icon&PortsParametersInitialization
DocumentionPID控制器传递函数:5.子系统与模块封装技术【例9】PID控制器设计与封装创建子系统建模封装子系统5.子系统与模块封装技术1、Icon标签页此页最重要的部分是DrawingCommands,在该区域内可以用disp指令设定功能模块的文字名称,用plot指令画线,用dpoly指令画转换函数。注意,尽管这些命令在名字上和以前讲的MATLAB函数相同,但它们在功能上却不完全相同,因此不能随便套用以前所讲的格式。disp(‘text’)可以在功能模块上显示设定的文字内容。disp(‘text1\ntext2’)分行显示文字text1和text2plot([x1x2…xn],[y1y2…yn])指令会在功能模块上画出由[x1y1]经[x2y2]经[x3y3]…直到[xn,yn]为止的直线。功能模块的左下角会根据目前的坐标刻度被正规化为[0,0],右上角则会依据目前的坐标刻度被正规化为[1,1]。dpoly(num,den):按s次数的降幂排序,在功能模块上显示连续的传递函数。dpoly(num,den,’z’):按z次数的降幂排序,在功能模块上显示离散的传递函数。5.子系统与模块封装技术用户还可以设置一些参数来控制图标的属性,这些属性在Icon页右下端的下拉式列表中进行选择。Iconframe:Visible显示外框线;Invisible:隐藏外框线。IconTransparency:Opaque隐藏输入输出的标签;Transparent:显示输入输出的标签。IconRotation:旋转模块。Drawingcoordinate:画图时的坐标系。5.子系统与模块封装技术2、Parameters标签页此页主要用来设计输入提示(prompt)以及对应的变量名称(variable)。在prompt栏上输入变量的含义,其内容会显示在输入提示中。而variable是仿真要用到的变量,该变量的值一直存于maskworkspace中,因此可以与其他程序相互传递。如果配合在initializationcommands内编辑程序,可以发挥功能模块的功能来执行特定的操作。在prompt编辑框中输入文字,这些文字就会出现在prompt列表中;在variable列表中输入变量名称,则prompt中的文字对应该变量的说明。如果要增加新的项目,可以点击边上的Add键。Up和Down按钮用于执行项目间的位置调整。Co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年工会疗休养工作实务知识题库
- 2026年经济预测与决策分析专业知识题库
- 2026年企业管理与商业经营策略分析题库
- 2026年机场安检面试常见错误与规避
- 2026年水土保持公报编制知识考核试题
- 2026年品牌传播与市场营销案例解析
- 2026年财政涉企资金直达机制与监管题库
- 2026年法律援助经济困难标准问答
- 2026年医学基础知识及临床应用题集
- 2026年村级耕地保护协管员职责练习题
- 2026年卫生高级职称面审答辩(重症医学科)副高面审经典试题及答案
- (二模)2026年合肥市高三第二次教学质量检测英语试卷(含答案)
- 2026年音乐教资考前冲刺测试卷附参考答案详解【达标题】
- 2026年北京理工大学博士英语真题及答案
- 山东中烟工业有限责任公司招聘笔试题库2026
- 客运防汛应急预案(3篇)
- 基因型知识点讲解课件
- 2026年匹克球裁判员考核题库含答案
- 公交车驾驶员的职业素养及规范
- 心内一科科室质量与安全管理小组工作记录(共27页)
- 微电子工艺-工艺集成与封装测试(共104页).ppt
评论
0/150
提交评论