
SIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。
所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。
SIMULINK的最新版本是SIMULINK4.0(包含在MATLAB6.0里),MATLAB5.3里的版本为3.0版,它们的变化不大。
SIMULINK的启动
在MATLAB命令窗口中输入simulink
结果是在桌面上出现一个称为Simulink Library Browser的窗口,在这个窗口中列出了按功能分类的各种模块的名称。 也可以通过MATLAB主窗口的快捷按钮来打开Simulink Library Browser窗口。
SIMULINK的启动
在MATLAB命令窗口中输入simulink3
结果是在桌面上出现一个用图标形式显示的Library :simulink3的Simulink模块库窗口。
两种模块库窗口界面只是不同的显示形式,用户可以根据各人喜好进行选用,一般说来第二种窗口直观、形象,易于初学者,但使用时会打开太多的子窗口。
SIMULINK的模块库介绍
SIMILINK模块库按功能进行分为以下8类子库:
Continuous(连续模块)
Discrete(离散模块)
Function&Tables(函数和平台模块)
Math(数学模块)
Nonlinear(非线性模块)
Signals&Systems(信号和系统模块)
Sinks(接收器模块)
Sources(输入源模块)
连续模块(Continuous)continuous.mdl
Integrator:输入信号积分
Derivative:输入信号微分
State-Space:线性状态空间系统模型
Transfer-Fcn:线性传递函数模型
Zero-Pole:以零极点表示的传递函数模型
Memory:存储上一时刻的状态值
Transport Delay:输入信号延时一个固定时间再输出
Variable Transport Delay:输入信号延时一个可变时间再输出
离散模块(Discrete) discrete.mdl
Discrete-time Integrator:离散时间积分器
Discrete Filter:IIR与FIR滤波器
Discrete State-Space:离散状态空间系统模型
Discrete Transfer-Fcn:离散传递函数模型
Discrete Zero-Pole:以零极点表示的离散传递函数模型
First-Order Hold:一阶采样和保持器
Zero-Order Hold:零阶采样和保持器
Unit Delay:一个采样周期的延时
函数和平台模块(Function&Tables) function.mdl
Fcn:用自定义的函数(表达式)进行运算
MATLAB Fcn:利用matlab的现有函数进行运算
S-Function:调用自编的S函数的程序进行运算
Look-Up Table:建立输入信号的查询表(线性峰值匹配)
Look-Up Table(2-D):建立两个输入信号的查询表(线性峰值匹配)
数学模块( Math ) math.mdl
Sum:加减运算
Product:乘运算
Dot Product:点乘运算
Gain:比例运算
Math Function:包括指数函数、对数函数、求平方、开根号等常用数学函数
Trigonometric Function:三角函数,包括正弦、余弦、正切等
MinMax:最值运算
Abs:取绝对值
Sign:符号函数
Logical Operator:逻辑运算
Relational Operator:关系运算
Complex to Magnitude-Angle:由复数输入转为幅值和相角输出
Magnitude-Angle to Complex:由幅值和相角输入合成复数输出
Complex to Real-Imag:由复数输入转为实部和虚部输出
Real-Imag to Complex:由实部和虚部输入合成复数输出
非线性模块( Nonlinear ) nonlinear.mdl
Saturation:饱和输出,让输出超过某一值时能够饱和。
Relay:滞环比较器,输出值在某一范围内变化。
Switch:开关选择,当第二个输入端大于临界值时,输出由第一个输入端而来,否则输出由第三个输入端而来。
Manual Switch:手动选择开关
信号和系统模块( Signal&Systems ) sigsys.mdl
In1:输入端。
Out1:输出端。
Mux:将多个单一输入转化为一个复合输出。
Demux:将一个复合输入转化为多个单一输出。
Ground:连接到没有连接到的输入端。
Terminator:连接到没有连接到的输出端。
SubSystem:建立新的封装(Mask)功能模块
接收器模块( Sinks ) sinks.mdl
Scope:示波器。
XY Graph:显示二维图形。
To Workspace:将输出写入MATLAB的工作空间。
To File(.mat):将输出写入数据文件。
输入源模块( Sources ) sources.mdl
Constant:常数信号。
Clock:时钟信号。
From Workspace:来自MATLAB的工作空间。
From File(.mat):来自数据文件。
Pulse Generator:脉冲发生器。
Repeating Sequence:重复信号。
Signal Generator:信号发生器,可以产生正弦、方波、锯齿波及随意波。
Sine Wave:正弦波信号。
Step:阶跃波信号。
SIMULINK简单模型的建立
简单模型的建立
(1)建立模型窗口
(2)将功能模块由模块库窗口复制到模型窗口
(3)对模块进行连接,从而构成需要的系统模型
模型的特点
在SIMULINK里提供了许多如Scope的接收器模块,这使得用SIMULNK进行仿真具有像做实验一般的图形化显示效果。
SIMULINK的模型具有层次性,通过底层子系统可以构建上层母系统。
SIMULINK提供了对子系统进行封装的功能,用户可以自定义子系统的图标和设置参数对话框。
Simulink模块库简介
在进行系统动态仿真之前,应绘制仿真系统框图,并确定仿真所需用的参数。Simulink模块库包含大部分常用的建立系统框图的模块,如图6.14所示。下面简要介绍常用模块。
. 连续模块(Continuous)
在Simulink基本模块中选择“Continuous”后,单击便看到如图6.15所示的连续模块,它包括以下子模块。
● Derivative:输入信号微分;
● Integrator:输入信号积分;
● State-Space:状态空间系统模型;
● Transfer-Fcn:传递函数模型;
● Transport Delay:输入信号延迟一个固定时间再输出;
● Variable Transport Delay: 输入信号延迟一个可变时间再输出;
● Zero-Pole:零极点模型。
2. 非连续模块(Discontinuous)
在Simulink基本模块中选择Discontinuous后,单击便看到如图6.16所示的非连续模块,它包括以下子模块。
● Backlash:间隙非线性;
● Coulomb&Viscous Frictio n:库仑和黏度摩擦非线性;
● Dead Zone:死区非线性;
● Dead Zone Dynamic:动态死区非线性;
● Hit Crossing:冲击非线性;
● Quantizer:量化非线性;
● Rate Limiter:静态信号的变化速率;
● Rate Limiter Dynamic:动态信号的变化速率;
● Relay:滞环比较器,输出值在某一范围内变化;
● Saturation:饱和输出,让输出超过某一值时能够饱和;
● Saturation Dynamic:动态饱和输出;
● Wrap To Zero:环零非线性;
3. 离散模块(Discrete)
在Simulink基本模块中选择“Discrete”后,单击便看到如图6.17所示的离散模块,它包括以下子模块。
● Difference:差分环节;
● Discrete Derivative:离散微分环节;
● Discrete Filter:离散滤波器;
● Discrete State-Space:离散状态空间系统模型;
● Discrete Transfer-Fcn:离散传递函数模型;
● Discrete Zero-Pole:以零极点表示的离散传递函数模型;
● Discrete-time Integrator:离散时间积分器;
● First-Order Hold:一阶保持器;
● Integer Delay:整数被延迟;
● Memory:输出本模块上一步的输出值;
● Tapped Delay:延迟;
● Transfer Fcn First Order:离散一阶传递函数;
● Transfer Fcn Lead or Lag:传递函数;
● Transfer Fcn Real Zero:离散零点传递函数;
● Unit Delay:一个采样周期的延迟;
● Weighted Moving Average:权值移动平均模型;
● Zero-Order Hold:零阶保持器
