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

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

文章目录

  • 1 Simulink中的Vector信号
  • 2 Vector信号的代码
  • 3 总结

1 Simulink中的Vector信号

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

2 Vector信号的代码

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

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

3 总结

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

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

>>返回个人博客总目录

你可能感兴趣的:(Simulink代码生成,simulink)