基于模型的设计——MCU篇.docx
《基于模型的设计——MCU篇.docx》由会员分享,可在线阅读,更多相关《基于模型的设计——MCU篇.docx(63页珍藏版)》请在冰豆网上搜索。
第二章Simulink建模与调试
Simulink是动态和嵌入式等系统的建模与仿真工具,也是基于模型设计的基础。
对于机电、航空航天、信号处理、自动控制、通讯、音视频处理等众多领域,Simulink提供了交互式的可视化开发环境和可定制的模块库,对系统进行建模、仿真与调试等。
并可实现与Stateflow有限状态机的无缝连接,扩展对复杂系统的建模能力。
通过Simulin模块库自带的1000多个预定义模块,基本上可快速地创建基于MCU器件应用的系统模型。
运用层次化建模、数据管理,子系统定制等手段,即使是复杂的嵌入式MCU应用系统,也能轻松完成简明精确的模型描述。
大量使用EmbeddedMATLAB来创建用户自己的算法模块,可大大加快建模速度。
读者在后面的内容中,会经常看到用EmbeddedMATLAB创建的算法模块,加快MCU器件开发的实例。
模型是基于模型设计的起点,同时也最核心的东西。
本章将以基于PID控制的直流电机的物理建模与调试为例来介绍Simulink,更详细的内容请读者参考MathWorks公司相关内容的用户手册。
Simulink的主要特点如下:
l众多可扩展的模块库
l利用图形编辑器来组合和管理模块图
l以系统功能来划分模型,实现对复杂系统的管理
l利用模型浏览器(ModelExplorer)寻找、创建、配置模型组件的参数与属性
l利用API实现与其他仿真程序的连接或集成用户代码
l用图形化的调试器和剖析器来检查仿真结果,评估模型的性能指标
l在MATLAB命令窗口中,可对仿真结果进行分析与可视化,自定义模型环境、信号参数和测试数据
l利用模型分析和诊断工具来确保模型的一致性,定位模型中的错误
本章主要内容有:
lSimulink基本操作
l搭建直流电机模型
lSimulink模型调试
2.1Simulink基本操作
2.1.1模块库和编辑窗口
打开模型库浏览器
在matlab的命令窗口中输入“simulink”指令或单击matlab工具栏上的“simulink”图标就可以打开模型库浏览器。
如图2.1.1所示:
图2.1.1模型库浏览器
打开模型编辑窗口
要建立一个新的模型,首先要打开一个模型编辑窗口。
可以通过点击模块库浏览器上的NEWModel按钮,或File→NEW→Model来打开窗口,如图2.1.2所示。
图2.1.2打开模型编辑窗口
2.1.2Simulink模块库
Simulink模块库是建立模型的基础,其中囊括了大量的基本功能模块,只有当用户熟练的掌握了模块库,才能快速、高效的建立模型。
从图2.1.1所示的模型库浏览器可知,在Simulink模块库中包含有以下子模块库,如表2.1.1所示:
表2.1.1模块库列表
常用模块(commonlyusedblock)
连续模块(continuous)
非连续模块(discontinuous)
离散模块(discrete)
逻辑和位操作模块(logicandbitoperations)
查找表模块(lookuptables)
数学运算模块(mathoperations)
模型验证模块(modelverification)
模型实用模块(model-wideutilities)
端口与子系统模块(ports&subsystems)
信号属性模块(signalattributes)
信号路由模块(signalrouting)
接收器模块(sinks)
源模块(sources)
用户自定义模块(user-definedfunctions)
附加操作模块(additionalmath&discrete)
下面将详细介绍几种使用频率较高的模块库。
1.常用模块库(commonlyusedblock)
常用模块库中的模块是simulink所有模块库中使用频率最高模块的合集,主要是为了方便用户以最快的速度建立模型。
常用模块包含如图2.1.3所示的成员,模块功能如表2.1.2所示:
图2.1.3常用模块库
表2.1.2常用模块库列表
名称
功能
名称
功能
BusCreator
生成总线
BusSelector
分离总线
Constant
常量信号
DataTypeConversion
转换数据类型
Demux
抽取向量信号中的元素并输出
Discrete-TimeIntegrator
时间离散积分
Gain
放大器
Ground
接地
Inport
产生输入口
Integrator,IntegratorLimited
信号积分
LogicalOperator
逻辑运算
Mux
将输入信号合成为向量
Outport
产生输出口
Product
标量和非标量乘除或矩阵乘法和转置
RealationalOperator
对输入做关系运算
Saturation
饱和
ScopeandFloatingScope
显示仿真信号
Subsystem,AtomicSubsystem,NonvitualSubsystem,CodeReuseSubsystem
以子系统表示其他系统
Sum,Add,Subtract,SumofElements
加或减
Switch
通过第二个输入值来输出第一或第二个输入。
Terminator
终止未连接的输出口
UnitDelay
延迟一个采样周期
2.连续模块库(continuous)
连续模块库中的模块如2.1.4图所示,它包含了搭建连续系统所涉及到的绝大部分模块,这些模块的功能如2.1.3表所示:
图2.1.4连续模块库
表2.1.3连续模块库列表
名称
功能
名称
功能
Derivative
微分
Integrator
积分
IntegratorLimited
有限积分
Integrator2nd-order
二阶积分
Integrator2nd-orderLimited
二阶有限积分
PIDController
比例微积分控制器
PIDController(2DOF)
双自由度比例微积分控制器
State-Space
状态空间
TransferFcn
传递函数
TransportDelay
时间延迟
VariableTimeDelay
可变时间延迟
VariableTransportDelay
可变时间延迟
Zero-Pole
零极点
结合本书是讲述基于模型设计的思想开发MCU器件,本章将以Simulink在控制电机中的应用为例,介绍Simulink的建模与调试技术。
这里值得一提的是PID控制模块。
PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。
它是在较新版本的Simulink中才新增并逐步完善的一个模块,R2010b版已经具备自动调节功能。
具体原理和使用将在后面分析。
3.离散模块库(discontinuous)
离散模块在涉及数字信号系统中被广泛使用,基于这种考虑,mathworks公司单独列出了离散系统模块库。
离散模块库中的模块和其功能如2.1.5图所列:
图2.1.5离散模块库
其中常用模块的功能如表2.1.4所示:
表2.1.4离散模块库列表
名称
功能
名称
功能
Difference
差分
DiscreteDerivative
离散微分方程
DiscreteFIRFilter
离散FIR滤波器
DiscreteFilter
离散滤波器
DiscretePIDController
离散PID控制器
DiscretePIDController(2DOF)
离散双自由度PID控制器
DiscreteState-Space
离散状态空间
DiscreteTransferFcn
离散传递函数
DiscreteZero-Pole
离散零极点
DiscreteTimeIntegrator
离散时间积分
1st-orderHold
一阶保持器
IntegerDelay
采样保持
Memory
记忆
TappedDelay
采样周期延迟
TransferFcn1st-order
一阶传递函数
TransferFcnLeadorLag
传递函数(超前或延迟)
TransferFcnRealZero
传递函数(有零点无极点)
UnitDelay
单位延迟
Zero-OrderHold
零阶保持器
4.数学运算模块库(mathoperations)
数学运算模块将很多数学运算封装成模块的形式,使数学运算操作大大简化,减少了很多程序设计上的繁琐过程。
此模块库所包含的模块如图2.1.6所示:
图2.1.6数学运算模块库
其中常用模块的功能如表2.1.5所示:
表2.1.5数学运算模块库列表
名称
功能
名称
功能
Sum
对输入求代数和
RoundingFunction
取整
Gain
常量增益
MinMax
求最值
SliderGain
可用滑动条改变的增益
TrigonometricFunction
三角函数
Product
对输入求积或商
AlgebraicConstraint
强制驶入信号为0
DotProduct
点积
ComplextoMagnitude-Angle
复数的幅值相角
Sign
取输入的正负符号
Magnitude-AngletoComplex
根据幅值相角得到复数
Abs
绝对值(模)
ComplextoReal-Imag
复数的实部虚部
MathFunction
数学运算函数
Real-Imagtocomplex
由实部虚部求复数
5.信号源模块库(signalattributes)
信号源模块库如2.1.7图所示:
图2.1.7信号源模块库
其中常用模块的功能如表2.1.6所示:
表2.1.6信号源模块库列表
名称
功能
名称
功能
Band-LimitedWhiteNoise
限带白噪声
ChirpSignal
频率变化的正弦信号
Clock
时钟信号
Constant
常数
CounterLimited
受限计数器
DigitalClock
数字时钟
EnumeratedConstant
枚举常数
FromFile
从文件读数据
FromWorkSpace
从工作空间读数据
Ground
接地
Inport
输入接口
PulseGenerator
脉冲发生器
Ramp
线性增或减的信号
RandomNumber
随机数
RepeatingSequence
重复系列
RepeatingSequenceInterpolated
重复序列插值
RepeatingSequenceStair
阶梯状重复序列
SignalBuilder
产生分段线性的可交替信号
SignalGenerator
信号发生器
SineWave
正弦信号
Step
阶跃信号
UniformRandomNumber
平均分布的随机信号
6.信号接收模块库(sinks)
信号接收模块库如图2.1.8所示:
图2.1.8信号接收模块库
其中常用模块的功能如表2.1.7所示:
表2.1.7信号接收模块库列表