Simulink建模:如何学习Simulink建模

news2024/11/24 9:07:42

本文介绍博主自己学习Simulink建模的方法。后续博客都会按照本文中的思路来记录博主学习的过程。

文章目录

  • 1 Simulink建模的分类
    • 1.1 连续模型建模
    • 1.2 物理模型建模
    • 1.3 控制算法建模
  • 2 控制算法建模的基本知识
    • 2.1 控制算法与电控软件架构
    • 2.2 控制算法与周期调度
    • 2.3 控制算法与其他模块的接口
  • 3 学习控制算法建模
  • 4 总结

1 Simulink建模的分类

博主至今为止写过很多博客,主题基本都是围绕MBD开发的,因为博主的专业背景是汽车软件开发这个方向。事实上,Simulink建模并不等同于电控软件开发。

1.1 连续模型建模

曾经有过同学在后台私信我,询问关于传递函数建模仿真的问题。博主认为这属于连续型建模,主要用于仿真,尤其是学术上的仿真,用来验证某些算法,并作为论文发表的依据。

这里在Simulink建模中,选择的求解器是可变步长的类型,如下图。

在这里插入图片描述
这部分的建模,后续的博客中不会涉及。因为博主在理论方面并不擅长。

1.2 物理模型建模

物理模型的搭建无论是学术上还是工程中都有应用。在Simulink和SimScape中,可以搭建物理模型并编译,然后下载到实时仿真系统中(例如Dspace或NI的设备)。这是汽车行业中进行HIL测试的重要环节之一。因为正确的物理模型,可以帮助在仿真阶段发现一部分的软件问题。

这部分技术路线也不会在博主的文章中涉及到。因为博主也没做过测试工程师,对此只是一知半解。有需要的小伙伴可以参考其他资料。

1.3 控制算法建模

控制算法建模将是后续博主在Simulink建模部分的主要内容。建立的控制算法模型将会实现控制器的应用层软件功能。本文的后续几章节会概述一下控制算法建模的基本知识以及博主的学习过程。

2 控制算法建模的基本知识

2.1 控制算法与电控软件架构

图中是Classic AUTOSAR的基本架构图。
在这里插入图片描述
Autosar架构由微控制器、基础软件层、RTE层、应用层组成。而本文讨论的控制算法建模处于应用层软件中。通过Vector DaVinci可以生成架构和ARXML文件,然后导入Simulink中就能生成输入输出接口,然后在接口的基础上进行建模。建模完毕并且做好了相关的单元测试、集成测试后,便可以生成代码,与其他Autosar代码一起编译。

当然,博主也见过很多不用Autosar架构的团队做开发,但基本方式差不多,也是用Simulink进行应用层软件开发。

2.2 控制算法与周期调度

在建模的过程中,要有一个概念,就是该模型的调度周期是多少,譬如20ms,50ms等等。这里实现周期调度是通过BSW中的OS实现的。例如EngineControl.slx模型是20ms调度一次,那么该模型生成代码会有一个对应的EngineControl_step(void)函数,该函数应该放入对应的Task_20ms()的周期调度函数中。

另外,如果模型中搭建了延时或者计时这类和时间相关的算法,就一定会将当前模型的周期体现在其中。例如下图的计时算法,首先通过Unit Delay进行计数,再将计数器得到的数字乘以该模块的调度周期(譬如0.02s),就会输出计时的结果。

在这里插入图片描述

2.3 控制算法与其他模块的接口

控制算法与其他模块的接口其实属于系统级别的知识,而不但是软件级别。对这些接口的理解也是至关重要的。这些接口都是通过底层软件处理后,传递到应用层的。博主简单讲一些常见的接口类型和来源。

1)CAN信号接口
整车上有几十块控制器,自己开发的控制器如果想获取其他控制器的物理量,就需要通过CAN信号接口传输过来。

例如,ACC(自适应巡航)功能激活的条件之一是车辆必须挂D档,那么这个挡位的信号就需要从TCU节点获取,也就是变速箱控制单元传来的CAN信号。同样的,ACC功能所在的ADAS控制器也会将自己计算的扭矩请求值发送给ECU节点,也就是说发动机控制单元获取扭矩后对这个信号进行响应。

