r是轮子的半径。
在本实验系统中,将加速手把的转速设定值ωr(参考角速度)定义为与最大速轮的转速,即左转时,右前轮角速度为ωr;右转时,左前轮角速度为ωr(也可另行定义)。
很显然,如果在程序中直接套用上面的公式,则运算量将非常大,运算时间也会很长;但可以看出,只要方向盘的转角δ定,则4个轮子的转速与参考角速度的比值ω1/ωr、ω2/ωr、ω3/ωr、ω4/ωr是唯一确定的。所以在程序运行当中,完全可以预先将0。到最大转向角问分成若干等份,再将不同的δ值对应的4个速度比率列成表格,用查表与内插值的方法简化运算的过程。
值得一提的是,上述的算法可以在Matlab/Simulink中搭建模型,它将使表格的查询与线性内插值的处理变得十分方便。整个算法模型完成之后,还可以利用Matlab的自动代码生成功能,直接生成C语言代码,嵌入到控制系统当中去,这极大地缩短了系统开发的时间。
2 XCl64CS微处理器
对于四轮驱动电动车的控制应用,要求微处理器提供系统安全和故障保险机制,以及有效的措施以降低器件的功耗,并且具有强大的运算能力与稳定性能,同时保证系统具有足够用于整车系统进一步改进与升级所需的资源。为此,选用了Infineon公司的高性能16位微控制器XCl64CS。
XCl64内核结构结合了RISC和CISC处理器的优点,这种强大的计算和控制能力通过MAC单元的DSP功能实现。XCl64把功能强劲的CPU内核和一整套强大的外设单元集成于一块芯片上,并有效连接。同时,在XCl64上应用的LXBus是众多总线中的一条,是外部总线接口的内部代表。这个总线为XCl64的衍生产品集成附加的特殊应用外设提供标准途径。
3 实时操作系统内核ARTXl66
由于电子差速器只是中央控制系统功能的一部分,为了提高整车控制系统的实时性与可靠性,同时便于系统进一步的扩展(例如电池管理系统、车灯管理系统),在控制器中采用了嵌入式实时操作系统。
实时操作是基于并行任务(进程)的思想,将应用分解成若干个独立的任务,并将各任务要做的事、任务问的关系向实时多任务内核交代清楚,让实时多任务内核去管理这些任务。
实验系统中采用的ARTXl66实时内核是由Keil公司发布的,一个易于在英飞凌XCl6x系列微处理器上使用的多任务实时操作系统。它允许建立最多达255个任务,任务间的切换主要通过Round-Robin循环的模式进行。这是一种准并行的方式,将CPU时间划分成时间片,每个时间片内运行一个任务,由实时内核按照任务号依次将控制权传递给准备好的任务。由于时间片很短,所以看起来任务像是同时在运行。
如果Round-Robin循环模式被用户禁用,则任务与任务间的切换必须通过调用os-tsK-pass()函数来完成,它将立刻切换到下一个准备好的任务。除此之外,还可以通过给任务分配不同的优先级,按优先级抢占调度的时序运行。
在ARTXl66实时内核中,任务或进程间的通信主要采用了以下4种方法:
①事件标记。它主要用于任务间的同步,每个任务分配有多达16个事件标记,任务的继续(或唤醒)可以选择等待所有的事件标记或是只等待其中的一个或几个。事件标记也可以通过外部中断程序进行设定,从而与外部事件进行同步。
②信号量。它是载有虚拟令牌的二进制信号量,用于解决多个任务占用公共资源的情况。在同一时间内,该令牌只能交给一个任务,避免了任务间的干扰。没有令牌的任务将处于睡眠状态,只有在得到令牌之后,该任务才会被唤醒。另外,为了防止进入错误状态,可以为等待令牌设置一个时限。
③互斥锁。它用于锁定共同资源,只允许一个任务占用,其他任务是封锁的,直到互斥锁被释放。
④邮箱。它主要用于任务之间信息的交换。
4 电子差速系统及其控制流程
电子差速系统是一种基于CAN总线的分布式四轮电子差速系统。它由1个中央控制器、4个电动轮控制器及CAN总线网络3个部分组成。
该分布式系统的电子差速实时控制过程为:中央控制器通过A/D采样获得来自转向传感器的车辆转向角度信号以及来自手柄转把中的车速设定信号,经过整车差速算法,分别获得4个车轮当前各自应有的转速,并将这一结果作为当前时刻对应车轮的转速控制设定值,通过CAN总线发送给相应的电动轮控制器;4个车轮控制器以从CAN总线收到的转速设定值为控制目标,使用电动转速控制算法对各自的电动轮进行控制,使各个电动轮的实际转速实时满足整车差速算法的要求,进而实现电动车辆的平顺转向。