历史上的今天
返回首页

历史上的今天

今天是:2025年02月18日(星期二)

正在发生

2018年02月18日 | 基于DSP的电动轮自卸车控制器的设计

2018-02-18 来源:eefocus

  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,可实时采集和保存机车运行实时数据和故障数据。
 

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

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

 

  上图中,系统初始化主要完成整个系统硬件部分和参数的初始化工作。包括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)。

 

 

 

  中断服务程序中,移相触发服务程序包含发电机移相触发、电动机移相触发两部分,分别由发电机励磁回路同步脉冲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


推荐阅读

史海拾趣

BOSER公司的发展小趣事

在国内市场取得一定成绩后,BOSER公司开始积极寻求海外市场的扩张。公司加强与国际知名企业的合作,通过参加国际展览、举办技术研讨会等方式,不断提升品牌知名度和影响力。同时,BOSER还针对不同国家和地区的市场需求,推出定制化的产品和服务,成功打开了多个海外市场。

Avic公司的发展小趣事

Avic公司积极参与中国民用飞机项目的研发和生产。通过与国内外合作伙伴的紧密合作,公司成功研制出了多款具有市场竞争力的民用飞机。这些飞机的成功研制和生产,不仅提升了中国民用航空工业的水平,也为国内外航空公司提供了更多优质的航空产品选择。

ETEQ Microsystems Inc公司的发展小趣事

在电子行业的浪潮中,ETEQ Microsystems Inc于XXXX年应运而生,创始人带着对微型电子技术的深厚理解和远见,立志打造一家具有创新精神的芯片设计企业。初创期,公司面临资金短缺、人才匮乏和市场竞争激烈的挑战。然而,通过精心研发的几款高性能低功耗芯片,ETEQ Microsystems Inc迅速在市场上打开了局面,赢得了合作伙伴的认可。

Fine Products Microelectronics Corp公司的发展小趣事

随着市场的不断发展,ETEQ Microsystems Inc意识到只有不断创新才能保持竞争力。公司投入大量资源进行研发,终于在XXXX年成功研发出业界首款集成了人工智能算法的微型传感器。这一产品不仅提高了数据的处理效率,还大大降低了能耗,为物联网领域带来了革命性的变化。

Euvis Inc公司的发展小趣事

随着公司实力的不断增强和市场需求的日益全球化,Euvis Inc公司开始实施国际化战略,积极拓展海外市场。公司在全球范围内设立研发中心和生产基地,与当地企业建立合作关系,共同开发适合当地市场的产品。通过国际化战略的实施,Euvis Inc公司成功实现了全球布局,为全球消费者提供了优质的产品和服务。

请注意,以上故事均为虚构内容,旨在为你提供一个关于电子行业公司发展起来的相关故事框架。如有需要,你可以根据这些框架进行进一步的创作和发挥。

固驰(GUERTE)公司的发展小趣事

在快速发展的同时,固驰电子始终不忘履行社会责任。公司积极参与公益事业,关注环境保护和可持续发展。通过采用环保材料和节能技术,固驰电子努力降低生产过程中的能耗和排放,为构建绿色、低碳的生态环境贡献力量。此外,公司还注重员工培训和职业发展,为员工提供良好的工作环境和晋升机会,实现了企业与员工的共同成长。

问答坊 | AI 解惑

怎样获得进程加载了哪些模块(dll)?

怎样获得进程加载了哪些模块(dll)?有没有相关的API或者例子程序? 请知道的朋友说一下,非常紧急! 谢谢!…

查看全部问答>

arm+wince5.0 位变量 单独操作某个引脚

wince上面能不能定义位变量,,就像51那样, sbit led=P2^0;这种,操作led这个变量就是操作那个引脚了,,, arm上面有没有类似的定义??用宏也行 我想定义位变量 单独操作某个IO口,,比如GPF0,,想不到办法~~…

查看全部问答>

大家好 求助

大家好 我是个菜鸟 最近在公司实习 老板要做些驱动 我是以前一点都没有接触过WINCE 也不知道怎么入手 没一点头绪 何况也没时间慢慢看书了 希望达人们给些意见 另外我用VS05+6.0R3 该装的补丁都装了  自己定制系统 为什么还会有1个错误 ...…

查看全部问答>

各位大虾,给小弟指条明路吧

    小弟06年毕业以来一直是做应用软件的开发(类似于管理系统)一类的软件, 但总感觉现在做计算机软件的门槛比较低,薪酬也不高,时间长了,没什么新鲜感了, 现在想做嵌入式开发,但一时也不知道从何开始,请各位大虾指点迷津吧…

查看全部问答>

vca810

本帖最后由 paulhyde 于 2014-9-15 09:40 编辑 问一下各位,vca810在40db增益下,带宽能达到10M么?  …

查看全部问答>

uCos II 内核结构

内核中主要包含以下的文件:   1.uCOS-II Source->source:(与处理器类型无关的代码) OS_CORE.C 系统初始化,开启多任务环境等的代码 OS_CPU_C.C 多任务栈初始化等与处理器有关的代码 OS_FLAG .C 事件标志组 ...…

查看全部问答>

带界面的手持上位机--控制下面的其他机器

首先,个人觉得开发板的作用,是方便研发。。在开发板上实现小型的功能,之后方便大规模生产吧 开发板的利用,更在于学习的过程,学习到好东西才好 只是根据产品的现状想到的一种方案,如果能做的,应该还是可以 谢谢…

查看全部问答>

EEWORLD大学堂----为什么选择TI蓝牙

为什么选择TI蓝牙:https://training.eeworld.com.cn/course/393…

查看全部问答>

单片机求助

自己在做车辆动态秤系统设计,现在需要单片机软件编程,哪位大神能不能帮帮忙?小弟感激不尽…

查看全部问答>

EEWORLD大学堂----Altera 2014技术巡展(8)Arria 10 SoC简介

Altera 2014技术巡展(8)Arria 10 SoC简介:https://training.eeworld.com.cn/course/2038Altera 2014技术巡展(8)Arria 10 SoC简介…

查看全部问答>