2)Nvm信号接口
Nvm信号就是在控制器下电的时候,将信号的数值存储到EEPROM芯片或Flash中,以便下次上电后能够将这些信号读取出来传输给应用层算法算法。

例如,驾驶员在中控屏上将模式从标准模式调为运动模式,下电时就会将运动模式的状态写入EEPROM中,下次上电读出EEPROM中记忆的是运动模式。这样控制器就能记住驾驶员的选择。

3)传感器信号接口
控制器可以和传感器相连,由底层软件解析传感器信号,并传输到应用层。

例如,FCM前视摄像头模块将图像信息采集后传给控制器,再由控制器通过算法解析出车道线方程、目标车辆位置等信息。

3 学习控制算法建模

1)产品和工程背景
学习控制算法建模最好的办法就是在项目中去学习。根据自己所面对的产品和客户需求,通过建模实现想要的功能。产品越复杂,就需要更多的建模方法和技巧。产品不同,所做出的模型是不一样的。

比方说,一个搞电机的工程师和一个搞ADAS的工程师,虽然都会Simulink建模,但是因为专业知识和方向的不同,是无法理解对方的模型和算法的。

2)功能建模
Simulink建模无非就是通过最基础的模块和子系统,搭建出实现功能的模型。所以只要深入理解了想要实现的功能,建模是一个很简单的过程。

3)建模规范
在建模的过程中,需要遵守MAAB建模规范(或是其中的一部分),以便于增加模型的可读性、模型运行效率、代码质量等。

4)代码优化
最终生成的代码肯定要烧录到控制器中,但是控制器的资源十分有限,后期可能会溢出。所以模型也需要不断地优化其RAM资源、ROM资源、CPU负载等。

4 总结

本文介绍博主自己学习Simulink建模的方法。

>>返回个人博客总目录

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式-分布式缓存笔记

分布式系统缓存 缓存分类 前端缓存 前端缓存包括页面和浏览器缓存,如果是 App,那么在 App 端也会有缓存。当你打开商品详情页,除了首次打开以外,后面重复刷新时,页面上加载的信息来自多种缓存。 页面缓存属于客户端…

61 - 进程互斥锁的详细设计

---- 整理自狄泰软件唐佐林老师课程 文章目录1. 问题1.1 生活中的示例1.1.1 吃饭问题1.1.2 十字路口1.1.3 洗手间1.1.4 生产消费者问题1.2 结论2. 接下来的问题2.1 临界资源(Critical Resource)2.2 临界区(Critical Section)2.3 任…

【C3】cpu_wtd_sysfs

文章目录2.cpu_wtd_sysfs:switchboard.c (fpga下i2c访问Switch CPLD1,Switch CPLD2 :CPLD, FPGA , QSFP)scriptbmc_wtd:syscpld.c中wd_en和wd_kick节点对应寄存器,crontab,FUNCNAMEA…

Spring事务的隔离级别

事务的特性: 隔离性:多个事务在并发执行的时候,多个事务执行的一个行为模式,当一个事务执行的时候,另一个事务执行的一个行为模式是什么? 1)A,原子性,一个事务中的所有操作,要么全部执行成功&am…

I2C误码了怎么处理

我相信不少人有遇到I2C设备识别不到,或者概率性误码。 我相信大部分工程师的做法如下: 1.调整上拉电阻的大小,然后重新老化测试; 2.降低I2C速率,然后老化测试; 3.软件加入一定判断条件,将能…

Ncvicat 打开sql文件方法

Nacicat打开sql文件时,有比较多的文章介绍可以直接打开,方法介绍的比较多,但是我遇到了一个坑,就是如何配置环境都无法打开。 本机环境: windows10 mysql 5.7.40 Navicat12.1 一、遇到问题情况 1.1、通过navicat…

Kubernetes向集群外部暴露服务的方式你知道吗?

Kubernetes向进群外暴露服务的方式有三种:Ingress、LoadBlancer类型的Service、NodePort类型的Service。IngressIngress相当于service的service,可以将外部请求通过按照不同规则转发到对应的service。实际上,ingress相当于一个7层的负载均衡器…

面了一个月,终于让我总结出了这份最详细的接口测试面试题

