Simulink代码生成: Vector信号及其代码

本文描述Vector信号的建模并研究生成的代码。本文中的示例模型和代码文件下载地址为。

1 Simulink中的Vector信号

Vector信号即向量信号,指的是信号里包含的不是一个变量,而是一组变量。例如Constant模块里面写的是一个向量,其输出的信号就是Vector信号。
在这里插入图片描述
或者,通过Mux模块,将多个Scalar信号(就是最常见的只代表一个变量的信号)合并成一个Vector信号。
在这里插入图片描述
Vector信号线和Scalar信号线看起来是一样的,都是一条细直线。可以通过选择Simulink菜单栏——Display——Signal & Ports——Signal Dimensions,在模型中显示出信号线的维度,从而看出是Vector信号。
在这里插入图片描述
在这里插入图片描述

2 Vector信号的代码

Vector信号对应的C代码的概念就是数组。通过上面两个简单的模型可以生成如下代码。
在这里插入图片描述
代码中的step函数反映了Mux模块把输入端In1和In2的数值分别赋给了数组Out2的第0个和第一个元素。因为Out2的维度是默认的,没有设置,所以继承了Vector信号的维度。

接下来看一下initialize函数。
在这里插入图片描述
initialize函数函数中首先把输入输出都初始化为0,然后再分别给Out1的四个元素赋值1,2,3,4。这也对应了模型中把常数数组输出给Out1。至于这个动作为什么反映在initialize函数中而不是step函数中,博主猜测由于是常量赋值,所以被软件优化成这样的。

3 总结

Vector信号很简单,它的背后就是C语言中的数组。在以后分析Simulink生成的代码时,看到了数组可以考虑它可能对应着一处Vector信号。

另外,Matrix信号作为矩阵的信号,和Vector信号相似,可以举一反三。

>>返回个人博客总目录

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值