首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于DSP的电动轮自卸车控制器的设计
来源:本站整理  作者:佚名  2008-01-21 09:42:00



摘 要:本文根据设计要求,以TI公司的TMS320F2812芯片为核心设计了一个高集成控制器。文中详细论述了系统的软硬件设计。样机测试表明其性能优良,可用于装备新一代国产108T和154T等系列电动轮自卸车。
关键词:DSP,控制器,设计

1.       前言

   重型电动轮自卸车是大型露天矿和水利工程的高效运输设备。目前,分布在我国冶金、煤炭行业与大型水利建设工程的正在运行的重型电动轮自卸车约有600台之多,其电传动控制系统国内使用企业一直依赖进口美国通用电气公司(GE)的Statex系列单片机控制系统。由于该系统插件板多,致使线路复杂,调试困难,加之电动轮的工作环境恶劣,使得该类型的车存在故障率高、检修麻烦、备件昂贵等缺点,严重影响了自卸车的作业率。以往,有一些厂矿和研究所的技术研究员对该类产品进行分析与改造[1,2],但未从根本上解决问题。为此,湖南大学和湘潭电机股份有限公司联合研制了154T电动轮自卸车微机控制与故障诊断系统。该系统的车载电控子系统以DSP为核心处理器进行开发,更新升级原单片机控制系统,并与原系统兼容,开发出具有自主知识产权的产品。

2.      基于DSP的控制器硬件设计

车载控制系统工作在-30°C ~40°C环境下,控制精度≤5%,超调量σ≤5%,上升时间tS≤3 s~5s,并要求符合IE60077牵引电力设备规则。它主要完成电动机的开关逻辑控制、电动车牵引与制动过程的发电机和电动机的自动励磁调节以及故障信号的实时采集。

根据设计要求,控制器的核心CPU选用TMS320F2812型芯片[3]。该款芯片是在F24X的基础上开发的高性能定点芯片。先进的内部和外设结构使得该处理器特别适合电机及其他运动控制应用,能够真正的实现单片控制器。F2812采用32bit操作,150MHZ的主频。内含16KRAM,128KFLASH,16路12位高速A/D转换,16路PWM,52路数字I/O,4路定时器和内置WATCHDOG。并配有专用的电机控制外设(事件管理模块EVA、EVB),能工作在−40°C 到 85°C的环境下。采用TMS320F2812无需外部总线扩展就能实现控制器的所有功能。

该控制器的硬件结构框图如图1所示。控制器的输入部分有3路脉冲输入模块,34路开关量经输入光电隔离及电平转换后送入DSP处理,14路模拟量经通道切换、放大、滤波和快速A/D转换后输入。输出有经光电隔离及电平转换后的28路开关量和2路PWM方式的模拟量输出模块。TPS1与TPS2两路同步信号输入到同步触发模块,保证了发电机和电动轮的同步工作。控制器设有2个RS485串行通讯口,可保证它与上位机(故障诊断机)进行可靠通信。控制器还带掉电保持的实时日历时钟电路和64Kx8位带掉电保持存取器FM25L256,可实时采集和保存机车运行实时数据和故障数据。

 

                  图1    控制器硬件系统方框图

3.       控制器软件部分的设计

控制系统软件具有通信、系统管理、控制和信息处理等功能,能实现系统的控制要求。系统主程序主要包括系统初始化、逻辑运算、牵引/制动控制和故障数据分析与处理,其主程序流图如2所示。由于系统外设较多,实时性要求高,故对系统中移相触发、串口通信、AD采样与数字滤波、测速、0.5ms的定时和历史数据保存均采用中断方式,确保了对电动车的实时监控。系统软件调试在CCS2.0环境下进行。系统中除了个别初始化程序采用汇编语言编写外,其他部分均采用标准C编写,这有利于软件的修改、维护和升级[4]。系统程序烧录在F2812的Flash存储器中,运行时将全部中断程序加载到F2812的RAM中运行。这样可避免频繁从慢速的Flash中取指而影响运行速度,充分发挥了F2812的性能。

图2    主程序流程图

上图中,系统初始化主要完成整个系统硬件部分和参数的初始化工作。包括CPU工作初始化、 EV模块初始化、中断向量及中断初始化、串口初始化、故障诊断机(PTU)整定参数初始化和AD值与实际值的比例系数初始化。它还完成反馈单元的比例系数和各个函数输入接口参数的初始值及 PI或PID调节器参数、各特性曲线的转折点参数和比例(斜率)系数的设置。逻辑运算是运用开关输入量和相关模拟量,根据湘潭电机厂所提供的154T逻辑关系式计算开关输出量和中间变量,并输出所有开关输出量。由传感器送来的车速和柴油机转速信号,经EV模块处理后输出两路PWM信号。故障分析与处理部分主要是故障发生后,采集和保存故障数据,提供给上位机分析用。其主程序如下:

#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(); // 参数初始化

   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)。

(a)牵引恒功曲线图

(b)制动曲线图

图3                中断服务程序中,移相触发服务程序包含发电机移相触发、电动机移相触发两部分,分别由发电机励磁回路同步脉冲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等系列电动轮自卸车,可实现进口设备备件的国产化。

参考文献:

[1] 肖善福、曹志诚.电动轮三型车计算机控制系统的剖析.矿业研究与开发,2002,4: 46-47

[2] 周建功.国产矿用电动轮自卸车电控系统的改造.工程机械,2001,8:51-52

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

[4] 刘和平、王维俊等编著.《TMS320LF240x DSP C语言开发应用》.北京航空航天大学出版社.2003

[5] 王炼红、章兢.TMS320F2812 DSP 与PC机的串口通信设计.微计算机信息,2006,7-2:173-175

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:66,710.94000 毫秒