实例讲解电动汽车VIN写入规则及Simulink建模方法(三)——VIN设置状态反馈及Simulink建模方法

目录

一、整车VIN设置状态反馈规则

二、整车VIN设置状态反馈设置策略

1、VIN设置状态判定

2、VIN设置状态反馈发送

三、整车VIN设置状态反馈Simulink建模

1、VIN设置状态判定

2、VIN设置状态反馈发送

3、整车VIN设置状态反馈设置完整Simulink模型

四、总结


一、整车VIN设置状态反馈规则

1、整车VIN码设置和参数由VIN刷写上位机发起,如果VCU在5秒内没有响应,则报通讯错误。

2、VECU_PARAMETWRFB(0x573)定义如下:

0x00:未设置

0x01:系统繁忙

0x02:正在进行

0x03:设置成功

0x04:设置失败

设置成功时VECU_PARAMETWRFB(0x573)发送0x03

校验和错误或数据超出范围或不按要求发送设置值时VECU_PARAMETWRFB(0x573)发送0x4

二、整车VIN设置状态反馈设置策略

1、VIN设置状态判定

输入信号具体计算方法参考之前发布的文章

实例讲解电动汽车VIN写入规则及Simulink建模方法(二)——VIN写入方法及Simulink建模

实例讲解电动汽车VIN写入规则及Simulink建模方法(一)——VIN校验方法及Simulink建模

1)当校验后帧号不等于8且不等于0,同时VIN写入标识位等于1,则说明VIN正在写入过程中,输出VIN设置状态为0x02 正在进行

2)若不满足条件1,判断VIN写入结果是否等于0xAA,若等于0xAA,表明禁止写入,此时输出VIN设置状态为0x01 系统繁忙

3)若也不满足条件2,判断VIN读取数值是否全为0,全为0,则说明VIN未写入,此时输出VIN设置状态为0x00 未设置

4)若也不满足条件3,判断是否在校验后帧号不等于8的情况下,满足VIN写入结果为0x00 写入成功或0x04 读取成功,或VIN读取结果为0x00 成功,说明VIN已成功写入内存,此时输出VIN设置状态为0x3 设置成功

5)若以上条件都不满足,则输出VIN设置状态为0x4 设置失败

2、VIN设置状态反馈发送

1)判定VIN设置状态后,需要将该状态反馈至上位机;根据VIN设置状态反馈规则,应通过0x573报文发送VIN设置状态至CAN总线。

2)以VIN设置状态为输入量,新建CAN打包模块,将打包后的CAN报文信息发送至Pcan及Ecan

三、整车VIN设置状态反馈Simulink建模

1、VIN设置状态判定

1)输入信号

VINWrite_Result:VIN写入结果,0x00:写入成功,0x02:写入失败,0x04:读取成功,0x08:校验失败,0xAA:禁止写入(写入结果判定由底层程序写入函数执行后判定输出结果)

VINRead_Result:VIN读取结果,0x0:成功,0x1:失败(读取结果判定由底层程序读取函数执行后判定输出结果)

ReadVIN_Value:VIN读取数值(读取数值由底层程序读取函数读取后传递至应用层作为输入信号)

VINWrite_Flg:VIN写入标识位

ChkVINFrm_Nmb:校验后VIN帧号

2)输出信号

VINSet_Fb:VIN设置状态反馈信号

3)Simulink模型

a、根据上文VIN设置状态判定策略,搭建Simulink模型,其中VIN写入结果判定是否等于0xAA,0xAA转换为十进制为170

b、读取VIN数值判定是否为空Simulink模型

2、VIN设置状态反馈发送

1)输入信号

VINSet_Fb:VIN设置状态反馈信号

2)输出信号

CAN_Pcan_CanMessage_0x573:Pcan 0x573报文

CAN_Ecan_CanMessage_0x573:Ecan 0x573报文

3)Simulink模型

CAN打包模块具体设置方法参考之前发布的《实例讲解Simulink应用层开发CAN报文解包及CAN信号设置方法》

a、将VINSet_Fb输入CAN打包模块,输出信号分别为CAN_Pcan_CanMessage_0x573及CAN_Ecan_CanMessage_0x573

b、CAN打包模块参数设置,选择0x573对应的DBC报文

3、整车VIN设置状态反馈设置完整Simulink模型

四、总结

本文介绍了一种整车VIN设置状态反馈规则,并详细介绍了VIN设置状态反馈的具体策略及Simulink建模方法。希望能给相关技术人员带来一定参考和帮助。


欢迎关注同名微信公众号:汽车电控研习室

### 如何在Simulink中对直流水冷负载装置建模 #### 3.1 建立基础电气元件模型 为了构建直流水冷负载装置,在Simulink环境中需先引入基本的电气组件。对于水冷负载而言,其核心在于模拟电阻特性来表示电能消耗并考虑冷却效果带来的热管理影响。 ```matlab % 创建新的Simulink模型 new_system('WaterCooledLoad'); open_system('WaterCooledLoad'); % 添加电阻作为主要负载部件 add_block('simulink/Simscape/Foundation Library/Electrical/Elements/Resistor',... 'WaterCooledLoad/WaterCoolingLoad'); set_param('WaterCooledLoad/WaterCoolingLoad','R','5'); % 设定初始阻值为5Ω [^3] ``` #### 3.2 集成散热机制 考虑到实际应用场景下的温度变化会对设备效率造成显著影响,因此还需要加入相应的物理过程描述以反映热量传递规律。这通常涉及到流体流动方程和传热学原理的应用。 ```matlab % 导入Simscape Fluids库用于定义液体属性及其运动状态 add_block('fluids/Thermal Liquid Network/Tanks & Reservoirs/Liquid Tank',... 'WaterCooledLoad/CoolantTank'); set_param('WaterCooledLoad/CoolantTank','Volume','0.01'); % 定义储液罐容量为10L % 描述水流路径及换热情况 add_block('fluids/Thermal Liquid Network/Pipes & Fittings/Pipe (TL)',... 'WaterCooledLoad/CoolingPipe'); connect('WaterCooledLoad/CoolantTank.T','WaterCooledLoad/CoolingPipe.P1'); connect('WaterCooledLoad/CoolingPipe.P2','WaterCooledLoad/WaterCoolingLoad.HPort'); ``` #### 3.3 控制逻辑实现 最后一步是搭建控制系统以便精确调节输入功率从而维持稳定的工作环境。此部分可以利用PID控制器或者其他高级算法完成闭环反馈回路的设计。 ```matlab % 构造简单的PI控制器来行电压调整 add_block('simulink/Commonly Used Blocks/Gain',... 'WaterCooledLoad/VoltageController'); set_param('WaterCooledLoad/VoltageController','Gain','-Kp'); % Kp代表比例系数 % 连接信号线形成完整的控制环路 connect('WaterCooledLoad/Setpoint','WaterCooledLoad/ErrorSignal.inport_1'); connect('WaterCooledLoad/WaterCoolingLoad.v','WaterCooledLoad/ErrorSignal.inport_2'); connect('WaterCooledLoad/ErrorSignal.outport','WaterCooledLoad/VoltageController.inport'); connect('WaterCooledLoad/VoltageController.outport','WaterCooledLoad/PowerSupply.Vin'); ``` 上述代码片段展示了如何创建一个简易版的直流水冷负载仿真框架。当然,具体实施过程中可能还需根据不同需求一步优化各模块间的交互方式以及参数配置细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汽车电控研习室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值