辽宁工业大学万得电车:基于Matlab Simulink的STM32处理器电动赛车VCU设计

作者 | 闫丰雨 万得电车队电气组负责人

首发 | 仿真秀App

导读:辽宁工业大学万得电车队成立于2014年11月,是由锦州万得汽车集团有限公司冠名赞助的车队,队员由汽车、机械、电气、电信、艺设、文传、经管等多个学院的本科生及研究生组建而成,每个赛季培养学生50余人。万得电车队2014年成立至今,国内外8场比赛3次亚军,1次季军,获20余个奖杯车队,万得电车队秉承砺器悟道的校训,以感恩、尊重、创新、创造为建队理念,致力于自主研发制造一辆性能优越的电动方程式赛车并驰骋于大学生方程式大赛赛场。

2021大学生方程式赛车技术交流月第十二期公开课基于STM32处理器电动赛车VCU设计入门》,将由辽宁工业大学万得电车队电气组负责人闫丰雨主讲。

以下是正文:

整车控制器作为整车设计中最重要的部分,整车程序设计更是其中的重要环节。在传统开发方式中,人工手写代码需要花费很长一段时间。所以目前大部分公司都采用基于模型的开发方式,使用模型直接生成控制器控制程序。相比于手写代码,通过模型生成代码的方式可以为我们缩短开发周期,提升程序更新的速度。

使用到的软件:MATLAB 2020b、STM32cube MX、Keil

一、MBD加速整车控制器程序开发

基于模型开发(Model-Based Design)简称MBD,在正常控制器程序开发过程中主要可以分为四个部分来保证程序开发的稳定性,并且加速控制程序开发。

(1)前期的需求分析与设计规范制定

在基于模型的开发流程中,需要对产品进行需求分析,并且根据需求建立需求文档或技术规范。以保证后续开发过程中各个设计环节都遵循我们前期制定好的规范和需求进行设计。这样的设计方法可以保证程序设计方向不会偏离最初的期望目标。

(2)需求与模型的跟踪链接

系统和模型可以之间可以建立一个双向链接,开发过程中可以根据需求链接到模型,同时也可以从模型链接到我们最初的需求。可以保证在设计的各个阶段都可以查验该设计是否满足设计需求,在模型开发初期进行需求追踪和测试,便于设计者尽早发现设计缺陷。

(3)代码自动生成

我们使用simulink/stateflow等搭建好系统模型后,可以使用Embedded Coder完成代码自动生成,这个工具可以帮助我们完成控制器控制程序代码自动生成工作,方便快捷,节省开发周期的同时还会帮助我们避免手写代码时人为产生的错误。

(4)测试和验证

基于模型开发另一个优势就是我们可以使用仿真的方式来对我们的设计进行各个阶段的验证,并且这个验证过程是可以反复进行的,确保开发的程序可以满足我们设计需求,并且尽可能早的发现设计缺陷或问题,减少解决问题的时间和成本。

二、基于STM32处理器VCU程序设计工具链配置

基于STM32处理器我们设计了一款整车控制器,该方案主要有以下几个方面的优势:

  • (1)相比于市面上的成品控制器,自己设计的控制器更能满足我们赛车的设计需求,不会出现接口数量不足或冗余的情况。
  • (2)该控制器可以使用MATLAB进行程序开发与验证,相当于一款自行设计的快速原型控制器,满足使用基于模型开发的流程。

接下来通过实现一个简单的小灯闪烁控制程序设计,来帮助大家了解怎样完成工具链的配置与这些工具如何使用。

首先我们打开控制器硬件设计原理图,通过硬件设计来配置好我们的软件,由下图可以看到我们使用的芯片为STM32F405ZGT6这款芯片,小灯的控制引脚分别为PC6和PC7两个引脚。

1、控制器的初始化设置

接下来我们在STM32cube MX中进行控制器的初始化配置,1新建工程 → 2选择芯片型号→ 3双击查询结果打开芯片配置界面。

图2-新建工程

然后进行引脚功能配置,1单击对应引脚 → 2选择引脚复用功能为GPIO OUTPUT。

图3-引脚功能设置

设置引脚输出模式:1单击GPIO打开设置界面 → 2单击PC6设置引脚 → 3设置引脚初始电平为低电平 → 4设置引脚输出方式为推挽输出(OUTPUT PUSH PULL)

图4-输出方式配置

选择编译IDE保存工程:1设置工程名称 → 2选择工程存储路径 → 3选择编译器IDE

2、基于Matlab程序设计过程

以上步骤我们就完成了控制器引脚的初始化并将初始化信息保存在了.ioc文件中,接下来我们在MATLAB中使用simulink与stateflow进行程序设计。

  • 打开MATLAB新建simulink模型,设置工作路径为.ioc文件的根目录。

打开参数配置界面,完成simulink模型的参数配置:1选择MODELING → 2单击MODEL SETTING。

选择TLC文件:1单击Code Generation → 2打开tlc文件列表 → 3选择STM32.tlc

使simulink与STM32cube MX建立链接:1单击STM32 Options → 2勾选STM32CubeMX Path update,勾选后系统会自动索引到STM32Cube MX的安装路径,并与simulink建立链接。

选择MCU配置模块,完成MCU在simulink下的设置:打开模型库,1选择Target Support Package - STM32 Adapter → 2单击MCU CONFIG → 3选择STM32_config模型

加载.ioc文件,1双击STM32_config → 2单击select STM32 configuration file → 3选择demo.ioc

然后选择GPIO_Write控制模块进行小灯控制程序设计:1选择GPIO_Write → 2勾选控制引脚

接下来使用stateflow模块完成小灯闪烁控制程序的设计,在chart模块中设置A和B两个状态,状态A为LED3亮、LED4灭,状态B为LED3灭、LED4亮。两个状态之间的切换条件为1s后自动跳转。

最后完成了整个小灯闪烁控制程序的模型设计部分

3、控制模型转化设置

(复制以下链接到浏览器打开,阅读完整全文)

https://www.fangzhenxiu.com/post/1687873/?inviteCode=z3cyn52KaDHYS

Matlab安装视频演示教程

https://www.fangzhenxiu.com/course/1970682/?inviteCode=z3cyn52KaDHYS

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空