基于ARM的地铁屏蔽门系统门控单元软件设计毕业设计说明书.docx
《基于ARM的地铁屏蔽门系统门控单元软件设计毕业设计说明书.docx》由会员分享,可在线阅读,更多相关《基于ARM的地铁屏蔽门系统门控单元软件设计毕业设计说明书.docx(28页珍藏版)》请在冰豆网上搜索。
基于ARM的地铁屏蔽门系统门控单元软件设计毕业设计说明书
南京理工大学
毕业设计说明书(论文)
题目:
基于ARM的地铁屏蔽门系统门控
单元软件设计
毕业设计说明书(论文)中文摘要
针对门控单元要求,本文完成了使用LPC2129微控制器的屏蔽门运动控制软件编写。
使用LPC2129内置的ADC通道测量电机上串接电阻的电压获得电机电流值,使用内置PWM通道产生电机驱动控制信号,使用微控制器的外部中断和内部定时器获得屏蔽门的位置和速度。
本文还设计了一个通用输入输出口模拟SPI通信接口,完成控制器与驱动器之间的通信任务。
针对屏蔽门运动控制的需求设计了转速和电流数字PI控制器。
在IAREmbeddedWorkbench集成开发环境下完成了软件的编写,并且通过使用数字示波器获得了电机运行的动态曲线。
关键词门控单元微控制器LPC2129SPI无刷直流电机速度-电流双闭环IAREWARM
毕业设计说明书(论文)外文摘要
TitleSoftwareofplatform-edgedoorcontrolsystem
basedonARMdesign
Abstract
ForPlatform-edgedoorcontrolsystemrequirements,Inthispaper,aPlatform-edgedoormotioncontrolsoftwareusingARM7-basedmicrocontrollerLPC2129isdone.Usethebuilt-inADCchannelmeasurementsthevoltageofresistancewhichseriesinthemotortogetthemotorcurrentvalue,usethebuilt-inPWMchannelgeneratesmotordrivecontrolsignals,usemicrocontrollerinternaltimerandexternalinterrupttogetthepositionandvelocityofPlatform-edgedoor.Thispaper,agenericI/OportsimulationSPIcommunicationinterfaceisdesigned,forthecommunicationbetweenthecontrollerandthedriverFortherequirementsofPlatform-edgedoorsmotioncontrol,adigitalspeedandcurrentPIcontrollerisdesigned.IntheIAREmbeddedWorkbenchintegrateddevelopmentenvironment,thecontrolsoftwareisdone.Byusingadigitaloscilloscope,thedynamiccurveofthemotorrunningisgot.
KeywordsGatingcellmicrocontrollerLPC2129SPIBrushlessDCMotorSpeed-currentclosedloopIAREWARM
目次
1绪论
地铁屏蔽门是在列车轨道地和铁候车站台之间控制乘客进出的门。
地铁屏蔽门将列车隧道区域与候车站台隔离开,使候车站台在屏蔽门没打开时相当于密闭空间可以减小空调的能量损耗,同时减少列车运行活塞风和噪音对车站的影响,为乘客提供舒适、安全的候车环境。
屏蔽门的使用,可以为乘客带来安全和舒适的环境,减少站台工作人员,节约运营成本[1]。
门控单元软件是在门控单元硬件上工作的,因此需要在充分了解门控单元的组成以及工作原理的前提进行软件设计。
屏蔽门的设计要求可以参考文献[2]。
门控单元是屏蔽门的重要组成部分,每对滑动门均配置一个门控单元,并安装在门体上部的顶箱内[3]。
电机作为屏蔽门的驱动装置,直接决定门的运动状态。
而电机的运转是受门控单元中的软件控制的。
当列车进入车站停靠后,列车发送开门信号给门控单元,然后在门控单元的控制下驱动屏蔽门打开。
门控单元最主要的任务是控制电机完成相应指令的任务。
在文献[4]中介绍了“奥的斯”屏蔽门系统,其中的门控单元处理器采用的是16位控制微机,可以完成滑动门的控制以及状态的显示。
在文献[2]中介绍了防夹物策略是关门力不超过150N,遇到障碍物不能关闭时重复尝试关门三次后不再关门。
门控单元在完成控制任务时应当充分考虑系统的可拓展性,为电机预留通信接口,本文设计采用LPC2129微控制器正是考虑门控单元在其他方面的需求。
控制电机作为执行元件时主要包括直流伺服电机、交流伺服电机、步进电机和无刷直流电机等[5]。
无刷直流电机具有直流电机的启动力矩大,调节特性好的特性。
无刷直流电机的最大特点是没有换向器(曾称整流子)和电刷组成的机械接触机构。
因此,无刷直流电机没有换向火花,寿命长,运行可靠,维护简便。
此外,其转速不受机械换向的限制[6]。
在相同体积时可以提供更大的动力。
鉴于这些特点,门控系统驱动电机宜采用无刷直流电机。
本文使用LPC2129微控制器和无刷直流电机针屏蔽门需求设计了一套运动控制方案。
将控制算法编写成软件在微控制器上运行。
电机的运动控制采用转速-电流双闭环控制,转速的采样通过无刷直流电机上面的霍尔传感器测量,电流通过LPC2129内部ADC测量串接在电路中的电阻电压来获得,调节器采用PI调节器,由于我们采用的微控制器只能处理数字信号,所以需采用数字PI调节器。
通过这些构成了控制系统。
2系统简介
门控单元为屏蔽门运行提供驱动动力,控制屏蔽门的开关。
门控单元应使开关时间尽量的小,为整个地铁系统运行节约时间。
屏蔽门的设计主要是为了给乘客提供更安全的环境,防止乘客掉入轨道,对乘客生命安全造成威胁,所以屏蔽门的设计应当充分考虑安全性,防止关门时夹伤乘客。
为满足这些要求,系统应该达到的性能指标有,开关门时间要求小于3.5秒,最大动能10焦耳,最后10cm距离动能小于1焦耳。
在考虑系统惯性后算出对应的最大速度为0.5m/s和最后运行阶段对应的速度为0.158m/s。
系统的理想速度曲线如图2-1所示。
图2-1屏蔽门理想速度曲线
门控单元运行分为加速阶段,高速运行阶段,减速阶段,慢速运行阶段和关闭阶段。
首先门控单元在接到开关门信号后,使电机加速到最高允许运行速度,然后保持高速运行开关门,在最后10cm时减速到低速运行继续关门,在到达开关门位置后刹车,电机刹车既能防止屏蔽门撞击也能解决屏蔽门关闭后滑动问题,因为电机刹车后会产生反扭矩而阻止电机的运动。
本次实验将电机系统分成两层1、物理层(电机驱动)2、应用层(电机控制器)。
其中物理层完成电机在电路上的需求,如逻辑换向,速度控制,方向控制,刹车控制,过流保护。
而应用层(电机控制器)根据系统的需求,完成数据计算,算法实现,把需要执行的操作通过通信接口传输给物理层(电机驱动)执行。
应用层(电机控制器)和物理层(电机驱动)通过SPI(串行同步接口)进行通信。
本次实验采用恩智浦公司的LPC2129作为程序控制器,以CPLD可编程器件搭建电机驱动电路。
控制电机采用无刷直流电机。
因为无刷直流电机上面有霍尔传感器,因此本系统在控制系统中可增加位置环。
系统通过测量霍尔传感器产生的脉冲数计算距离,因此本系统具有门宽自学习能力,省去了位置传感器的需求。
并且可以在控制系统中增加位置环,构成电流-速度-位置三闭环系统。
电流环是为了使电机运行在最大的允许电流状态下,从而加速动态过程;速度环使电机转速快速达到预设的速度值并且保持稳定;位置环是根据屏蔽门系统需求而设计的,根据霍尔传感器测量到的位置信息控制电机的速度。
3软件运行环境
3.1系统概述
系统包括控制器模块,驱动模块,输入输出模块,无刷直流电机,如图3-1所示。
LPC2129是基于32位ARM7TDMI-S支持实时仿真和嵌入跟踪的CPU[7]。
LPC2129拥有2路CAN通道,PWM通道,10位ADC。
作为电机的控制器,LPC2129能很好的满足屏蔽门电机对实时性和功能上的需求。
驱动模块采用CPLD来完成,解决了电机逻辑换向电路的需求,同时方便调试以及修改和升级,并且方便拓展功能电路,在本次试验中还把设计的SPI电路集成在CPLD中,用于拓展输入输出端口,这样驱动和输入输出都在CPLD中实现了。
电机采用星型连接,通过桥式开关电路供电。
图3-1系统电路原理图
处理器管脚功能选择如表3-1所示。
表3-1控制器管脚配置
管脚
1(P0.21)
46(P0.16)
45(P0.15)
39(P0.13)
38(P0.12)
功能
PWM信号
运行方向
位置计数信号
LOAD
MISO
管脚
37(P0.11)
13(P0.28)
14(P0.29)
15(P0.30)
功能
MOSI
CLK
电流采样电压
过流信号
3.2无刷直流电机
直流电机调速特性优异以及启动力矩大,而无刷直流电机采用电子换向克服了传统有刷直流电机换向时会产生换向火花的问题,寿命长,运行可靠,维护简便。
无刷直流电机采用三相星型桥式开关电路供电,如图3-2所示。
图3-2电机三相电桥驱动系统
要使得电机旋转必须按照正确的顺序给电机供电,导电顺序如表3-2所示,通过检测霍尔传感器的位置,电机有六个电源状态,每种状态两相同时导通.无刷直流电机的换向逻辑参考文献[5][8]。
表3-2电机三相六状态导通
电角度
0-π/3
0-2π/3
2π/3-π
2π/3-4π/3
4π/3-5π/3
5π/3-2π
霍尔传感器值
010
011
001
101
100
110
V1
导通
导通
V2
导通
导通
V3
导通
导通
V4
导通
导通
V5
导通
导通
V6
导通
导通
电机控制逻辑仿真图如图3-3所示,pwm1-6对电桥的V1-6控制端(波形为高电平表示触发场效应管导通),ha、hb、hc对应电机的霍尔传感器输出。
图3-3仿真波形图
3.3电机调速
根据无刷直流电机的稳态特性方程
可知可以通过调节电机的输入电压来控制电机转速。
而通过对电桥的场效应管进行PWM调制,控制输出电压。
电机运行时场效应管两两导通构成回路。
而回路中对这两个场效应管的调制分为四种H_on-L_pwm、H_pwm-L_on、on-pwm、pwm-on(H表示上臂场效应管,L表示小臂场效应管,on-pwm表示交替)。
在文献[9]无刷直流电机控制系统中PWM调制方式对换相转矩脉动的影响中研究了这四种调制方式。
其中H_on-L_pwm、H_pwm-L_on在换向时上下臂换向产生的电流波动大小相差较大。
而on-pwm、pwm-on由于是轮流对上下臂调制所以上下臂换向时产生的电流波动差值不大。
虽然on-pwm、pwm-on在性能上优于H_on-L_pwm、H_pwm-L_on,但是优于on-pwm、pwm-on是采用交替对上下臂调制,实现上比较复杂,所以本次开发采用的是H_pwm-L_on调制方式。
3.4SPI接口
设计SPI(串行同步接口)接口主要是为了解决端口不足问题,SPI接口作为控制器与驱动器的通信接口,完成控制器控制指令到驱动器和驱动器检测电机状态信息到控制器的传输。
控制器SPI输入32位输出16位。
通过串转并(74hc595)实现输出(主设备到从设备),并转串(74hc166)实现输入(主设备到从设备)。
SPI通信的时钟由主设备提供。
LOAD信号在完成通信后锁存数据。
在文献[10][11]中有相关SPI通信接口介绍。
原理图如图3-4所示。
图3-4SPI通信接口电路
在时钟作用下,串转并和并转串中的移位寄存器进行移位完成输入输出功能。
控制器的SPI接口通过软件模拟,将整形变量作为控制器SPI通信中的的移位寄存器,完成数据的保存。
通信程序如下所示。
unsignedintSPI_IO(unsignedshortout)
{
intout_buf=out;//作为输出移位寄存器
intin_buf=0;//作为输入移位寄存器
IO0SET|=LOAD;//将驱动器外部数据读入移位寄存器中
IO0CLR|=LOAD;//关闭,防止外部数据继续被读入移位寄存器中
for(chari=32;i>0;i--)
{
//写数据部分
if(out_buf&(1<<(i-1)))//根据控制器中“移位寄存器”数据值输出
{
IO0SET|=MOSI;
}
else
{
IO0CLR|=MOSI;
}
//读数据部分
if((IO0PIN&MISO)==0)
{
in_buf=in_buf<<1;
}
else
{
in_buf=in_buf<<1;
in_buf|=0x01;
}//根据读到的驱动器输入过来的数据,把数据移位保存
IO0CLR|=CLK;
delay
(1);//延时1ms,控制通信频率
IO0SET|=CLK;//模拟提供时钟
}
IO0SET|=LOAD;//完成通信后把驱动器读到的数据锁存
returnin_buf;
};
4控制系统分析和软件设计
4.1软件开发环境
屏蔽门主控制器LPC2129是恩智浦公司生产的以ARM7为内核内部集成有丰富外设的微处理器。
ARM7为低功耗的32为RISC处理器,具有嵌入式ICE-RT,方便开发者调试。
基于ARM内核的微控制器的软件开发软件有ADS(ARMDevelopSuite)、KeilMDK-ARM、IAREmbeddedWorkbench。
ADS是ARMDevelopSuite的简称,是ARM公司推出的新一代关于ARM处理器的编译、链接和调试集成环境。
KeilMDK-ARM集ARM公司的RealView编译工具RVCT4和Keil公司的IDE环境uVision两者优势于一体,适合不同层次的开发者使用,包括专业的应用程序开发工程师和嵌入式软件开发的入门者。
IAREWARM是一种针对ARM处理器的集成开发环境,包含具有高度优化功能的ARM编译器,能生成极为紧凑而高效的代码。
本文选择了IAREWARM作为开发软件。
在开发软件时IAREWARM会为开发者自动链接启动代码,完成上电后的初始化,包括中断向量的设置,堆和栈地址的分配,变量的初始化等,然后跳转到执行用户的主函数上,极大的减小了开发者去完成这些重复的底层工作,使用户能更好的专注于应用功能的开发上。
IAREWARM支持ARM汇编语言和C99标准的C语言。
链接器可以生成不同的输出格式,包括使用JLINK下载的.out格式和直接用于存储器编程的.hex格式。
LPC2129支持ISP(在系统编程),可以通过串口将程序载到内部FLASH存储器中。
IAREWARM有功能强大的C-SPY仿真调试器,不但可以通过JLINK线在硬件上调试还可以在没有硬件的条件下进行仿真。
4.2建立无刷直流电机的传递函数
电机的启动时间由系统的动态特性决定。
系统的动态特性可以用传递函数来表现。
为分析电机的动态性能和设计控制器,我们需要建立无刷直流电机的传递函数。
传递函数根据电机的运动方程建立系统输入电压和输出转速在频域上的关系。
无刷直流电机与普通直流电机的差别仅在于它的换相不用电刷[14],所以其动态特性分析与直流电机的分析方法是相同的。
因此实验中采用普通直流电机建模方法建立无刷直流电机的传递函数。
记:
电机的电阻为R,电感为L,转动惯量为GD2,电机额定功率P,额定电压U,额定电流I,额定转速n,电磁时间常数Tl,机电时间常数Tm,电动势系数Ce,电机在额定刺痛下的转矩系数为Cm。
电机已知条件,额定功率300W,额定转速3000RPM,额定电压48V,额定电流7A,电感1.73mH,负载转动惯量6.3*10-3
。
计算:
电阻R=U-
Ω
电动势系数
电机在额定刺痛下的转矩系数为
电磁时间常数
机电时间常数
其传递函数为
(将负载电流Id前移到电压上)
4.3系统的原理图
为了减小屏蔽门的运行时间,应该减小系统的动态过程,所以应该增加加速度控制器,电机的加速度跟电机电流成线性关系,直接控制电机电流就可以达到控制电机加速度的效果。
而电机转速的控制要求是屏蔽门工程的需求,这样我们就还需要一个速度控制器,位置控制是一个非线性的控制,我们跟具位置量来选择输出控制速度。
图4-1为速度-电流双闭环控制系统,ASR(转速)和ACR(电流)控制器由ARM处理器完成,UPE(功率变换器件)由CPLD做成的逻辑换向和换向电桥完成。
由于电机电感的存在,电机的电流不能突变,电流环控制器的输入为电压环控制器的输出,电流环控制器使电机电流紧跟输入电压变化,其输出控制晶体管开关。
速度环保证电机运行在输入电压对应的速度值上。
图4-1无刷直流电机双闭环控制系统原理图
要在允许的条件下使电机启动时间最短,关键是要使电机在启动过程中保持最大允许加速度即电机的允许电流。
在速度达到设定值之前使输出电流保持最大值,要使电流环输出值恒定即电流环的输入要保持不变,因此电压环控制器输出限幅值应恒定,此时转速环不起作用相当于开环。
当速度达到设定值时,转速控制器重新工作,控制电机转速。
在图4-2中给出了电机双闭环控制系统稳态结构图,转速调节器和电流调节器都采用限幅PI控制器。
转速控制器输出限幅值取决于电机的最大允许电流。
电流控制器输出限幅值取决于三相换向电桥电路输出最高电压。
根据在单位阶跃信号下由PI调节器组成的系统无静差,可以得出转速与电压关系
,
。
图4-2双闭环稳态结构图
根据双闭环控制结构得到如图4-3所示的电机动态结构图。
图4-3双闭环动态结构图
4.4控制器参数的设计
屏蔽门的运动控制器设计采用工程设计方法[16]。
被控对象电机传递函数理想化后是二阶系统,采用PI控制器就能很好的矫正系统。
电流调节器传递函数
。
利用调节器的零点消除被控对象的最大时间常数极点。
在电流环节最大的惯性环节是电感。
电力电子电桥失控时间等于PWM信号的周期0.001秒,所以Ts=0.001。
忽略其他时延环节,电流环的开环传递函数为
。
在
时,电流环的传递函数为
,是Ⅰ型系统,
当
时,电流无超调。
电流的测量是通过串接在电路上的阻值为0.1Ω的5WR1J水泥电阻,根据
知道
。
在控制器中设定0-1V对应PWM信号占空比为0-1,而PWM信号占空比0-1对应输出电压为0-48V,所以电力电子变换器的放大倍数Ks=48。
电流环控制器
。
速度调节器传递函数
,转速反馈通过霍尔传感器测量得到的是数字量,测量到的速度值是跟实际值成线性的关系,整个速度计算模块相当于一个测速电机,反馈系数α=1。
速度环是一个Ⅱ型系统,
,h是中频宽,为了减小超调量,这里选取中频宽h=2000。
速度环控制器
。
数字PI包括位置式和增量式。
位置式输出跟所有过去量有关,而增量式跟前两个输入和前一个输出有关。
在软件中不宜存储大量的动态数据,我们采用增量式数字PI。
将模拟PI控制器传递函数进行Z变换,最后化成差分方程,获得增量式数字PI。
速度环PI控制器
voidPI_ASR(floatasr_ei)//ei为当前误差
{
asr_ei=asr_ei*48/3000;
if(asr_out<1000)//限制输出电流
{
floatq0=0;//比例增量
floatq1=0;//积分增量
q0=asr_kp*(asr_ei-asr_ex);//比例项
if(asr_ki==0)
q1=0;
else
q1=asr_kp*Ts*asr_ei/asr_ki;//当前积分项
asr_out+=q0+q1+q2;//当前控制器的输出等于前一次值加上增量
}
if(asr_out>0.7)
{
asr_out=0.7;//这个值是限流对应的采样电压
}
};
电流环PI控制器
voidPID_ACR(floatacr_ei)
{
floatq0=0;//比例增量
floatq1=0;//积分增量
q0=acr_kp*(acr_ei-acr_ex);//比例项
if(acr_ki==0)
q1=0;
else
q1=acr_kp*Ts*acr_ei/acr_ki;//当前积分项
acr_ey=acr_ex;
acr_ex=acr_ei;
acr_out+=q0+q1;
}
if(acr_out>1)
acr_out=1;//限制acr输出,这个是由于硬件限制最大电压为48
};
4.5SPI通信协议
为控制器输出到驱动器的16位和控制器从驱动器输入的32位数据定义他们的意义。
根据功能需要为每一位通信数据位定义作用。
在表4-5-1中输出数据O表示输出口,连接指示灯用于人机接口显示。
s_c是控制命令,表示的是控制器的控制命令,其中s_c3控制电机运转方向,s_c4电机运转的使能控制,s_c5控制电机刹车,s_c6选择过六保护方式(硬件或者软件),过流信号直接控制电桥关闭,使电机无输入电压而减速。
表4-5-1SPI输出字段
output[7-0]
7
6
5
4
3
2
1
0
保留
保留
保留
保留
O3
O2
O1
O0
output[15-8]
15
14
13
12
11
10
9
8
s_c7
s_c6
s_c5
s_c4
s_c3
s_c2
s_c1
s_c0
在表4-5-2中,HEZ是位置和运行方向、运行速度。
HZ1、HZ2、HZ3霍尔传感器的值,HZ3电机过流标志、HZ4电机使能状态,HZ5刹车标志,HZ6电机运行方向,HZ7门位置计数信号。
S7在硬件上控制电机运行方向,P4在硬件上控制电机运行使能,为了在控制器运行出错或者其他故障时可以由管理人员操作电机使之恢复正常。
其他端口根据需要被定义为开门信号,关门信号,故障清除复位信号和保留。
表4-5-2SPI输入数据字段
input[7-0]
7
6
5
4
3
2
1
0
S7
S6
S5
S4
S3
S2
S1
S0
input[15-8]
15
14
13
12
11
10
9
8
P7
P6
P5
P4
P3
P2
P1
P0
input[23-16]
23
22
21
20
19
18
17
16
P15
P14
P13
P12
P11
P10
P9
P8
input[31-24]
31
30
2