当前位置:首页 >> 信息与通信 >>

MATLAB、SIMULINK系统建模设计与仿真基础



6.4 S函数编写SIMULINK模块

1

信源模块
?

信源模块的特点是仅有输出节点,而没 有输入节点,在用S-函数实现中,可在 其输出信号处理部分进行编程即可。举 例如下: 用S-函数实现一个正弦波信号 源。要求其幅度、频率和初始相位参数 可由外部设置,并将这个信号源进行封 装。
2

3

4

?

在该S-函数接口中,我们使用了三个输入参数 项分别作为正弦波的幅度、频率和初相位的输 入,相应地在使用S-函数模块调用该函数时需 要在设置对话框中的S-function parameters中 填写这些输入参数项,然后采用前述的方法对 S-函数模块进行封装,就得到了一个子系统和 相应的参数设置对话框。完成后的系统如下图 所示。最后,设置好示波器显示范围和仿真参 数就可以启动仿真实验了。
5

图:S-函数实现的信号源和封装结果

6

代数运算模块

7

8

图:S-函数和Fcn模块同时实现的对输入信号进行代数运算的测试模型和仿真结果
9

6.5 SIMULINK仿真的数据结构 和编程调用方法

10

图:信号属性检测的测试模型和仿真执行结果,Probe模块检测结果直接显示在模 块方框中,信号宽度为W:6,采样时间为Ts:[1,0],C:1表示是复信号,D:[2,3]是 信号的维数
11

?

Simulink可以使用Matlab规定的全部数据类型。如果 需要相互连接的端口数据类型不一致,就需要插入数 据类型转换模块来进行接口。数据类型转换模块在 Simulink基本库“Signal Attributes”中,模块名称是 “Data Type Conversion”,它可以根据所连接模块的 输入输出端口数据类型进行自动匹配,也可由用户指 定转换数据类型进行强制转换。例如:

?

12

?

图:用“Data Type Conversion”模块进 行数据类型转换的示例
13

14

“Reshape”模块的设置对话框和解释参见下图。

?

图:Reshape模块的设置对话框和解释
15

连续时间与离散时间信号的相 互转换以及采样速率转换
1、连续时间信号
?

连续时间信号定义在连续时间值上,即在给定时间范 围内任何时刻信号的取值都是有意义的。在Simulink中, 是根据连续信号的离散时间采用样通过插值来得到连 续信号。用其基本库Sources中的“Repeating Sequence”可以产生任意连续周期信号。只要给出信号 在一个周期内的若干离散时间点上的取值, “Repeating Sequence”将通过线性插值来得到任意仿 真计算步上的信号取值。例如我们仍以时间[0,1,2]上 的样值[2,5,4]来产生周期为2秒的信号,测试模型、 Repeating Sequence的设置以及仿真结果波形如下图 所示。
16

?

图:用Repeating Sequence模块由信号的离散时间样 值产生连续时间周期信号
17

2、离散时间信号 离散时间信号则定义在离散时间序列上,只有所定 义的离散时刻信号的取值才有意义。例如我们用基本 库Sources中的“Random Number”模块产生离散时间 随机信号,设置采样时间为1秒(默认值为0秒即产生 连续的随机信号)。建立测试模型,并设仿真时间段 从0秒到5秒,用示波器观察输出波形并将仿真结果数 据输出到Matlab工作空间,如下图所示,我们看到, 离散时间随机信号源每隔1秒输出一个随机的电平值, 虽然示波器上在非整数时刻上仍然显示了波形,但这 仅仅是为了方便观看而已,概念上没有意义。从输出 到Matlab工作空间的信号值看出,实质上离散信号是 对应于时间[0,1,2,3,4,5]的6个取值。
18

?

图:用Random Number模块产生离散时间随 机信号:测试模型、设置和测试结果
19

3、离散时间信号到连续时间信号的转换 ? Simulink中,可以使用低通滤波器来将离散信号恢复为 模拟信号。为了建模方便,Simulink还提供了另外几种 近似恢复连续信号的方法,简介如下: ? 用基本模块库“Signal Attributes”中的“Rate Transition”模块来转换。 ? 连续时间系统模块本身允许离散时间信号作为输入, 而其输出信号将自动转换为连续信号,因此也可以用 连续时间系统模块来作为转换环节。 ? 下图是一个连续时间信号到离散时间信号转换,再恢 复到连续时间信号的测试模型。
20

?

示波器显示波形结果参见下图。

21

