版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、控制系统综合实践Comprehensive Practise on Control System 主讲人:谢海斌 讲师单 位: 机电工程与自动化学院自动化研究所电 话: 76342-806Email: hbxiegfkd.mtn控制系统综合实践第一部分 公共综合实践模块课时:15学时主要内容1 基于Simulink的动态系统建模与仿真(讲授3学时)2 基于dSPACE的控制系统快速原型设计(讲授3学时)3 基于dSPACE的电机控制系统设计(实验9学时)参考教材薛定宇.控制系统计算机辅助设计MATLAB 语言与应用(第2版), 清华大学出版社, 2006.黄永安,马路,刘慧敏. MATLAB7
2、.0/Simulink6.0建模仿真开发与高级工程应用, 清华大学出版社, 2005.基于dSPACE的电机控制系统设计(9学时)时间:2010年10月18、19、20、21、232010年10月25、26、27、28、30地点:03教学楼4楼 现代控制技术实验室分组:8人一组,共分10组 (共80人)形式: 1、 每组8人独占一天,每人1套设备,上、下、晚共9学时 2、 建议不同组的组员自由组合成一个2人合作组,这样 每个人实际上机时间可扩展为18学时。实验安排被控对象:步进电机、增量编码器、旋转电位计实验内容: 1、熟悉步进电机与编码器的工作原理,使用说明以及电气特性2、以步进电机为被控对
3、象,设计电机闭环控制系统3、熟悉Simulink建模与仿真方法4、dSPACE软硬件环境熟悉及设计流程实践(3学时)5、电机系统建模、控制器设计与离线仿真(3学时) 6、电机控制系统快速原型设计与实时控制(3学时)实验安排引子讨论:如何完成一个完整的控制系统设计与实现任务?第一步:问题描述与需求分析第二步:被控对象建模与特性分析第三步:控制器设计、仿真验证与优化第四步:控制算法软件开发与控制器硬件设计第五步:软、硬件联调与验证迭代纸上谈兵实战控制对象理论模型的建立初步控制系统设计通过离线仿真对控制系统测试生成模型实时代码通过ControlDesk 采集数据及观测、修改变量定义模型 I/O基于d
4、SPACE的控制系统快速原型设计引子实现了仿真模型与实际系统的无缝集成;可靠的自动代码生成与优化能力,省却了复杂控制算法的软件代码编写;高可靠的硬件板卡集成了丰富的硬件I/O资源和高速处理器,可以满足一般被控对象的控制需求,在控制系统设计之初省却了复杂硬件电路的设计;高速的内部总线和处理器,使控制周期可达到ms级,能够满足一般被控对象的实时性控制需求;在同一技术框架下可以完成系统描述、动态系统建模、控制器设计与优化、离线仿真、实时控制、目标代码生成的整个开发流程。引子第一讲 基于Simulink的动态系统建模与仿真 本讲内容:Simulink简介Simulink建模的基础知识Simulink建
5、模与仿真动态系统建模与仿真实例子系统与模块封装技术Simulink自定义功能模块控制系统综合实践1. Simulink简介Simulink是MATLAB4.0版本(1993年)后推出的用以实现动态系统图形化建模与仿真的软件包,并随着MATLAB版本的升级而不断更新。目前MATLAB的最新版本为2010a,Simulink的最新版本为V7.5 (R2010a) 。图形化建模是指Simulink提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入、输出及功能,而不必考察其内部实现方式,通过对这些基本模块的调用,再将它们连接起来就可以构成所需的系统模型(*.mdl),进而进行仿真与分析
6、。用户利用图形化建模方式可以更方便、更直观的实现动态系统的建模与仿真,可以把更多的精力投入到系统模型构建与算法研究,而非编程上。一、什么是Simulink1. Simulink简介二、MATLAB产品体系二、MATLAB产品体系(续)1. Simulink简介基本数学计算、编程环境(M语言)、数据可视化、Guide二、MATLAB产品体系(续)1. Simulink简介复杂动态系统建模、仿真、分析的可视化开发平台基于有限状态机理论对事件驱动模型进行建模与仿真的可视化开发环境1. Simulink简介三、控制相关的工具箱(Toolbox)与模块集(Blocksets) Control Syste
7、m Toolbox Fuzzy Logic Toolbox Neural Network Toolbox Model Predictive Control Toolbox Robust Control Toolbox System Identification Toolbox Simulink Control Design Simulink Design Optimization Stateflow 1. Simulink简介四、一个简单的控制系统设计例子(演示)被控对象:控 制 器:建 模仿 真闭环系统阶跃响应?第一讲 基于Simulink的动态系统建模与仿真 本讲内容:Simulink简介
8、Simulink建模的基础知识Simulink建模与仿真动态系统建模与仿真实例子系统与模块封装技术Simulink自定义功能模块控制系统综合实践2. Simulink建模的基础知识命令行方式启动工具栏方式启动一、Simulink启动在Command Window中输入 simulinkSimulink图标2. Simulink建模的基础知识二、Simulink界面(版本2010a)库窗口工作窗口2. Simulink建模的基础知识三、Simulink的常用模块集open_system (simulink)2. Simulink建模的基础知识三、Simulink的常用模块集(续) Commonl
9、y Used Blocks常用模块库 Sources输入源模块库 Sinks接收器模块库 Continuous连续模块库 Discrete离散模块库 Discontinuities非线性模块库 Signal Routes信号路由模块库 Math Operations数学模块库 Ports & Subsystems端口和子系统模块库 User-defined Functions用户自定义模块库2. Simulink建模的基础知识三、Simulink的常用模块集(续) Logic and Bit Operations逻辑与位操作库 Lookup Tables查表操作库 Model Verifica
10、tion模型验证模块库 Signal Attributes信号属性模块库 Addional Math & Discrete附加数学与离散模块库 Model-wide Utilities模型应用模块库2. Simulink建模的基础知识 Commonly Used Blocks (常用模块库) 将其它模块库中最常用的一些功能模块提取出来以方便用户调用 Sources (输入源模块库) Constant Clock In Sine Wave Step Signal Builder Signal Generator From Workspace From File (*.mat) 2. Simuli
11、nk建模的基础知识 Sinks (接收器模块库) Scope Display XY Graph Floating Scope Out Terminator To Workspace To File (*.mat) 2. Simulink建模的基础知识 Continuous (连续模块库) Derivative:微分 Integrator:积分 Integrator Limited:限幅积分TransferFcn:传递函数模型 Zero-Pole:零极点传递函数模型 State-Space:状态空间模型 PID Controller:PID控制器 Transport Delay:固定时延模块2.
12、 Simulink建模的基础知识 Discrete (离散模块库) Discrete-time Integrator:离散积分 Discrete Derivative:离散微分 Discrete Filter:离散滤波器 Discrete PID Controller:离散PID控制器 Discrete Transfer Fcn:离散传递函数模型 Discrete Zero-Pole:离散零极点传递函数模型 Discrete State-Space:离散状态空间模型 First-Order Hold:一阶采样保持器 Zero-Order Hold:零阶采样保持器 Unit Delay:一个采样
13、周期的延时 Memory:存储器 2. Simulink建模的基础知识 Discontinuities(非线性模块库) Saturation:饱和输出 Baddash:回滞 Dead Zone:死区 Signal Routes(信号路由模块库) Mux & Demux Bus Creator & Selector From & Goto Switch Mamual Switch Selector2. Simulink建模的基础知识 Math Operations(数学模块库) Abs & Sign :绝对值与符号函数 add & Sum:加减 Product & Divide:乘除 MinMa
14、x:最值运算 Gain:增益 Slider Gain:滑动增益Math Function:数学函数 Trigonometric Function:三角函数 复数运算 取整运算 2. Simulink建模的基础知识 Ports & Subsystems(端口和子系统模块库) User-defined Functions(用户自定义模块库) Atomic Subsystem:原子子系统 Enabled Subsystem:使能子系统 Triggered Subsystem:触发子系统 Function-Call Subsystem If & Switch Case Action Subsystem
15、 For & While Iterator Subsystem Fcn & Matlab Fcn:自定义函数 S-Function:S函数 S-Function Builder: S函数生成器 Embedded Matlab Function2. Simulink建模的基础知识四、Simulink的扩展模块集(Bocksets)Simulink扩展库物理系统仿真 Stateflow SimEvents SimPowerSystems Simscape SimDriveline SimElectronics SimHydraulics SimMechanics Simulink 3D Anima
16、tion 实时系统与硬件设计 Simulink Fixed Point Real-Time Windows Target xPC Target xPC Target Embedded Option Simulink HDL Coder Simulink PLC Coder Instrument Control Toolbox Video and Image Processing Blockset 建模与控制系统设计方案 Aerospace Blockset Simulink Control Design Simulink Design Optimization Robust Control T
17、oolbox Neural Network Toolbox Fuzzy Logic Toolbox System Identification Toolbox 代码生成 Real-Time Workshop Real-Time Workshop Embedded Coder Stateflow Coder 第一讲 基于Simulink的动态系统建模与仿真 本讲内容:Simulink简介Simulink建模的基础知识Simulink建模与仿真动态系统建模与仿真实例子系统与模块封装技术Simulink自定义功能模块控制系统综合实践3. Simulink建模与仿真 Simulink建模可归纳为:模型
18、 模块 信号连接 Simulink仿真可归纳为:仿真 模型 仿真条件 “Simulink” 一词中的“Simu” 表示仿真, “Link” 表示连接,即将一系列简单的功能模块按照信号流向和输入输出关系连接起来,即可构建出复杂系统的仿真模型;通过适当的仿真条件设置,即可完成复杂系统动态特性的计算机仿真。 使用Simulink的步骤启动Simulink打开模型编辑窗口(工作窗口)从库窗口中向工作窗口中复制相关模块修改模块参数模块连接设置仿真条件运行仿真分析仿真结果,并修正系统模型重复上述步骤,进行系统优化3. Simulink建模与仿真构建系统仿真模型系统动态特性仿真分析参考课件 Simulink
19、建模模块操作将所需模块从模块库中拖入工作窗口中选择模块移动模块改变模块大小旋转与翻转对象改变模块外观(标签、前景、背景、阴影)复制模块删除模块设置模块参数连接操作连接线段分支线段(Ctrl左键)移动线段、删除线段分割连接线(Shift+左键)注释线段模型操作打开与关闭模型保存模型打印与拷贝模型模型属性与注释3. Simulink建模与仿真Simulink功能模块的处理模块库中的模块可以直接用鼠标进行拖曳(选中模块,按住鼠标左键不放)而放到模型窗口中进行处理。在模型窗口中,选中模块,则其4个角会出现黑色标记。此时可以对模块进行以下的基本操作。移动:选中模块,按住鼠标左键将其拖曳到所需的位置即可。
20、若要脱离线而移动,可按住shift键,再进行拖曳。复制:选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块。删除:选中模块,按Delete键即可。若要删除多个模块,可以同时按住Shift键,再用鼠标选中多个模块,按Delete键即可。也可以用鼠标选取某区域,再按Delete键就可以把该区域中的所有模块和线等全部删除。 功能模块的基本操作,包括模块的移动、复制、删除、转向、改变大小、模块命名、颜色设定、参数设定、属性设定、模块输入输出信号等。转向:为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。在菜单Format中选择Flip Block旋转180度,选择Rotate B
21、lock顺时针旋转90度。或者直接按Ctrl+F键执行Flip Block,按Ctrl+R键执行Rotate Block。改变大小:选中模块,对模块出现的4个黑色标记进行拖曳即可。模块命名:先用鼠标在需要更改的名称上单击一下,然后直接更改即可。名称在功能模块上的位置也可以变换180度,可以用Format菜单中的Flip Name来实现,也可以直接通过鼠标进行拖曳。Hide Name可以隐藏模块名称。颜色设定: Format菜单中的Foreground Color可以改变模块的前景颜色,Background Color可以改变模块的背景颜色;而模型窗口的颜色可以通过Screen Color来改变
22、。Simulink功能模块的处理参数设定:用鼠标双击模块,就可以进入模块的参数设定窗口,从而对模块进行参数设定。参数设定窗口包含了该模块的基本功能帮助,为获得更详尽的帮助,可以点击其上的help按钮。通过对模块的参数设定,就可以获得需要的功能模块。属性设定:选中模块,打开Edit菜单的Block Properties可以对模块进行属性设定。包括Description属性、 Priority优先级属性、Tag属性、Open function属性、Attributes format string属性。其中Open function属性是一个很有用的属性,通过它指定一个函数名,则当该模块被双击之后,
23、Simulink就会调用该函数执行,这种函数在MATLAB中称为回调函数。模块的输入输出信号:模块处理的信号包括标量信号和向量信号;标量信号是一种单一信号,而向量信号为一种复合信号,是多个信号的集合,它对应着系统中几条连线的合成。缺省情况下,大多数模块的输出都为标量信号,对于输入信号,模块都具有一种“智能”的识别功能,能自动进行匹配。某些模块通过对参数的设定,可以使模块输出向量信号。Simulink功能模块的处理Simulink线的处理改变粗细:线所以有粗细是因为线引出的信号可以是标量信号或向量信号,当选中Format菜单下的Wide Vector Lines时,线的粗细会根据线所引出的信号是
24、标量还是向量而改变,如果信号为标量则为细线,若为向量则为粗线。选中Vector Line Widths则可以显示出向量引出线的宽度,即向量信号由多少个单一信号合成。设定标签:只要在线上双击鼠标,即可输入该线的说明标签。也可以通过选中线,然后打开Edit菜单下的Signal Properties进行设定,其中signal name属性的作用是标明信号的名称,设置这个名称反映在模型上的直接效果就是与该信号有关的端口相连的所有直线附近都会出现写有信号名称的标签。线的折弯:按住Shift键,再用鼠标在要折弯的线处单击一下,就会出现圆圈,表示折点,利用折点就可以改变线的形状。线的分支:按住鼠标右键,在需
25、要分支的地方拉出即可以。或者按住Ctrl键,并在要建立分支的地方用鼠标拉出即可。 Simulink模型的构建是通过用线将各种功能模块进行连接而构成的。用鼠标可以在功能模块的输入与输出端之间直接连线。所画的线可以改变粗细、设定标签,也可以把线折弯、分支。3. Simulink建模与仿真常规显示显示粗细显示线宽显示类型模型显示(信号类型) 3. Simulink建模与仿真常规显示模型显示 (采样类型)颜色显示注示显示颜色注示显示(1)Simulink仿真参数设置 选取菜单Simulation【Configuration Parameters】,弹出 “Configuration Parameter
26、s” 对话框,设置仿真参数,然后按【OK】即可;说明若不设置仿真参数,则采用Simulink缺省设置.3. Simulink建模与仿真 Simulink仿真求解器设置(Solver页) Simulation time:仿真时间Start time:仿真开始时间Stop time:仿真终止时间Solver options:求解器选项Type:定步长或变步长Solver:求解器算法关于步长的设置关于误差容限的设置Tasking and sample time optionsZero-crossing options(1)Simulink仿真参数设置Solver options(仿真算法选择): 分
27、为定步长算法和变步长算法两类。定步长支持的算法可在Fixed step size编辑框中指定步长或选择 auto,由计算机自动确定步长,离散系统一般默认地选择定步长算法,在实时控制中则必须选用定步长算法;变步长支持的算法如图所示,对于连续系统仿真一般选择ode45,步长范围使用auto项。 (1)Simulink仿真参数设置变步长算法定步长算法Error Tolerance(误差容限): 算法的误差是指当前状态值与当前状态估计值的差值,分为Relative tolerance(相对容限)和Absolute tolerance(绝对容限),通常可选auto。 变步长模式解法器有:ode45,od
28、e23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。ode45:缺省值,四/五阶龙格库塔法,适用于大多数连续或离散系统,但不适用于刚性(stiff)系统。它是单步解法器,也就是,在计算y(tn)时,它仅需要最近处理时刻的结果y(tn-1)。一般来说,面对一个仿真问题最好是首先试试ode45。ode23:二/三阶龙格库塔法,它在误差限要求不高和求解的问题不太难的情况下,可能会比ode45更有效。也是一个单步解法器。ode113:是一种阶数可变的解法器,它在误差容许要求严格的情况下通常比ode45有效。ode113是一种多步解法器,也就是在计算当前时刻
29、输出时,它需要以前多个时刻的解。(1)Simulink仿真参数设置ode15s:是一种基于数字微分公式的解法器(NDFs)。也是一种多步解法器。适用于刚性系统,当用户估计要解决的问题是比较困难的,或者不能使用ode45,或者即使使用效果也不好,就可以用ode15s。 ode23s:它是一种单步解法器,专门应用于刚性系统,在弱误差允许下的效果好于ode15s。它能解决某些ode15s所不能有效解决的stiff问题。ode23t:是梯形规则的一种自由插值实现。这种解法器适用于求解适度stiff的问题而用户又需要一个无数字振荡的解法器的情况。ode23tb:是TR-BDF2的一种实现, TR-BDF
30、2 是具有两个阶段的隐式龙格库塔公式。discrtet:当Simulink检查到模型没有连续状态时使用它。(1)Simulink仿真参数设置固定步长模式解法器有:ode5,ode4,ode3,ode2,ode1和discrete。ode5:缺省值,是ode45的固定步长版本,适用于大多数连续或离散系统,不适用于刚性系统。ode4:四阶龙格库塔法,具有一定的计算精度。ode3:固定步长的二/三阶龙格库塔法。ode2:改进的欧拉法。ode1:欧拉法。discrete:是一个实现积分的固定步长解法器,它适合于离散无连续状态的系统。(1)Simulink仿真参数设置步长参数:对于变步长模式,用户可以设
31、置最大的和推荐的初始步长参数,缺省情况下,步长自动地确定,它由值auto表示。Maximum step size(最大步长参数):它决定了解法器能够使用的最大时间步长,它的缺省值为“仿真时间/50”,即整个仿真过程中至少取50个取样点,但这样的取法对于仿真时间较长的系统则可能带来取样点过于稀疏,而使仿真结果失真。一般建议对于仿真时间不超过15s的采用默认值即可,对于超过15s的每秒至少保证5个采样点,对于超过100s的,每秒至少保证3个采样点。Initial step size(初始步长参数):一般建议使用“auto”默认值即可。仿真精度的定义(对于变步长模式)Relative toleran
32、ce(相对误差):它是指误差相对于状态的值,是一个百分比,缺省值为1e-3,表示状态的计算值要精确到0.1%。Absolute tolerance(绝对误差):表示误差值的门限,或者是说在状态值为零的情况下,可以接受的误差。如果它被设成了auto,那么simulink为每一个状态设置初始绝对误差为1e-6。(1)Simulink仿真参数设置Mode(固定步长模式选择)Multitasking:选择这种模式时,当simulink检测到模块间非法的采样速率转换,它会给出错误提示。所谓的非法采样速率转换指两个工作在不同采样速率的模块之间的直接连接。在实时多任务系统中,如果任务之间存在非法采样速率转换
33、,那么就有可能出现一个模块的输出在另一个模块需要时却无法利用的情况。通过检查这种转换,Multitasking将有助于用户建立一个符合现实的多任务系统的有效模型。 使用速率转换模块可以减少模型中的非法速率转换。Simulink提供了两个这样的模块:unit delay模块和zero-order hold模块。对于从慢速率到快速率的非法转换,可以在慢输出端口和快输入端口插入一个单位延时unit delay模块。而对于快速率到慢速率的转换,则可以插入一个零阶采样保持器zero-order hold。Singletasking:这种模式不检查模块间的速率转换,它在建立单任务系统模型时非常有用,在这种
34、系统就不存在任务同步问题。Auto:这种模式,simulink会根据模型中模块的采样速率是否一致,自动决定切换到multitasking和singletasking。(1)Simulink仿真参数设置 Load from workspace勾选相应项表明从工作空间获得输入或初始状态。 若勾选Input,则工作空间提供矩阵形式输入。即输入矩阵的第一列是升序时间向量,其余列对应不同的输入信号。 Save to workspace勾选相应项表明将相应参数按照指定名称、格式和存储方式存入工作空间。 Save Options:存储选项指定数据存储的方式与格式。可选数组、结构体、包含时间数据的结构体。数据
35、I/O设置( Data Import/Export页) (1)Simulink仿真参数设置t=(0:0.1:10);u=cos(t),sin(t);如在指令窗中输入且在模型窗中的模型为数据I/O设置( Data Import/Export页) (1)Simulink仿真参数设置输出选项(Output Options)Refine output:精细输出选项,在仿真输出太稀松时,simulink会产生额外的精细输出,类似插值处理。可在refine factor设置仿真时间步间插入的输出点数。要产生更光滑的输出曲线,改变精细因子比减小仿真步长更有效。该选项出只能在变步长模式中使用,并且在ode45
36、效果最好。Produce additional output:允许用户直接指定产生输出的时间点。选择该项后,则出现一个output times编辑框,在这里用户指定额外的仿真输出点,它既可以是一个时间向量,也可以是表达式。与精细因子相比,这个选项会改变仿真的步长。Produce specified output only:simulink只在指定的时间点上产生输出。为此解法器要调整仿真步长以使之和指定的时间点重合。这个选项在比较不同的仿真时可以确保它们在相同的时间输出。(1)Simulink仿真参数设置 此页仿真选项和配置选项分成两个部分。 配置选项下的列表框主要列举了一些常见的事件类型,以及
37、当Simulink检查到这些事件时给予的处理。 仿真选项options主要包括是否进行一致性检验、是否禁用过零检测、是否禁止复用缓存、是否进行不同版本的Simulink的检验等几项。诊断选项设置( Diagnostics页)(1)Simulink仿真参数设置SolverSample Time(2)Simulink模型窗口运行模式 打开Simulink仿真模型窗口,或打开指定的.mdl文件;设置仿真参数3. Simulink建模与仿真仿真运行和终止:在模型窗口选取菜单【Simulation: Start】,仿真开始,至设置的仿真终止时间,仿真结束。若在仿真过程中要中止仿真,可选择【Simulat
38、ion: Stop】菜单。也可直接点击模型窗口中的 (或 )启动(或停止)仿真。 (3)MATLAB 命令窗口下的仿真运行在Matlab命令窗口下可直接运行一个已存在的Simulink模型:t,x,y=sim(model,timespan,option,ut)其中,t为返回的仿真时间向量; x为返回的状态矩阵; y为返回的输出矩阵; model为系统Simulink模型文件名; timespan为仿真时间,形式为to tf;option为仿真参数选择项,由simset设置;ut为选择外部产生输入,ut=T,u1,u2,un。说明上述参数中,若省略timespan、option、ut,则默认取框
39、图模型的Configuration Parameters对话框中设置的仿真参数。3. Simulink建模与仿真Optionsimset(参数1,参数值1,参数2,参数值2, )simset定义了仿真参数,包括以下一些主要参数:AbsTol:默认值为1e-6设定绝对误差范围。Decimation:默认值为1,决定隔多少个点返回状态和输出值。Solver:解法器的选择。MaxRows:默认值为0,表示不限制。若为大于零的值,则表示限制输出和状态的规模,使其最大行数等于该数值。InitialState:一个向量值,用于设定初始状态。FixedStep:用一个正数表示步阶的大小,仅用于固定步长模式。
40、MaxStep:默认为auto。用于变步长模式,表示最大步阶大小。若知道模型文件名称,可以用以下命令得到该模型的仿真参数:simget(模型文件名)3. Simulink建模与仿真提问:什么情况下需要用命令行方式执行Simulink仿真?3. Simulink建模与仿真在同一模型结构下: 需要比较不同模型参数 需要考察不同输入条件 需要比较不同初始状态 需要考察不同仿真条件 (4)Simulink仿真结果的分析使用Sinks库的数据显示模块来观察输出将数据输出到Workspace中,利用Matlab命令进行分析将数据存储到文件中,使用时用load指令调入Workspace中,再利用Matlab
41、进行后处理。3. Simulink建模与仿真使用Sinks库的数据显示模块来观察输出 Scope & Floating Scope 示波器 Display 将数据以数字形式显示出来 XY graph 绘制二维图形3. Simulink建模与仿真将数据输出到Workspace中,利用Matlab命令进行分析 使用Sink库中的To Workspace模块 使用Scope & Floating Scope,设置Parameters/Data History 使用Sink库中的Out模块,设置Configuration Parameters/ Data Import Export页中的Output项
42、 时间数据用clock模块获得(将其数据用上述方式引出)3. Simulink建模与仿真使用Sink库中To File模块将数据存储到文件中,或用save指令将仿真后存到Workspace中的数据存储到文件中,使用时用load指令调入Workspace中,再利用Matlab命令后处理。3. Simulink建模与仿真save filename.mat load filename.mat 第一讲 基于Simulink的动态系统建模与仿真 本讲内容:Simulink简介Simulink建模的基础知识Simulink建模与仿真动态系统建模与仿真实例子系统与模块封装技术Simulink自定义功能模块控
43、制系统综合实践【例1】图中给出的是一个典型非线性反馈系统框图,其中控制器为PI控制器,其模型为:4. 动态系统建模与仿真实例Example_01.mdl【例2】非线性微分方程的框图求解 考虑 方程,其数学表达式为:4. 动态系统建模与仿真实例Example_02x.mdl 这样用下面的语句就可以绘制出各个状态变量的时间响应曲线,如图Example_02xx.mdl4. 动态系统建模与仿真实例【例3】计算机控制系统的仿真 下图所示的是经典的计算机控制系统模型,其中,控制器D(z)是离散模型,采样周期为T 秒,ZOH 为零阶保持器,而受控对象模型G(s)为连续模型,假设受控对象和控制器都已经给定。
44、 其中 , , 对这样的系统来说,直接写成微分方程形式再进行仿真的方法是不可行的,因为其中既有连续环节,又有离散环节,不可能直接写出系统的微分方程模型。4. 动态系统建模与仿真实例 解决这样的系统仿真问题也是 Simulink 的强项,由给出的控制系统框图,可以容易地绘制出系统的 Simulink 仿真框图,如下图所示。4. 动态系统建模与仿真实例Example_03.mdl4. 动态系统建模与仿真实例【例4】时变系统的仿真4. 动态系统建模与仿真实例Example_04.mdl4. 动态系统建模与仿真实例【例5】多采样速率系统的仿真4. 动态系统建模与仿真实例Simulink仿真框图如下:4
45、. 动态系统建模与仿真实例Example_05.mdl第一讲 基于Simulink的动态系统建模与仿真 本讲内容:Simulink简介Simulink建模的基础知识Simulink建模与仿真动态系统建模与仿真实例子系统与模块封装技术Simulink自定义功能模块控制系统综合实践5. 子系统与模块封装技术 层次化建模的基本思想 子系统概念及构成方法 模块封装方法 模块集构造5. 子系统与模块封装技术 自顶向下设计 建模时将整个系统划分为若干个功能模块,并且明确各模块之间的信号接口与连接关系。随着建模的深入,逐步细化各个子模块,最终完成设计。自顶向下设计有助于我们把握系统的宏观构架和逻辑关系,而不
46、至于一开始就拘泥于细节。 自底向上设计 建模时就从细节入手,整个系统的每个部分都是确切的可实现的,建模完成后,为了使模型结构更加简洁,按照功能将某些模块进行封装,从而形成一个层次化的模型。比较适合对象各子模块功能化分不太明确的建模。 双向设计 建模时兼具自顶向下设计与自底向上设计的特点。层次化建模的基本思想5. 子系统与模块封装技术 自顶向下设计 原子子系统 触发子系统 使能子系统 触发使能子系统 条件子系统(if & Switch) 迭代子系统(for & while) 函数调用子系统 S-Function Fcn Embedded MATLAB Function 5. 子系统与模块封装技术
47、【例6】触发子系统示例上升沿触发下降沿触发双边触发Example_06.mdl【应用】触发子系统应用的一个示例。触发器设为下降沿触发,正弦输入经触发控制后,成为阶梯波,如图所示。系统仅在脉冲信号的下降沿导通,并保持导通时刻的输入值至下一个脉冲下降沿。5. 子系统与模块封装技术5. 子系统与模块封装技术【例7】使能子系统示例Example_07.mdl【应用】积分分离式PID控制器。这种PID控制器可以让控制器中的积分项在系统响应进入稳态时投入运行,以提高稳态精度;而在系统响应处于瞬态过程时,将积分项断开以改善系统动态响应质量。积分分离式PID控制器建立如图所示: 使能模块的控制信号为delta
48、与abs(e)的差值。delta为一很小的正数,当偏差e的绝对值小于delta时,控制器的积分项才投入使用,从而实现了控制器中的积分项的分离控制。5. 子系统与模块封装技术5. 子系统与模块封装技术【例8】触发使能子系统示例Example_08.mdl在建立的Simulink系统模型比较大或很复杂时,可将一些模块组合成子系统,这样可使模型得到简化,便于连线;可提高效率,便于调试;可生成层次化的模型图表,用户可采取自上而下或自下而上的设计方法。将一个创建好的子系统进行封装,也就是使子系统象一个模块一样,例如可以有自己的参数设置对话框,自己的模块图标等。这样就使子系统使用起来非常方便。 5. 子系
49、统与模块封装技术 自底向上设计子系统创建与封装5. 子系统与模块封装技术 创建子系统 框选需要被打包成一个子系统的所有模块,可采用如下三种方式创建子系统:a) 点击鼠标右键,在弹出的快捷菜单中选择【 Create Subsystem】选项;b) 点击Edit菜单中的【 Create Subsystem】选项;c) 快捷键 Ctrl+G 新生成的子系统会代替选中的所有模块。双击该子系统,则在新的窗口中打开该子系统。子系统的输入端口用In模块表示,输出端口用Out模块表示。 子系统可以建立自己的参数设置对话框,以避免对子系统内每个模块分别进行参数设置,因此在子系统建立好以后可对其进行封装。子系统封
50、装的基本步骤如下:设置好子系统中各模块的参数变量;定义提示对话框及其特性;定义被封装子系统的描述和帮助文档;定义产生模块图标的命令。5. 子系统与模块封装技术 子系统封装5. 子系统与模块封装技术 子系统封装 若想封装一个用户自建模型,首先应该用建立子系统的方式将其转化为子系统模块,选中该子系统模块的图标,可采用如下三种方式封装子系统:a) 选择 EditMash Subsystem菜单项;b) 点击鼠标右键,在弹出的快捷菜单中选择Mash Subsystem选项;c) 快捷键 Ctrl+M则可弹出下图所示的模块封装编辑界面。5. 子系统与模块封装技术 子系统封装四个设置页面 Icon & P
51、orts Parameters Initialization DocumentionPID控制器传递函数:5. 子系统与模块封装技术【例9】PID控制器设计与封装创建子系统建模封装子系统5. 子系统与模块封装技术1、Icon标签页此页最重要的部分是Drawing Commands,在该区域内可以用disp指令设定功能模块的文字名称,用plot指令画线,用dpoly指令画转换函数。注意,尽管这些命令在名字上和以前讲的MATLAB函数相同,但它们在功能上却不完全相同,因此不能随便套用以前所讲的格式。disp(text)可以在功能模块上显示设定的文字内容。disp(text1ntext2)分行显示文
52、字text1和text2plot(x1 x2 xn,y1 y2 yn)指令会在功能模块上画出由x1 y1经x2 y2经x3 y3 直到xn,yn为止的直线。功能模块的左下角会根据目前的坐标刻度被正规化为0,0,右上角则会依据目前的坐标刻度被正规化为1,1。dpoly(num,den):按s次数的降幂排序,在功能模块上显示连续的传递函数。dpoly(num,den,z):按z次数的降幂排序,在功能模块上显示离散的传递函数。5. 子系统与模块封装技术用户还可以设置一些参数来控制图标的属性,这些属性在Icon页右下端的下拉式列表中进行选择。Icon frame:Visible 显示外框线;Invis
53、ible:隐藏外框线。Icon Transparency:Opaque 隐藏输入输出的标签;Transparent:显示输入输出的标签。Icon Rotation:旋转模块。Drawing coordinate:画图时的坐标系。5. 子系统与模块封装技术2、Parameters标签页此页主要用来设计输入提示(prompt)以及对应的变量名称(variable)。在prompt栏上输入变量的含义,其内容会显示在输入提示中。而variable是仿真要用到的变量,该变量的值一直存于mask workspace中,因此可以与其他程序相互传递。如果配合在initialization commands内编
54、辑程序,可以发挥功能模块的功能来执行特定的操作。在prompt编辑框中输入文字,这些文字就会出现在prompt列表中;在variable列表中输入变量名称,则prompt中的文字对应该变量的说明。如果要增加新的项目,可以点击边上的Add键。Up和Down按钮用于执行项目间的位置调整。Control type列表给用户提供选择设计的编辑区,选择Edit会出现供输入的空白区域,所输入的值代表对应的variable;Popup则为用户提供可选择的列表框,所选的值代表variable,此时在下面会出现Popup strings输入框,用来设计选择的内容,各值之间用逻辑或符号“|”隔开;如选择Check
55、box则用于on与off的选择设定。5. 子系统与模块封装技术AddDeleteUpDown提示符变量名直接输入变量名变量的类型为数值变量的数值可在线调节5. 子系统与模块封装技术2、Parameters标签页Assignment属性用于配合Control type的不同选择来提供不同的变量值,变量值有Evaluate和Literal两种,其含义如下:AssignmentControl typeEvaluateLiteralEdit输入的文字是程序执行时所用的变量值;输入内容作字符串处理Popup为选择的序号,选第一项输出值为1,往下类推;选择内容作字符串处理 Checkbox输出为1或0;
56、输出为on或off的字符串5. 子系统与模块封装技术3、Documentation标签页此页主要用来针对完成的功能模块来编写相应的说明文字和Help。在Block description中输入的文字,会出现在参数窗口的说明部分。在Block help中输入的文字则会显示在单击参数窗口中的help按钮后浏览器所加载的HTML文件中。Mask type:在此处输入的文字作为封装模块的标注性说明,在模型窗口下,将鼠标指向模块,则会显示该文字。当然必须先在View菜单中选择Block Data TipsShow Block Data Tips。5. 子系统与模块封装技术 双击鼠标左键,或点击鼠标右键,
57、在弹出的快捷菜单中选择Mask Parameters,可以进行参数设置点击鼠标右键,在弹出的快捷菜单中选择Edit Mask,可以重新编辑该封装。点击鼠标右键,在弹出的快捷菜单中选择Look Under Mask,可以打开该子系统。5. 子系统与模块封装技术模块库构造5. 子系统与模块封装技术 模块库是指具有某种属性的一类模块的集合。除了Simulink自带的大量模块库外,Simulink还允许用户自己开发模块,并建立自己的模块库,从而实现对自定义模块的有效管理。自定义模块库的使用方法和Simulink自带模块库的使用完全一样。 模块库:某一类模块的集合 库模块:模块库中的模块 引用块:模型中
58、调用的模块库中的模块 关 联:引用块与对应模块库中的模块建立关联,以便引用 块发生改变时,库模块会自动进行相应的更新。模块库构造5. 子系统与模块封装技术 选择File-New-Library,建立一个模块库空白窗口 将需要的模块(库模块或自定义模块)拖入或拷贝到该窗口 保存该模块库 若要在Simulink模块浏览器中显示该自定义模块库,须在该目录中建立名为slblocks.m的文件(可从其它模块库目录下复制该文件到用户自定义模块库所在目录下,并修改以下内容:blkStruct.Name = MyLibrary;%标识名blkStruct.OpenFcn = My_Library;%指定为模块
59、库文件名Browser(1).Library = My_Library;%指定为模块库文件名Browser(1).Name = My Libray Test;%浏览器中显示的名称第一讲 基于Simulink的动态系统建模与仿真 本讲内容:Simulink简介Simulink建模的基础知识Simulink建模与仿真动态系统建模与仿真实例子系统与模块封装技术Simulink自定义功能模块控制系统综合实践FcnMATLAB FcnEmbedded MATLAB FunctionS-FunctionS-Function Builder6. Simulink自定义功能模块MATLAB FcnFcnEmb
60、edded MATLAB Function6. Simulink自定义功能模块S-FunctionS-Function Builder标签页 Initialization Data Properties Libraries Outputs Continuous Derivatives Discrete Update Build Info6. Simulink自定义功能模块s-function设计s-function是一个动态系统的计算机语言描述,在MATLAB里,用户可以选择用m文件编写,也可以用c、C+、Fortran文件编写。S-function提供了扩展Simulink模块库的有力工具,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度山西省高校教师资格证之高等教育法规考试题库
- 国家自然基金简介(1)-资助研究项目属性(2)-资助研培训课件
- 2024年泥水工项目协议模板下载
- 2024年除雪作业协议细则
- 2024汽车购贷担保协议样本全文参阅
- 2024年办公室装修施工协议样本
- 2024年斗殴双方和解赔偿协议样式
- 中小学教师数据素养-江苏师范大学中国大学mooc课后章节答案期末考试题库2023年
- 岗位保密条款:2024劳动协议增补篇
- 2024年全职收银员劳动协议范本
- 泥结碎石路面的施工[新版]
- 表格式教学设计模板
- 非计划再次手术管理制度与流程
- 道路交通标志标线图解ppt课件
- “律师法学”课程教学大纲
- 【全面做好调研巡视问题整改工作表态发言】 巡视整改表态发言
- 锅炉结焦、打焦防范措施
- 腺病毒感染诊疗指南
- 服装洗水唛洗涤标志
- 分频器的简易计算与制作
- 碧水湾酒店员工手册初稿
评论
0/150
提交评论