龙空技术网

MATLAB的Simulink常用模块(五)

云龙派 963

前言:

目前同学们对“matlab限幅滤波”都比较关注,各位老铁们都需要分析一些“matlab限幅滤波”的相关内容。那么小编在网摘上网罗了一些有关“matlab限幅滤波””的相关内容,希望各位老铁们能喜欢,大家一起来学习一下吧!

在MATLAB的Simulink中有些常用的模块,今天主要介绍信号合并与分解模块、总线创建与总线选择模块、限幅模块、数据类型转换模块、 终止模块、接地模块、Clock。

1.信号合并与分解模块

1.1 信号合并模块

Mux模块是一个虚拟模块,虽然视觉上将多个信号合并为一个信号,但是实际上并没有改变其内部数据结构,只是视觉上看起来简洁并且可以同一管理。

在仿真模型中,往往可以使用Mux模块将多个信号汇聚之后显示到同一个Scope的同一个坐标系中,这样scope就不需要提供多个输入输出端口了。

参数设置

示例1

仿真图

示波器输出

1.2 信号分解模块

Demux模块能将多维信号分解为单维或维数较少的多维信号。

参数设置

示例2

仿真图

示波器输出

2.总线创建与总线选择模块

2.1 总线创建模块

Bus Creator 模块(总线创建模块)可将一组信号合并成一条总线。

参数设置

当Output data type选择为Bus:<object name>,勾选Output as nunvirtual bus时,表示输出信号是非虚拟信号,在C代码生成时将输出总线信号定义为结构体。

示例3

示波器输出

2.2 总线选择模块

Bus Selector模块(总线选择模块)可从总线中选择出一个或一组成员,这个总线信号可来自于Bus Creator、Bus Selector或其他输出Bus object的模块。

参数设置

示例4

示波器输出

3.BUS creator & selector、Mux&Demux的区别

Bus Creator:由几路输入信号合成为一条总线信号Bus Selector:由总线信号中选取需要的一路或几路信号输出Mux:信号合成。Demux:信号分解
(1)Bus的可选择性较多,如Bus Selector可以选取总线信号中的某路信号进行输出,而Demux则是按顺序输出,不能自定义选取(2)如果仅仅为了模型仿真连线方便,使用mux,demux就好。Bus creator/selector还能在代码生成时实现struct的数据结构。(3)Bus是非虚拟总线,在代码生成中,可以以一个结构体的形式输出,而Mux是虚拟总线,看起来像是合在一起的,实际上还是一个个单独的信号。

4.限幅模块

Saturation模块(限幅模块),对输入信号限幅之后再输出。

参数设置

Treat as gain when linearizing :设置线性化时是否将限幅模块作为增益为1的直通模块处理的勾选框。Enable zero - crossing detection:设置是否使能过零检测功能的勾选框。

示例4

正弦波模块参数

限幅模块参数

示波器输出

5.数据转化模块

Simulink支持多种数据类型,包括浮点数、固定点数及枚举型数据等,当前一个模块的输出信号与后面的模块的输入端口支持的数据类型不一致时,Simulink将会报错。这时使用数据类型转换模块Data Type Conversion进行数据转换以使模型能够顺利通过仿真并生成代码。

 fixdt是MATLAB提供的函数,能够返回simulink.NumericType类型的变量, 通过这个变量来描述一种固定数据类型。使用固定点数据类型配置的模型生成 的代码相对于浮点数据类型占用较少的内存空间,并能够以更快的速度运行。
Input and output to have equal参数是 Data Type Conversion模块独有的参数,表示当输人数据是固定点数据类型时模块处理的方式选择。下拉框包括2个选项Real World Value(RWV)和 Stored Integer(SI),分别表示实际值与存储值,模块会按照所选择的数值进行等值数据转换。如目标为实际值相等的情况下将double 型的pi转换为int8型必然会产生误差,int8数据类型只保留整数部分,结果为3。

参数设置

取整方式

固定点数据类型:符号:首位1或0表示有符号或无符号字长:存储单元由多少位二进制构成表示小数的数据位,字长范围内的一部分或全部数据用来表示数的小数部分,这部分数据位于数据的最右端

示例5

例如:将数字-2.65表示为一个有符号,字长为8,小数部分使用3位的数据,这个数据类型就可以描述为fixdt(1,8,3),fixdt(1,16,3)。

仿真

6.接地模块

Ground模块是将输人端口接地的模块,避免仿真时某些模块出现输入端口未连接的警告,有一个输出,输出值为0。

Ground模块输出的信号数据类型由其所连接的端口的数据类型决定,此模块没有参数。

7.终止模块

当模型的某个层次中有输出端口不连接任何其他模块时,仿真会报出警告:Warning:Output port 1 of 'untitled/ Inl'is not connected.

如将这些未连接的输出端口连接Terminator模块,则警告可消除。Terminator模块就是用来接收未使用的输出信号的,仅有一个输人端口,此模块没有可调参数,参数对话框中仅对模块功能进行说明。Terminator模块可接受任何Simulink支持的数据类型:实数、复数及固定点数据。

8.Clock

Clock模块输出仿真时间,也可以作为一些函数的输入以产生不同的信号源。

示例6

仿真图

示波器输出

示例7

仿真图

示波器输出

参考内容

[1] 博客园作者叮叮当当sunny的文章《Simulink仿真入门到精通(二) Simulink模块 》,文章链接如下:

[2] CSDN作者祺兔耳朵的文章《Matlab中Simulink的Bus/Mux/Dumx模块详解》,文章链接为:

本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。

作 者 | 郭志龙

编 辑 | 郭志龙

校 对 | 郭志龙

标签: #matlab限幅滤波