基于STM32的小型化伺服控制器设计
2016-05-25秦文甫
张 珂,郭 栋,秦文甫
(中国空空导弹研究院,洛阳 471099)
基于STM32的小型化伺服控制器设计
张 珂,郭 栋,秦文甫
(中国空空导弹研究院,洛阳 471099)
针对伺服控制器多选用DSP为核心的现状,设计了一种基于嵌入式处理器 STM32的伺服控制器。采用PID增量控制,在实现对直流有刷电动机控制的同时达到伺服控制器小型化的目的。经实验验证,控制器在闭环系统中稳定性好,各项指标均满足要求。
伺服控制器;STM32;PID;直流电动机
0 引 言
伺服控制系统中数字控制方式已占据主导地位,以TMS320F2812为代表的DSP凭借其控制精度高、内部资源丰富等优势成为伺服系统数字控制器主控单元的首选[1]。但在一些要求伺服系统低成本,对体积控制严格的场合,就不再适合选用DSP进行控制。
本文的研究目的在于设计一种新型伺服系统数字控制器,既能满足控制精度,响应速度等性能要求,又要控制成本和体积。系统采用STM32为主控单元,以最简方式配置外围电路;算法上采用PID+前馈的控制方式,通过脉宽调制实现对电机的控制。
1 总体方案设计
总体方案框图如图1所示。控制器以STM32 F103C8为核心,采用直流有刷电动机作为执行单元,并以MOSFET组成H桥式电路进行电机驱动。控制器工作时,通过RS-422通讯电路接收并处理控制信号,位置反馈信号经调理电路和模数转换电路后输入主控单元,在与控制信号综合后,输出控制电机运行的PWM信号,通过驱动电路,驱动执行单元运转,实现位置跟随。
2 控制算法原理
PID控制是伺服控制中常用的一种控制算法,具有调节方便、技术成熟、无需知道被控对象准确数学模型等优点,因此在伺服控制器软件中引入了PID控制作为其控制算法的基础。
经典PID算法表达式:
(1)
式中:u(t)为伺服控制器输出信号;e(t)为控制器的输入偏差信号,它等于测量值与给定值之差;Kp为比例系数;TD为微分时间常数;TI为积分时间常数。
采用数值逼近法对式(1)中连续型的微分方程变换成离散型的差分方程,用增量代替积分项,并将其表示成矩形积分的形式,同时将连续时间值t用一系列采样时刻点kT替换,以增量代替微分项,并将其表示成后向差分的形式,可得增量式PID算法[2]:
(2)
积分环节的作用是消除静态误差,但KI过大也会降低系统的响应速度,引起系统超调量的增加;比例环节的作用是对偏差瞬间做出快速反应,增大Kp数值,可以使控制效果得到加强,但过大的Kp值会造成系统的不稳定,使系统产生振荡[3];微分环节的作用有助于系统稳定,减小系统的超调量,但是引入KD后使得系统对输入信号的噪声变得很敏感,因此调试过程先不加微分环节,当系统调节稳定后,再适当调节微分参数。
控制系统原理框图如图2所示。
图2 控制系统原理框图
3 硬件设计
3.1 主控单元电路设计
伺服控制器的主控单元电路采用基于ARM CortexTM-M3 32位RISC、内核频率高达72 MHz的数字信号控制器STM32F103C8芯片为核心,其特点是采用高速嵌入存储器(SRAM和闪存程序存储器分别高达20 kB和128 kB),其增强的I/O端口均连接到两条APB外设总线。STM32F103C8提供1个PWM定时器和3个通用16位定时器,2个12位ADC,配备了标准和先进的通信接口。
在仿真接口的设计上,主控电路采用SWD方式,仅以4根针脚就能实现程序下载及在线调试,与传统JTAG接口模式相比,能够在确保可靠性和速度的同时减小印制电路板的体积。
伺服控制器主控单元电路如图3所示。
图3 主控单元电路图
3.2 反馈调理及模数转换电路设计
为提高控制精度,增强反馈信号抗噪能力,选用TI的A/D转换器TLC2574进行数据采集。TLC2574是一款可编程的4通道12位A/D转换器,量程为-10~+10 V,采样率达200 KS/s,功耗为30 mW,可满足伺服系统采样的需要,模数转换电路如图4所示。此外,TLC2574可在最大25 MHz的时钟频率下工作,具有与外部STM32F103C8高速通信的SPI口,其模拟供电为5 V,数字供电则可选3.3 V,与STM32F103C8系统电平兼容,不需外加电平转换电路。
图4 模数转换电路
系统选用的反馈电位器总阻值为4.7 kΩ,有效电行程300°,扇齿增速比为4,电位器两端供电电压为±12 V,伺服系统最大转角为±25°。根据公式:
(3)
在执行单元最大转角时反馈电压为±8 V,在极限转角±30°时反馈电压为±9.6 V,均满足AD采样的输入范围。
3.3 驱动电路设计
驱动电路由电源变换电路、光电隔离电路、限流电路、功率电路组成,如图5所示。
图5 驱动电路原理框图
电源变换电路将功率电压转换成+12 V,为驱动电路中除逆变电路以外的各部分电路提供电压,功率驱动部分采用驱动芯片IR2101S和MOSFET 6270。电路原理图如图6所示。其中,IR2101S为自举式高电压、高速半桥驱动器,2片IR2101S即可组成H桥全桥驱动电路。IR2101S芯片高端悬浮通道采用外部自举电容产生悬浮电压源VBS,与低端通道共用一个外接驱动电源VCC。自举电路工作原理:当VJ2导通时,D1的VS端电位被拉低至地,VCC通过自举二极管VD1开始向自举电容C3充电,这样就在VB和VS之间形成了一个悬浮电压VBS用来给VJ1供电,保证VJ1的正常开通。由于自举电路的存在,可使H桥电路上下桥臂MOSFET仅需一路电源,简化了电路。
图6 功率驱动电路原理图
驱动电路由于自举电容的存在对输入信号有一定的限制,即无法做到长时间低电平或100%占空比输入[4],实际应用中只把占空比最高限设置为95%。在某些要求达到100%占空比输入的应用中,需单独给VBS提供充电电路。图7为一种基于555定时器的充电泵电路[5],能够以较低的成本实现对自举电容的单独充电。图8为电路仿真结果,一级倍压即可将+12 V电源电压升高到+22 V,如需多级倍压,仅通过增加多级整流电路即可实现。
图7 充电泵电路原理图
图8 充电泵电路仿真图
4 程序设计
STM32控制程序分为主程序、通讯中断程序和定时器中断程序三部分,程序流程图如图9所示。在通讯中断程序中,控制器每2 ms接收一次转速指令,处理后发送转速数据,定时器中断程序则通过一定的控制算法控制电机转速。
图9 控制软件流程图
5 实验结果
为验证本文提出的基于STM32小型化伺服控制器技术,建立实验系统如图10所示,实验中选用的直流电动机参数如表1所示。
表1 试验电机参数
图11是小型化控制器的实物图。实际大小仅为60 mm×30 mm,体积较基于TMS320F2812的伺服控制器大幅减小。
图11 电路实物图
图12是上位机给控制器发送±20°阶跃信号时实际的反馈波形。经计算,伺服系统空载角速度如表2所示。
图12 伺服系统阶跃测试波形
表2 系统阶跃测试数据
给控制器分别发送不同频率的正弦波,测得系统的动态特性如表3所示。
表3 系统动态特性测试数据
通过实验数据的分析可以得出,该伺服控制器稳定性好,各项测试指标均能满足伺服系统要求,证明本文提出的控制器方案可以实现对伺服系统的控制。
6 结 语
本文以STM32F103C8为核心设计了一套小型化伺服控制器,较行业内常见的以DSP2812为核心的伺服控制器具有体积小,成本低的特点。通过在伺服系统中的应用实验,表明该控制器满足设计要求,具有实际应用价值。
[1] 吴大勇,贾敏智.STM32 在三相无刷直流电机控制系统中的应用[J].微电机,2014,47(3):47-51.
[2] 卢志刚,吴杰,吴潮.数字伺服控制系统与设计[M].北京:机械工业出版社,2007.
[3] 樊学能.基于PID 算法的直流电动机调速系统的设计[J].电气技术与自动化,2011,40(3): 175-178.
[4] 张小鸣,卢方民.基于IR2110的H桥可逆PWM驱动电路应用[J].常州大学学报(自然科学版),2014,24(4):68-72.
[5] 李正中,孙德刚.高压浮动MOSFET 栅极驱动技术[J].通信电源技术,2003(3):37-40.
Design of Miniature Servo Controller Based on STM32
ZHANGKe,GUODong,QINWen-fu
(China Airborne Missile Academy,Luoyang 471099,China)
For Currently servo controllers more use DSP, a servo controller based on STM32 was designed. The controller used PID increment control, realizing the control of DC motor with small volume. Experimental results show that the controller has good stability in closed-loop system and can meet requirements.
servo controller; STM32; PID; DC Motor
2015-11-04
TM383.4
A
1004-7018(2016)05-0083-04
张珂(1983-),硕士研究生,工程师,研究方向为伺服系统控制器设计。