• Simulink 最基础教程(三)常用模块


    3.1源模块

    在这里插入图片描述
    1)clock
    这个模块的输出是 y(t)=t。很多信号都是和时间 t 相关的,例如正弦波信号,可以写成 sin(w*t) 的形式。虽然软件也提供了正弦波模块,但如果用 clock 模块+三角运算模块,对初学者而言,也是很好的做法,至少减轻了很多负担:基于几个模块就可以建立大部分信号源。

    2)constant
    模块的输出是 y(t)=value,其中value的默认值是1。这里引出一个“模块参数”的概念。双击模块后,弹出的对话框里,所有可以设定的量,就称为模块参数,比如 constant 模块最重要的模块参数,就是 value。需要注意的是,这个value可以写1*1的标量,也可以写向量或者矩阵。在 signal attributes 标签下,还有其他的模块参数,比如之前一直强调的 data type,就可以设定后续信号线上的数据类型。
    在这里插入图片描述
    3)repeating sequence
    只看模块图片,一般人会以为这是“锯齿波”,但其实这个模块的功能远不止如此。双击模块可以看到 time 和 output 两个 value,填入两个等长的向量即可。效果上,相当于输出一个信号 plot(time,output) 的周期延拓。和 plot 的思路一样,只要能用描点法描述的函数波形,都能用这个模块实现。
    在这里插入图片描述

    3.2运算模块

    1)连续传函
    自动控制原理里,会大量用到线性时不变系统,这些模块都在这个库里,用状态方程描述的state-space,用传递函数描述的 transfer Fcn,以及其中的特例,积分模块。
    在这里插入图片描述
    2)离散传函
    与连续传函对应的,是离散传函。特别的,unit delay模块。这里对应1.4.2求解常微分方程组的例子,如果是求解离散系统的迭代方程 x(k+1)=f(x(k),u(k),t(k)),那么这个过程就是拖拽一堆unit delay模块,将他们的输出定义为 x(k),搭建函数 f 后,再将结果交给 unit delay 的输入。
    在这里插入图片描述
    3)比较和逻辑运算
    主要是两个模块,Logical Operator用来实现与或非的运算,双击之后,除了 operator 这个模块参数外,还有一个 icon shape,用来调整模块的外观,可以让模块看起来更像逻辑门。Relational Operator是比较模块,一般使用时,先将信号线连到比较模块,然后再交给与或非运算,用来实现 MATLAB 中的 if 逻辑表达式。
    在这里插入图片描述
    4)数学运算
    这个库涵盖了加减乘除、三角、指数等常用数学符号,基本上初等函数都在这里了。Add模块双击后,会有模块参数 list of signs,用于控制输入的个数和其运算的规则。例如三个加号,那么输出信号就是三个信号相加的结果。同样的逻辑也适用于divide模块。对乘除法模块有一些额外说明,就是multiplication这个模块参数,可以选择点乘,也可以选叉乘。这两种乘法与 MATLAB 中的定义一样。剩下的几个模块,都是双击后能有多种选择,都是初等函数。
    在这里插入图片描述

    3.3终点模块

    暂时只需要知道 scope 就足够日常使用了。双击 scope后,有几个需要注意的地方
    1)小齿轮按钮,可以调节输入个数,从而一个模块观察多个输入。
    2)工具栏上有缩放,用来观察特定区域的信号
    3)有个logging限制,可以只显示信号线 y(t) t=最后一段时间,的时域波形。
    在这里插入图片描述

    3.4流程控制模块

    MATLAB里说的流程控制,一般是指for,while,if,switch这些,Simulink里要实现 for 和 while 比较少见,但实现 if 的情况还是很多的,这时,需要 switch 模块。这个模块的原理是根据第二个信号的值,来判断输出第一个信号还是第三个信号,相当于MATLAB的代码
    if u2>th
    Out=u1
    else
    Out=u3
    end
    在这里插入图片描述

    3.5 信号线属性模块

    在 2.3 中有讲,信号线的基本属性是采样时间、维度、数据类型,这里有两个模块可以强制信号线的采样时间和数据类型,当遇到关于信号线属性不匹配的报错时,可以用这两个模块解决。例如图中,假设左边模块输出 int8 数据类型,而右边模块希望输入是 int16 数据类型,这样直接连线会造成报错,说数据类型不匹配。此时加入一个 convert,将左边的 int8 输出,转成 int16,就满足了右边模块的要求。
    在这里插入图片描述
    在这里插入图片描述

    3.6小结

    Simulink提供了如此众多的模块,就如同 MATLAB提供了如此众多的函数一般,这里只是介绍了一些我自认为常用的模块,更多模块还是要边用边学。

  • 相关阅读:
    Improved Baselines with Momentum Contrastive Learning
    人工智能职业教育怎么搞?操作系统层级的解法来了
    【31-业务开发-基础业务-品牌管理-级联类别信息业务功能实现-品牌管理和商品分类管理俩者业务关联出现数据冗余,导致数据不同步的问题-开启事务-项目测试】
    STM32 CAN总线通讯
    使用 Charles 去修改响应信息(真实工作使用场景1)
    百亿数据分库分表核心流程详解
    如何使用 LeiaPix 让照片动起来
    云计算与大数据——Spark的安装和配置
    JPA的注解@Field指定为Keyword失败,导致查询不到数据
    TCGA的拷贝数变异CNV可视化
  • 原文地址:https://blog.csdn.net/qq_24252589/article/details/133934386