轿车商场的剧烈竞赛要求规划者有必要缩短产品开发周期。在传统的轿车电子操控器的规划开发中,操控器的总体规划、全体功用剖析以及操控战略的优化一般需求很多的时刻、人力和物力,出资大、功率低。此外,这种开发办法还简略犯错,直到终究定标时才进入实时在线测验。如果在开端规划时犯错而没有及时发现,则会导致大部分作业有必要从头进行,开发周期变长。可见传统的研制办法无法满意商场的需求,必需有一种新的规划理念来习惯商场的需求。
1 V形式的规划办法及主动代码生成
1.1 V形式的规划办法
如图1,与传统的规划办法比较,V形式的规划办法将体系工程学的原理使用于现代轿车电子体系开发中,它是一种循环的规划形式。其特色是不管进行开发、编程或许测验,总是在同一环境下作业,开发进程的每一步都能够得到验证[1]。它以功用强壮的核算仿真东西为条件,整个规划进程都是在同一个渠道下完结,完结从规划理念的提出,到快速原型规划(Prototype),再到ECU产品的无缝衔接。选用该办法的最直接效果便是加快和简化了开发流程,及时消除过错,大大减轻了工程师的作业量。
1.2 运用Simulink完结主动代码生成
主动代码生成处于V形式的最底层,是整个开发进程中最为要害的一步,其意图是完结开发进程中的快速迭代以进步开发功率。代码生成的质量直接影响体系的牢靠性和稳定性。
图2为依据MATLAB/Simulink的DSP主动代码生成流程[2]。Simulink是一种关于动态体系进行多域仿真和依据模型规划的渠道,它供给了一个交互式的图形环境和丰厚的模块库。依据体系的功用要求,首先在MATLAB/Simulink环境下树立体系模型,而且进行仿真剖析。运用Simulink调试器查看仿真成果以及定位和诊断模型中的意外行为。一旦成果得到了验证,便能够通过RTW(Real-time workshop)主动生成面向TI编译器的C言语工程文件,并进一步完结编译、衔接和下载,终究在硬件渠道上运转。
RTW是和MATLAB、Simulink一同运用的一个东西,运用它直接从Simulink模型生成代码而且主动树立能够实时运转的程序。在默许状况下,RTW生成的是高度优化和彻底注释的C代码。除了MATLAB function模块和调用M文件S函数的模块以外,任何Simulink模型都能够生成代码,包含线性、非线性、接连、离散以及混合模型[3]。
从整个进程来看,工程师只需在Simulink中树立模型和验证模型的正确性,不需求书写任何代码,即可得到牢靠、精确的代码。
2 嵌入式Target for TI C2000东西箱
Target for TI C2000将TI公司的eXpressDSP东西集成到Simulink中,它是MATLAB与TI CCS的衔接东西,能够使MATLAB、MATLAB东西箱、TI Code Composer Studio集成开发环境(CCS IDE)以及RTDX(Real-Time Data Exchange)协同作业。
Target for TI C2000东西箱由三部分组成[3]:常用东西、芯片外围设备模块库、优化库。常用东西包含实时数据交换通道模块、方针操控器根本参数设置模块和CAN通讯设置模块。该东西箱支撑C281x系列、C280x系列以及C2400系列的DSP。优化库包含定点运算库和数字电机操控库。
Simulink可支撑四类C280x DSP外围设备模块库:存储器的读写模块、中止办理模块、操控模块以及通讯模块。除了不支撑I%&&&&&%通讯模块以外,该模块库对C280x DSP板上一切的模块都供给了很好的支撑。用户在调用DSP的这些模块时,只需对相应的模块进行参数设置和挑选,不需求关怀底层是怎么完结,整个模型的树立进程就像堆积木相同简略。
3 主动生成代码在电池办理体系中的使用
3.1 电池办理体系的功用描绘
BMS燃料电池车用锂离子电池办理体系BMS(Battery Management System)是一个嵌入式实时监控体系,应具有以下功用[4]:电池状况监控,包含电池作业电压、作业电流和作业温度的丈量和信号处理;特定状况下的最大充、放电功率核算;特定工况下电池组荷电状况SoC(State of Charge)、寿数状况SoH(State of Health)的预算;高压预充电、过充和过放维护、绝缘检测和漏电维护;电池的均衡和热办理;故障诊断以及与整车操控器通讯。图3为BMS体系框图。
因为轿车在处于泊车状况时,BMS仍需每隔必定的时刻对电池进行监控,所以在长时刻泊车时,BMS不可将蓄电池存储的电量耗完,不然轿车将无法发动。因此在泊车时,BMS有必要进入低功耗形式。当轿车开动时,从KL15传来的焚烧信号将操控器从低功耗形式唤醒,进入正常作业形式。
3.2 操控器的挑选
从BMS的功用能够看出,操控器起操控效果的功用只占BMS的小部分,在实时参数估量、SoC预算中,算法杂乱且运算量大,操控器需求在较短的时刻距离内完结杂乱的递推运算,这对操控器的核算才能和核算速度要求更高。传统的电池办理体系选用单片机作为操控器,因为单片机侧重于操控而实时数据运算才能有限,所以无法很好地满意BMS的要求。TI公司的TMS320C2000系列DSP集微操控器和高功用DSP的特色于一身,具有强壮的操控和信号处理才能,能够完结杂乱的操控算法。该系列DSP上整合了Flash存储器、快速高精度的A/D转化器、两路增强的CAN模块、事情办理器、正交编码电路接口、多通道缓冲串口等外设。32位定点运算的C2808 DSP能够在一个周期内完结32×32位的乘法累加运算,或两个16×16位乘法累加运算。此外,能够在一个周期内对任何内存地址完结读取、修正、写入操作,使得功率和程序代码到达最佳,彻底满意实时操控的要求[5]。
3.3 电池参数辨识和SoC估核算法
电池监控必需先进行建模,实时检测电池的电压、电流以及温度,依据这些数据对模型的参数进行辨识,然后直接地估量电池内部的状况。图4为锂离子动力电池模型[6],模型中使用C0描绘电池的容量,R0描绘电池的等效欧姆内阻,用时刻常数较小的R1、C1环节描绘锂离子在电极间传输时遭到的阻抗,时刻常数较大的R2、C2环节描绘锂离子在电极材猜中分散时遭到的阻抗。该模型中的参数都能够通过参数辨识的办法得到。
为了完结自习惯操控和盯梢随时刻改变的参数,在辨识进程中选用递推的最小二乘法。电池内部参数依据电压、电流信号每次的采样值进行更新,其根本思想是本次的估量值等于上一次的估量值加上一个修正项,修正项的巨细取决于模型的输出与实践输出的差项。该办法要求在下次采样之前有必要完结一步递推运算。
在装车运转时,整车操控器需求BMS供给高精度的SoC,一般估量精度要小于5%。电池的SoC是不能直接得到的,只能通过对电池电压、电流、温度、内阻等参数进行丈量直接预算得到。而且这些参数又与电池老化程度、电池单体不均匀性等有关。现在常见的办法有开路电压法、电流积分法等。
3.4 依据CAN总线的标定模块
因为轿车上网络体系的广泛使用,依据网络衔接的操控单元标定和传统的匹配标定办法有很大的不同。依据CAN的电子操控单元的标定是电池办理体系操控器开发的一个重要环节。CCP(CAN Cali-bration Protocol)是CAN总线的标定协议,现在现已得到轿车厂商的广泛使用。使用该协议能够快速有效地对操控器进行标定。在电池办理体系中,能够使用CCP完结实时在线测验、传感器的监测和标定、报警或犯错阈值的调整以及通过CAN下载程序。
在传统的手写代码的操控器规划进程中,依据CCP协议的标定需求支撑CCP协议的驱动程序。因为ECU底层程序和CCP协议的驱动程序各不相同,将CCP驱动程序结合到ECU中需求消耗很多时刻。MATLAB 2007b中新增了依据CAN总线的标定模块。将该模块放入Simulink模型中,并设置好相关参数,便能够主动生成能够完结CCP标定的代码了。
3.5 在Simulink中树立模型
在建模的最开端必需把C2000 DSP chip support 中的F2808 eZdsp 模块放到模型中。该模块是对DSP的根本信息进行设置,包含芯片的挑选、锁相环时钟频率的挑选、存储器地址分配,以及外围设备的一些根本设置。
传感器输出模仿信号和数字信号,关于模仿信号能够用A/D转化模块进行转化,关于数字信号能够用GPIO或许CAP捕获模块处理。经硬件滤波后的模仿采样信号还不行抱负,在该模型中能够对采样信号进行快速傅立叶改换,剖分出噪声信号的频率特性,并规划出相应的数字滤波器,对采样信号进行进一步滤波。执行器的操控能够用GPIO或许PWM模块进行操控。
因为SoC和SoH以及操控算法较为杂乱,能够用S-function模块完结。S-function是一个动态体系的核算机言语描绘,是扩展Simulink模块库的有力东西,它选用一种特定的调用语法,完结函数和Simulink解法器之间的交互。Simulink中的电池办理体系模型如图5所示。
3.6 主动代码生成、编译以及运转
在Simulink中仿真运转无误后,便能够从模型直接生成操控算法代码了。Simulink在内部调用real-time workshop build 而且主动翻开TI的集成开发环境CCS,生成的代码通过编译主动生成可执行的终究操控程序。