基于DSP的电动轮自卸车控制器的设计
ngth,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(); // 参数初始化
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(); // 读入开关量并处理
VehicleSpeed_Switch(); //根据车速输出开关量
LogicFunction();//逻辑运算
OutDout(); //开关量输出
OutPWM();//输出PWM脉冲
if (Flag.bit.AD_10MS==1)
{Flag.bit.AD_10MS=0; Renew_RTPara();
RenewPidIn();//模拟量计算、滤波,更新PID_IN,曲线计算
}
if (Flag.bit.DIGITAL_200MS==1)
{Flag.bit.DIGITAL_200MS=0; PushRealTtimePara(); //记录实时参数
}
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;ii<60000;ii++);
}
else if(RecFlag==0)
{SciA_TX_Ready();
SciA_Start_Tx(); //向上位机提供故障数据、实时数据或其他参数
RecFlag=0xff;
}
} //end for
}//end main()
对电动轮自卸车的控制采用PID调节方式,主要由牵引发电机、制动发电机、牵引电动机和制动电动机4个子程序完成。根据测速传感器测出的柴油机转速V,计算发电机的给定功率E_Power。由速度传感器测出的电动车的左右轮速度V_RIGHT,V_LEFT,计算出主整流柜输出牵引电流IF_V或制动电流 IM。该程序还要判断机车是否超速,如果超速,电动车将自动制动。由柴油机转速V和反馈回来的主整流柜输出电流IF,计算移相触发角,从而控制发电机和电动机的励磁电流,使机车性能满足牵引曲线,见图3(a)。由踏板电位信号、恒速下坡信号、电动车的左右轮速度及反馈回来的制动电流IM,计算出移相触发角,从而控制发电机和电动机的励磁电流,使机车性能满足制动曲线,见图3(b)。
图3 (a)牵引恒功曲线图 (b)制动曲线图
中断服务程序中,移相触发服务程序包含发电机移相触发、电动机移相触发两部分,分别由发电机励磁回路同步脉冲TPS1、电动机励磁回路同步脉冲TPS2的边沿(上升沿和下降沿)触发。触发后,延时t(在PID调节部分根据导通角计算得到)后,发出宽度为0.5ms的触发脉冲。串口通信服务程序负责下位机和上位机之间的数据通信,包括PTU的整定参数、实时数据、故障数据和PID调节器参数等,其程序设计可参考文献【5】。AD采样中断服务程序由DSP中AD 模块外设触发中断,启动系统对14路(1路备用)模拟量的采样。采样数据经0.5ms定时中断程序触发,每10ms对14路(每路包含8个采样值)数据进行加权平均滤波。0.5ms定时中断程序给各PID调节器、数字滤波、串口通信、故障分析和16帧历史数据保存等提供时间基准。
4. 结束语
本文的创新点在于:根据用户设计要求,考虑电动轮自卸车特殊的工作环境,采用了TI公司推出的专用于数字控制的TMS32F2812芯片,用一块电路板实现了国外同类产品至少需要5块电路板才能实现的全部功能,使得所开发的控制器集成度高,实时性与抗干扰能力强,适应了电动轮自卸车复杂的工作环境。
本文所设计的控制器能完成电动机的开关逻辑控制、电动车牵引与制动过程的发电机和电动机的自动励磁调节以及故障信号的实时采集,样机测试表明其性能优良,可用于装备新一代国产108T、154T等系列电动轮自卸车,可实现进口设备备件的国产化。
发布者:小宇
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)