基于USB2.0总线的新型舵机控制器的设计与实现
2008-04-11
作者:侯伟波1, 盛 英1, 林晓春2
摘 要: 设计了一种基于CPU+FPGA的新型舵机控制器。该控制器考虑了谐波传动的随速度波动和低阻尼特点,以提高舵机系统控制品质为目标,采用增量式分段PID算法产生PWM信号,对舵机随动系统进行实时精准控制,并通过USB2.0总线接口实现了微型计算机与CPU之间的实时变量传送,方便了程序的调试。测试结果表明,该控制系统具有抗干扰性能好、控制品质优等特点。
关键词: 舵机控制器 PID算法 调宽斩波输出 USB2.0
舵机是控制飞行器运动方向的关键部件。随着航空航天事业的高速发展,提高舵机伺服系统的性能成为当前的迫切需要。为此,设计者在考虑到谐波传动的随速度波动和低阻尼特点的基础上,以提高舵机系统控制品质为目标,提出了一种新型舵机控制系统。该硬件系统以CYPRESS公司的CY7C68013处理器为核心,结合使用现场可编程门阵列(FPGA)和高性能的模/数转换器(ADC),并通过USB2.0总线接口实现了PC机与CY7C68013处理器之间的参数传送。
由于舵机系统对定位精度、频率响应特性、阶跃响应特性和震荡次数等因素有着非常高的要求,因此其测试数据、分析曲线和指示结果是分析、判定系统性能和工作状态的重要依据和手段。本文所涉及的控制器具有USB2.0总线接口,它负责与PC机通信,这使得控制器在运行中产生的各种参数和变量能够实时地传送并在CRT上显示,极大地方便了对参数变化趋势的观察和控制过程的判断分析,为加快参数的整定奠定了基础。
1 系统的构成与工作原理
1.1 系统的构成
如图1所示,系统由主控板卡、电机驱动" title="电机驱动">电机驱动板卡、微型计算机以及包括力矩伺服电机、谐波减速器及其位置电位计的舵机组成。其中,主控板卡为该系统的核心组成部分,运算处理器采用CYPRESS公司的CY7C68013芯片。
1.2 系统的工作原理
本系统由上位微机发送控制指令,经由USB2.0总线传送至主控板卡。主控板卡将采集到的舵机实时位置数据与上位机" title="上位机">上位机传来的位置指令数据代入到增量式分段离散PID控制算法" title="控制算法">控制算法中进行运算。处理后得到的PWM调制波形作为电机驱动板卡的输入信号,通过电机驱动板卡上的H桥电路对电机进行驱动,进而完成对电机的控制。另外,主控板卡还将舵机运行状态数据经由USB2.0总线上行传送至上位微机,由PC机测控应用程序" title="应用程序">应用程序对其进行后期分析处理。
2 系统的硬件电路描述
2.1主控板卡部分
2.1.1主控板卡的构成
在整个硬件系统中,主控板是核心的部分。该板卡的原理框图如图2所示。此板卡的主控芯片为CY7C68013处理器,其内部嵌有USB2.0总线控制器,用户可通过USB串行总线与计算机进行高速实时通信。FPGA采用的是ALTERA公司的EP1C3T144C8,由Flash 存储器EPCS1对其进行上电初始化配置。主控板卡的舵机位置反馈给A/D转换电路,这里采用的是ADI公司的AD9241模/数转换器及与其匹配的电压基准源REF192,对反馈的舵偏角度模拟信号进行数字转换。在舵机电位器产生的表征角度值的反馈电压信号送至ADC以前,为了排除高频干扰,加入了一个以OP77运算放大器为核心的二阶压控低通滤波环节。
2.1.2 主控板卡的功能
主控板卡不但承担着执行来自上位机的控制指令并将指令执行的实时状态上行送至上位机的任务,而且还要将经过处理器运算产生的相应占空比" title="占空比">占空比的PWM信号送至电机驱动板卡,实现对电机的精准控制。
板卡中各部分的具体职能如下:
(a)CY7C68013接收来自计算机的控制命令,并连同实时角度反馈数据一起代入到增量式分段离散PID算法中运算,生成11位占空比数据送至FPGA以生成PWM信号;另外,CPU还要将实时反馈数据值以相应的通信协议送至计算机,以便上位机测控应用程序做进一步处理。
(b)FPGA内部的功能模块由硬件描述语言Verilog编写,如图3所示,主要有四项功能,分别是:
·接收CPU发送来的占空比数据,通过内部的PWM生成模块产生相应的脉宽调制信号,并输出到驱动电机驱动板卡,进而拖动电机。
·通过时序状态机为本系统提供主时钟,使整个控制系统以同一步调协调运行,这样就有效地避免了各部分之间的竞争与冒险。
·为ADC传送来的数字信号进行均值滤波,减小测量误差。
·指标测试模块将测试结果输出到FPGA的相应引脚,可由示波器直观检测到测试结果。
(c)二阶压控滤波模块通带截止频率为1kHz,品质因数Q值为1,可有效地滤除反馈信号的高频干扰。
(d)模/数转换器AD9241的采样率为1.25MHz,14位精度,可以满足系统指标的要求,实时给FPGA提供精准的位置反馈信息。
2.2 电机驱动板卡部分
该电路采用可逆H型双极式PWM开关功率放大器作为主回路驱动电机。它主要是由大功率晶体管D1047和达林顿管TIP122组合而成的复合管,以及续流二极管1N5408组成的桥式电路。PWM信号经高速光耦隔离器件6N137将信号隔离,这样就很好地避免了电机驱动板卡对主控板卡的干扰。隔离后的脉宽调制信号由三极管3DG6构成的放大电路放大,送给末级电路,控制H桥复合管的开关。电机驱动板卡原理框图如图4所示。
3 软件程序设计及其算法描述
3.1 CY7C68013处理器固件主程序设计
CY7C68013的主程序负责完成对CPU的初始化并对数据进行相应处理。初始化包括对I/O、寄存器、处理器工作状态以及内部USB2.0控制模块等的初始化。在初始化过程完成后,进入数据处理的运算子程序。该子程序具体工作流程如图5所示。
3.2 CPU与上位机的通信
CY7C68013与上位机的USB2.0串行通信采用批量传输模式,一次传输包括令牌包、数据包和握手包三部分。令牌包与握手包为USB控制器自行生成,数据包由用户指令填充。因此,这里提出形如XX XX XX H的3字节传输通信方案作为USB2.0传送的数据包进行发送。其中,第一字节为指令标识字节,第二字节为16位指令目标值的高字节,第三字节为16位指令目标值的低字节。在该系统的硬件板卡和上位微机的上行和下行通信中,均采用上述通信方案进行控制命令的发送和舵机工作状态的监测。
3.3 上位机测控应用程序设计
为便于舵机的控制和系统指标的测试,编制了基于Windows操作系统环境的底层驱动函数C++应用程序,即测控应用程序软件包。该测控应用程序的用户界面分为实时显示区、目标位置控制区、指标测试区等几大模块,可以对电机的目标位置进行设定,对系统指标进行测试,并实时地将PWM占空比数据、目标值数据以及反馈值数据以趋势图的形式直观地显示出来,易于进行在线分析处理和评估。
3.4 增量式分段离散PID控制算法描述
舵机控制器系统的控制算法分为两段进行:
式中,V为 PWM最大输出常量, f(PID)为线性PID算法,Emax为偏差的设定阈值,U为控制算法输出值,表征PWM信号的占空比。在偏差E很大时(E>Emax),系统快速性是控制的关键指标,系统开环运行V,使得偏差能够尽快缩小;在较小偏差下(E≤Emax),系统的定位精度成为关键指标,此时采样值在设定值附近,按优化的增量PID控制算法运行。
4 系统测试结果分析
舵机系统在2kgm的额定负载力矩的测试条件下,联调试验结果表明:本系统可以达到250°/s的舵轴最大输出转速;系统频带宽度>20Hz(1.5°正弦信号检测,幅值下降不大于3dB,相位滞后不大于90°),如图6所示。舵机从0°转到25°含纯延时的时间不大于110ms,响应曲线如图7所示,超调量小于5%;舵面角定位精度±0.08°,舵机轴受控偏转线性度误差小于1%,系统电路工作稳定。
参考文献
1 刘延杰,孙立宁.谐波驱动并联机器人的加速度反馈抑振控制.哈尔滨工业大学学报,2004;36(3):281~285
2过润秋,林晓春.基于模糊控制的自动回转系统[J].西安电子科技大学学报(自然科学版), 1999
3 阎 力,段宝岩.非线性变结构不确定连续系统的反馈控制.西安电子科技大学学报(自然科学版),2004;31(1)
4 过润秋,王小红.基于免疫反馈机理的温度自动控制研究.西安电子科技大学学报(自然科学版),2003;30(6)
5 任爱峰,孙肖子. 基于FPGA的嵌入式系统设计. 西安:西安电子科技大学出版社,2004
6 Ciletti, M D著,张亚琦等译. Verilog HDL高级数字设计.北京:电子工业出版社,2005