概述
1.应用层软件概述
电控应用层软件偏向于解决车辆的实际驾驶工况和应用场景问题,以及通过精妙的控制算法或策略实现零部件的精准控制。应用层软件一般从底层软件获取来自传感器或CAN通讯的输入数据,通过自身复杂而有效的策略和算法计算或决策出控制目标,输出给底层软件最终去驱动执行器。比如电机控制器,根据当前油门或制动,坡度,车速等数据,识别出车辆现在处于什么工况,再根据工况的特性,是加速还是减速,是急加速还是急减速等特性,计算出电机的目标转速和目标扭矩,然后基于电机特性Map,确定目标电流或电压,最终驱动电机,以此精准控制电机运转。通过这个例子,也不难发现,要做好应用层软件有几点要求:
1) 深入理解控制对象所应用的场景,车辆有不同的驾驶工况,比如加速超车,制动回馈,自动巡航,自动泊车等。在这些场景下,我们一方面要深入理解控制对象的应用状况,另一方面也要处理不同驾驶工况如何相互切换;
2)深入了解控制对象的实际特性,以电机为例,电机特性Map图(转速-扭矩-功率),电机特性受温度等因素的影响情况;
3)深入掌握控制对象的基础知识,还以电机为例,电机的基本控制方法,电机驱动控制原理,车辆运动学理论等。
2 应用层软件的开发工具
当前应用层软件的开发工具,在国内最流行的应该是Mathworks公司的Matlab+Simulink+Stateflow, 像当下自动驾驶的应用层,有很多公司会采用代码开发,像C、C++等,不过这里提到的都是基于模型的应用层软件开发。
相对于底层软件,应用层软件偏向于解决车辆的实际驾驶工况和应用场景问题,以及通过精妙的控制算法或策略实现零部件的精准控制。应用层软件一般从底层软件获取来自传感器或CAN通讯的输入数据,通过自身复杂而有效的策略和算法计算或决策出控制目标,输出给底层软件最终去驱动执行器。比如电机控制器,根据当前油门或制动,坡度,车速等数据,识别出车辆现在处于什么工况,再根据工况的特性,是加速还是减速,是急加速还是急减速等特性,计算出电机的目标转速和目标扭矩,然后基于电机特性Map,确定目标电流或电压,最终驱动电机,以此精准控制电机运转。通过这个例子,也不难发现,要做好应用层软件有几点要求:
1) 深入理解控制对象所应用的场景,车辆有不同的驾驶工况,比如加速超车,制动回馈,自动巡航,自动泊车等。在这些场景下,我们一方面要深入理解控制对象的应用状况,另一方面也要处理不同驾驶工况如何相互切换;
2)深入了解控制对象的实际特性,以电机为例,电机特性Map图(转速-扭矩-功率),电机特性受温度等因素的影响情况;
3)深入掌握控制对象的基础知识,还以电机为例,电机的基本控制方法,电机驱动控制原理,车辆运动学理论等。
3 应用层软件的开发工具
当前应用层软件的开发工具,在国内最流行的应该是Mathworks公司的Matlab+Simulink+Stateflow, 像当下自动驾驶的应用层,有很多公司会采用代码开发,像C、C++等,不过这里提到的都是基于模型的应用层软件开发。
就是先根据详细设计方案搭建模型,再基于开发工具所提供自动生成代码配置,将所有模型自动生成C代码;生成的应用层软件代码和底层代码一起编译执行,生成可供ECU执行运行的文件,比如s19,Hex,Bin等格式;最终通过刷写工具将软件烧录到ECU相应的内存空间,启动ECU就可以实时运行软件,执行相应的功能。
最后
以上就是任性路人为你收集整理的电控应用层软件开发介绍的全部内容,希望文章能够帮你解决电控应用层软件开发介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复