4、不同采样速率信号的转换 如果在仿真模型中存在不同采样速率的离散信 号或系统模块,则称之为多速率(multirate)的仿 真模型。 下图中的系统演示了一个斜率为1的斜升 的连续信号(用Ramp模块)被采样时间为1秒的零 阶保持器采样得到速率为1样值/秒的离散时间信号, 然后该信号又被分别用采样时间为2秒的零阶保持 器降速为0.5样值/秒的离散时间信号,以及用延迟 时间为0.5秒的单位延迟器升速为2样值/秒的离散时 间信号。仿真时间段为0到5秒,本仿真测试模型可 采用变步长的积分算法,模型中加入了为四个不同 的信号线加入了采样时间探测模块“probe”。
22

?

图:一个连续信号到离散信号转换以及离散速率转换测试模 型。图中,Zero-Order Hold的采样时间为1秒,Zero-Order Hold1的采样时间为2秒,而Unit Delay的采样时间为0.5秒。 仿真完成后,Probe模块中分别显示了所连接部分的信号采样 率。信号采样率为0表示连续信号
23

?

运行后将显示出各信号线上的信号速率。 下图中分别给出了四条信号线上的波形 仿真结果。

24

5、不同速率模块和信号连线的颜色表示 在多速率模型中,为了清楚显示不同速率的系统部 分,可选中模型编辑窗口主菜单Format下的Sample time colors选项,这样模型中不同速率的模块和连线 将用不同的颜色显示出来。这些颜色的含义如下: ? 黑色:表示连续信号线和连续模块。 ? 洋红:表示常数模块。 ? 黄色:表示混合模块或混合子系统,即输入输出端口 或子系统内部具有不同采样速率的那些模块,例如连 接了不同速率信号线的Mux或Demux模块等。

25

? ? ? ? ? ? ?

?

红色:表示系统中具有最高采样率的离散系统部分。 绿色:表示系统中采样速率位居第二的离散系统部分。 蓝色:表示系统中采样速率位居第三的离散系统部分。 淡蓝:表示系统中采样速率位居第四的离散系统部分。 深绿:表示系统中采样速率位居第五的离散系统部分。 橙色:表示系统中采样速率位居第六的离散系统部分。 青色:表示触发子系统部分。 灰色:具有最小固定步长的部分。

26


相关文章:
MATLAB系统仿真实训课程设计
Simulink 实际上提供了一个系统级的建模与动态仿真的图形用户环境,并且凭借 MATLAB 在科学计算上的天然优势,建立了从设计构思到最终要求的可视化桥梁,大 大弥补了...
MATLAB的仿真课程设计
SimulinkMATLAB 中的一种可视化仿真工具, 是一种基于 MATLAB 的框图设计 环境,是实现动态系统建模仿真和分析的一个软件包,被广泛应用于线性系统、非 线性...
matlab课程设计 电路系统仿真
SimulinkMATLAB 中的一种可视化仿真工具, 是一种基于 MATLAB 的框图设计 环境,是实现动态系统建模仿真和分析的一 个软件包,被广泛应用于线性系统、非 线性...
异步电动机matlab与Simulink仿真设计
异步电动机matlab与Simulink仿真设计_电力/水利_工程科技_专业资料。本文通过结合Matlab / Simulink中的模块和s函数,建立了鼠笼式异步电动机的模型,并进行了分析。通...
电子信息MATLAB系统仿真与设计
电子信息MATLAB系统仿真与设计_信息与通信_工程科技_专业资料。matlab实现的仿真设计...任意选择一个待仿真的实际问题,建立模型并分析仿真结果,或者 MATLAB Simulink ...
MATLAB仿真设计
MATLAB 仿真设计 系院:电子与电气工程学院 专业:电子信息工程 班级: 学号; ...然后借助所学的 matlab 中的 simulink 仿真系统来实现电池 的充放电模型。 内容...
基于Matlab的高阶系统设计与仿真
基于Matlab的高阶系统设计与仿真_电力/水利_工程科技_专业资料。课程设计说明书 题班姓学 目:基于 Matlab 的高阶系统设计与仿真 级: 电气五班 名: 党伟 号:...
基于MATLAB通信系统的设计仿真
基于MATLAB通信系统设计仿真_信息与通信_工程科技_专业资料。电子信息工程课程...(3)在理解通信系统理论的基础上,利用 Simulink 强大的仿真功能,对 PSK 通信...
基于Matlab、Simulink 的AM通信系统仿真设计与研究
Simulink 仿真建 立 AM 调制的通信系统模型, Matlab 仿真程序画出调制信号、 用 载波、 已调信号、 相干解调之后信号的波形以及功率频谱密度,分析所设计系统性能。...
simulink仿真实验设计报告
MATLAB 最重要的组件之一,它提供一个动态系统建模仿真 和综合分析的集成环境...了解 SIMULINK 程序设计基本特点,熟悉 MATLAB 软件运行环境 ? 掌握创建、保存...
更多相关标签: