<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > TMS320F2812在車輛四輪轉(zhuǎn)向控制中的應(yīng)用

          TMS320F2812在車輛四輪轉(zhuǎn)向控制中的應(yīng)用

          作者: 時間:2009-06-12 來源:網(wǎng)絡(luò) 收藏

            1  引言

             數(shù)字信號處理器(Digital Signal Processor,簡稱DSP), 是一種適合于數(shù)字信號處理運(yùn)算的微處理器,能夠?qū)崿F(xiàn)實時快速的數(shù)字信號處理算法。通常,由一個以DSP為基礎(chǔ)的內(nèi)核,配以測量控制所需的外圍功能電路,集成在單一芯片內(nèi),使芯片價格大大降低,體積縮小,結(jié)構(gòu)緊湊,使用便捷,可靠性提高。因此,集成DSP芯片的多功能板是電機(jī)應(yīng)用、勵磁脈沖控制系統(tǒng)、電力保護(hù)系統(tǒng)的理想選擇。本文采用了超拓工控的CS4U9813可編程智能多功能板作為伺服電機(jī)的控制器來實現(xiàn)汽車后輪轉(zhuǎn)向功能,該板集成有TI公司的高性能 DSP芯片。

            2  的結(jié)構(gòu)特點(diǎn)[1][4]

             是TI公司最新推出的目前市場上最先進(jìn)、功能最強(qiáng)大的32位定點(diǎn)DSP芯片。它既具有數(shù)字信號處理能力,又具有強(qiáng)大的事件管理能力和嵌入式控制功能,特別適用于工業(yè)自動化、電機(jī)、馬達(dá)伺服控制系統(tǒng)。TMS320F2812芯片結(jié)構(gòu)采用改進(jìn)的程序與數(shù)據(jù)存儲分開的哈佛結(jié)構(gòu),8級流水線作業(yè),128位的密匙保護(hù),幾乎所有指令都在6.67ns(150MHZ)內(nèi)完成,高達(dá)1MB的外部存儲器接口,最多有56個獨(dú)立的可編程、多用途的輸入 /輸出(GPIO)引腳,是實現(xiàn)運(yùn)動控制系統(tǒng)的最佳選擇。功能框圖如圖1所示,其主要性能如下:

          TMS320F2812型DSP在車輛四輪轉(zhuǎn)向控制系統(tǒng)中的應(yīng)用

            圖1 功能框圖

            (1) 高性能的32位中央處理器

            l 主頻150MHZ(時鐘周期6.67ns),低功耗(核心低壓1.8V,I/O口3.3V)

            l 16位×16位和32位×32位乘且累加操作以及16位×16位的兩個乘且累加

          統(tǒng)一的寄存器編程模式,可達(dá)4M字的線性程序地址和數(shù)據(jù)地址

            (2) 片內(nèi)存儲器

            l 8Kx16位的Flash存儲器

            l 1Kx16位的OTP型只讀存儲器

            l L0和L1:兩塊4Kx16位的單口隨機(jī)存儲器(SARAM)

            l HO:一塊8Kx16位的單口隨機(jī)存儲器

            l M0和M1:兩塊1Kx16位的單口隨機(jī)存儲器

            (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 改進(jìn)的控制器局域網(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)向作用,能有效改善車輛的機(jī)動靈活性和操縱穩(wěn)定性,正在得到不斷發(fā)展和應(yīng)用。4WS汽車在低速轉(zhuǎn)彎時,前后車輪逆相位轉(zhuǎn)向,可以減小車輛的轉(zhuǎn)彎半徑;在高速轉(zhuǎn)彎時,前后輪主要作同相位轉(zhuǎn)向,能夠減少車輛質(zhì)心側(cè)偏角β,降低車輛橫擺率的穩(wěn)態(tài)超調(diào)量等,進(jìn)一步提高車輛操縱穩(wěn)定性。

             本文搭建的四輪轉(zhuǎn)向平臺是由一個帶有渦輪蝸桿減速機(jī)構(gòu)的直流伺服電機(jī),電磁離合器和普通的前輪轉(zhuǎn)向機(jī)構(gòu)組成。其中電機(jī)電源為DC12V,減速比設(shè)定10: 1(可調(diào)),電磁離合器電源:DC48V,實驗平臺如圖2所示??刂撇呗圆捎们梆伜头答佅嘟Y(jié)合的直接橫擺率閉環(huán)控制,其中由絕對式角位移傳感器采集前輪轉(zhuǎn)角信號;后輪轉(zhuǎn)角由精度較高的增量式光電編碼器得到;車速由五輪儀獲得;后輪轉(zhuǎn)向由直流伺服電機(jī)經(jīng)過電磁離合器連接機(jī)械轉(zhuǎn)向機(jī)構(gòu)實現(xiàn);ECU硬件電子系統(tǒng)核心由TMS320F2812構(gòu)成,結(jié)構(gòu)框圖如圖3所示:

          TMS320F2812型DSP在車輛四輪轉(zhuǎn)向控制系統(tǒng)中的應(yīng)用

            圖2 實驗平臺

          TMS320F2812型DSP在車輛四輪轉(zhuǎn)向控制系統(tǒng)中的應(yīng)用

            圖3 結(jié)構(gòu)框圖

            4  控制系統(tǒng)硬件設(shè)計與仿真

             根據(jù)上文設(shè)計的控制策略,ECU單元要采集前輪轉(zhuǎn)角信號、后輪轉(zhuǎn)角信號、輪速信號并經(jīng)過CPU運(yùn)算輸出電機(jī)的驅(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)境下,可進(jìn)行程序開發(fā)、調(diào)試、編譯、鏈接,支持匯編及C/C++進(jìn)行軟件開發(fā),強(qiáng)大的調(diào)試工具如斷點(diǎn)、探針、剖析及圖形顯示等,并最終可以進(jìn)行輸出目標(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)部集成。

          TMS320F2812型DSP在車輛四輪轉(zhuǎn)向控制系統(tǒng)中的應(yīng)用

            圖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ìn)行比較,然后經(jīng)控制器G1控制后輪轉(zhuǎn)角,實現(xiàn)四輪轉(zhuǎn)向,輸出質(zhì)心側(cè)偏角、橫擺率、側(cè)向加速度用于監(jiān)測,控制框圖如圖5所示。電機(jī)的驅(qū)動電壓由DSP的比較寄存器產(chǎn)生PWM信號,在通過D/A 轉(zhuǎn)換電路輸出。本文采用定時器4產(chǎn)生PWM,由DA4引腳輸出,一級放大的D/A轉(zhuǎn)換電路如圖6所示。

          TMS320F2812型DSP在車輛四輪轉(zhuǎn)向控制系統(tǒng)中的應(yīng)用

            圖5 控制框圖

          TMS320F2812型DSP在車輛四輪轉(zhuǎn)向控制系統(tǒng)中的應(yīng)用

            圖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][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的周期寄存器;

            5  結(jié)束語

             本文應(yīng)用上面設(shè)計的控制算法對4WS車輛進(jìn)行了基于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進(jìn)行調(diào)試開發(fā),周期短、成本低。因此,基于DSP的硬件控制系統(tǒng)在工業(yè)控制和汽車控制領(lǐng)域具有廣闊前景。

          TMS320F2812型DSP在車輛四輪轉(zhuǎn)向控制系統(tǒng)中的應(yīng)用

            圖7 仿真結(jié)果

          伺服電機(jī)相關(guān)文章:伺服電機(jī)工作原理




          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();