MATLABSimulink控制系统建模最全资料
Simulink 控制系统建模
dSPACE 的软件环境主要由两⼤部分组成,⼀部分是实时代码的⽣成和下载软件RTI (Real Time Interface ),它是连接dSPACE 实时系统与MA TLAB/Simulink 的纽带,通过对RTW (Real time workshop )进⾏扩展,可以实现从Simulink 模型到dSPACE 实时硬件代码的⾃动下载。另⼀部分为测试软件,其中包含了综合实验与测试环境ControlDesk 、⾃动试验及参数调整软件MLIB/MTRACE 、PC 与实时处理器通信软件CLIB 以及实时动画软件RealMotion 等。
连续模块库(Continuous)
在连续模块(Continuous)库中包括了常见的连续模块,这些模块如图所⽰。
1. 积分模块(Integrator):
功能:对输⼊变量进⾏积分。说明:模块的输⼊可以是标量,也可以是⽮量;输⼊信号的维数必须与输⼊信号保持⼀致。2. 微分模块(Derivative)
功能:通过计算差分?u/ ?t 近似计算输⼊变量的微分。
3. 线性状态空间模块(State-Space)
功能:⽤于实现以下数学⽅程描述的系统:
+=+=Du Cx y Bu Ax x '
4. 传递函数模块(Transfer Fcn)
功能:⽤执⾏⼀个线性传递函数。
5. 零极点传递函数模块(Zero-Pole)
功能:⽤于建⽴⼀个预先指定的零点、极点,并⽤延迟算⼦s 表⽰的连续。
6.存储器模块(Memory)
功能:保持输出前⼀步的输⼊值。
7.传输延迟模块(Transport Delay)
功能:⽤于将输⼊端的信号延迟指定的时间后再传输给输出信号。
8.可变传输延迟模块(Variable Transport Delay)
功能:⽤于将输⼊端的信号进⾏可变时间的延迟。
离散模块库(Discrete)
离散模块库(Discrete)主要⽤于建⽴离散采样的系统模型,包括的主要模块,如图所⽰。
1.零阶保持器模块(Zero-Order-Hold)
功能:在⼀个步长内将输出的值保持在同⼀个值上。
2.单位延迟模块(Unit Delay)
功能:将输⼊信号作单位延迟,并且保持⼀个采样周期相当于时间算⼦z -1。
3.离散时间积分模块(Discrete Time Integrator)
功能:在构造完全离散的系统时,代替连续积分的功能。使⽤的积分⽅法有:向前欧拉法、向后欧拉法、梯形法。
4.离散状态空间模块(Discrete State Space)
功能:⽤于实现如下数学⽅程描述的系统:
+=+=+)()()()()(])1[(nT Du nT Cx nT y nT Bu nT Ax T n x
5.离散滤波器模块(Discrete Filter)
功能:⽤于实现⽆限脉冲响应(IIR)和有限脉冲响应(FIR)的数字滤波器。
6.离散传递函数模块(Discrete Transfer Fcn)
功能:⽤于执⾏⼀个离散传递函数。
7.离散零极点传递函数模块(Discrete Zero-Pole)
功能:⽤于建⽴⼀个预先指定的零点、极点,并⽤延迟算⼦z -1表⽰的离散系统。
8.⼀阶保持器模块(First Order Hold)
功能:在⼀定时间间隔内保持⼀阶采样。
函数与表格模块库(Function & Table)
函数与表格模块库(Function & Table)主要实现各种⼀维、⼆维或者更⾼维函数的查表,另外⽤户还可以根据⾃⼰需要创建更复杂的函数。该模块库包括多个主要模块、如图7.7所⽰。
1. ⼀维查表模块(Look-Up Table)
⼀维查表模块(Look-Up Table)实现对单路输⼊信号的查表和线性插值。
2.⼆维查表模块(Look-Up Table 2-D)
功能:根据给定的⼆维平⾯⽹格上的⾼度值,把输⼊的两个变量经过查表、插值,计算出模块的输出值,并返回这个值。
说明:对⼆维输⼊信号进⾏分段线性变换。
3.⾃定义函数模块(Fcn)
功能:⽤于将输⼊信号进⾏指定的函数运算,最后计算出模块的输出值。
说明:输⼊的数学表达式应符合C语⾔编程规范;与MATLAB中的表达式有所不同,不能完成矩阵运算。
4.MATLAB函数模块(MATLAB Fcn)
功能:对输⼊信号进⾏MATLAB函数及表达式的处理。
说明:模块为单输⼊模块;能够完成矩阵运算。
注意:从运算速度⾓度,Math function模块要⽐Fcn模块慢。当需要提⾼速度时,可以考虑采⽤Fcn 或者S函数模块。
5.S-函数模块(S-Function)
功能:按照Simulink标准,编写⽤户⾃⼰的Simulink函数。它能够将MATLAB语句、C 语⾔等编写的函
数放在Simulink模块中运⾏,最后计算模块的输出值。
数学模块库(Math)
数学模块库(Math)包括多个数学运算模块,如图7.8所⽰。
1. 求和模块(Sum)
matlab难还是c语言难功能:求和模块(Sum)⽤于对多路输⼊信号进⾏求和运算,并输出结果。
2. 乘法模块(Product)
功能:乘法模块(Product)⽤于实现对多路输⼊的乘积、商、矩阵乘法或者模块的转置等。
3. ⽮量的点乘模块(Dot Product)
功能:⽮量的点乘模块(Dot Product)⽤于实现输⼊信号的点积运算。
4. 增益模块(Gain)
功能:增益模块(Gain)的作⽤是把输⼊信号乘以⼀个指定的增益因⼦,使输⼊产⽣增益。5. 常⽤数学函数模块(Math Function)功能:⽤于执⾏多个通⽤数学函数,其中包含exp、log、log10、square、sqrt、pow、reciprocal、hypot、rem、mod等。6. 三⾓函数模块(Trigonometric Function)
功能:⽤于对输⼊信号进⾏三⾓函数运算,共有10种三⾓函数供选择。
7. 特殊数学模块
特殊数学模块中包括求最⼤最⼩值模块(MinMax)、取绝对值模块(Abs)、符号函数模块(Sign)、取整数函数模块(Rounding Function)等。
8. 数字逻辑函数模块
数字逻辑函数模块包括复合逻辑模块(Combinational Logic)、逻辑运算符模块(Logical Operator)、位逻辑运算符模块(Bitwise Logical Operator)等。
9. 关系运算模块(Relational Operator)
关系符号包括:==(等于)、≠(不等于)、<(⼩于)、<=(⼩于等于)、>(⼤于)、>=(⼤于等于)等。
10. 复数运算模块
复数运算模块包括计算复数的模与幅⾓(Complex to Magnitude-Angle)、由模和幅⾓计算复数(Magnitude-Angle to Complex)、提取复数实部与虚部模块(Complex to Real and Image)、由复数实部和虚部计算复数(Real and Image to Complex)。
⾮线性模块(Nonlinear)
⾮线性模块(Nonlinear)中包括⼀些常⽤的⾮线性模块,如图7.9所⽰。
1. ⽐率限幅模块(Rate Limiter)
功能:⽤于限制输⼊信号的⼀阶导数,使得信号的变化率不超过规定的限制值。2.饱和度模块(Saturation)
功能:⽤于设置输⼊信号的上下饱和度,即上下限的值,来约束输出值。3.量化模块(Quantizer)
功能:⽤于把输⼊信号由平滑状态变成台阶状态。
4.死区输出模块(Dead Zone)
功能:在规定的区内没有输出值。
5.继电模块(Relay)
功能:继电模块(Relay)⽤于实现在两个不同常数值之间进⾏切换。
6.选择开关模块(Switch)
功能:根据设置的门限来确定系统的输出。
信号与系统模块库(signals &Systems)
信号与系统模块库(signals &Systems)包括的主要模块如图7.11所⽰。
1. Bus 信号选择模块(Bus Selector)
功能:⽤于得到从Mux模块或其它模块引⼊的Bus信号。
2. 混路器模块(Mux)