Simulink 自动代码生成System Composer的使用Architecture Model

目录

前言

已有模型转换成架构模型(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还有更多的应用细节可以慢慢研究。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/18726.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32 Proteus仿真水箱水塔水位温度控制系统DS18B20 -0065

STM32 Proteus仿真水箱水塔水位温度控制系统DS18B20 -0065 Proteus仿真小实验: STM32 Proteus仿真水箱水塔水位温度控制系统DS18B20 -0065 功能: 硬件组成:STM32F103C8单片机 LCD1602显示器ADC220V转3.3V电路DS18B20温度多个按键&#xf…

mac上 如何批量在文件名中插入文字

mac上 如何批量在文件名中插入文字?在使用Mac电脑的时候,我们经常需要对大量文件的名称进行修改,例如需要在大量文件的名称中插入一些相同的文字或者字符的时候,你会用什么方法来完成这项工作呢?相信很多人就面对过类似…

校园网免认证/校园网pojie

我们的目标是xiao yuan wang pojie 我们使用一个简单的python脚本,用于jiechu /pojie校园网只能登录一台手机和一台电脑的限制,仅供学习。 原理 我们利用已有可正常上网的校园网账户作为跳板,连上网后在后台下线账号所登录的设备&#xff0…

Python3,6行代码,搞定网络测速神器,我直接卸载某60测速器。

6行代码搞定网络测速器 1、引言2、代码实战2.1 介绍2.2 安装2.3 示例 3、总结 1、引言 小屌丝:鱼哥,你知道speedtest 这个库吗? 小鱼:嗯,知道一点点,咋了? 小屌丝:那你教教我怎么使…

【输入法篇】关闭微软输入法烦人的必应的文本建议设置

【输入法篇】关闭微软输入法烦人的必应的文本建议设置 额,微软输入法设置路径藏得有点深,建议在设置里面直接搜索进入,方便些!—【蘇小沐】 文章目录 【输入法篇】关闭微软输入法烦人的必应的文本建议设置1.实验环境 &#xff08…

MySQL_2

目录 一、函数 1、字符串函数 2、数值函数 3、日期函数 4、流程控制函数 二、约束 1、概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。 2、目的:保证数据库中数据的正确、有效性和完整性。 3、分类 4、外键约束 4…

工厂能源管控系统

随着现代工业的发展,工厂能源消耗不断增加,能源成本成为企业生产经营的重要组成部分。为了降低能源消耗、提高生产效率和降低成本,越来越多的企业开始采用工厂能源管控系统。本文将从多个方面介绍工厂能源管控系统的全面内容。 一、工厂能源管…

C# PaddleInference OCR 表格识别

效果 项目 VS2022.net4.8OpenCvSharp4Sdcb.PaddleInferenceSdcb.PaddleOCR 测试图片 代码 using OpenCvSharp.Extensions; using OpenCvSharp; using Sdcb.PaddleInference; using Sdcb.PaddleOCR; using Sdcb.PaddleOCR.Models; using Sdcb.PaddleOCR.Models.Details; using…

前端开发中的单例模式

在前端开发中,单例模式是一种常见的设计模式,用于确保一个类只有一个实例,并提供一个全局访问点来获取该实例。 在JavaScript中,可以使用以下几种方式来实现单例模式: 字面量方式: const singleton {// …

spring boot 集成dubbo

本demo使用spring boot 2.4.1版本集成 dubbo 2.7.15 1.创建maven项目及其子模块 父工程pom.xml <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.ap…

如何在海外进行A/B测试

A/B测试是对应用的各个版本进行实验&#xff0c;以分析用户如何与其交互的有效过程&#xff0c;它能够帮助我们改进关键指标&#xff0c;例如参与度或应用内购买&#xff0c;以及推出新功能&#xff0c;从而最大限度地降低大规模流失用户的风险。 A/B测试和ASO优化通常适用于应…

Android Jetpack Compose多平台用于Android和IOS

Android Jetpack Compose多平台用于Android和IOS JetBrains和外部开源贡献者已经努力工作了几年时间来开发Compose Multiplatform&#xff0c;并最近发布了适用于iOS的Alpha版本。自然地&#xff0c;我们对其功能进行了测试&#xff0c;并决定通过使用该框架在iOS上运行我们的…