1.低压上电过程
1.1 VCU唤醒
VCU 被 IGN 上升沿信号唤醒,即钥匙为KeySta == Key.ON或有充电需求时ChrgReq == true。VCU被唤醒后会发送VCU_SelfChkCMD = 1,5S内读取EE2PROM状态,若持续3s都能读取,EE2PROM_Read = true则认为自检通过 。若自检不通过或自检超时,进入低压下电流程。
1.2 低压上电
自检通过即VCU初始化完成后则进入低压上电流程。VCU 初始化完成之后,以下两个条件中有一个发生即开始低压上电:
-
启动开关切换至 ON 档或者 START 档;(KeySta == Key.ON || KeySta == Key.START)
-
识别到充电需求,且 BMS 并未反馈充电结束;(ChrgReq == true && BMS_BatSta == BatSta.CHRG)
满足其中一种低压上电条件之后,VCU 控制唤醒继电器闭合(WakeUp_Rly ==Wakeup_RlySta.CLOSE ),唤醒MCU、 BMS、AC、DCDC,然后各个 ECU 完成自身的初始化。VCU向各ECU发送自检命令(ECUs_SelfChkCMD == true)
当VCU 收到如下反馈:
-
各ECU初始化完成,ECUs_Sta == ECUs_Sta. INIT;(与VCU判断一直)
-
BMS_send_BatMngSts=1~7;
-
BMS 所有最小周期( 10ms )的报文连续更新 10 周期;
-
MCU_send_MtrInitSt=2
-
MCU 所有最小周期( 10ms )的报文连续更新 10 周期;
则低压上电完成, ECUsInit=4 。
1.3 低压上电过程建模
1.4 低压上电过程测试
1.将输入全调整为理想状态,使得输出能走完stateflow全流程。
2.根据需求,将上述的需求某个条件改变,调整每个输入条件。以后有时间在做。
2.高压上电过程
2.1 预充过程
在低压上电完成之后ECUsinit = 4,VCU 发出高压上电指令,同时BMS闭合预充、主副继电器。
-
VCU_BMSHVPwrCmd=1 , VCU_MtrHVPwrOnCmd=1。
-
BMS_send_BatNegRlySt = 1, BMS_send_BatPrechrgRlySt = 1;
若 VCU 接收到以下两个条件中任何一种,则启动高压上电流程—开始预充。
-
钥匙状态为 START(IGN 信号为高),且未检测到 3 级或 4 级故障,且无整车碰撞历史故障;
-
识别到充电需求,且未检测到 3 级或 4级故障,且无整车碰撞历史故障;
当满足如下条件时,VCU认为预充完成,闭合主正继电器、断开预充继电器,同时闭合DCDC继电器。
-
当BMS检测到母线电压为电源电压的(90~95%时),则认为预充完成,发送给VCU,进入高压上电;
-
若一定时间内(2S)BMS未检测到预充条件达成,则进入高压下电流程,同时报预充超时警。
2.1.1 预充过程建模
2.2 高压上电过程
高压上电过程,首先DCDC进行上高压流程,闭合DCDC继电器开始计时,若超出一定时间,DCDC仍未完成上电,则报DCDC上电超时警,进入下高压流程。
当满足如下所有条件时,VCU 认为高压上电完成(HV_OK=003D)。
-
主负继电器闭合,即 BMS_send_BatNegRlySt=1;
-
主正继电器闭合,即 BMS_send_BatPosRlySt=1;
-
预充继电器断开, 即BMS_send_BatPrechrgRlySt = 0;
-
BMS 未发出紧急下电请求,BMS_send_PowDwnReqst =0;
-
DCDC进入正常工作状态。
则高压上电完成。
2.2.1 高压上电过程建模
3. 高压下电过程
3.1 高压下电触发条件
启动高压下电流程有 5 种情况:
-
启动开关高压上电超时,即钥匙 START 信号引起 VCU 发出高压上电指令(充电枪未连接),开始计时,超过 5s 未检测到高压上电完成;
-
充电触发的高压上电超时,即BMS_send_BatSlowChrgSt=1~3 (且 OBC_send_CPSt=7 , OBC_send_CCSt=1 ),或BMS_BatFastChrgSt=1~3,引起 VCU 发出高压上电指令,开始计时,超过 180s 未检测到高压上电完成;
-
三级故障持续时间超过 30s;
-
高压状态不稳(判断高压上电完成的 4 个条件任何一条不满足持续 50ms);
-
四级故障发生。
-
预充超时
-
DCDC上高压超时
3.1.1 高压下电触发条件建模
这里只例举预充超时和DCDC上电超时进入下高压流程的条件进行建模,其他进入下高压条件建模方式类似。
BMS_Voltage:预充超时判断,同上一小结。BMS_Voltage == 1,为预充完成,==2,为预充超时,==0为预充中(校验中)
3.1.2 高压下电触发条件测试
3.2 高压下电准备
当整车没有发生四级故障触发高压下电流程时,出于保护各个高压器件的考虑,需要进行高压下电的准备工作,即 VCU 对 MCU 发出高压下电准备指令
(VCU_MtrHVPwrDownCmd=1),同时关闭电机使能(VCU_MtrInvtrActv=0),电机关闭扭矩输出、关闭电机使能。
当以下 4 个条件均满足时,认为高压下电准备完成,
-
MCU_send_MtrActlTqFb的物理值绝对值<CAL_tq_BMSRlyOffMax;
-
MCU_send_MtrActlSpdFb的物理值绝对值< CAL_n_BMSRlyOffMax;
-
BMS_send_BatCurr 的物理值绝对值< CAL_I_BMSRlyOffMax;
-
车速< CAL_v_BMSRlyOffMax;
另外,如果在高压下电准备状态持续时间超过 60s,则 VCU 不再等待整车状态,启动高压下电流程。
3.2.1 高压下电准备建模
3.2.1 高压下电准备测试
3.3 高压下电
若整车没有发生四级故障触发高压下电流程,高压下电准备完成之后,VCU 向 BMS 发出高压下电指令(VCU_BMSHVPwrCmd=0);若发生四级故障,则 VCU 不经过高压下电准备过程直接向 BMS 发出高压下电指令。
BMS 接收到指令后,断开主正继电器、主负继电器,以下条件满足任意一条,则认为高压下电成功,
-
BMS_send_PreChrgRlySt=0 且 BMS_send_BatPosRlySt=0;
-
BMS_send_BatNegRlySt=0;
另外,如果超过 2s 仍然没有高压下电成功,则 VCU 不再等待,也不能启动主动放电流程,电机被动放电,上报高压下电超时故障。
3.1.1 高压下电建模
3.1.1 高压下电测试
3.4 电机主动放电
VCU检测到高压下电成功以后,启动电机主动放电功能,发出电机主动放电指令(VCU_MtrHVPwrDownCmd=2),同时电机使能(VCU_MtrInvtrActv=1),电机进行主动放电。
当电机反馈MCU_MtrActvDchrgStFb=3时,认为电机主动放电完成。
另外,如果超过3s仍然没有完成主动放电,则VCU不再等待,进入休眠准备,上报主动放电超时故障。
4.1 VCU休眠准备
当如下 2 个条件有一个满足时,VCU 进行休眠准备,
-
VCU 发出高压下电指令(VCU_BMSHVPwrCmd=0)之后开始计时,超过2s 未检测到高压下电成功;
-
VCU 发出电机主动放电指令(VCU_MtrHVPwrDownCmd=2)之后开始计时,超过 3s 未检测到电机主动放电完成;
此时,VCU 发出 BMS、MCU 的休眠允许,即 VCU_BMSAsleepPmt=1, VCU_MCUAsleepPmt=1。