TMS320F2812型DSP在車輛四輪轉(zhuǎn)向控制系統(tǒng)中的應用
4.2 后輪轉(zhuǎn)角信號采集
后輪轉(zhuǎn)角信號由高精度的增量式光電編碼器獲得。它將蝸桿轉(zhuǎn)動的角度根據(jù)轉(zhuǎn)動的方向變?yōu)橄鄳脑?、減計數(shù)脈沖,每轉(zhuǎn)一圈產(chǎn)生2048個脈沖,輸出量為一時鐘信號和一方向信號。本文采用DICH0(CAP2)引腳捕捉時鐘信號,輸入引腳DICH19(GPIOF12)取得方向信號。帶光耦的開關(guān)量輸入電路設計如圖4,捕獲單元電路DSP芯片內(nèi)部集成。本文引用地址:http://www.biyoush.com/article/197880.htm
圖4 輸入電路框圖
部分程序設計過程如下:
EvaRegs.CAPFIFO.all=0x0400;
// 設置捕獲FIFO狀態(tài)寄存器的初值;
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;
}
// 根據(jù)I/O引腳來計算后輪轉(zhuǎn)角,取弧度;
4.3 算法設計與D/A輸出
算法的基本思路是:4WS啟動時,輸入一前輪轉(zhuǎn)角,通過橫擺率反饋,將其與速度相關(guān)的理想橫擺率穩(wěn)態(tài)響應增益G0進行比較,然后經(jīng)控制器G1控制后輪轉(zhuǎn)角,實現(xiàn)四輪轉(zhuǎn)向,輸出質(zhì)心側(cè)偏角、橫擺率、側(cè)向加速度用于監(jiān)測,控制框圖如圖5所示。電機的驅(qū)動電壓由DSP的比較寄存器產(chǎn)生PWM信號,在通過D/A 轉(zhuǎn)換電路輸出。本文采用定時器4產(chǎn)生PWM,由DA4引腳輸出,一級放大的D/A轉(zhuǎn)換電路如圖6所示。
圖5 控制框圖
圖6 D/A轉(zhuǎn)換電路
部分程序設計過程如下:
EvbRegs.T4PR=0x3FF;
// 設置定時器2的周期寄存器;
EvbRegs.T4CMPR=0x0080;
// 設置定時器4的比較寄存器初值;
EvbRegs.T4CON.all=0x1042;
// 使能比較單元;
EvbRegs.GPTCONB.bit.TCOMPOE=1;
// 驅(qū)動定時器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]; // 輸出量質(zhì)心側(cè)偏角;
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]; // 輸出量側(cè)向加速度;
Dutycycle=volt_out/10.0*1024;
// 計算占空比;
EvbRegs.T4CMPR=Dutycycle;
// 重載定時器4的周期寄存器;
評論