Simulink是一款基于MATLAB的仿真环境,可以用来模拟和分析各种信号。它提供了多种信号源和信号处理模块,可以用来产生、处理和显示信号。其中,信号源是指产生输入信号的模块,信号处理模块则用来处理输入信号,改变信号的特性。
Simulink中常用的信号源有恒定值信号源、正弦波信号源、方波信号源等。以正弦波信号源为例,它可以用来模拟周期性信号,如交流电信号。在Simulink中,我们可以通过设置正弦波信号源的频率和幅值来产生不同的正弦波信号。

如图1所示,在图的左侧我们可以看到Simulink目录下的Sources窗口为我们提供多种信号输入模块,而小罗哥在模型编辑器窗口中的举例出来的模块为我们现在初学者使用经常使用到的。他们包括正弦波,阶跃,斜波,脉冲等信号,在这个正弦波模块中我们可以确定信号的峰值和周期进行输出。而时钟也可记录仿真时间,我们可以通过这个模块在符合条件的时刻发出我们需要的指令,然后还有子系统的In输入,常数模块,等等我就不做过多介绍了,因为matlab的帮助文档比较集全,大家如果有需要到可以通过帮助文档了解模块的相关功能。

 图1 常用的信号源模块

除了信号源,Simulink还提供了多种信号处理模块,如滤波器、积分器、微分器等。这些模块可以用来处理信号,改变信号的特性,如增大或减小信号幅值、改变信号频率、滤除噪声等。

如在simulink目录下的Math Operations中我们可以找到一些数学逻辑运算的模块,如图2右部分的红色方框内,其中,加减乘除、增益和求和以及绝对值是我们经常能用到的。在simulink目录下的Continuous中我们可以找到常用的微积分模块及传递函数和状态仿真模块,在传递函数中我们可以直接输入系统的传递函数进行仿真,状态方程也是如此,同时微积分模块在控制系统的仿真中也是必不可少的。

 图2 信号处理模块

输出模块在仿真中起到将结果呈现给我们的作用,在simulink中我们可以通过观察输出的结果对模型进行判断和评估。输出模块主要在simulink目录下的sinks窗口,如图3模型编辑器中有部分的红框里。通过帮助文档和实操经验我们可以知道,Display模块主要是将数据可视化的输出到屏幕上,而示波器主要对我们的仿真结果进行绘制。在子系统中输出的数据主要通过out模块连接到外界,和in模块将外界的数据连接到子系统一样。我们也可以使用To Wothspace模块将仿真的数据发送到MATLAB的工作区,从而在MATLAB绘制更加精细简洁的曲线。也可以使用To File模块将数据保存成我们可以随时调用的文件。

 图3 输出模块

以下图为例,我们假如将对正弦波信号进行各种无意义的逻辑处理(小罗哥认为这个模型最大的意义就是能让各位了解下面的模型)如图4所示,我们将正弦波信号与常数进行各种数学逻辑运算处理,通过mux模块将这些数据整合成一个七维的向量,这样可以大大减少我们需要连接的线路。然后通过不同的输出模块进行输出,在图中我们可以看到Display模块输出的结果为10秒时仿真结束的那以瞬间,因为Display模块只能实时显示数据而不能对过去产生的数据进行存储。图5为示波器显示的数据曲线,在这组数据中我们无法分辨任一条曲线对应的仿真数据。同时,示波器下方的两个模块分别为输出到工作区和文件夹中,在工作区中我们可以看到这组数据。如图6、图7。在图7中我们可以将数据1到7分别对应模型中mux模块从上到下的的数据。图8为我们通过To File模块输出的数据文件,这个文件所在的目录为matlab的工作目录,文件命名可在To File中进行设置。

图4 模型示例 

 

 图5 示波器

 

图6 

 图7 工作区的数据

 图8 输出数据文件

总结

在文中我们提到simulink信号源模块,这些模块主要是为我们的系统输入一些我们需要的各种信号,这些信号可以通过一些信号处理的模块进行处理,然后再通过输出模块将信号展现出来。本文只是小哥自己学习到的一些经验,如有不足之处还请各位大佬批评指正。后续小罗哥会持续更新关于simulink建模的基础知识,感谢大家的支持。 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