Matlab只是一个工具,真正重要的东西是在脑子里面形成的想法和控制策略。
上一讲,笔者将“车辆系统启动与停止控制”大脑中形成的想法(需求)进行了详细讲解,本次会根据上一讲得出的需求,尝试搭建“车辆系统启动与停止”的软件架构及控制算法并进行仿真验证。
在正式搭建模型之前,笔者会先根据需求整理出控制策略的大致软件框架,即所谓的草图,然后再进行详细建模。
首先还是回顾下上一讲的需求,如下表所示:
系统的启动与停止控制软件需求汇总
软件需求分类 |
软件详细需求 |
运转许可 |
没有驾驶员踩刹车踏板、扭动钥匙或按下一键启动按钮信号时,不向电动动力传动系统发出运转许可指令 |
若档位在P/N(驻车挡/空挡)挡以外时,当驾驶员进行车辆系统启动操作时,不向电动动力传动系统发出运转许可指令 |
|
没有高压系统准备完成OK的信息时,不向电动动力传动系统发出运转许可指令 |
|
若有可能导致危害事件的部品故障时,且车辆处于静止状态,不向电动动力传动系统发出运转许可指令 |
|
行驶许可 |
要求DC/DC 处于ON的状态 |
若电池SOC在规定值(可根据实际标定)以下,不向电动动力传动系统发出行驶许可指令 |
|
停止要求 |
若驾驶员有明确的停止操作(车辆静止条件下)时,车辆系统能够响应并安全停止 |
若驾驶员有明确的强制停止操作(车辆运行条件下)时,车辆系统能够响应并安全停止 |
|
防盗认证 |
若各ECU信息不匹配,不向电动动力传动系统发出运转许可指令 |
若各ECU信息不匹配,需要停止发动机点火以及燃油喷射指令 |
|
功能安全 |
若有可能导致危害事件的部品故障时,且车辆处于运行状态,需要通过降级处理方式让车辆安全停车或进入安全状态,比如跛行模式(Limp Home) |
其他 |
从驾驶员的IG OFF操作到系统各ECU停止工作进行休眠状态期间,要求DC/DC ON |
对于驾驶员的启动操作,车辆系统需要在规定的时间内完成启动 |
|
对于EV(纯电驱动)/PHEV(插电式混动) |
若充电插头与充电桩不匹配,不向电动动力传动系统发出运转许可指令 |
…. |
…. |
然后,笔者根据需求,主要从以下几点来思考如何建立控制软件框架:
-
实现需求是否需要多个状态?
-
每个状态之间的关联是否明确表达?
-
状态间的条件是否明确?
-
...
通过以上的思考,为了表达需求中状态迁移的过程,很自然的想到要用Simulink/Stateflow去建立模型,这也是水到渠成的过程。
系统的启动与停止软件架构草图
软件架构草图表达了系统从休眠状态到启动完成状态的整个过程,同时,根据需求,将各状态的切换条件进行了明确表达。
下面,笔者根据软件框架草图,进行详细建模,因为有清晰的软件架构草图,控制策略模型详细搭建这个过程反而变得简单,应用Matlab/Simulink软件搭建了系统启动与停止的控制策略模型。
输入信号主要为:附件的状态(f_device_st),启动信号(f_start_st)、系统故障状态(f_system_fail)、系统停止状态(f_system_stop)、档位信号(f_p_st)、DC/DC延迟关闭信号(f_dcdc_extend)、钥匙状态(f_ig)。
输出信号主要为:系统状态(f_system_ok)、DC/DC输出状态(f_dcdc_st)、驱动力许可(f_driving_force)、系统状态编号(system_number)。
详细模型如下图所示:
系统启动与停止Simulink整体模型
Simulink模型展开:
在软件架构草图以及详细控制策略模型明确后,需要对模型与需求的符合性进行仿真验证,这个过程一般用Simulink自带的工具即可实现,给一组激励,来进行仿真验证:
f_device_st= 1;
f_start_st= 1;
f_system_fail= 0;
f_system_stop= 0;
f_p_st= 1;
f_dcdc_extend= 1;
f_ig= 1;
系统启动与停止控制测试结果
从结果可以看出,当附件状态正常,系统无故障且无停止要求,档位处于N/P挡,且有明确的驾驶员启动信号时,车辆被成功启动,DC/DC处于输出状态、允许行驶。
在需求和控制策略模型明确的情况下,测试用例的编写相对来说不难,以上的测试用例只是一个范例,其他测试用例,留给大家自行思考补充~
~以上为笔者本次分享的内容,根据脑子里的想法尝试着描述了系统的启动与停止软件架构草图并搭建了详细的控制策略模型,暂时想到这么多,也全是干货,希望大家积极补充,因为思考的过程也是自我提升的过程,脑子里形成的想法才是最重要的~
下次分享混合动力车辆电池低温启动问题。
未完待续!
说明:文章来源新能源汽车电控技术