TMS320F2812在车辆四轮转向控制中的应用
1 引言
2 TMS320F2812的结构特点[1][4]
TMS320F2812是TI公司最新推出的目前市场上最先进、功能最强大的32位定点DSP芯片。它既具有数字信号处理能力,又具有强大的事件管理能力和嵌入式控制功能,特别适用于工业自动化、电机、马达伺服控制系统。TMS320F2812芯片结构采用改进的程序与数据存储分开的哈佛结构,8级流水线作业,128位的密匙保护,几乎所有指令都在6.67ns(150MHZ)内完成,高达1MB的外部存储器接口,最多有56个独立的可编程、多用途的输入 /输出(GPIO)引脚,是实现运动控制系统的最佳选择。功能框图如图1所示,其主要性能如下:
图1 功能框图
(1) 高性能的32位中央处理器
l 主频150MHZ(时钟周期6.67ns),低功耗(核心低压1.8V,I/O口3.3V)
l 16位×16位和32位×32位乘且累加操作以及16位×16位的两个乘且累加
统一的寄存器编程模式,可达4M字的线性程序地址和数据地址
(2) 片内存储器
l 8Kx16位的Flash存储器
l 1Kx16位的OTP型只读存储器
l L0和L1:两块4Kx16位的单口随机存储器(SARAM)
l HO:一块8Kx16位的单口随机存储器
l M0和M1:两块1Kx16位的单口随机存储器
(3) 时钟与系统控制
l 支持动态的改变锁相环的频率(PLL)
l 片内振荡器
l 看门狗定时器模块
(4) 丰富的外围设备
l 两个事件管理器(EVA、EVB)
l 串行外围接口(SPI)
l 两个串行通信接口(SCI),标准的UART
l 改进的控制器局域网络(ECAN)
l 多通道缓冲串行接口(MCBSP)
l 16通道12位的数模转换器(ADC)
3 四轮转向控制系统的实现
四轮转向(Four-Wheel Steering,简称4WS) 系统是指车辆在转向过程中,前后两组四个车轮都能够根据需要起转向作用,能有效改善车辆的机动灵活性和操纵稳定性,正在得到不断发展和应用。4WS汽车在低速转弯时,前后车轮逆相位转向,可以减小车辆的转弯半径;在高速转弯时,前后轮主要作同相位转向,能够减少车辆质心侧偏角β,降低车辆横摆率的稳态超调量等,进一步提高车辆操纵稳定性。
图3 结构框图
4 控制系统硬件设计与仿真
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); } //计算前轮转角,取弧度;
4.2 后轮转角信号采集
后轮转角信号由高精度的增量式光电编码器获得。它将蜗杆转动的角度根据转动的方向变为相应的增、减计数脉冲,每转一圈产生2048个脉冲,输出量为一时钟信号和一方向信号。本文采用DICH0(CAP2)引脚捕捉时钟信号,输入引脚DICH19(GPIOF12)取得方向信号。带光耦的开关量输入电路设计如图4,捕获单元电路DSP
芯片内部集成。 图4 输入电路框图
部分程序设计过程如下:
EvaRegs.CAPFIFO.all=0x0400;
// 设置捕获FIFO状态寄存器的初值;
EvaRegs.CAPCON.bit.CAPQEPN=0x1;
// 使能捕获单元2;
EvaRegs.CAPCON.bit.CAP12TSEL=1;
// 选择定时器1为基准;
EvaRegs.CAPCON.bit.CAP2EDGE=0x1;
// 检测上升沿有效;
EvaRegs.T1CMPR=0x0080;
// 为捕获单元2设置定时器1;
EvaRegs.T1PR = 0xFFFF;
EvaRegs.T1CON.all = 0x1042;
interrupt void cap2_int(void)
// 捕获中断
服务子程序;
{ if(GpioDataRegs.GPFDAT.bit.GPIOF12==1)PositivePulsecount++;
else NegativePulsecount++;
deltar=(PositivePulsecount-NegativePulsecount)*pi/1024.0;
}
// 根据I/O引脚来计算后轮转角,取弧度;
4.3 算法设计与D/A输出
算法的基本思路是:4WS启动时,输入一前轮转角,通过横摆率反馈,将其与速度相关的理想横摆率稳态响应增益G0进行比较,然后经控制器G1控制后轮转角,实现四轮转向,输出质心侧偏角、横摆率、侧向加速度用于监测,控制框图如图5所示。电机的驱动电压由DSP的比较寄存器产生PWM信号,在通过D/A 转换电路输出。本文采用定时器4产生PWM,由DA4引脚输出,一级放大的D/A转换电路如图6所示。
图5 控制框图
图6 D/A转换电路
部分程序设计过程如下:
EvbRegs.T4PR=0x3FF;
// 设置定时器2的周期寄存器;
EvbRegs.T4CMPR=0x0080;
// 设置定时器4的比较寄存器初值;
EvbRegs.T4CON.all=0x1042;
// 使能比较单元;
EvbRegs.GPTCONB.bit.TCOMPOE=1;
// 驱动定时器4的PWM输出;
EvbRegs.GPTCONB.bit.T4PIN=1;
// 定时器4的比较输出低电平有效;
y0[0]=c[0][0]*x0[0]+c[0][1]*x0[1]+d[0][0]*u[0]+d[0][1]*u[1]; // 输出量质心侧偏角;
y0[1]=c[1][0]*x0[0]+c[1][1]*x0[1]+d[1][0]*u[0]+d[1][1]*u[1]; // 输出量横摆角速度;
y0[2]=c[2][0]*x0[0]+c[2][1]*x0[1]+d[2][0]*u[0]+d[2][1]*u[1]; // 输出量侧向加速度;
Dutycycle=volt_out/10.0*1024;
// 计算占空比;
EvbRegs.T4CMPR=Dutycycle;
// 重载定时器4的周期寄存器;
5 结束语
本文应用上面设计的控制算法对4WS车辆进行了基于TMS320F2812型DSP硬件在环仿真,车辆参数选为:m=1740kg;I=3214kg.m2;a=1.058m;b=1.756m;K1=29000N/rad;K2=60000N/rad;同时为简便起见,截取速度u= 30m/s,结果如图7所示,结果表明横摆率跟踪控制的4WS车辆在高速范围的转向操控时其质心横摆率、侧偏角和侧向加速度响应相比两轮转向能够保持较好动态和稳态性能,同时采用CCS2000进行调试开发,周期短、成本低。因此,基于DSP的硬件控制系统在工业控制和汽车控制领域具有广阔前景。
图7 仿真结果
伺服电机相关文章:伺服电机工作原理
评论