2.5 复用器与分路器模块
Mux是一种用于将多个信号组合成一个信号的模块。Mux模块的名称来源于多路复用器(Multiplexer)。
使用Mux可以将多个输入信号组合成一个向量或矩阵,以便在模型中传递和处理。Mux模块可以接受任意数量的输入信号,并将其打包成一个向量或矩阵,然后将打包后的信号输送到下一个模块或子系统中。
Demux是一种用于将一个信号拆分成多个信号的模块。Demux模块的名称来源于分路器(Demultiplexer)。
使用Demux可以将一个信号分成多个信号,并将这些拆分后的信号分别连接到后续的信号处理模块中。通常,Demux与Mux相反,是将一个输入信号传递给多个输出信号的过程
2.6 开关模块和增益模块
Switch模块的作用主要是根据第二个开关输入的值来判断输出是第一个还是第三个。模块的3个端口中,第1个和第3个端口为输出端口提供输出值,输出端口输出第1个输人口还是第3个输口的值中第2个输人口的值和条件关系共同决定。参数对话框中的条件关系洗择对第2个端口进行条件判断,.如果判断为真,则输出口输出第1个端口的信号;否则输出第3个输人端口的信号。对第2个端口进行判断的条件关系有3种选择:1)第2个端口大于或等于某个阈值。2)第2个端口大于某个阈值。3)第2个端口不等于0。
gain:第一个运算方式:数乘运算;第二的运算方式:矩阵运算 k*u; 第三种运算方式:矩阵运算 uk;第四种运算方式:矩阵乘列向量
2.7 关系运算及逻辑运算模块
**关系运算符(Relational Operators)**是一种在Simulink中用于比较两个或多个输入信号的运算符。关系运算符将输入信号相比较并生成一个二进制输出信号,表示比较结果的真假。常见的关系运算符有以下几种:
1. ==(等于):这个运算符表示输入信号是否相等,如果相等则输出1,否则输出0。
2. ~=(不等于):这个运算符表示输入是否不相等,如果不相等则输出1,否则输出0。
3. <(小于):这个运算符表示输入信号是否小于另一个输入信号,如果是,则输出1,否则输出0。
4. > (大于):这个运算符表示输入信号是否大于另一个输入信号,如果是,则输出1,否则输出0。
5. <=(小于等于):这个运算符表示输入信号是否小于或等于另一个输入信号,如果是,则输出1,否则输出0。
6. >=(大于等于):这个运算符表示输入信号是否大于或等于另一个输入信号,如果是,则输出1,否则输出0。
在Matlab和Simulink中,可以使用下列函数来判断一个变量是否为无穷大、NaN或者有限值:
isinf
: 判断是否为无穷大,如果输入变量为Inf或者-Inf,则返回True,否则返回False。isnan
: 判断是否为NaN,如果输入变量为NaN,则返回True,否则返回False。isfinite
: 判断是否为有限值,如果输入变量不是NaN、Inf或者-Inf,则返回True,否则返回False。
这些函数可以用于在程序中对输入数据进行错误检测和处理。在一些情况下,可能需要对数据进行范围限制或者修正,在这种情况下可以通过这些函数来判断输入是否合法,避免程序中出现未定义行为。例如,在Simulink中,可以在使用除法模块前,通过判断除数是否为0和是否为NaN,来避免程序中出现未定义的除0行为或者NaN结果。
NaN(Not a Number)是一种特殊的数值,通常用于表示无效的计算结果。在Simulink中,NaN值可以表示无意义的运算结果或未定义的数值。
Logical Operator模块可以支持这些不同类型的逻辑运算操作。下面是这些运算类型在Simulink中的实现方法:
- AND:在Logical Operator模块中选择“AND”运算类型,将多个输入信号连接到模块的输入端口上,得到的输出信号在所有输入信号都为true时为true。
- OR:在Logical Operator模块中选择“OR”运算类型,将多个输入信号连接到模块的输入端口上,得到的输出信号在至少一个输入信号为true时为true。
- NAND:在Logical Operator模块中选择“AND”运算类型,将多个输入信号连接到模块的输入端口上,然后将输出信号连接到一个NOT Logic Operator模块上,输出信号将是与逻辑运算的结果的逻辑取反,即至少一个输入信号为false时为true。
- NOR:在Logical Operator模块中选择“OR”运算类型,将多个输入信号连接到模块的输入端口上,然后将输出信号连接到一个NOT Logic Operator模块上,输出信号将是或逻辑结果的取反,即没有输入信号为true时为true。
- XOR:在Logical Operator模块中选择“XOR”运算类型,将多个输入信号连接到模块的输入端口上,得到的输出信号在输入信号中为奇数个true时为true,否则为false。
- NXOR:在Logical Operator模块中,使用与XOR相同的方法,并将输出信号连接到一个NOT Logic Operator模块上,输出信号将是XOR运算结果的逻辑取反,即输入信号中有偶数个true时为true。
- NOT:在Logical Operator模块中选择“NOT”运算类型,将一个输入信号连接到模块的输入端口上,得到的输出信号是该输入信号的逻辑取反。
2.8 积分模块(1)
外部输入:
在Simulink中,可以使用积分模块 Integrator
对信号进行积分。对积分器的上下限进行设置,请参照以下步骤:
- 打开模型,在模型中添加
Integrator
模块并连接输入信号。 - 右键单击
Integrator
模块并选择Limit output
。 - 在弹出的参数对话框中,输入积分器的上下限值,即
Lower Saturation Limit
和Upper Saturation Limit
。 - 单击
OK
按钮保存更改并关闭参数对话框。
如果在积分模块 Integrator
开启了饱和界限功能,并且初始值不在饱和界限范围内,那么在模拟过程中模型会报告一个错误。
当然也可以使用Saturation模块对上下限范围进行限定。