MATLAB/Simulink 通信原理及仿真学习(二)

MATLAB/Simulink 通信原理及仿真学习(二)

simulink仿真

  • 交互式、图形化的建模环境
    鼠标拖动不同模块库中的系统模块并将它们连接起来。

  • 交互式的仿真环境
    下拉菜单或通过命令行进行仿真,例如蒙特卡洛仿真。

  • 专用模块库
    DSP、Blockset和Communication Blocket等。更重要的是用户可以对系统模型进行代码生成,并将生成代码下载到不同的目标机上。

  • 提供了仿真库的扩充和定制机制
    可以扩展仿真环境功能,接入第三方开发提供的模块库进行更高级的系统仿真。

  • 与MATLAB工具箱的集成
    Simulink的有点:(1)基于矩阵的数值计算;(2)高级编程语言;(3)图形可视化;(4)工具箱提供面向具体应用领域的功能;(5)丰富的数据I/O工具;(6)提供与其他高级语言的接口;(7)支持多平台;(8)开放与可扩展的体系结构。

常用的Simulink库

1. 信号源模块库

  • 输入端口模块(In1):用来反映整个系统的输入端子,设置在模型线性化与命令行仿真时是必须的。
  • 常数输入模块(Constant):常数作为输入。
  • 普通信号源发生器(Signal Generator):能够生成若干种常用信号,如:方波、正弦、锯齿波,允许用户自由地调整其幅值、相位及其他信号。
  • 接地线模块(Ground):零输入模块,Simulink仿真中如果一个模块的输入端子没有接任何其他模块,接入此输入端子即可避免错误信息。
  • 时间信号模块(Clock):生成当前仿真时钟, 在与时间有关的指标求取中很有意义的。
  • 读文件模块(From File)和读工作空间模块(From Workspace):两个模块允许从文件或MATLAB工作空间中读取信号。
  • 带宽限幅白噪声(Band-Limited White Noise):
  • 其他类型信号输入:阶跃输入(Step)、斜坡输入(Ramp)、脉冲信号(Pulse Generator)、正弦信号(Sine Wave)等。

2. 数序运算模块

  • 增益函数(Gain):输出信号等于输入信号乘以增益模块中的值。

  • 求和函数(Sum):求输入的多路信号的和或差。

  • 代数约束模块(Algebraic Constraint):约束输入信号,令其值为0.

  • 复数的实部虚部提取模块(Complex to Real-Imag)、复数变换成幅值幅角的模块(Complex to Magnitude-Angle)及其反变换。

  • 数学函数绝对值(Abs),符号函数(Sign),三角函数(Trigonometric)、取整模块(Rounding Function)等。

  • 数字逻辑模块逻辑运算模块(Logic Operator)、组合逻辑模块(Combinational Logic),常用于逻辑电路搭建。

3. 信号输出模块库

  • 输出端口模块(Out1):反映整个系统的输出端子,这样的设置在模型线性化与命令行仿真时是必须的。
  • 示波器模块(Scope):将输入信号在示波器中显示出来(非常常用的模块)。
  • x-y示波器(x-y Graph):将两路输入信号分别作为示波器的两个坐标轴,将信号的相轨迹显示出来。
  • 工作空间写入模块(To Workspace):将输入信号直接写到MATLAB的工作空间中。该模块默认的写法是结构体型的数据, 可以通过设置将之设置成矩阵型的。
  • 写文件模块(To File):将输入信号写到文件中。
  • 数字显示模块(Display):将输入信号用数字的形式显示出来。
  • 仿真定制模块(Stop Simulation):如果输入的信号为非零时,将强行终止正在进行的仿真过程。
  • 信号终结模块(Terminator):可以将该模块连接到闲置的未连接的模块输出信号上,避免出现警告。

4.仿真搭建

  • 模型选取后,可以鼠标左击起始模块,之后按住Ctrl座机目标块,系统会自动进行模块之间的连接。
  • 按住Shift键后可以进行连接线的调整。
  • 可以使用Signal Routing中的Mux模块,进行模块组合,将某些模块的输出信号(常为标量)组合为一个矢量信号,并将其作为另一个模块的输入。
  • 注意在仿真时,如果仿真的时间段较大,这是系统默认的最大步长 s t e p = t e n d − t b e g i n 50 step = \frac{t_{end}-t_{begin}}{50} step=50tendtbegin会比较大,这是需要去调整一下最大步长,即如下:

5.搭建自己的库

  • 这里步骤很多特别繁琐,用到的时候看例子学习吧,有关于 Subsystem Examples 的例子,这里就简单记录一下步骤过程吧。
    1. Ports&Subsystem****模块中选取Subsystem**模块;
    2. 双击打开Subsystem模块进行像不应内容编辑;
    3. 进行模块封装。

6.S-函数编写

  • S-函数时系统函数(System-functions)的简称,采用非图形化的方式描述一个功能块。

状态矢量 x \boldsymbol x x分成两部分,连续实际状态 x c ′ \boldsymbol x_{c}^{'} xc和离散事件状态 x d + 1 \boldsymbol x_{d+1} xd+1

  • 涉及的概念知识有:(1)直接反馈:(2)可变长度输入;(3)采样时间和偏移。




    可以去MATLAB安装路径下 \toolbox\simulink\blocks中查找S-函数模板sfuntmpl.m,运行时注意必须把simulink放置在S-函数文件所在的目录。

猜你喜欢

转载自blog.csdn.net/weixin_42269028/article/details/129138712