前述:simulink是matlab最重要的组件之一,它提供了一个动态系统建模、仿真和综合分析的集成环境。simulink通过鼠标就可以完成复杂的建模操作,无需编程,操作较为简单,具有效率高、贴近实际、灵活的优点。Simulink用于动态系统和嵌入式系统的动态仿真,它是基于模型的仿真设计。对各种时变系统,包括通信、控制、信号处理、视频处理和图像处理系统,Simulink提供用于交互式图形化环境和可定制模块库进行设计、仿真、执行和测试。

一、simulink基本操作

simulink模块库中包括许多工具箱,这使得用户能够针对不同行业的数学模型进行快速设计,其中,控制系统工具箱应用最为广泛。具体的模块库分为常用模块库、连续函数模块库、用户自定义模块库等。常用模块库包括输入输出、加减乘除等模块,这一般为simulink构建模型的基础。连续模块库用于控制系统的拉氏变换,而离散函数模块,主要将拉氏变换后的传递函数通过Z变换离散化,从而实现传递函数离散化建模。离散化系统容易进行系统移植,因此广泛应用于各种控制器的仿真设计。

那么如何搭建simulink模块仿真图呢?首先创建一个仿真文件,并在库浏览器里搜索需要的模块,然后将搜索出的模块拖拽至空白页面,最后将各个模块连线。创建一个简单的仿真图,仅需要鼠标操作,方便快捷。对于模块,用户可以进行许多操作,模块可以进行旋转、复制粘贴以及放大缩小等操作,双击该模块,会弹出该模块的属性窗口,用户可对模块参数进行不同的设定,以满足不同的仿真需求。模块的建立,可以进行搜索拖拽建立,也可通过matlab的命令add_block创建。

二、子系统

子系统就是把一些模块组合到一起成为一个系统,子系统可以作为独立的模块,可以直接作为标准的simulink模块使用。进一步,子系统就类似于子函数,编程时可以直接调用子函数,编程就会更加简洁,运行效率更高,子系统的存在就是为了让建模更加简洁,具有层次性,整个仿真建模就不会太过杂乱。

(1)子系统的创建:使用subsystem模块,点击此模块,会发现模型窗口已自动生成输入ln1模块与输出out1模块。创建的子系统可以打开和修改,但不可再解除子系统设置。

(2)子系统的分类介绍:使能子系统内部有enable使能模块,只有当enable模块的输入大于0时,才可进行输出,小于0,则仿真停止。触发子系统内的触发(Triggered)模块则是在指定的时间或事件发生时才进行仿真运算,从而保证模型的仿真精度。在Simulink中,触发模块可以通过设置其Trigger输入端口的值来触发模块的仿真,如可以将输入端口的值设置为上升沿,每检测到信号为上升沿时,就会触发子系统的执行。触发子系统的任务就是让输入等于输出,执行完成后,输出一直保留当前数组,直到下次触发信号来临,再次执行子系统。使能触发子系统则综合了前两者的功能,触发使能子系统的判断顺序中,触发事件的判断优先于使能信号,流程图如下:

屏幕截图 2024-02-24 160152.png

  系统先进行触发事件的判断,在进行使能信号的判断,如果使能信号>0,这此模块执行,如果信号判断为假,则不进行模块仿真。

 (3)封装子系统:所谓封装(Mask),就是将SIMULINK的子系统“包装”成一个模块,并隐藏全部的内部结构。访问该模块时只出现了一个参数设置对话框,模块中所有需要设置的参数都可通过该对话框来统一设置。我们既然要是有simullink进行仿真,意味着仿真模型往往较为复杂,这些系统数据类型多,包含各种模块,较为杂乱,如果一个一个去修改参数,工作量大。所以我们把某些子系统封装起来,最后再用一个模型文件调用这些子系统,这样可以使模型比较简洁。

  创建封装模块可分为三个步骤:

1.创建子系统;

2.搭建系统,关键的、需要指定或修改的参数以变量代替

3.系统封装,在封装页面进行相关的配置。

模块封装的意义在于经常用到此模块,封装起来方便重复使用,另外也方便参数的控制。

三、使用matlab命令搭建simulink模块

使用matlab创建simulink模型,需要用到众多命令,模型创建使用new_system命令,将new改为open或save就可以打开文件或保存文件。添加信号线与模块时,使用add_line与add_block命令。matlab还可设置模型和模块属性以及进行模型的仿真。当程序与simulink模型结合起来运行时,使用matlab命令创建和运行simulink模型就显得很便捷。

总结:simulink在模型仿真方面优势巨大,在该环境中,无需编写大量程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。