基于STM32的步进电机S形加减速控制曲线的快速实现方法
基于STM32的步进电机控制系统
基于STM32的步进电机控制系统沈阳航空航天大学2010年6月摘要本文的主要工作是基于STM32步进电机控制系统的设计。
随着越来越多的高科技产品逐渐融入了日常生活中,步进电机控制系统发生了巨大的变化。
单片机、C 语言等前沿学科的技术的日趋成熟与实用化,使得步进电机的控制系统有了新的的研究方向与意义。
本文描述了一个由STM32微处理器、步进电机、LCD显示器、键盘等模块构成的,提供基于STM32的PWM细分技术的步进电机控制系统。
该系统采用STM32微处理器为核心,在MDK的环境下进行编程,根据键盘的输入,使STM32产生周期性PWM信号,用此信号对步进电机的速度及转动方向进行控制,并且通过LCD显示出数据。
结果表明该系统具有结构简单、工作可靠、精度高等特点.关键词:STM32微处理器;步进电机;LCD显示;PWM信号;细分技术AbstractAs well as the high-tech products gradually integrated into the daily life,servo control system has undergone tremendous changes.SCM and C language of the frontier disciplines such mature technology and practical,steering control system is a new research direction and meaning.This paper describes a STM32 microprocessors, steering, LCD display and keyboard, Based on the STM32 servo control system of PWM signal,This system uses STM32 microprocessor as the core, MDK in the environment, according to the keyboard input , STM32 produce periodic PWM signal, with this signal to the velocity and Angle of steering gear control, and through the LCD display data. The features of the simple hardware, stable operation and high precision are incarnated in the proposed system.Keywords:STM32 microprocessors; Steering system; LCD display;pulse width modulation signal;Subdivide technology目录第1章绪论 (1)1.1 课题背景 (1)1.2 课题目标及意义 (2)1.3 课题任务及要求 (3)1.4 课题内容分析与实现 (3)1.5 课题论文安排介绍 (3)第2章步进电机控制系统的总体方案论证 (5)2.1 总体方案 (5)2.2 步进电机控制系统硬件方案 (5)2.3 步进电机控制系统软件方案 (6)第3章系统的硬件设计 (7)3.1 STM32开发板简介 (7)3.2 步进电机模块 (8)3.2.1 步进电机驱动模块 (8)3.2.2 步进电机驱动控制模块 (10)3.2.3 步进电机的一些特点 (11)3.2.4 步进电机的一些基本参数 (12)3.2.5 步进电机的驱动方法 (13)3.3 A/D转换模块 (13)3.3.1 模拟/数字转换(ADC)介绍 (13)3.3.2 模拟/数字转换(ADC)主要特性 (13)3.3.3 模拟/数字转换(ADC)功能描述 (14)3.4 LCD显示模块 (16)3.5 硬件电路 (17)第4章控制系统软件设计 (18)4.1 控制系统软件设计步骤 (18)4.2 Keil for ARM软件开发环境 (19)4.3 PWM细分技术简介 (20)4.3.1 PWM细分技术简介 (20)4.3.2 PWM细分技术驱动原理 (20)4.3.3 PWM细分调压调速原理 (22)4.4 主程序设计 (23)4.5 各模块程序设计 (25)4.5.1系统初始化 (25)4.5.2A/D转换程序设计 (26)4.5.3 PWM细分程序设计 (29)4.5.4电机控制程序设计 (30)4.5.5 LCD显示程序设计 (32)第5章步进电机控制系统综合调试与分析 (33)5.1 硬件电路调试 (33)5.2 软件电路调试 (34)5.3 系统联调结果与分析 (34)结论 (35)社会经济效益分析 (36)参考文献 (37)致谢 (38)附录I 电路原理图 (39)附录Ⅱ程序清单 (41)附录IV 元器件清单............................................................................ 错误!未定义书签。
基于STM32的步进电机运动控制设计
图1 系统设计图3第 38 卷 数字技术与应用 4#define KEY0 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8) //KEY0为PA8上按键的值键盘扫描函数u8 KEY_Scan(void)的程序设计思路如图4所示:3.3 中断技术STM32的每一个GPIO引脚都可以作为外部中断的中断输入口,都能配置成一个外部中断触发源。
STM32把同一个序号的引脚组成一组,每组对应一个外部中断/事件源(即中断线)EXTIx(x:0~15),将众多中断触发源分成16组。
本系统软件设计中,加速、减速、停止按键设置为中断源,即PA10、PA11、PA12引脚对应3个外部中断源,分别对应的中断线是EXTIx10~EXTIx12。
外部中断配置函数void exit_config(void)中主要代码如下:RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //使能复用时钟GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource10);//设置PA10~PA12为中断源EXTI_Init(&EXTI_InitStructure);//外部中断初始化NVIC_Init(&NVIC_InitStructure);//中断优先级初始化在中断服务函数中,中断线EXTIx15~EXTIx10共用一个外部中断通道E XT I 15_10_I R Q n,同时也共用一个中断服务函数EXTI15_10_IRQHandler()。
在中断服务函数中,判定是什么中断源。
如果是停止中断,就不再加载脉冲;如果是加速中断,则减少加载的脉冲延时;如果是减速中断,则增加脉冲延时。
3.4 延时设计STM32中有很多定时器,本文中的延时设计采用其中的滴答定时器(SysTick)。
它是一个24位的系统节拍定时器,具有自动重装载和溢出中断功能,所有基于Cortex-M3的芯片都可以由此获得一定的时间间隔[2]。
stm32控制步进电机速度算法_解释说明
stm32控制步进电机速度算法解释说明1. 引言1.1 概述在现代工业领域中,步进电机广泛应用于各种自动控制系统中,其具有精确定位、易于控制等优点。
对步进电机进行速度控制是其中的一项重要任务,因为精确控制速度可以使步进电机在工作过程中稳定可靠。
为了实现步进电机的速度控制,本文将介绍一种基于STM32的步进电机速度算法。
通过该算法,可以实时监测步进电机的当前速度,并根据需要进行调整。
这样可以保证步进电机在不同工作负载下都能保持稳定的运行效果。
本文将首先对步进电机原理进行简要介绍,包括其结构和工作原理。
接着,将详细讲解步进电机速度控制的原理和方法。
最后,我们将详细阐述如何使用STM32微控制器来实现这一算法,并给出相应的硬件连接与配置说明。
1.2 文章结构本文主要分为五个部分:引言、步进电机速度控制算法、算法设计与实现、实验结果与分析以及结论与展望。
引言部分主要对整篇文章进行了概述,并明确了文章的目的和结构。
步进电机速度控制算法部分将详细介绍步进电机的原理和速度控制方法。
算法设计与实现部分将讲解如何设计步进电机驱动模块,并进行硬件连接与配置。
同时还将重点介绍软件算法的设计和调试过程。
实验结果与分析部分将说明实验环境和参数设置,以及对实验测量数据进行详细分析。
最后,结论与展望部分总结了整个研究工作的成果,并提出了改进方向和未来的发展建议。
1.3 目的本文旨在介绍一种有效且可靠的STM32控制步进电机速度算法。
通过该算法,可以准确地控制步进电机的转速并保证其在不同负载下运行稳定。
同时,本文还希望能够为步进电机速度控制领域的研究提供参考,并为相关工程应用提供技术支持。
2. 步进电机速度控制算法:2.1 步进电机原理简介:步进电机是一种特殊的直流电动机,它通过逐步驱动来控制旋转角度。
步进电机由固定数量的磁极组成,每一次收到脉冲信号时,它会前进一个固定的角度(步数)。
步进电机通常用于需要精确位置和速度控制的应用。
基于STM32的步进电机S形加减速控制曲线的快速实现方法_蔡泽凡
关键词
步进电机控制
S 形加减速曲线
STM32
doi:10. 3969/j. issn. 1672 - 9528. 2014. 04 .04
由于步进电机具有无需反馈就能对位置和速度进 行精确控制的优点,在工业自动化设备中被广泛第应 用极为广泛。步进电机将电脉冲信号转换成角位移, 然后驱动执行机构,使其按照一定的规律运动,步进 电机的转速和角位移分别由电脉冲的频率和脉冲数决 定。为了实现对位置的精确控制,要求步进电机在运 行中必须不丢步和过冲。为了防止丢步和过冲,在启 动时必须采用加速过程,在停止时则必须采用减速过 程,步进电机的运行过程一般如图 1 所示。
图 4 步进电机三段式运行曲线Biblioteka 图 5 步进电机二段式运行曲线
28 2014年第4期
信息技术与信息化
3 基于 STM32 的步进电机控制曲线的软件实现 以控制一个步进电机为例,介绍基于 STM32 的实 现代码。 3.1 定义步进电机驱动脉冲周期表 以 10 个速度等级、200 个台阶为例,步进电机驱 动脉冲周期表如下所示:
综 述
本文实现了学生咨询师使用触屏智能手机通过 Android 来进行心理咨询,使得学生能够更好得进行心 理开导减轻压力,也便于形成高校学生心理资料信息 化管理体系。 参考文献: [1] 曾永乐 . 谈大学生心理教育的意义及发展趋势 [J]. 赤子,2012(5):107. [2] 郑洁琼,陈泽宇,王敏娟,等 .3G 网络下移动学习的探 索与实践 [J]. 开放教育研究,2012,18(1):159-162. [3] Journal of Materials Chemistry Group. ANDROID MOBILE APP[J].Self-Adhesive Materials and Markets Bulletin, 2012, 38 (10) : 6-7. [4] Marcin PAWLAK.Application of mobile devices with the Android system for the induction motors faults diagnosis[J].Przeglad Elektrotechniczny, 2013,89(2b):150-153. [作者简介]汪璐萍(1993-),女,浙江萧山人, 学生,主要从事移动应用的研究。 [通讯作者简介] 方硕瑾 (1986-) , 女, 浙江松阳人, 硕士研究生, 助理研究员。 研究方向:学生工作信息化。 (收稿日期:2014-05-15)
基于STM32的步进电机转速控制实验设计
I S S N1672-4305C N12-1352/N实 验 室 科 学L A B O R A T O R Y S C I E N C E第13卷 第6期 2010年12月V o l.13 N o.6 D e c.2010基于S T M32的步进电机转速控制实验设计晏英俊,张自强(上海师范大学信息与机电工程学院,上海 200234)摘 要:S T M32包含C o r t e x-M3内核,具有低功耗,丰富片内外设,处理速度快等特点,典型应用于数据采集处理系统。
文章介绍了一种基于S T M32的步进电机转速控制实验设计。
与传统的单片机电机控制相比,它具有处理速度快,功能完善等优点。
S T M32根据送入的传感器信号操控电机运转,并显示电机工作状态。
文章给出了具体的实验电路的硬件设计及软件设计流程,并给出部分实验说明。
经实践证明该实验系统稳定可靠,具有较好的实验教学效果。
关键词:S T M32;C o r t e x-M3;P WM;步进电机中图分类号:T N740 文献标识码:B d o i:10.3969/j.i s s n.1672-4305.2010.06.021Ad e s i g n o f s t e p m o t o r b a s e d o n S T M32Y A NY i n g-j u n,Z H A N GZ i-q i a n g(C o l l e g e o f I n f o r m a t i o na n dE l e c t r o m e c h a n i c a l E n g i n e e r i n g,S h a n g h a i N o r m a l U n i v e r s i t y,S h a n g h a i200234,C h i n a)A b s t r a c t:B a s e d o nC o r t e x-M3k e r n e l,S T M32h a s d i s t i n g u i s h e d f e a t u r e s u c h a s l o w-p o w e r,a b u n-d a n t i n te r n a l p e r i p h e r a l s,q u i c k p r o c e s s i n g s p e e d a n d s o o n.I t's t y p i c a l l y a p p l i e d i n d a t a a c q u i s i t i o ns y s t e m.S t e p m o t o r r o t a t i o n a l s p e e d c o n t r o l d e s i g n b a s e d o n S T M32i s i n t r o d u c e d i n t h i s p a p e r.C o m-p a r i n g w i t h t r a d i t i o n a l s i n g l e c h i p,i t h a s m a n y a d v a n t a g e s s u c h a s f a s t p r o c e s s i n g a n d p e r f e c t f u n c i o n.S T M32m a n i p u l a t e s t e p m o t o r a c c o r d i n g t o s e n s o r s i g n a l a n d d i s p l a y o p e r a t i n g s t a t e.T h i s a r t i c l e h a sg i v e n d e t a i l s i nh a r d w a r ed e s i g na n ds o f t w a r ep r o c e d u r e,a t t a c h i n gp a r t o f e x p e r i m e n t d e s c r i p t i o n.T h i s e x p e r i m e n t s y s t e mh a s p r o v e d t o b e s t a b l e a n d r e l i a b l e t h r o u g h p r a c t i c e,w h i c h i s s u p p o s e d t o b eg r e a t e f f e c t o f e x p e r i m e n t t e a c h i n g.K e y w o r d s:S T M32;C o r t e x-M3;P W M;s t e p m o t o r 步进电机是将电脉冲信号转换为角位移或线位移的开环控制元件,驱动器的作用使其步进化、数字化。
stm32高级定时器 多通道控制步进电机 标准函数
标题:STM32高级定时器多通道控制步进电机标准函数一、STM32高级定时器简介1.1 STM32高级定时器的概念STM32系列微控制器中的高级定时器是一种功能强大的定时器,可以实现多通道控制、高精度定时等功能。
1.2 高级定时器的特点高级定时器具有多通道控制、PWM波形发生、编码器接口、定时周期计数等特点,非常适合用于控制步进电机。
二、多通道控制步进电机2.1 步进电机控制原理步进电机是一种将电能转化为机械能的设备,通过对电流的控制来驱动电机旋转。
多通道控制可以实现单步控制、微步控制等功能。
2.2 高级定时器在步进电机控制中的应用高级定时器的多通道控制功能可以实现对步进电机的精确控制,通过定时器的定时周期和占空比设置,可以实现步进电机的旋转角度控制。
三、标准函数的应用3.1 标准函数库的介绍STM32标准函数库是由ST公司提供的一套功能丰富的软件库,其中包含了丰富的功能函数和驱动程序,可以大大简化开发者的开发流程。
3.2 标准函数在高级定时器中的应用开发者可以通过调用标准函数库中提供的函数来实现对高级定时器的初始化、配置和控制,从而实现对步进电机的精确控制。
结语:通过本文对STM32高级定时器多通道控制步进电机标准函数的介绍,可以看出高级定时器在步进电机控制中具有重要的应用价值。
通过合理的设置定时器参数和调用标准函数库中的函数,开发者可以实现对步进电机的精确控制,为实际应用提供了便利。
希望本文能够帮助读者更深入地了解高级定时器多通道控制步进电机标准函数的应用,并且在实际开发中加以应用。
很抱歉,我似乎在给出的回复中存在了重复。
以下是补充的新内容:四、高级定时器的多通道控制方式4.1 多通道控制原理STM32的高级定时器可以实现多通道控制,将一个定时器的计时和控制功能分配给多个通道,实现多个功能的控制。
4.2 多通道控制的优势通过多通道控制,可以实现对多个外设设备的并行控制,减少了对多个定时器的占用,提高了系统资源的利用效率。
伺服控制 s曲线加减速 plc实现方法
伺服控制 s曲线加减速 plc实现方法《伺服控制 S 曲线加减速 PLC 实现方法》一、引言在工业自动化领域,伺服控制是一种重要的运动控制方式。
而 S 曲线加减速则是伺服系统中常用的一种运动控制曲线。
本文将就伺服控制中 S 曲线加减速的原理和 PLC 实现方法进行探讨,以帮助广大读者更好地理解和应用这一技术。
二、伺服控制概述伺服控制是一种高精度、高灵敏度的运动控制方式,通常应用于需要精准控制位置、速度和力的场合。
相比于传统的步进控制,伺服控制具有响应速度快、稳定性好的优势,因此在工业机械、医疗设备、航空航天等领域得到广泛应用。
在伺服控制中,S 曲线加减速是一种控制曲线。
它的特点是在起始和终止阶段速度变化缓慢,中间阶段速度加速度和减速度比较快,可以有效减少运动过程中的冲击和震动,提高系统的稳定性和精度。
三、S 曲线加减速原理S 曲线加减速的原理是基于数学模型来实现的。
通常采用三次多项式来描述其速度和位置随时间的变化规律。
在运动开始和结束阶段,速度变化较慢,而在中间阶段速度变化迅速,如同 S 形曲线一般。
这种曲线实现了平滑的加减速过程,避免了突变和冲击,提高了系统运动的平稳性和控制的精度。
四、PLC 实现 S 曲线加减速的方法在工业实际应用中,控制系统通常采用 PLC(可编程逻辑控制器)来实现 S 曲线加减速。
PLC 是一种专门用于工业控制的计算机,具有高速、稳定的特点,可以实现复杂的控制算法。
- 利用 PLC 的高速计算能力,可以通过编程实现 S 曲线加减速算法,包括速度和位置的控制。
- 在 PLC 编程中,可以利用三次多项式或其他数学模型来描述 S 曲线加减速的规律,然后通过控制输出信号来实现伺服系统的速度控制。
- 还可以结合传感器反馈的位置和速度信息,实现闭环控制,从而进一步提高系统的稳定性和精度。
五、个人观点和理解S 曲线加减速在伺服控制中的应用不仅可以提高系统的运动平稳性和控制精度,还可以减少系统在运动过程中的震动和冲击,从而延长了系统的使用寿命。
基于STM32的多步进电机控制系统研究
驱动器细分倍数、 电机运行总步数、 PWM 脉冲总 个数分别为 n、 N、 P, 则
P i = N i = 200 n iQ i = 200n iL i qi (i= 1 , 2)
步进电机每一次目标位置的移动 , 都需要经过启 动、 加速、 高速、 减速和制动过程。速度大小是由 PWM 脉冲信号频率决定的 , 所以完成目标位置移动的过程 [7 , 8] 就是不断调整 P WM 脉冲信号频率的过程 。 如果两台步进电机每次调整的 P WM 信号频率运 行的时间 $t 相同 , 同时启动后的加速、 高速、 减速整个
Q i = L i qi ( i = 1, 2 )
在程序设计中, 通过计算并设定 M 1R , M 2R , $ tR , 即 可实现对步进电机的同步控制。同样的方法也可以实 现对多台步进电机的同步控制。 2 . 2 程序流程控制 本系统中要求步进电机所控制的设备从初始位置 开始运行。但由于突发情况的存在 , 步进电机的实际 位置相对于初始位置会有一定位移。这就要求软件系 统中有回零功能 , 以控制步进电机拖动设备回到初始 位置。 STM 32 主程序完成初始化后 , 通过硬件中断来 触发回零程序。然后采用串口中断的方式不断接收上 位机 指令, 在中断服 务程序中 把指令中 的距离信 息 L 1、 L 2 转化为电机运行步数 N 1、 N 2, 然后通过 设定的 M 1R , 求出 M 2R 、 $tR , R = 1 , 2 , ,, 6 , 把 M 1R 、 M 2R 分别赋 给两个 T I M 并使能后产生两个 PWM 信号 , 且同时延 时 $ tR , 用于控制电 机速度的大小。令: $T = RE $tR , =1 电机运行 $ T 后 , 读取位置反馈信息并转化为电机实 际运行步数 , 与控制指令步数比较, 进行偏差控制。如 果偏差 $L 1、 $L 2超出规定值, 则程序 就会把 $L 1、 $L 2
步进电机多段s曲线加减速控制研究与设计
ELECTRONICS WORLD・技术交流
的脉冲数,以实现控制运行距离的目的。 软件设计流程图如图4所示:
图2 普通S曲线加减速过程
3 多段S曲线算法 3.1 多段S曲线算法介绍
多段S曲线加减速,实质是普通S曲线加减速算法的扩 展。是针对步进电机实际运动中,需要多段不同匀速运行 区,并且不同匀速运行区可平稳切换而提出的一种方法。
制
金 龙
研
究
与
设
计
• 112 •
针对步进电机运动控制中存在多段 不同速度运行情况,本文对普通S曲线加 减速算法进行扩展,提出了一种多段S曲 线加减速算法。应用STM32微控制器为 控制芯片进行设计,介绍了多段S曲线算 法的原理以及软件设计,并通过实验验 证多段S曲线算法在实际应用中的可行 性。
步进电机是将电脉冲信号转变为角 位移或线位移的开环控制器件,是现代 控制系统中的重要执行元件,应用很广 泛。步进电机脉冲信号变化不能太快, 否则容易导致堵转和丢步,所以步进电 机,从静止运行到高速或者从高速降低 到静止状态,需要逐渐升高脉冲频率或 逐渐降低脉冲频率,使升降速有一个加 减速过程。另一方面,一般所应用的步 进电机加减速曲线,只有一个匀速平台 区,但在实际运动情况下,可能需要步 进电机前1/3路程高速运行,中间1/2路 程中速运行,最后1/6路程低速运行等情 况,这就需要对多段加减速控制算法进 行研究与设计。
由此可知,改变捕获比较寄存器CCRx的值,可改变 PWM输出占空比,改变重装载寄存器ARR的值,可改变 PWM输出频率。目标频率f与寄存器ARR的关系如下:
(1)
式中F为定时器时钟频率,因为步进电机运行速度与脉 冲频率成正比,故由(1)式可知,通过改变ARR值,即可实现 改变步进电机运行速度的目的。
基于stm32103的步进电机控制系统设计
基于stm32103的步进电机控制系统设计步进电机是一类常用的电机,广泛应用于控制系统中。
本文旨在介绍步进电机及其在控制系统中的应用,并概述本文的研究目的和重要性。
步进电机是一种将电脉冲信号转换为旋转运动的电机。
构成和工作方式步进电机由定子、转子和驱动电路组成。
定子是电磁铁,可以根据输入的电流控制电磁铁产生磁场。
转子是由磁性材料制成的旋转部分,定子的磁场会使得转子受到磁力的作用而旋转。
步进电机的工作方式是通过不断输入脉冲信号来控制电机的运动。
每一次输入一个脉冲信号,步进电机就会转动一定的步进角度。
步进角度取决于步进电机的类型和驱动电路的设置,常见的步进角度有1.8度和0.9度。
输入脉冲信号旋转的步进角度输入脉冲信号的频率和方向决定了步进电机的转动速度和方向。
每一个脉冲信号的到来,步进电机会按照预定的步进角度旋转。
例如,若步进电机的步进角度为1.8度,那么每接收一个脉冲信号,步进电机就会旋转1.8度的角度。
综上所述,步进电机通过输入脉冲信号实现了精确而可控的旋转运动。
本文将阐述基于STM单片机的步进电机控制系统设计。
该设计包括硬件电路设计和软件程序设计。
本文将介绍如何通过STM与步进电机进行通信和控制,以实现预定的步进运动。
步进电机控制系统的硬件电路设计主要包括以下部分:步进电机驱动电路:通过STM的GPIO口控制步进电机驱动电路,实现电机的正转、反转和停止等操作。
电源电路:为步进电机提供稳定的电源供电,保证系统正常工作。
外设接口:设计相应的接口电路,实现STM与外部设备的连接。
步进电机控制系统的软件程序设计主要涉及以下方面:初始化设置:在程序开始运行时,对STM进行初始化设置,包括引脚配置、时钟设置等。
步进电机驱动程序:编写相应的程序代码,通过GPIO口控制步进电机的驱动电路,实现电机的正转、反转和停止等操作。
运动控制程序:编写相应的程序代码,通过控制步进电机的驱动电路,实现预定的步进运动,包括移动一定的步数、以特定的速度旋转等。
基于S曲线的步进电机速度与位移控制
基于S曲线的步进电机速度与位移控制魏磊;赵发勇;王秀英【摘要】采用分段计算和对称性的方法求解S型加减速曲线的速度,简化了计算;给出了不同位移下4段、6段和7段S曲线的速度公式以及关键时间参数的计算;在基于S型加减速算法进行步进电机精确位移控制时,对S曲线进行离散化和量化引起的误差,采用匀速补偿的方法解决;详细论述了基于STM32单片机的S加减速算法的实现方法,给出了验证加减速曲线的实验方法,并根据实验结果着重分析了若在频率转换处关闭定时器会产生频率毛刺的原因,在换频时开启定时器频率毛刺将消失,且不会引起定时输出脉冲的高频干扰.【期刊名称】《佳木斯大学学报(自然科学版)》【年(卷),期】2017(035)005【总页数】6页(P811-816)【关键词】步进电机;加减速;S曲线;单片机;位移【作者】魏磊;赵发勇;王秀英【作者单位】阜阳师范学院物理与电子工程学院,安徽阜阳236032;阜阳师范学院物理与电子工程学院,安徽阜阳236032;阜阳师范学院物理与电子工程学院,安徽阜阳236032【正文语种】中文【中图分类】TP29步进电机作为运动伺服执行元件,具有控制简便、运行可靠、控制性能好,无累计误差等优点[1,2]。
为避免失步步进电机要以较低的频率启动,终点时突然减速过快易出度的大小恒定,不存在加速度突变,消除了柔性冲击,适合于高速柔性运动的场合。
关于步进电机的S曲现过冲现象。
步进电机不失步而快速启停是运动控制的关键问题。
步进电机整个运行应该包括启动加速、匀速运行和减速停止3个阶段,主要的加减速算法有三种:(1)梯形加减速算法,该算法在加减速过程中加速度不变,控制简单,但是在加速和减速的始末存在加速度突变具有柔性冲击。
(2)指数型加减速算法,该算法的速度曲线按照指数的规律变化,符合步进电机的矩频特性且升降速较快[3],指数运算耗时较长,在加减速的始末点存在柔性冲击。
(3)S型曲线加减速算法,算法在加速和减速阶段保持加加速线控制研究,文献[4~7]论述了S曲线的基本原理;文献[8]采用5段加减速曲线代替7段加减速曲线,简化运算;文献[9]对S曲线算法进行改进,消除了加加速的突变;文献[6、10、11]论述了S加减速算法在单片机中的实现方法。
基于STM32的步进电机S形加减速控制曲线的快速实现方法_蔡泽凡
曲线比较适合作为减速曲线。
图 3 具有不同倾斜参数 a 的 函数
2 设计微处理器 S 形加减速曲线的思路 由于步进电机的转速由驱动脉冲的频率决定,为 了突出重点,本文只考虑驱动脉冲的频率控制,至于 方向信号、脱机信号以及驱动器的硬件实现不在本文 的讨论范围之内。 利用微处理器控制步进电机时,S 形加速曲线的 构建过程如下所示。 第一,设置定时器,把微处理器的定时器设置为 计时溢出中断模式,在中断处理函数中使驱动脉冲的 信号翻转。 第二,确定驱动脉冲最长周期 TMAX(对应最低频 率),该最长周期 TMAX 作为脉冲信号的起始周期。调 整定时器的溢出中断的周期,从而产生不同周期的脉 冲信号,利用该脉冲信号对步进电机进行控制。 第三,确定驱动脉冲最短周期 TMIN(对应最高频 率),该最短周期 TMIN 作为脉冲信号的恒速周期。 第 四, 确 定 定 时 器 两 端 的 自 动 重 装 值。 对 于 STM32 来说,定时器的溢出中断周期由时钟预分频数 和自动重装值决定,当前者固定以后,中断周期仅由
综 述
由于篇幅的原因,TIM_PERIOD_TBL 省略了很多 值。 3.2 定义步进电机控制结构变量 首先定义步进电机控制结构变量类型 StepMotorTag_Typedef,其内容如下所示,
typedef struct 图 6 步进电机设置函数流程图
设置的内容为步进电机的方向、使能信号和步进 电机控制结构变量。值得一提的是,根据脉冲数,要 把步进电机的运行曲线设置成为三段式或者二段式。 3.6 步进电机驱动脉冲管理函数流程图 步进电机驱动脉冲管理函数流程图 7 所示,该函 数按照加速、恒速、减速的过程依次进行,恒速时定 时器溢出中断的周期保持不变,加速和减速过程的中 断周期根据台阶数查表以后动态更新。
基于stm32控制的步进电机程序代码
基于stm32控制的步进电机程序代码本文将介绍如何使用STM32控制步进电机,并提供相应的程序代码供参考。
步进电机是一种常用的电动机,其运动是通过控制电流来实现的。
通过STM32微控制器,我们可以灵活地控制步进电机的转动速度、方向和步数。
步进电机简介步进电机是一种特殊的电动机,可以将固定的角度转动称为步进角。
它由多个电磁线圈和齿轮组成,通过不同的相序控制电流的通断,从而实现转动。
步进电机通常有两种工作方式:全步进和半步进。
全步进模式下,步进电机按照一定的相序依次通断电流,从而实现转动。
半步进模式下,步进电机可以在每个全步进之间以半个步进的方式运行。
全步进模式有较高的转动精度,半步进模式有更高的分辨率。
STM32控制步进电机STM32是意法半导体(STMicroelectronics)公司开发的一款高性能32位单片机。
它具有丰富的外设和强大的处理能力,适合于使用步进电机的应用。
步进电机可以通过动态控制电流和相序来实现精确的转动。
对于STM32来说,我们可以使用GPIO来控制步进电机的相序,通过PWM输出来控制步进电机的电流大小。
以下是一个实现步进电机控制的示例代码:#include "stm32f1xx.h"#include "stm32f1xx_nucleo.h"// 定义步进电机的相序uint8_t sequence[] = {0x0C, 0x06, 0x03, 0x09};// 定义当前相序的索引uint8_t sequence_index = 0;// 定义当前步进的方向uint8_t direction = 0;// 定义每个相序的持续时间(单位:毫秒)uint16_t sequence_delay = 10;// 初始化GPIO和PWMvoid init_GPIO_PWM() {// 初始化GPIO口GPIO_InitTypeDef GPIO_InitStruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStruct);// 初始化PWMRCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;TIM_TimeBaseInitStruct.TIM_Period = 999;TIM_TimeBaseInitStruct.TIM_Prescaler = 0;TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseInitStruct.TIM_RepetitionCounter = 0;TIM_TimeBaseInit(TIM1, &TIM_TimeBaseInitStruct);TIM_OCInitTypeDef TIM_OCInitStruct;TIM_OCInitStruct.TIM_OCMode = TIM_OCMode_PWM1;TIM_OCInitStruct.TIM_OutputState = TIM_OutputState_Enable;TIM_OCInitStruct.TIM_Pulse = 500;TIM_OCInitStruct.TIM_OCPolarity = TIM_OCPolarity_High;TIM_OC1Init(TIM1, &TIM_OCInitStruct);TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);TIM_Cmd(TIM1, ENABLE);}// 控制步进电机的转动void step_motor_control() {// 设置当前相序GPIO_Write(GPIOA, sequence[sequence_index]);// 切换方向if (direction == 0) {sequence_index++;if (sequence_index >= 4) {sequence_index = 0;}} else {sequence_index--;if (sequence_index < 0) {sequence_index = 3;}}// 延时一段时间HAL_Delay(sequence_delay);}int main(void) {// 初始化GPIO和PWMinit_GPIO_PWM();while (1) {// 控制步进电机的转动step_motor_control();}}以上示例代码通过包含STM32 HAL库(HAL库是ST公司提供的一套可移植的硬件抽象层)来实现GPIO和PWM的初始化。
基于STM32的步进电机加减速优化算法
基于 STM32的步进电机加减速优化算法
张海超1,黄风光2,3,曹建树1* ,钟 君1,王 庆1
(1. 北京石油化工学院 机械工程学院,北京 102617;2. 民政部一零一研究所,北京 100070; 3. 民政部污染控制重点实验室,北京 100070)
摘要:为了优化步进电机的控制方式,对其加减 速 曲 线 的 控 制 性 能 进 行 了 研 究。 通 过 分 析 步 进 电 机 的 匀 加 速
72
北京石油化工学院学报
步进电机的原 理 是 通 过 接 受 电 能,将 其 转 化 为 机械能的控制元 件。 在 正 常 工 作 的 情 况 下,步 进 电 机工作只由脉冲数以及脉冲频率决定。当下一个脉 冲信号被驱动器接 收 到 时,步 进 电 机 就 被 控 制 在 设 定的方向上转动 一 定 的 角 度。 在 实 现 的 过 程 中,如 果 脉 冲 频 率 过 高 ,电 机 的 电 动 势 将 会 增 加 ,致 使 电 机 失 步 或 堵 塞 。 因 此 ,必 须 考 虑 适 当 的 控 制 脉 冲 方 案 , 以实现步进电机的正确定位。
收 稿 日 期 :2018-12-11;修 回 日 期 :2019-04-05 基 金 项 目 :北 京 市 自 然 基 金 资 助 项 目 (3182008) 作者简介:张海超(1994—),男,硕士研究生,主要从事管道无损检测方面的 研 究,E-mail:zallw605014917@;曹 建 树 (1971—),男,博 士 ,教 授 ,主 要 从 事 管 道 无 损 检 测 方 面 的 研 究 ,通 信 联 系 人 ,E-mail:jianshu@。
第27卷 第2期
北京石油化工学院学报
Vol.27 No.2
2019 年 6 月
stm32控制步进电机加减速
stm32控制步进电机加减速 实习公司项⽬需要控制步进电机,电机⽅⾯主要包括控制运动、加减速、限位。
下⾯介绍⼀下在电机控制⽅⾯的⼼得,由于对于电机的控制不需要很精确,并且⾃⾝能⼒有限,相⽐于⼤⽜有很⼤的差距。
1.需要实现的功能 主要是控制滑块的运动,开始运动时需要加速,当稳定在最⾼速度时匀速运动,检测到下端限位信号时,开始减速直到停⽌,然后进⾏反向加速,匀速,检测到上端限位时停⽌运动。
加速——匀速——减速——停⽌——反向——加速——匀速——停⽌2.硬件部分 本次电机为两相四线步进电机,两相:电机有两个线圈(绕组),四线:电机有四根线,⼀般是A+ A- B+ B-。
有些电机不会标注出线的极性,其实可以⽤万⽤表测,短接的就是同⼀个绕组,或者短接之后电机转动很费⼒,也代表是同⼀个绕组。
驱动 电机的运动需要较⼤的电流,这取决于电机本⾝和负载,所以通常需要驱动芯⽚。
⽽且驱动芯⽚可以实现许多附加的功能,包括细分、休眠、保护等。
本次采⽤的是DRV8825驱动芯⽚模块。
模块的介绍图如图所⽰: 引脚介绍: 1.ENABLE/:使能引脚,⾼电平停⽌⼯作,低电平正常⼯作; 2.M0-M2:代表细分,最⼤可以达到32细分,这部分可以参考datasheet; 3.RESET/ 、SLEEP/:低电平会休眠和复位,因此电机正常⼯作时,两个引脚接⾼电平; 4.STEP:最重要的引脚,通过单⽚机给这个引脚PWM信号,控制电机运动; 5.DIR:0和1控制电机⽅向; 6.VMOT:供电引脚,⼀般⽤12-20V就可以了; 7.B2-A1:接电机四根线; 8.FAULT/:接⾼电平⼯作;光电限位 光电限位采⽤的反射型,型号为sy1200,感应距离为1-4mm,当没有遮挡时,输出低电平;有遮挡时,代表有光反射回来,输出⾼电平;测试过程中,发现最好采⽤⽩⾊的平⾯反射,效果更好。
3.软件部分 软件主要就是通过stm32输出PWM脉冲,脉冲的频率决定了电机的速度。
基于STM32的步进电机控制器设计
—
—
一
哩
圃
图4步进电机控制系统主程序流程简图
控制 电路设 计主 要包 括控 制 器的选 择 及相 关 外围 电路 的设 计 , 既要 保 证输 入信 号得 到及 时 、准确 处 理又 要保 证控 制脉 冲 、液 晶控 制信 号及 时 、准 确输 出 。控制 器选 用 高性能 S T M3 2 芯 片 ,它具有 以 下优 点 :基 于专 为要 求高 性 能 、低成 本、 低功 耗 的嵌入 式应 用 专 门 设计 的A R M C o r t e x — M3 内核 。 3 _ 2 驱 动 电路设 计 步进 电机驱动 本质是将逻 辑电平 变换为 电机 绕组需 要的具有一 定 功率 的电流信号 。本系统 选用 的T H B 6 1 2 8 是东芝 公司生产 的高细分 两 相混 合式步进 电机驱动 专用芯 片 ,其 内置 l 通道 P W M 电流控 制步进 电机 驱动 电路 ,通 过拨码 开关 S W3对T H B 6 1 2 8 的M1 、M2 、M3 引脚 实现细 分设定 ,由S T M3 2 输 出控制信 号,设计 出高性能 、多细分 的驱 动 电路 ,适 合驱动5 7 系列步进 电机 。其 硬件 连接 电路 图如图 2 所示 。
一 … … 1 _ … … ~I r… … … 1 r 一 — —— ]
5 系统软件设计
系统 软件 总 体结 构模 块化 ,系统 软件 主要 包 括 以下程 序模 块 : 初始化模 块 ,调 速模块 ,触摸屏 显示模块 。该步进 电机控 制系统 的主 程序是整 个控制 系统软 的核心 ,程 序编写 采用硬 件定时器 中断和 查询 相结合方 法调用相 关服 务程 序 ,控 制脉冲 输出 的中断优先 级设置为 最 高, 中断服务程 序代码尽 可能少 。控制系 统启动 后,首先执 行初始 化 程 序 ,进 入主循环 后 ,查询指令 队列程序 的结果 ,操作者在 触摸屏 上 的操 作作 为触 发 条件 会触 发主 程 序 中的功 能模 块 ,调 用相 关 的子 程 序,从而完成 各项功能 。控制 系统软件主程 序流程简 图如图4 所示 。
基于STM32的步进电机多轴速度控制方法研究与实现
基于STM32的步进电机多轴速度控制方法研究与实现王昊天;于乃功【摘要】在机器人多轴电机控制过程中,发现带载情况下如果电机起步速度过快会导致电机堵转问题,很需要一种可以实现电机匀加速的精确控制方法;文章借助于STM32F103,通过其I/O口输出矩形波脉冲序列的方式控制步进电机驱动器或伺服驱动器,从而实现对步进电机的位置和速度控制;通过修改定时器值实现梯形加减速轨迹,使步进电机运行具有较好加减速性能;另外,由于STM32F103芯片具有高速定时器,可以通过配置定时器输出和插补运算相结合方法,实现对多轴(多个电机)的控制;该方法对于嵌入式步进电机控制器的开发具有很好的参考价值.【期刊名称】《计算机测量与控制》【年(卷),期】2019(027)009【总页数】6页(P95-99,108)【关键词】机器人;定时器;多路脉冲输出;梯型加减速算法;步进电机控制器【作者】王昊天;于乃功【作者单位】北京工业大学信息学部,北京100124;计算智能与智能系统北京重点实验室,北京100124;数字社区教育部工程研究中心,北京100124;北京工业大学信息学部,北京100124;计算智能与智能系统北京重点实验室,北京100124;数字社区教育部工程研究中心,北京100124【正文语种】中文【中图分类】TP230 引言随着自动化设备和机器人需求的稳步增长,作为它们的关键驱动部件步进电机或伺服电机配套的驱动器及脉冲控制器需求也相应增加,而常用的脉冲控制器一般情况下依靠PLC即可实现,但其在机器人控制中无法灵活使用,所以很有必要开发一款基于STM32的实时定时脉冲发生器。
并且STM32F103芯片也有结构简单[1],成本低廉,占用空间小等诸多优点。
电机起步速度过快时会发生堵转,具体原因是因为由静止状态到动态,如果速度过高的话,会引起各轴之间产生冲击,超程,失步等现象[2],而停止时因为工件在快速运行状态,若突停的话,因机械惯性较大,严重的话会引起机械损伤,或定位不准现象为了使执行机构能平稳定位,就要求电机在开机速度达到给定进给速度的过程中有一个加减速过程,使其能平滑过渡,避免电机速度突变给其带来损伤。
基于STM32的步进电机动态加减速控制
基于STM32的步进电机动态加减速控制摘要:步进电机的原理是通过接受电能,将其转化为机械能的控制元件。
为防止步进电机启动和停止时出现冲击而产生失步和震荡的现象,在步进电机的数控系统中,需要使用一种专用的加减速控制算法,通过控制驱动脉冲规律控制步进电机的加减速过程,本文就基于STM32的步进电机动态加减速控制展开探讨。
关键词:步进电机;STM32芯片;加减速控制引言步进电机控制简便,在载荷容限内,转速、转角只取决于输入脉冲信号的频率和数量。
在多步进电机控制系统中,随着控制节点的增多,控制信号及反馈信号大量增加,集中控制体系难以满足实时性、快速性及准确定的要求。
分布式控制系统(DCS)采用微处理器完成控制节点反馈信息处理和控制信号发送,通过现场总线技术实现基于高性能中央微处理机的集中控制及上下位机的实时通信,简化了控制系统,降低控制的复杂性,且能提高系统的稳定性及灵活性。
1总体设计系统以STM32F103RCT6为控制核心,DRV8841芯片为驱动器,完成对二相四线步进电机精确控制。
其中软件采用电机细分控制技术和S曲线加减速算法完成对转速、转角和方向的控制,具体表现为通过改变4路输出SPWM脉冲信号的高低电平、占空比、个数和频率。
当4路SPWM脉冲信号输入到DRV8841驱动器时,将被转化为步进电机4个绕组的电流信号,控制步进电机按设定的方向转动相应角度。
为了达到准确定位的目的,软件通过改变4路SPWM脉冲信号高低电平,个数和占空比分别来控制绕组通电先后顺序和磁场强度,同时为了达到调速的目的,软件通过改变脉冲频率来控制电机转动的速度和加速度。
2系统设计2.1主控站硬件设计主控站主要负责USB协议解析及通信转发,一方面将由上位机通过USB发送而来的数据包进行解析,执行开关量的控制任务、温度检测任务或者直接推送至CAN总线上,另一方面将CAN总线上发送至的数据包直接通过USB转发给上位机。
主要包括了STM32控制模块、电源模块、USB通信模块、CAN通信模块、串口通信模块、温度检测模块及三极管开关模块.CAN主控制站采用STM32系列32位微控制器中的STM32F107VC,该控制器采用Cortex-M3内核,具有高性能、低功耗的优点,工作在72MHz,内部集成了GPIO、CAN、SPI、USART及USB等丰富外设,并采用嵌套向量中断控制器(NVIC),可以实现低延迟的中断处理和高效地处理晚到的中断。
基于stm32控制的步进电机程序的创新
基于STM32控制的步进电机程序的创新引言步进电机在许多应用中都扮演着重要的角色,其精确性和可编程性使其成为自动化领域的瑰宝。
本文将深入探讨如何基于STM32微控制器进行步进电机的控制,并探讨一些创新的方法,以提高其性能和应用范围。
第一部分:STM32微控制器的概述为了深入了解基于STM32的步进电机控制,首先需要了解STM32微控制器的基本特性。
STM32是一款由STMicroelectronics开发的32位微控制器系列,具有高性能、低功耗和丰富的外设。
它具备广泛的通信接口、丰富的存储器和强大的处理能力,使其成为控制步进电机的理想选择。
STM32系列还包括不同的型号和系列,以适应各种应用需求。
这使得开发人员能够选择最适合其项目的型号,无论是低成本、低功耗的应用还是高性能、实时要求的系统。
第二部分:步进电机工作原理步进电机是一种将电能转化为机械运动的设备。
它以离散的步进角度运动,每一步都由电脉冲触发。
这种运动方式使步进电机非常适合需要高精度和可控性的应用,如印刷机械、数控机床和3D打印机。
在步进电机内部,有两个主要部分:定子和转子。
定子包括定子齿和线圈,而转子则包括永磁体。
通过在定子线圈中施加电流,可以产生磁场,使定子齿和转子上的永磁体相互作用,从而产生扭矩,驱动转子旋转。
第三部分:STM32控制步进电机的基本方法在控制步进电机时,STM32微控制器可以使用不同的方法。
以下是一些基本的步进电机控制方法:1. 单步模式在单步模式下,每个脉冲将步进电机移动一个固定的步进角度。
这是最简单的控制方法,适用于许多应用,如打印机纸张进纸和3D打印机的定位。
2. 微步模式微步模式比单步模式更高级,它通过逐渐增加电流来产生平滑的运动。
这可以提高步进电机的分辨率和运动平滑性,适用于需要高精度控制的应用。
3. 传感器反馈一些步进电机系统还使用传感器反馈来实现闭环控制。
这些传感器可以检测电机的位置,并将信息反馈给STM32微控制器,以实现更高精度和稳定性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
不适合作指数运行,因此我们可以利用 excel 工具先算 出各个 Ti 值。 第七,把自动重装值 Ti(i=0,1……,200)制作 成为表格,并保存在 ROM 中。 第八,步进电机启动时,根据负载和脉冲数查表, 得到某个脉冲数对应的自动重装值 Ti。 第九,恒速运行。当加速阶段结束后,最后一个 脉冲周期就是恒速运行时的脉冲周期。 减速阶段和加速阶段类似,可以单独作一个新 表,也可以和加速阶段共用一个表。当步进电机转过 的角度很小时,运动曲线只有两段,恒速阶段将不存 在,这时只有加速阶段和减速阶段。步进电机典型的 三段式运行曲线和二段式运行曲线分别如图 4、图 5 所示。
1 1 exp(av)
*
顺德职业技术学院 电佛山 528333;华南理工大学 自动化科学与工程学 院 广东 广州 510640
①
其中,a 是函数的倾斜参数,控制函数的斜率。
2014年第4期 27
综 述
信息技术与信息化
后者决定,令 T =TMAX-TMIN。 第五,计算某个阶梯对应的自动重装值 Ti。在式 (1)中,v 的值从 -10 开始,以 0.1 作为步进,到 10 结束,共有 201 个值,也就是把加速曲线离散化为 201 点,对这些点采用零阶保持器,相当于用 200 个台阶
的值为 0.0067 ~ 0.9933, 对曲线进行逼近。 当 a=0.5 时,
函数的图形如图 2 所示,当 a 为 0.5、1.0 时,
曲线比较适合作为加速曲线。
当 a 为其他值时, 的值也都是 0 ~ 1 之间的小数。脉
图 2 具有不同倾斜参数 a 的 函数
冲数 i(对应台阶 i)对应的自动重装值 Ti 的值由式③ 计算。
[2] 高亮,王华 .8051 单片机对步进电机的控制及步 进电机升降速曲线的设计 [J]. 测控技术,2002, 21(11):64-65,67. [3] 梁广瑞, 莫胜憾 .Stm32 步进电机控制器及其在焊 缝跟踪系统中的应用 [J].电焊机, 2013, 43 (3) : 7477. [4] 王勇,王伟,杨文涛 . 步进电机升降速曲线控制 系统设计及其应用 [J]. 控制工程, 2008, 15 (5) : 576-579. [作者简介] 蔡泽凡 (1979-) , 男, 广东陆丰人, 博士。 研究方向:单片机的教学与应用及无线控制系统。 (收稿日期:2014-05-23)
综 述
本文实现了学生咨询师使用触屏智能手机通过 Android 来进行心理咨询,使得学生能够更好得进行心 理开导减轻压力,也便于形成高校学生心理资料信息 化管理体系。 参考文献: [1] 曾永乐 . 谈大学生心理教育的意义及发展趋势 [J]. 赤子,2012(5):107. [2] 郑洁琼,陈泽宇,王敏娟,等 .3G 网络下移动学习的探 索与实践 [J]. 开放教育研究,2012,18(1):159-162. [3] Journal of Materials Chemistry Group. ANDROID MOBILE APP[J].Self-Adhesive Materials and Markets Bulletin, 2012, 38 (10) : 6-7. [4] Marcin PAWLAK.Application of mobile devices with the Android system for the induction motors faults diagnosis[J].Przeglad Elektrotechniczny, 2013,89(2b):150-153. [作者简介]汪璐萍(1993-),女,浙江萧山人, 学生,主要从事移动应用的研究。 [通讯作者简介] 方硕瑾 (1986-) , 女, 浙江松阳人, 硕士研究生, 助理研究员。 研究方向:学生工作信息化。 (收稿日期:2014-05-15)
图 4 步进电机三段式运行曲线
图 5 步进电机二段式运行曲线
28 2014年第4期
信息技术与信息化
3 基于 STM32 的步进电机控制曲线的软件实现 以控制一个步进电机为例,介绍基于 STM32 的实 现代码。 3.1 定义步进电机驱动脉冲周期表 以 10 个速度等级、200 个台阶为例,步进电机驱 动脉冲周期表如下所示:
综 述
由于篇幅的原因,TIM_PERIOD_TBL 省略了很多 值。 3.2 定义步进电机控制结构变量 首先定义步进电机控制结构变量类型 StepMotorTag_Typedef,其内容如下所示,
typedef struct 图 6 步进电机设置函数流程图
设置的内容为步进电机的方向、使能信号和步进 电机控制结构变量。值得一提的是,根据脉冲数,要 把步进电机的运行曲线设置成为三段式或者二段式。 3.6 步进电机驱动脉冲管理函数流程图 步进电机驱动脉冲管理函数流程图 7 所示,该函 数按照加速、恒速、减速的过程依次进行,恒速时定 时器溢出中断的周期保持不变,加速和减速过程的中 断周期根据台阶数查表以后动态更新。
曲线比较适合作为减速曲线。
图 3 具有不同倾斜参数 a 的 函数
2 设计微处理器 S 形加减速曲线的思路 由于步进电机的转速由驱动脉冲的频率决定,为 了突出重点,本文只考虑驱动脉冲的频率控制,至于 方向信号、脱机信号以及驱动器的硬件实现不在本文 的讨论范围之内。 利用微处理器控制步进电机时,S 形加速曲线的 构建过程如下所示。 第一,设置定时器,把微处理器的定时器设置为 计时溢出中断模式,在中断处理函数中使驱动脉冲的 信号翻转。 第二,确定驱动脉冲最长周期 TMAX(对应最低频 率),该最长周期 TMAX 作为脉冲信号的起始周期。调 整定时器的溢出中断的周期,从而产生不同周期的脉 冲信号,利用该脉冲信号对步进电机进行控制。 第三,确定驱动脉冲最短周期 TMIN(对应最高频 率),该最短周期 TMIN 作为脉冲信号的恒速周期。 第 四, 确 定 定 时 器 两 端 的 自 动 重 装 值。 对 于 STM32 来说,定时器的溢出中断周期由时钟预分频数 和自动重装值决定,当前者固定以后,中断周期仅由
(上接第 29 页) 4 结论 实验结果表明,利用本文所介绍的方法,可以对 多路步进电机进行平稳的控制,且能够根据负载设置 最低速度和最高速度, 步进电机也可以进行联动控制。 本文虽然以 STM32 作为基础进行介绍,但是本方法完 全适合其他微处理器的应用。读者不必懂得步进电机 的工作原理,就可以对步进电机实现较优的控制。 参考文献: [1] 李汉 . 一种步进电机最佳升降速的控制方法 [J]. 电气自动化,2012,34(5):32-34.
动曲线一般分为三段:T1 段为加速阶段,T2 段为恒速 阶段,T3 段为减速阶段。如果在 T1 及 T3 阶段,驱动 脉冲的频率变化率大于步进电机的响应频率变化率, 步进电机就会失步。 总之, 驱动脉冲的频率变化率过高, 会使系统无法精确定位,严重时甚至产生堵转。一般 来说,加减速曲线最好选择 S 形。 介绍步进电机的数学模型和速度控制的文献已经 很多,有些文献也介绍了如何在微处理器实现步进电 机的 S 形加减速曲线,这对理解步进电机的工作原理 和控制方法是很有帮助的,但都不能够让读者读完以 后立即就编写出微处理器的 S 形加减速曲线。本文试 图使读者看完本文就能够快速编写出自己的 S 形加减 速曲线的代码,读者可以不用了解步进电机的工作原 理,就可以较满意的控制步进电机的运行。 1 logistic 函数 sigmoid 函数的图形是“S”形的,它是一个严格
2014年第4期 33
3.5 步进电机设置函数流程图(见图 6)
图 7 步进电机驱动脉冲管理函数流程图
(下转第 33 页)
2014年第4期 29
信息技术与信息化
性,将该学生学号发送给远程服务器,服务器修改好 数据库数据之后便返回, 客户端更改相应的显示内容。 咨询师可以查看学生心理详情,点击图标之后便跳转 到对应 activity。咨询师还可以进行危机干预,选择短 信发送及调用系统短信,选择语音推送即跳转到对应 activity。咨询师危机干预伪代码如下: 4 总结
{ u16 PulseNumStart; u32 PulseNumMiddle; u16 PulseNumEnd; u8 PulsePeriodClass; u8 PuslePeriodTblIndex; }StepMotorTag_Typedef; 再定义一个具有 3 个元素的数组,如下所示, extern StepMotorTag_Typedef StepMotorTag[3]; 3.3 编写定时器初始化函数 在本文中,假设用来控制第一个步进电机的驱动 脉冲的为定时器 3,其初始化函数比较简单,在此不做 赘述。 3.4 编写定时器溢出中断处理函数 定时器溢出中断处理函数如下所示:
信息技术与信息化
综 述
基于 STM32 的步进电机 S 形加减速控制曲线的 快速实现方法
蔡泽凡 *
CAI Ze-fan
摘
要
本文介绍了一种步进电机 S 形加减速控制曲线的快速实现方法,该方法非常适合在微处理器系 统中实现。为了验证该方法的有效性,构建了一个以 32 位微处理器 STM32 为控制器的实验装 置,实验结果表明利用该方法建立的加减速曲线适合对不同负载、不同速度的加减速控制。利 用该方法,可以不用了解步进电机的工作原理,就可以较满意的控制步进电机的运行。
logistic 函数的对偶函数,简称为 函数,其定义 如式②所示,
1 ② 1 exp(av) 其中,a 仍然是函数的倾斜参数,控制函数的斜率。
函数的图形如图 3 所示,当 a 为 0.5、1.0 时,
Ti TMAX T
(v)
1 ③ 1 exp(a * i ) 第六,对于微处理器来说,STM32 也不例外,并
关键词
步进电机控制
S 形加减速曲线
STM32
doi:10. 3969/j. issn. 1672 - 9528. 2014. 04 .04