基于STM32的直流电机PID调速系统设计与实现

发布时间:2024-09-13  

直流调速系统广泛应用于低转速、高精度等各领域,如精密办公设备(喷墨打印机、激光打印机),自动售货机,家用电器、机器人和玩具设备等。其发展得力于微电子技术、电力电子技术、传感器技术、永磁材料技术、自动控制技术和微机应用技术的最新发展成就。顺应调速系统智能化、简单化的发展趋势,本设计采用一款性价比高、功耗低的基于ARMCortex⁃M3内核的STM32单片机为控制核心,结合PID控制技术,实现了直流电机范围大、精度高的调速性能。


1、系统的总体设计

该调速系统能够实现对电机的启动、制动、正反转调速、测速和数据上传等功能,可方便地实现直流电机的四象限运行。本系统的性能指标为:调速精度高达到1r/min;调速稳态误差不超过0.5%;调速范围为-500~500r/min;串口指令控制方式;驱动电路导通阻抗低,能耗少;运行稳定可靠。系统由电源、上位机、通信接口、控制电路、电机驱动电路、电机与负载和测速装置等模块组成,结构框图如图1所示。

基于STM32的直流电机PID调速系统设计与实现

图1  系统结构框图


2、硬件设计

2.1、控制电路设计

控制电路负责接收控制指令,并产生相应的控制信号,同时返回电机速度数据和电机运行状态数据等。为了保证电路工作稳定可靠,控制电路应具有较高的运行速度、高度可靠的稳定性能、开发容易、高性价比,产生的PWM控制信号应具有死区延时、互补输出、紧急刹车等功能。STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCortex⁃M3内核,本系统采用STM32F103作为核心控制器。控制电路以STM32F103为核心的最小系统包括STM32主芯片、时钟电路、复位电路、UART⁃USB转换电路、JTAG调试接口电路、电源等,其原理图如图2所示。

基于STM32的直流电机PID调速系统设计与实现

图2  以STM32F103为核心的控制电路原理图


2.2、驱动电路设计

根据系统正反转的控制要求,采用H桥驱动电路,由MOS管构成的H桥驱动电路原理图如图3所示。

基于STM32的直流电机PID调速系统设计与实现

图3 由MOS管构成的H桥驱动电路原理图

MOSFET是电压控制型器件,具有开关速度快、输入阻抗高、驱动方便等优点[5]。本系统采用IRF9630和IRF630对管,组成H桥,上桥臂均使用PMOS,下桥臂均使用NMOS,两种MOS管基本特性如表1所示。

表1H桥MOSFET主要参数表

基于STM32的直流电机PID调速系统设计与实现

控制电路的输出信号为DC3.3V信号,需要与驱动电路隔离,采用了LTV352光电耦合隔离器。互补PWM输入信号经过光耦隔离作用到MOSFET栅极,从而控制OUTA,OUTB之间的电压。MOSFET中G,S两极之间使用了双向TVS管抑制瞬态电压,防止MOSFET损坏。由于采用了PMOS,NMOS对管电路,MOSFET栅极电压是由输入电压进行分压得到,因此不需要采用额外的高电压信号源。

互补PWM输入信号中,PWMA控制V1,V4桥臂,PWMB信号控制V2,V3桥臂。当占空比为50%的PWM输入信号时,OUTA,OUTB之间输出电压是0V,电机处于停止状态时,由于电机电枢中仍存在高频微震电流,从而消除了正反向转动时的静摩擦死区,起着动力润滑作用。


2.3、速度反馈装置设计

本系统采用高达888线AB相光电编码器,两相脉冲相差90°,通过测量某相的周期T可以得到电机运行速度,通过测量两相的上升沿时刻可以得到电机运行方向。


3、系统软件设计