目录 1、你们公司是如何做接口测试的? 2、什么时候开展接⼝测试? 3、接⼝测试和UI测试的工作是否重复? 4、接口测试框架怎么搭建? 5、接⼝之间有依赖时怎么处理? 6、如何判断接⼝测试的结果(成功或失败&a…

【C进阶】指针的高级话题

文章目录:star:1. 字符指针:star:2. 指针数组2.1 指针数组的定义2.2 指针数组的使用:star:3. 数组指针3.1 数组的地址3.2 数组指针的使用:star:4. 数组参数和指针参数:star:5. 函数指针5.1 函数名和函数的地址5.2 练习:star:6. 函数指针数组6.1 转移表:star:7. 指向函数指针数组…

昌德科技冲刺上市:计划募资约12亿元,蒋卫和为实控人

近日,深圳市昌德新材科技股份有限公司(下称“昌德科技”)递交招股书,准备在真真证券交易所主板上市。本次冲刺上市,昌德科技计划募资11.69亿元,中信建投证券为其保荐机构。 据招股书介绍,昌德科…

西电编译原理期末核心考点汇总(期末真题+相关知识点)

文章目录前言一、正规式1.1 相关知识点1.1.1 正规式定义1.1.2 辅助定义1.2 历年真题二、二义文法2.1 相关知识点2.1.1 二义性概念2.2 历年考题三、全部短语、直接短语和句柄3.1 相关知识点3.1.1 短语,直接短语和句柄定义3.1.2 短语,直接短语和句柄例题3.…

【企业管理】研发部视角提出对外支撑业务自助门户构思和实现

导读:公司是由不同部门组成,各个部门之间必然有协同才能使得公司各项职能正常运行。可以说公司的竞争力越强往往会得出公司内部之间工作协同就越高效,可以看出公司各部门之间协同对公司营运是十分重要的。高效协同前提必然是实现便利的信息共…

数据库设计表与表之间的关系详细介绍

文章目录数据库设计数据库设计简介表关系之一对多表关系之多对多表关系之一对一数据库设计 数据库设计简介 软件研发的步骤如下: 设计数据库还是很重要的 数据库设计概念: 数据库设计就是根据业务系统的具体需求,结合我们所选用的DBMS,为这个业务系统构…

Synology搭建Gitea(Docker)

Synology搭建Gitea(Docker) 文章目录Synology搭建Gitea(Docker)参考增加用户与用户组增加映像安装配置反向代理路由器端口转发参考 Nas轻量git方案:Docker安装Gitea;群晖(Synology) NAS 如何安装 gitea 增加用户与用户组 为所有Docer创建一个组docker; 权…

行测-判断推理-图形推理-样式规律-黑白运算

黑白元素个数不同,优先考虑黑白运算白白白黑黑白黑白黑选A考试时,这种题不要先把规律全部推出来,再去做题,太慢了直接看要推的图,通过排除法选答案黑白元素个数不同,优先考虑黑白运算白白白黑黑白黑白黑选B…

【5G RRC】5G系统消息SIB3介绍

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

[python入门(52)] - python中的OS模块(包) - 1

目录 ❤ OS模块和path模块(函数) ❤ 当前路径及路径下的文件 ❤ 绝对路径 ❤ 查看指定文件路径的文件夹路径部分和文件名部分 ❤ 路径拼接 ❤ 获取路径的文件夹路径部分 ❤ 获取路径的文件名 ❤ 查看文件时间 ❤ 查看文件大小 ❤ 查看文件是否存在 ❤ OS模…

【原创】java+swing+mysql设备预约管理系统设计与实现

我们在办公室或者学校实验室的,经常需要使用一些设备,因此需要提前租借。今天我们主要介绍如何使用javaswing和mysql数据库去完成一个设备预约管理系统,方便用户进行设备管理和预约。 功能分析: 设备预约管理系统主要是为了方便…

医疗床头卡(基站方案)

一、产品特色 低功耗,常规使用3-5年电池寿命支持空中唤醒点阵电子纸屏幕安装简单,快速布置远程智能化管理低碳环保,无纸化安全可靠ESL_BWR7.5_V2二、系统结构 三、多基站组织架构 四、电子床头卡 接收路由器发送的数据信息并解析&#xff0…

深度学习之卷积神经网络学习笔记一

1. 引言深度学习是一系列算法的统称,包括卷积神经网络(CNN),循环神经网络(RNN),自编码器(AE),深度置信网络(DBN),生成对抗…