新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP的電動(dòng)輪自卸車控制器的設(shè)計(jì)

基于DSP的電動(dòng)輪自卸車控制器的設(shè)計(jì)

作者: 時(shí)間:2008-01-21 來(lái)源:網(wǎng)絡(luò) 收藏
摘要:本文根據(jù)要求,以TI公司的TMS320F2812芯片為核心了一個(gè)高集成。文中詳細(xì)論述了系統(tǒng)的軟硬件。樣機(jī)測(cè)試表明其性能優(yōu)良,可用于裝備新一代國(guó)產(chǎn)108T和154T等系列
關(guān)鍵詞:,,設(shè)計(jì)

1. 前言

重型是大型露天礦和水利工程的高效運(yùn)輸設(shè)備。目前,分布在我國(guó)冶金、煤炭行業(yè)與大型水利建設(shè)工程的正在運(yùn)行的重型約有600臺(tái)之多,其電傳動(dòng)控制系統(tǒng)國(guó)內(nèi)使用企業(yè)一直依賴進(jìn)口美國(guó)通用電氣公司(GE)的Statex系列單片機(jī)控制系統(tǒng)。由于該系統(tǒng)插件板多,致使線路復(fù)雜,調(diào)試?yán)щy,加之電動(dòng)輪的工作環(huán)境惡劣,使得該類型的車存在故障率高、檢修麻煩、備件昂貴等缺點(diǎn),嚴(yán)重影響了自卸車的作業(yè)率。以往,有一些廠礦和研究所的技術(shù)研究員對(duì)該類產(chǎn)品進(jìn)行分析與改造[1,2],但未從根本上解決問(wèn)題。為此,湖南大學(xué)和湘潭電機(jī)股份有限公司聯(lián)合研制了154T電動(dòng)輪自卸車微機(jī)控制與故障診斷系統(tǒng)。該系統(tǒng)的車載電控子系統(tǒng)以為核心處理器進(jìn)行開發(fā),更新升級(jí)原單片機(jī)控制系統(tǒng),并與原系統(tǒng)兼容,開發(fā)出具有自主知識(shí)產(chǎn)權(quán)的產(chǎn)品。

2. 硬件設(shè)計(jì)

車載控制系統(tǒng)工作在-30C ~40C環(huán)境下,控制精度≤5%,超調(diào)量σ≤5%,上升時(shí)間tS≤3 s~5s,并要求符合IE60077牽引電力設(shè)備規(guī)則。它主要完成電動(dòng)機(jī)的開關(guān)邏輯控制、電動(dòng)車牽引與制動(dòng)過(guò)程的發(fā)電機(jī)和電動(dòng)機(jī)的自動(dòng)勵(lì)磁調(diào)節(jié)以及故障信號(hào)的實(shí)時(shí)采集。

根據(jù)設(shè)計(jì)要求,控制器的核心CPU選用TMS320F2812型芯片[3]。該款芯片是在F24X的基礎(chǔ)上開發(fā)的高性能定點(diǎn)芯片。先進(jìn)的內(nèi)部和外設(shè)結(jié)構(gòu)使得該處理器特別適合電機(jī)及其他運(yùn)動(dòng)控制應(yīng)用,能夠真正的實(shí)現(xiàn)單片控制器。F2812采用32bit操作,150MHZ的主頻。內(nèi)含16KRAM,128KFLASH,16路12位高速A/D轉(zhuǎn)換,16路PWM,52路數(shù)字I/O,4路定時(shí)器和內(nèi)置WATCHDOG。并配有專用的電機(jī)控制外設(shè)(事件管理模塊EVA、EVB),能工作在40C 到 85C的環(huán)境下。采用TMS320F2812無(wú)需外部總線擴(kuò)展就能實(shí)現(xiàn)控制器的所有功能。