系统的软件设计主要完成硬件和数据初始化功能,然后进入标志位循环扫描状态,一旦中断发生便处理中断程序,在中断程序中有相关标志位置位(包括上位机发送来的、通信异常处理、电机停转处理),有则处理,无则继续进行中断等待。系统软件主程序流程如图4所示。

基于STM32的直流电机PID调速系统设计与实现

图4  主程序流程图


中断源分为USART中断、PWM刹车中断、EXTI、TIMER中断。

USART中断是由于与上位机的数据交换过程中产生的,在中断程序中需要对接收到的数据包进行解析,并更新通信超时计数器。

PWM刹车中断是由于PWM刹车输入信号产生的,代表电机控制现场产生了紧急停车的请求。

EXTI中断由AB相编码器产生的光电编码脉冲产生,需要在中断服务历程中计算电机运行速度和方向,同时更新测速超时计数器。

TIMER中断为1ms定时中断,这个中断源的存在是为了系统通信超时检测、电机停转检测使用,在中断中需要对通信超时计数器和测速超时计数器进行自减处理,如果到零则发出响应信号通知系统。

由于中断源的多样性,STM32自带有可嵌套的中断向量控制器(NVIC),因此中断处理程序实际上是相互独立的。


3.1、PID算法设计

PID控制器将给定转速和反馈测得转速相比较后,经计算得出一个输出信号,将此输出信号量化为PWM的占空比,最终作用在电机的驱动电路上来控制电机。本系统中采用增量式PID算法[9⁃10],增量式数字PID表达式为:

基于STM32的直流电机PID调速系统设计与实现

KP为比例系数;TI为积分项积分时间常数;TD为微分时间常数。由上式可以得出增量式PID算法程序如下:

#defineKP0.15

#defineTI0.95

#defineTD0

#defineT0.001

#defineEMIN0.01

#defineA(KP*(1+T/TI+TD/T))

#defineB(KP*(1+2*TD/T))

#defineC(KP*TD/T)

floatPIDCompute(floatr,floaty)

{staticfloate0=0.0;

staticfloate1=0.0;

floate=0.0;

floatdelta;

e=r-y;

delta=A*e-B*e1+C*e0;

e0=e1;

e1=e;

returndelta;}


3.2、测速软件设计

测速软件需要完成测量电机转速与测量电机运行方向两部分内容。光电测速编码器输出的888线AB相脉冲分别连接到STM32的PA0,PA1上。

测速在STM32上的编程实现过程如下:

(1)配置EXTI1上升沿、下降沿均触发中断;

(2)配置端口与TIM2,TIM3;

(3)开启中断;

(4)EXTI中断程序中读取TIM2CNT中的数据并记录,清空TIM2CNT寄存器中的数据并重新启动计数;

(5)根据记录的数据进行瞬时速度计算;

(6)当若干个时基中断发生且期间无测速中断请求则宣告电机转速为0。

将A相信号输入至PA0(EXTI0)之上,编程使得EXTI0上升沿中断。在中断例程里读取B相信号,根据AB相脉冲时序可以判断电机转动方向,即B=1,电机反转;B=0,电机正转。


4、系统验证

本系统经过原理图和PCB设计、焊接制板、硬件测试、模块程序编写、模块程序功能测试、连接各个子模块程序、PID参数整定,最后通过反复的调试,系统完全满足预期要求,能够实现-500~500r/min之间任意速度控制(以顺时针方向为正方向),控制精度达1r/min,稳态误差不超过0.5%。在正常工作环境下,电机空载运行时,此时系统测试参数见表2,上位机界面如图5所示。

基于STM32的直流电机PID调速系统设计与实现

图5  上位机界面

表2  系统特性参数表

基于STM32的直流电机PID调速系统设计与实现

5、结论

本文设计了一种基于ARMCortex⁃M3内核的STM32微控制器的直流电机PID调速系统。实验结果表明,该系统具有稳态误差小,控制精度高,响应速度快,能耗低、效率高等优点,对上肢康复机器人的研究具有一定的借鉴价值。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>