APP下载

ESP32在基于模型设计中的应用研究

2022-05-19信松岭邓红梅

内燃机与配件 2022年8期
关键词:控件代码控制器

1 引言

当今阶段汽车信息化、智能化高速发展,汽车上新功能的应用数目成几何级增加,软件研发投入及实现效益所占比重越来越大,一台汽车的控制器代码已经达到数百万行,传统的手工编程模式面临周期大幅延长、成本倍数增加、质量难以保障等诸多问题。基于模型的设计应运而生,经过20余年发展,已经在多个领域取得广泛应用

。使得工程师把主要精力投入到算法和测试用例的研究,而不必进行嵌入式C代码的编程

,它至少有四个方面的优势:

1、图形化设计,工程师之间通过图形交流,意图明确清晰,就算不用基于模型设计,也会在设计文档中画流程图、状态机;

2、早期验证,产品研发过程中越到后期发现问题,解决的成本越高,通过基于模型设计的仿真环境可以更高效的进行早期验证;

3、自动生成代码,大多数工程师就是由于这个原因才接触基于模型设计,即使没有C语言开发基础,也能进行功能开发,而且能更专注于逻辑本身;

4、文档自动化,大多数工程师经常遇到的一个头疼问题就是“补文档”,而基于模型设计可以通过软件读取模型相关信息并自动创建文档。

2 原理与设计

2.1 研究背景

接下来就可以进行自动代码的相关设置,在Configuration Parameters中将Solver options的Type改为“Fixed-step”,System target file改为“ert.tlc”,Hardware Implement-aton的Device vendor改为:“Atmel”,Device type改为“AVR”。点击”Build Model“图标或按”CTRL+B“组合键,开始自动生成代码

财务监督制度对任何企业来说都起着非常重要的作用,是确保企业资金合理利用的重要保障,然而就目前我国大多数企业实际情况来说,由于企业管理者的管理理念,以及社会市场经济发展程度还不是很完善,导致很多企业缺乏健全的财务监督制度,这就导致大多数企业并没有对资金流向有着严格的管理。

LDH是临床上常见病、多发疾病,是导致腰腿疼痛的主要病因。同时,由于这一疾病病程长、易反复发作,严重影响到患者的生活质量。近年来,随着射频热凝术以及臭氧消融术作为微创介入治疗方法,凭借其创伤小、术后恢复快,对患者脊柱稳定性无影响等优点,被应用于LDH治疗中。

2.2 问题分析

该扩展的功能涉及两个控制器的软件开发,对于发动机控制器,新增两个CAN接收信号(转速请求状态信号和需求转速信号),并将其引入怠速控制模块,当转速请求状态信号值等于3(active),目标怠速由需求转速信号赋值;其他非active情况,目标怠速仍由原计算路径赋值。

开发设备的硬件包括:安卓手机一台(安装blinker),ESP32一台(含线,集成数据传输及供电功能),MCP2515一块,杜邦线若干。ESP32与MCP2515引脚连接关系如表1所示:

2.3 硬件连接

对于新增的外部控制器,选用ESP32开发板,该控制器集成了蓝牙和WiFi,采用blinker手机APP开发转速请求主开关、转速升、转速降三个按钮,ESP32通过WiFi接收按钮信息,并计算转速请求状态和需求转速,最后通过MCP2515将这两个信号转为CAN信号发送至总线,MCP2515完全支持CAN V2.0技术规范,与主芯片通过SPI通讯

。技术路线如图1所示:

②显示文本,在控件边上的显示文字,对控件核心作用做简要说明,此例为转速降按钮,设置为“降”;

2.4 软件设计

如2.2问题分析一节介绍,软件设计包含3个部分,手机端blinker,ESP32,发动机控制器。发动机控制器软件在怠速控制模块增加一路switch,变动很小,不做赘述。手机端blinker通过点击、拖拽、简单设置即可完成对按钮、滑块、摇杆、文字等诸多手机控件的定义,该研究主要涉及了按钮,以此为例说明,如图2:

