目录
前言
已有模型转换成架构模型(Architecture Model)
架构模型生成代码步骤
总结
前言
前面已经介绍了AUTOSAR架构模型怎么去搭建,参考下文:
Simulink代码生成:Autosar模型及代码生成_simulink autosar_卡洛斯伊的博客-CSDN博客
那为啥还有一个架构模型呢,在System Composer除了AUTOSAR架构模型外,还有一个不带AUTOSAR架构的模型如下图:
模型架构化有啥好处?程序模型化,方便多人协同等,当然现在还没有到那么大型的项目,由于前面要把三相PFC和单相PFC的模型整合,这就涉及到了两个PFC的执行周期不一样,如果不用架构模型进行建模,生成的代码会有一定的耦合,也许可以有其他方法进行解决比如说更改配置或者直接手动调整生成的代码,但是这里采用的方法就是构建一个架构模型,配置每个模块的周期,生成的代码独立且可以做模型仿真验证,还是比较方便的。
已有模型转换成架构模型(Architecture Model)
如下是一个已经搭建的三相PFC和单相PFC兼容的仿真模型,生成代码是中间一块,包含各自的状态机和控制算法
第一步:新建一个架构模型,如下
第二步: 得到了一个空白的Component,根据系统需要设计并创建对应的Component
如下,根据需要对系统进行分解得到PFC模式的判断,单相和三相PFC的控制主模型和信号输出模型,其中三相和单相PFC里面还包含电压环,电流环,状态机等。
第三步:把原始模型进行分解,得到PFC模式识别,这里根据系统需要按照执行周期的不同进行划分,以PFC_Mode为例,重新创建一个子模型并把原始模型拆分成子模型,这一步和AUTOSAR架构模型操作类似,需要根据需要设置生成代码的配置,模块执行速度等
第四步:调用子模型,如下右键Link to Mode
完成后效果如下:
第五步:重复以上步骤后如下,输入信号直接连接Component的左边沿,输出信号连接Componet的右边沿
最后成品如下,生成代码部分的模型已经完成了整个架构模型的转换
第六步:调用架构模型,复制原始模型,添加Model模块对Component模块进行调用进行仿真验证,如下:
第七步:替换掉原始模型里面的核心算法模块,进行系统仿真,一开始肯定会报各种连接数据类型的错误,按照提示进行调整即可
第八步: 仿真验证
三相PFC工作正常
单相PFC工作正常
架构模型生成代码步骤
把模型架构化后生成代码的操作和正常模型生成代码操作类似,这里以2020b为例
第一步:打开主Component模型,找到APPS 找到Eembeded Coder
第二步:第一次生成代码最好点Quick Start按照提示完成步骤,等配置和模型都没有错时下一次生成代码直接点Build就可以了
这里选择Multitasking rate monotonic
生成代码效果如下,View Code就可以看模型对应生成的代码了
生成代码可以看到,step2包含了所有1ms运行一次的函数,如PFC的模式,状态机等。
总结
以上就是通过System Composer把模型架构化生成代码的操作演示,实际中System Composer还有更多的应用细节可以慢慢研究。