MATLAB是一个很强大的软件,在自动控制领域也是使用非常广泛,本系列博文将基于控制系统仿真进行,参考书籍《MATLAB/Simulink与控制系统仿真》,该系列博文与笔者的自动控制理论(考研篇)互为补充,详细理论知识点请各位移步自动控制理论(考研篇)系列博客。
11.Simulink仿真概述及模块库简介
11.1 Simulink仿真概述
- Simulink是MATLAB软件的扩展,是实现动态系统建模和仿真的一个软件包;
- 模型化图形输入指Simulink提供一些按功能分类的基本系统模块,用户只需要直到这些模块的输入、输出及模块的功能,不必考察模块内部是如何实现的;
- 通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型,进而进行仿真和分析;
- Simulink主要功能:
- 实现动态系统的建模、仿真与分析;
- 预先对系统进行仿真与分析,进行适当的实时修改,达到仿真的最佳效果;
- 调试和整定控制系统的参数,以提高系统的性能;
- 提高系统开发的效率;
- Simulink仿真主要应用领域:控制系统、动力学系统、通信系统物理层和数据链路层、数字信号处理系统、电力系统、生物系统、金融系统等;
11.2 Simulink启动与退出
11.3 Simulink建模仿真
11.3.1 基本结构
一个典型模型由三种类型模块构成:
- 信号源模块:信号源为系统的输入,包括:常数信号源、函数信号发生器、自定义信号;
- 被模拟系统模块:系统模块为仿真的中心模块,是Simulink仿真建模所要解决的主要部分;
- 输出显示模块:系统的输出由显示模块接收;输出显示的形式包括:图像显示、示波器显示、输出到文件或MATLAB工作空间,输出模块主要在Sinks库;
Simulink模型基本特点:
- Simulink提供很多接收器模块,使得Simulink进行仿真具有图形化显示效果;
- Simulink模型具有层次性,通过底层子系统可以构建上层系统;
- Simulink提供对子系统进行封装的功能,用户可以自定义子系统的图标和设置参数对话框;
11.3.2 仿真基本过程
- 打开空白Simulink模型窗口;
- 把相应模型库所需模块拖拉到编辑窗口;
- 按照给定的框图修改编辑窗口中模块参数;
- 将各个模块按给定的框图连接起来,搭建所需的系统模型;
- 进行仿真分析,同时可以在仿真时修改参数;
- 保存模型。
11.4 Simulink模块库简介
11.4.1 Simulink模块库分类
- Commonly Used Blocks模块库,为仿真提供常用元件;
- Continuous模块库,为仿真提供连续系统;
- Discontinuitles模块库,为仿真提供非连续系统;
- Discrete模块库,为仿真提供离散元件;
- Logic and Bit Operations模块库,提供逻辑运算和位运算的元件;
- Lookup Tables模块库,线性插值查表模块库;
- Math Operations模块库,提供数学运算功能元件;
- Model Verification模块库,模型验证库;
- Model-Wide Utilities模块库;
- Ports&Subsystems模块库,端口和子系统;
- Signal Attributes模块库,信号属性模块;
- Signal Routing模块库,提供用于输入、输出和控制的相关信号及相关处理;
- Sinks模块库,为仿真提供输出设备元件;
- Sources模块库,为仿真提供各种信号源;
- User-defined Functions模块库,用户自定义函数元件;
- Additional Math&Discrete模块库;
11.4.2 控制系统仿真中常用的模块
信号源部分模块:
- Pulse Generator:脉冲发生器输入信号;
- Step:阶跃输入信号;
- Ramp:斜坡输入信号;
- Sine Wave:正弦波信号;
- Signal Generator:信号发生器,产生正弦、方波、锯齿波、随意波;
- Band-Limited White Noise:带限白噪声;
系统模型部分模块:
- 连续模块(Continuous)
- Transfer-Fcn:传递函数模型;
- Zero-Pole:零极点模型;
- State-Space:状态空间系统模型;
- Derivative:输入信号微分;
- Integrator:输入信号积分;
- Transport Delay:输入信号延迟一个固定时间再输出;
- Variable Transport Delay:输入信号延迟一个可变时间再输出;
- 数学运算模块(Math Operations)
- Gain:比例运算;
- Sign:符号函数;
- Abs:取绝对值;
- Product:乘运算;
- Subtract:减法;
- Add:加法;
- MinMax:最值运算;
- Math Function:包括指数函数、对数函数、求平方、开根号等常用数学函数;
- Trigonometric Function:三角函数、包括:正弦、余弦、正切等;
- 非连续模块(Discontinuous)
- Dead Zone:死区非线性;
- Backlash:间隙非线性;
- Coulomb&Viscous Friction:库仑和黏度摩擦非线性;
- Relay:滞环比较器,限制输出值在某一个范围内变化;
- Saturation:饱和输出,让输出超过某一值时能够饱和
- 离散系统模块(Discrete)
- Discrete Transfer-Fcn:离散传递函数模型;
- Discrete Zero-Pole:以零极点表示的离散传递函数模型;
- Discrete State-Space:离散状态空间系统模型;
- Zero-Order Hold:零阶保持器;
- First-Order Hold:一阶保持器;
- Unit Delay:一个采样周期的延迟;
输出显示部分模型:
- Scope:示波器;
- Floating Scope:浮动示波器;
- Display:数字显示器;
- To File(.mat):将输出数据写入数据文件保存;
- To Workspace:将输出数据写入MATLAB工作空间;
- XY Graph:二维图像显示器;
11.4.3 控制系统仿真常用的Blockset(模块集)
- System ID Blockset:系统辨识模块集;
- NCD Blockset:非线性控制设计模块集;
- Neural Network Blockset:神经网络模块集;
|