該控制器的硬件結(jié)構(gòu)框圖如圖1所示??刂破鞯妮斎氩糠钟?路脈沖輸入模塊,34路開關(guān)量經(jīng)輸入光電隔離及電平轉(zhuǎn)換后送入DSP處理,14路模擬量經(jīng)通道切換、放大、濾波和快速A/D轉(zhuǎn)換后輸入。輸出有經(jīng)光電隔離及電平轉(zhuǎn)換后的28路開關(guān)量和2路PWM方式的模擬量輸出模塊。TPS1與TPS2兩路同步信號(hào)輸入到同步觸發(fā)模塊,保證了發(fā)電機(jī)和電動(dòng)輪的同步工作??刂破髟O(shè)有2個(gè)RS485串行通訊口,可保證它與上位機(jī)(故障診斷機(jī))進(jìn)行可靠通信??刂破鬟€帶掉電保持的實(shí)時(shí)日歷時(shí)鐘電路和64Kx8位帶掉電保持存取器FM25L256,可實(shí)時(shí)采集和保存機(jī)車運(yùn)行實(shí)時(shí)數(shù)據(jù)和故障數(shù)據(jù)。

圖1 控制器硬件系統(tǒng)方框圖

3. 控制器軟件部分的設(shè)計(jì)

控制系統(tǒng)軟件具有通信、系統(tǒng)管理、控制和信息處理等功能,能實(shí)現(xiàn)系統(tǒng)的控制要求。系統(tǒng)主程序主要包括系統(tǒng)初始化、邏輯運(yùn)算、牽引/制動(dòng)控制和故障數(shù)據(jù)分析與處理,其主程序流圖如2所示。由于系統(tǒng)外設(shè)較多,實(shí)時(shí)性要求高,故對(duì)系統(tǒng)中移相觸發(fā)、串口通信、AD采樣與數(shù)字濾波、測(cè)速、0.5ms的定時(shí)和歷史數(shù)據(jù)保存均采用中斷方式,確保了對(duì)電動(dòng)車的實(shí)時(shí)監(jiān)控。系統(tǒng)軟件調(diào)試在CCS2.0環(huán)境下進(jìn)行。系統(tǒng)中除了個(gè)別初始化程序采用匯編語(yǔ)言編寫外,其他部分均采用標(biāo)準(zhǔn)C編寫,這有利于軟件的修改、維護(hù)和升級(jí)[4]。系統(tǒng)程序燒錄在F2812的Flash存儲(chǔ)器中,運(yùn)行時(shí)將全部中斷程序加載到F2812的RAM中運(yùn)行。這樣可避免頻繁從慢速的Flash中取指而影響運(yùn)行速度,充分發(fā)揮了F2812的性能。

圖2 主程序流程圖

上圖中,系統(tǒng)初始化主要完成整個(gè)系統(tǒng)硬件部分和參數(shù)的初始化工作。包括CPU工作初始化、 EV模塊初始化、中斷向量及中斷初始化、串口初始化、故障診斷機(jī)(PTU)整定參數(shù)初始化和AD值與實(shí)際值的比例系數(shù)初始化。它還完成反饋單元的比例系數(shù)和各個(gè)函數(shù)輸入接口參數(shù)的初始值及 PI或PID調(diào)節(jié)器參數(shù)、各特性曲線的轉(zhuǎn)折點(diǎn)參數(shù)和比例(斜率)系數(shù)的設(shè)置。邏輯運(yùn)算是運(yùn)用開關(guān)輸入量和相關(guān)模擬量,根據(jù)湘潭電機(jī)廠所提供的154T邏輯關(guān)系式計(jì)算開關(guān)輸出量和中間變量,并輸出所有開關(guān)輸出量。由傳感器送來(lái)的車速和柴油機(jī)轉(zhuǎn)速信號(hào),經(jīng)EV模塊處理后輸出兩路PWM信號(hào)。故障分析與處理部分主要是故障發(fā)生后,采集和保存故障數(shù)據(jù),提供給上位機(jī)分析用。其主程序如下:

#include "Device.h" // DSP2812 Headerfile Include File

#include "Examples.h" // DSP2812 Examples Include File

#include "Global_Variables.h" // Global variables used in this project

#include "io.h"

#include "PulseIn.h"

extern void ReadDin(), OutDout(), LogicFunction(), InitialFramAndCalendar();

extern void WriteReadFramAndCalendar(Uint16*BuffStartAddress,Uint16DataLength,Uint16 FramAndCalendarAddress,Uint16 OperateID);

