本文搭建的四轮转向平台是由一个带有涡轮蜗杆减速机构的直流伺服电机,电磁离合器和普通的前轮转向机构组成。其中电机电源为DC12V,减速比设定10: 1(可调),电磁离合器电源:DC48V,实验平台如图2所示。控制策略采用前馈和反馈相结合的直接横摆率闭环控制,其中由绝对式角位移传感器采集前轮转角信号;后轮转角由精度较高的增量式光电编码器得到;车速由五轮仪获得;后轮转向由直流伺服电机经过电磁离合器连接机械转向机构实现;ECU硬件电子系统核心由TMS320F2812构成,结构框图如图3所示:
图2 实验平台
图3 结构框图
4 控制系统硬件设计与仿真
根据上文设计的控制策略,ECU单元要采集前轮转角信号、后轮转角信号、轮速信号并经过CPU运算输出电机的驱动电压,实现后轮自动转向。本文用C语言编制程序来实现设计的控制算法,并在仿真器连接的情况下,在CCS(Code Compose Studio)环境下完成硬件在环仿真调试。CCS2000是TI公司针对TMS320C2000系列DSP提供了一套基于Windows的DSP集成开发环境,也是目前最优秀的DSP开发软件。在CCS环境下,可进行程序开发、调试、编译、链接,支持汇编及C/C++进行软件开发,强大的调试工具如断点、探针、剖析及图形显示等,并最终可以进行输出目标文件的烧录。
4.1 前轮转角信号采集
前轮转角由绝对式角位移传感器得到,输出电压与前轮转角成线性正比例关系,范围0~12V。本文采用CS4U9806板的ADCHA0引脚采集,采样外围电路DSP芯片内部集成。此板单通道采样时间200nS,输入信号范围可通过跳线选择-5~+5V,0~10V,0~20V,默认-5~+5V。由于前轮转角范围有限,故跳线选择0~10V,采样频率设为96HZ。部分程序设计过程如下:
AdcRegs.ADCMAXCONV.all=0x0002;
// 设置最大转换通道寄存器为2; AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0;
// 设置ADCHAO通道连续采样3次;
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x0;
AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x0;
EvaRegs.T2CMPR=0x0080;
// 设置定时器2的比较寄存器;
EvaRegs.T2PR=0xFFFF;
// 设置定时器2的周期寄存器;
EvaRegs.GPTCONA.bit.T2TOADC=3;
// 使能比较中断来启动采样模块;
EvaRegs.T2CON.all=0x1442;
// 使能比较单元,采样频率为96HZ;
interrupt void adc_isr(void)
// 采样中断服务子程序;
{ voltf0 = AdcRegs.ADCRESULT0/16;
// 对三次连续采样求均值,提高精度;
voltf1=AdcRegs.ADCRESULT1/16;
voltf2=AdcRegs.ADCRESULT2/16;
averagef=(voltf0+voltf1+voltf2)/3.0;
deltaf=(averagef-2970.0)*3.2133/(4096-2970.0); } //计算前轮转角,取弧度;