结果如图4所示,Rh2-S诱导K562和KG1a细胞24 h后,与对照组比较,促凋亡蛋白Bax与抑凋亡蛋白Bcl-2的比值增加;周期蛋白Cyclin D1表达水平降低(P<0.05)。说明Rh2-S可以促进K562和KG1a细胞凋亡,并有效阻滞细胞周期。

MIL测试是非常有意义且有必要的,首先可以保障控制逻辑与功能定义的一致性,第二可以帮助开发人员快速定位错误。切不可仅将Simulink作为自动代码工具,它的前期验证功能也十分强大。

将发动机控制器原有的CAN总线剥开但不剪断,然后将MCP2515的CAN总线连接至剥开的总线上,注意两条线不能接反,如果外部转速请求功能异常,这是一个排查点。ESP32的线是USB口,可以通过车上的USB供电。

由图2可知,紫菜的水分含量随着微波功率的增强而降低。在500 W时水分含量最低为3.8%,这是由于在堆积厚度、微波时间不变的前提下,微波功率越大,紫菜烘干越彻底,所以水分含量越低。在紫菜干燥过程中,微波功率过高紫菜会出现烤焦现象,所以综合感官评分和水分含量选定微波功率100,200,300 W作为正交试验的3个水平。

对于新增的外部控制器,需要接收转速请求主开关、转速升、转速降三个按钮的开关信息,主开关控制转速请求状态信号在off→standby→off循环切换,在standby时,点按或长按转速升或转速降按钮进入active,再次按主开关回到standby。点按(按压1秒内)转速升和转速降按钮分别实现当前的目标转速升高或降低10rpm;长按(按压1秒以上)则首先将当前的目标转速向上或向下圆整至50rpm的倍数,然后每秒升高或降低50rpm;通过CAN发送转速请求状态信号和需求转速信号。

③显示图标,根据控件的不同核心作用,选择不同的图标,使用户更直观的了解控件作用,此例为转速降按钮,选择“向下箭头”;

④颜色(依据界面布局审美做调整)。

ESP32的软件开发有两部分,一部分以三个按钮的状态(另外还需要当前转速,作为转速变化的基础)为输入,最终输出转速请求状态和需求转速,此部分相当于应用层软件,使用Simulink基于模型的开发;另一部分接收blinker传来的三个按钮的原始信号,最后控制MCP2515将转速请求状态和需求转速转为CAN信号发出,此部分相当于底层软件,使用Arduino IDE开发。

应用层软件控制模型概况如图3所示,在输入输出的信号线上双击,可以输入信号名,然后右键信号线,选择“properties”,勾选“Signal name must resolve to Simulink signalobject”,点击确定,完成操作后会在信号名的前边出现一个蓝色的向右三叉标记。这样在自动生成的代码中,整个模型的输入输出信号名即为设置的名字,否则Simulink按其规则自定义信号名。

在搭建完成控制逻辑的模型后,就可以进行验证了,这一步称之为mode lin loop,简称MIL,而传统的开发方式,这一步仅能验证语法错误,而要实现功能验证,必须还要经过编译,集成,下载,才能进行测试,在实际的研发过程中,问题不会只有一个,只能一遍一遍的重复,这样基于模型设计的优势就体现出来了,在逻辑确定后为其搭建输入输出模型即可进行验证,如图4所示:左侧竖排三个按钮控制对应右侧的常数数值,0代表未按下,1代表按下,最终输出通过示波器及显示器查看。

通过点按、长按三个按钮,观察示波器波形及显示器具体数值如图5所示,为清晰起见,转速截取1000至1300rpm,点按主开关后,转速请求状态由1(off)变为2(standby),当点按升按钮后,又变为3(active),同时需求转速由变化的基础值1010rpm变为1020rpm,而后4次点按和长按升按钮,达到1300rpm,再点按6次和长按降按钮,达到950rpm,最后点按2次主开关,转速请求状态变为2(standby)再变为1(off)。测试结果与功能定义一致。

①数据键名,表明该控件的传输名,即下位机中表示该控件的值的变量,同一界面内的所有数据键名具有唯一性;