void DigitalInFilter();void Read_PIDPara_FromFRam();

extern void Read_PIDPara(),ReadDin();

Uint16 DI_Temp[5][3], DI_Counter,i;

strRxBuf SciA_RxBuf,SciB_RxBuf; strTxBuf SciA_TxBuf,SciB_TxBuf;

Uint16 SCI_Timer;Uint16 RecFlag=0xff; Uint32 ii; Uint16 KPKI[9];

void main(void)

{

InitSystem(); InitSysCtrl();

EINT; // Enable Global interrupt INTM

ERTM; // Enable Global realtime interrupt DBGM

InitialFramAndCalendar();InitPIDPara(); InitAllGlobalPara(); FaultInit(); // 參數(shù)初始化

CloseDo(DO_CNTRL);

//…… Init FRAM AND CALENDAR(略) //

for(;;)

{

if (Flag.bit.DI_FLAG==1)

{ GetInput(DI_Temp[DI_Counter++]) ;

Flag.bit.DI_FLAG=0;

}

if (DI_Counter>=5) DI_Counter=0;

DigitalInFilter(); // 讀入開關(guān)量并處理

VehicleSpeed_Switch(); //根據(jù)車速輸出開關(guān)量

LogicFunction(); //邏輯運(yùn)算

OutDout(); //開關(guān)量輸出

OutPWM(); //輸出PWM脈沖

if (Flag.bit.AD_10MS==1)

{ Flag.bit.AD_10MS=0; Renew_RTPara();

RenewPidIn(); //模擬量計(jì)算、濾波,更新PID_IN,曲線計(jì)算

}

if (Flag.bit.DIGITAL_200MS==1)

{ Flag.bit.DIGITAL_200MS=0; PushRealTtimePara(); //記錄實(shí)時(shí)參數(shù)

}

if (Flag.bit.DATE==1)

{ Flag.bit.DATE=0; ReadDate();

}

FaultMain();

if(RecFlag==1) { WriteReadFramAndCalendar((SciA_TxBuf.Data[2].a),SciA_RxBuf.Data[2].a,SciA_RxBuf.Data[1].a, UpperComputerReadFramFlag); //故障分析與處理程序

for(ii=0;ii60000;ii++);

}

else if(RecFlag==0)

{ SciA_TX_Ready();

SciA_Start_Tx(); //向上位機(jī)提供故障數(shù)據(jù)、實(shí)時(shí)數(shù)據(jù)或其他參數(shù)

RecFlag=0xff;

}

} //end for

} //end main()

對(duì)電動(dòng)輪自卸車的控制采用PID調(diào)節(jié)方式,主要由牽引發(fā)電機(jī)、制動(dòng)發(fā)電機(jī)、牽引電動(dòng)機(jī)和制動(dòng)電動(dòng)機(jī)4個(gè)子程序完成。根據(jù)測(cè)速傳感器測(cè)出的柴油機(jī)轉(zhuǎn)速V,計(jì)算發(fā)電機(jī)的給定功率E_POWER。由速度傳感器測(cè)出的電動(dòng)車的左右輪速度V_RIGHT,V_LEFT,計(jì)算出主整流柜輸出牽引電流IF_V或制動(dòng)電流IM。該程序還要判斷機(jī)車是否超速,如果超速,電動(dòng)車將自動(dòng)制動(dòng)。由柴油機(jī)轉(zhuǎn)速V和反饋回來(lái)的主整流柜輸出電流IF,計(jì)算移相觸發(fā)角,從而控制發(fā)電機(jī)和電動(dòng)機(jī)的勵(lì)磁電流,使機(jī)車性能滿足牽引曲線,見圖3(a)。由踏板電位信號(hào)、恒速下坡信號(hào)、電動(dòng)車的左右輪速度及反饋回來(lái)的制動(dòng)電流IM,計(jì)算出移相觸發(fā)角,從而控制發(fā)電機(jī)和電動(dòng)機(jī)的勵(lì)磁電流,使機(jī)車性能滿足制動(dòng)曲線,見圖3(b)。

