1 引言 數(shù)字信號處理器(Digital Signal Processor,簡稱DSP), 是一種適合于數(shù)字信號處理運算的微處理器,能夠?qū)崿F(xiàn)實時快速的數(shù)字信號處理算法。通常,由一個以DSP為基礎(chǔ)的內(nèi)核,配以測量控制所需的外圍功能電路,集成在單一芯片內(nèi),使芯片價格大大降低,體積縮小,結(jié)構(gòu)緊湊,使用便捷,可靠性提高。因此,集成DSP芯片的多功能板是電機應(yīng)用、勵磁脈沖控制系統(tǒng)、電力保護系統(tǒng)的理想選擇。本文采用了超拓工控的CS4U9813可編程智能多功能板作為伺服電機的控制器來實現(xiàn)汽車后輪轉(zhuǎn)向功能,該板集成有TI公司的高性能 DSP芯片TMS320F2812。 2 TMS320F2812的結(jié)構(gòu)特點 TMS320F2812是TI公司最新推出的目前市場上最先進、功能最強大的32位定點DSP芯片。它既具有數(shù)字信號處理能力,又具有強大的事件管理能力和嵌入式控制功能,特別適用于工業(yè)自動化、電機、馬達伺服控制系統(tǒng)。TMS320F2812芯片結(jié)構(gòu)采用改進的程序與數(shù)據(jù)存儲分開的哈佛結(jié)構(gòu),8級流水線作業(yè),128位的密匙保護,幾乎所有指令都在6.67ns(150MHZ)內(nèi)完成,高達1MB的外部存儲器接口,最多有56個獨立的可編程、多用途的輸入 /輸出(GPIO)引腳,是實現(xiàn)運動控制系統(tǒng)的最佳選擇。功能框圖如圖1所示,其主要性能如下: 圖1 功能框圖 (1) 高性能的32位中央處理器 l 主頻150MHZ(時鐘周期6.67ns),低功耗(核心低壓1.8V,I/O口3.3V) l 16位×16位和32位×32位乘且累加操作以及16位×16位的兩個乘且累加 統(tǒng)一的寄存器編程模式,可達4M字的線性程序地址和數(shù)據(jù)地址 (2) 片內(nèi)存儲器 l 8Kx16位的Flash存儲器 l 1Kx16位的OTP型只讀存儲器 l L0和L1:兩塊4Kx16位的單口隨機存儲器(SARAM) l HO:一塊8Kx16位的單口隨機存儲器 l M0和M1:兩塊1Kx16位的單口隨機存儲器 (3) 時鐘與系統(tǒng)控制 l 支持動態(tài)的改變鎖相環(huán)的頻率(PLL) l 片內(nèi)振蕩器 l 看門狗定時器模塊 l CPU級和外設(shè)級中斷相結(jié)合的控制系統(tǒng) (4) 豐富的外圍設(shè)備 l 兩個事件管理器(EVA、EVB) l 串行外圍接口(SPI) l 兩個串行通信接口(SCI),標(biāo)準(zhǔn)的UART l 改進的控制器局域網(wǎng)絡(luò)(ECAN) l 多通道緩沖串行接口(MCBSP) l 16通道12位的數(shù)模轉(zhuǎn)換器(ADC) 3 四輪轉(zhuǎn)向控制系統(tǒng)的實現(xiàn) 四輪轉(zhuǎn)向(Four-Wheel Steering,簡稱4WS) 系統(tǒng)是指車輛在轉(zhuǎn)向過程中,前后兩組四個車輪都能夠根據(jù)需要起轉(zhuǎn)向作用,能有效改善車輛的機動靈活性和操縱穩(wěn)定性,正在得到不斷發(fā)展和應(yīng)用。4WS汽車在低速轉(zhuǎn)彎時,前后車輪逆相位轉(zhuǎn)向,可以減小車輛的轉(zhuǎn)彎半徑;在高速轉(zhuǎn)彎時,前后輪主要作同相位轉(zhuǎn)向,能夠減少車輛質(zhì)心側(cè)偏角β,降低車輛橫擺率的穩(wěn)態(tài)超調(diào)量等,進一步提高車輛操縱穩(wěn)定性。 本文搭建的四輪轉(zhuǎn)向平臺是由一個帶有渦輪蝸桿減速機構(gòu)的直流伺服電機,電磁離合器和普通的前輪轉(zhuǎn)向機構(gòu)組成。其中電機電源為DC12V,減速比設(shè)定10: 1(可調(diào)),電磁離合器電源:DC48V,實驗平臺如圖2所示。控制策略采用前饋和反饋相結(jié)合的直接橫擺率閉環(huán)控制,其中由絕對式角位移傳感器采集前輪轉(zhuǎn)角信號;后輪轉(zhuǎn)角由精度較高的增量式光電編碼器得到;車速由五輪儀獲得;后輪轉(zhuǎn)向由直流伺服電機經(jīng)過電磁離合器連接機械轉(zhuǎn)向機構(gòu)實現(xiàn);ECU硬件電子系統(tǒng)核心由TMS320F2812構(gòu)成,結(jié)構(gòu)框圖如圖3所示: 圖2 實驗平臺 圖3 結(jié)構(gòu)框圖 4 控制系統(tǒng)硬件設(shè)計與仿真 根據(jù)上文設(shè)計的控制策略,ECU單元要采集前輪轉(zhuǎn)角信號、后輪轉(zhuǎn)角信號、輪速信號并經(jīng)過CPU運算輸出電機的驅(qū)動電壓,實現(xiàn)后輪自動轉(zhuǎn)向。本文用C語言編制程序來實現(xiàn)設(shè)計的控制算法,并在仿真器連接的情況下,在CCS(Code Compose Studio)環(huán)境下完成硬件在環(huán)仿真調(diào)試。CCS2000是TI公司針對TMS320C2000系列DSP提供了一套基于Windows的DSP集成開發(fā)環(huán)境,也是目前最優(yōu)秀的DSP開發(fā)軟件。在CCS環(huán)境下,可進行程序開發(fā)、調(diào)試、編譯、鏈接,支持匯編及C/C++進行軟件開發(fā),強大的調(diào)試工具如斷點、探針、剖析及圖形顯示等,并最終可以進行輸出目標(biāo)文件的燒錄。 4.1 前輪轉(zhuǎn)角信號采集 前輪轉(zhuǎn)角由絕對式角位移傳感器得到,輸出電壓與前輪轉(zhuǎn)角成線性正比例關(guān)系,范圍0"12V。本文采用CS4U9806板的ADCHA0引腳采集,采樣外圍電路DSP芯片內(nèi)部集成。此板單通道采樣時間200nS,輸入信號范圍可通過跳線選擇-5~+5V,0~10V,0~20V,默認(rèn)-5~+5V。由于前輪轉(zhuǎn)角范圍有限,故跳線選擇0~10V,采樣頻率設(shè)為96HZ。部分程序設(shè)計過程如下: AdcRegs.ADCMAXCONV.all=0x0002; // 設(shè)置最大轉(zhuǎn)換通道寄存器為2; AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0; // 設(shè)置ADCHAO通道連續(xù)采樣3次; AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x0; AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x0; EvaRegs.T2CMPR=0x0080; // 設(shè)置定時器2的比較寄存器; EvaRegs.T2PR=0xFFFF; // 設(shè)置定時器2的周期寄存器; EvaRegs.GPTCONA.bit.T2TOADC=3; // 使能比較中斷來啟動采樣模塊; EvaRegs.T2CON.all=0x1442; // 使能比較單元,采樣頻率為96HZ; interrupt void adc_isr(void) // 采樣中斷服務(wù)子程序; { voltf0 = AdcRegs.ADCRESULT0/16; // 對三次連續(xù)采樣求均值,提高精度; voltf1=AdcRegs.ADCRESULT1/16; voltf2=AdcRegs.ADCRESULT2/16; averagef=(voltf0+voltf1+voltf2)/3.0; deltaf=(averagef-2970.0)*3.2133/(4096-2970.0); } //計算前輪轉(zhuǎn)角,取弧度; 4.2 后輪轉(zhuǎn)角信號采集 后輪轉(zhuǎn)角信號由高精度的增量式光電編碼器獲得。它將蝸桿轉(zhuǎn)動的角度根據(jù)轉(zhuǎn)動的方向變?yōu)橄鄳?yīng)的增、減計數(shù)脈沖,每轉(zhuǎn)一圈產(chǎn)生2048個脈沖,輸出量為一時鐘信號和一方向信號。本文采用DICH0(CAP2)引腳捕捉時鐘信號,輸入引腳DICH19(GPIOF12)取得方向信號。帶光耦的開關(guān)量輸入電路設(shè)計如圖4,捕獲單元電路DSP芯片內(nèi)部集成。 圖4 輸入電路框圖 部分程序設(shè)計過程如下: EvaRegs.CAPFIFO.all=0x0400; // 設(shè)置捕獲FIFO狀態(tài)寄存器的初值; EvaRegs.CAPCON.bit.CAPQEPN=0x1; // 使能捕獲單元2; EvaRegs.CAPCON.bit.CAP12TSEL=1; // 選擇定時器1為基準(zhǔn); EvaRegs.CAPCON.bit.CAP2EDGE=0x1; // 檢測上升沿有效; EvaRegs.T1CMPR=0x0080; // 為捕獲單元2設(shè)置定時器1; EvaRegs.T1PR = 0xFFFF; EvaRegs.T1CON.all = 0x1042; interrupt void cap2_int(void) // 捕獲中斷服務(wù)子程序; { if(GpioDataRegs.GPFDAT.bit.GPIOF12==1)PositivePulsecount++; else NegativePulsecount++; deltar=(PositivePulsecount-NegativePulsecount)*pi/1024.0; } // 根據(jù)I/O引腳來計算后輪轉(zhuǎn)角,取弧度; 4.3 算法設(shè)計與D/A輸出 算法的基本思路是:4WS啟動時,輸入一前輪轉(zhuǎn)角,通過橫擺率反饋,將其與速度相關(guān)的理想橫擺率穩(wěn)態(tài)響應(yīng)增益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)換電路 部分程序設(shè)計過程如下: EvbRegs.T4PR=0x3FF; // 設(shè)置定時器2的周期寄存器; EvbRegs.T4CMPR=0x0080; // 設(shè)置定時器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]*x0+d[0][0]*u[0]+d[0]*u; // 輸出量質(zhì)心側(cè)偏角; y0=c[0]*x0[0]+c*x0+d[0]*u[0]+d*u; // 輸出量橫擺角速度; y0=c[0]*x0[0]+c*x0+d[0]*u[0]+d*u; // 輸出量側(cè)向加速度; Dutycycle=volt_out/10.0*1024; // 計算占空比; EvbRegs.T4CMPR=Dutycycle; // 重載定時器4的周期寄存器; 5 結(jié)束語 本文應(yīng)用上面設(shè)計的控制算法對4WS車輛進行了基于TMS320F2812型DSP硬件在環(huán)仿真,車輛參數(shù)選為:m=1740kg;I=3214kg.m2;a=1.058m;b=1.756m;K1=29000N/rad;K2=60000N/rad;同時為簡便起見,截取速度u= 30m/s,結(jié)果如圖7所示,結(jié)果表明橫擺率跟蹤控制的4WS車輛在高速范圍的轉(zhuǎn)向操控時其質(zhì)心橫擺率、側(cè)偏角和側(cè)向加速度響應(yīng)相比兩輪轉(zhuǎn)向能夠保持較好動態(tài)和穩(wěn)態(tài)性能,同時采用CCS2000進行調(diào)試開發(fā),周期短、成本低。因此,基于DSP的硬件控制系統(tǒng)在工業(yè)控制和汽車控制領(lǐng)域具有廣闊前景。 圖7 仿真結(jié)果 |