基于功能扩展,发动机新增如下需求,在怠速工况,通过CAN接收外部控制器的转速请求状态信号(无符整型量,1代表off,2代表standby,3代表active)和需求转速信号(无符整型量,代表需求发动机工作的转速值),并稳定工作在需求转速。

只有梁闰生佯佯不睬,装作没注意她这两年胸部越来越高。演过不止一回的一小场戏,一出现在眼前立刻被她赶走了。

接下来使用Arduino IDE开发底层软件,Arduino平台是一个单片机系统,包含很多硬件和编程软件

。将代码输入Arduino IDE,并将Simulink自动生成的代码文件(本次研究共需6个.c和.h文件,不同项目的文件个数不同)放至同一路径,Arduino IDE即可识别,如图3所示,通过点击工具栏中“项目”下拉菜单的“验证/编译”,可以检查语法等其他错误,会在最下方的消息框中以红色字体提示,如没有错误,编译完成时则显示如图的白色字体信息。最后可以通过工具栏中“项目”下拉菜单的“上传”来将程序烧录至ESP32。

特高压互联电网一体化监视和故障协同处置方案及应用//闪鑫,王轶禹,金一丁,武力,江叶峰,陆进军//(2):84

3 实验

最后进入实车验证阶段,改制一台星越L汽车,按3.1硬件连接中的方案将芯片接入,如图7所示。启动后发动机正常怠速,点击手机APP中的主开关按钮,再点按升按钮和降按钮,通过仪表指针发现转速小幅变化,长按升和降按钮,有相对大一点的幅度变化,变化周期大约为1秒。初步验证实车表现基本符合功能定义。

主观验证正常,然后进行数据采集详细验证,结果如图8所示,图中显示2个信号,ECM_EngineSpeed,CAN_Desired_EngSpd,分别为ECM通过曲轴传感器计算的当前发动机转速和通过CAN总线接收的需求转速信号,从图中可以看出发动机转速在稳定转速请求时,最大波动在20rpm以内,满足标准;在变化转速请求时,基本可以响应ESP32发来的转速请求;长按升或降按钮产生连续变化50rpm的间隔为1s;在50rpm变化(升和降)结束时发动机转速有轻微超调,但也不足20rpm。

2011年,美国国务院以向伊朗提供了两船重整油为由,对委内瑞拉国家石油公司(PDVSA)进行制裁,随后宣布该制裁仅针对委内瑞拉国家石油公司母公司而不包括其子公司[15]。2017年,美国政府经过5年调查发现,中兴通讯通过其子公司,以将购买的美国技术和配件应用到出口至伊朗的产品中的方式,密谋规避美国对伊朗制裁,并对中兴通讯母公司进行了制裁[16,17]。

4 结论

通过实车验证了手机端blinker+ESP32+MCP2515在发动机外部转速请求功能的应用可行性,重点对基于模型的设计进行了探索,研究结果表明,该方案切实有效;基于模型的设计可以进行早期验证,避免工作反复,方便准确快速定位错误;通过图形化编程搭建控制逻辑,自动生成代码,不必进行C语言的深入学习,降低开发难度。

[1]刘杰.基于模型的设计及其嵌入式实现[M].北京:北京航空航天大学出版社,2010.

[2]吴德军.基于模型设计的永磁同步电机神经网络PID控制系统研究[D].长安大学,2015.

[3]杨帆,王明黎.智能型密集架中固定柜的设计[J].自动化与仪表,2019,34(05):101-105.

[4]孙忠潇.Simulink仿真及代码生成技术入门到精通[M].北京:北京航空航天大学出版社,2015.

[5]陈绪,李志刚,陈志澜,崔秀芳,高振帮.基于Arduino平台的仿水母机器人设计[J].自动化与仪表,2018,33(09):32-35.

猜你喜欢

控件代码控制器
南京溧水电子3款控制器产品
使用“填表单”微信小程序 统计信息很方便
基于.net的用户定义验证控件的应用分析
水泥生料立磨压差变参数二型模糊控制器设计
基于NFV的分布式SDN控制器节能机制
神秘的代码
一周机构净增(减)仓股前20名
重要股东二级市场增、减持明细
近期连续上涨7天以上的股
智能液位控制器在排水系统中的应用