(a)牽引恒功曲線圖

(b)制動(dòng)曲線圖

圖3 中斷服務(wù)程序中,移相觸發(fā)服務(wù)程序包含發(fā)電機(jī)移相觸發(fā)、電動(dòng)機(jī)移相觸發(fā)兩部分,分別由發(fā)電機(jī)勵(lì)磁回路同步脈沖TPS1、電動(dòng)機(jī)勵(lì)磁回路同步脈沖TPS2的邊沿(上升沿和下降沿)觸發(fā)。觸發(fā)后,延時(shí)t(在PID調(diào)節(jié)部分根據(jù)導(dǎo)通角計(jì)算得到)后,發(fā)出寬度為0.5ms的觸發(fā)脈沖。串口通信服務(wù)程序負(fù)責(zé)下位機(jī)和上位機(jī)之間的數(shù)據(jù)通信,包括PTU的整定參數(shù)、實(shí)時(shí)數(shù)據(jù)、故障數(shù)據(jù)和PID調(diào)節(jié)器參數(shù)等,其程序設(shè)計(jì)可參考文獻(xiàn)【5】。AD采樣中斷服務(wù)程序由DSP中AD模塊外設(shè)觸發(fā)中斷,啟動(dòng)系統(tǒng)對(duì)14路(1路備用)模擬量的采樣。采樣數(shù)據(jù)經(jīng)0.5ms定時(shí)中斷程序觸發(fā),每10ms對(duì)14路(每路包含8個(gè)采樣值)數(shù)據(jù)進(jìn)行加權(quán)平均濾波。0.5ms定時(shí)中斷程序給各PID調(diào)節(jié)器、數(shù)字濾波、串口通信、故障分析和16幀歷史數(shù)據(jù)保存等提供時(shí)間基準(zhǔn)。

4. 結(jié)束語(yǔ)

本文的創(chuàng)新點(diǎn)在于:根據(jù)用戶設(shè)計(jì)要求,考慮電動(dòng)輪自卸車特殊的工作環(huán)境,采用了TI公司推出的專用于數(shù)字控制的TMS32F2812芯片,用一塊電路板實(shí)現(xiàn)了國(guó)外同類產(chǎn)品至少需要5塊電路板才能實(shí)現(xiàn)的全部功能,使得所開發(fā)的控制器集成度高,實(shí)時(shí)性與抗干擾能力強(qiáng),適應(yīng)了電動(dòng)輪自卸車復(fù)雜的工作環(huán)境。

本文所設(shè)計(jì)的控制器能完成電動(dòng)機(jī)的開關(guān)邏輯控制、電動(dòng)車牽引與制動(dòng)過(guò)程的發(fā)電機(jī)和電動(dòng)機(jī)的自動(dòng)勵(lì)磁調(diào)節(jié)以及故障信號(hào)的實(shí)時(shí)采集,樣機(jī)測(cè)試表明其性能優(yōu)良,可用于裝備新一代國(guó)產(chǎn)108T、154T等系列電動(dòng)輪自卸車,可實(shí)現(xiàn)進(jìn)口設(shè)備備件的國(guó)產(chǎn)化。

參考文獻(xiàn):

[1] 肖善福、曹志誠(chéng).電動(dòng)輪三型車計(jì)算機(jī)控制系統(tǒng)的剖析.礦業(yè)研究與開發(fā),2002,4: 46-47

[2] 周建功.國(guó)產(chǎn)礦用電動(dòng)輪自卸車電控系統(tǒng)的改造.工程機(jī)械,2001,8:51-52

[3] TMS320F/C28x Digital Signal Processors Data Manual. Texas Instruments Inc. Literature Number SPRS174K. 2001

[4] 劉和平、王維俊等編著.《TMS320LF240x DSP C語(yǔ)言開發(fā)應(yīng)用》.北京航空航天大學(xué)出版社.2003

[5] 王煉紅、章兢.TMS320F2812 DSP 與PC機(jī)的串口通信設(shè)計(jì).微計(jì)算機(jī)信息,2006,7-2:173-175



評(píng)論


相關(guān)推薦

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

關(guān)閉