基于STM32的直流电机PWM调速控制

合集下载

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

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

《计算机控制技术课程设计》题目:基于STM32的直流电机PID调速学院:计算机与电子信息学院专业:电气工程及其自动化班级:电气12-5 学号: 12034320515 姓名:任课教师:完成时间: 2015.11.18——2015.12.30基于STM32的直流电机PID调速摘要电机转速控制在运动控制系统中占有至关重要的地位,本设计将电机转速控制作为研究对象;以PID为基本控制算法,STM32F103单片机为控制核心,产生受PID算法控制的PWM脉冲实现对直流电机转速的控制。

同时利用光电传感器将电机速度转换成脉冲频率反馈到单片机中,实现转速闭环控制,达到转速无静差调节的目的。

在系统中采320×240TFTLCD显示器作为显示部件,通过4个按键通过界面切换方式设置P、I、D、V四个参数和正反转控制,启动后可以通过显示部件了解电机当前的运行状态和系统的CPU温度。

该系统控制精度高,具有很强的抗干扰能力。

关键词:PID 直流电机反馈调节Based on the STM32 PID speed control of dc motorAbstractMotor speed control occupies a crucial position in the motion control system, the design of the motor speed control for the study; in the basic PID control algorithm, STM32F103 microcontroller core, by the PID control algorithm generates a PWM pulse to achieve DC speed control. At the same time the use of photoelectric sensors to convert the motor speed to pulse frequency feedback to the microcontroller to achieve closed-loop speed control, to speed static error adjustment purposes. Mining 320 ×240TFTLCD monitor as a display unit in the system, through four key settings P, I, D, V four parameters and reversing control through the interface switching mode, start to understand the current state of the motor and the system through the display unit CPU temperature. The system control and high precision, has a strong anti-jamming capability.Keywords: PID DC motor feedback regulation目录1. 绪论 (1)1.1研究背景与意义 (1)1.2本文主要研究方法 (1)2. 设计方案与论证 (2)2.1系统设计方案 (2)2.2控制器模块设计方案 (2)3. 系统硬件电路设计 (3)3.1整体电路设计 (3)3.1.1整体理论 (3)3.1.2整体简单结构图和资源分配图 (3)3.2最小单片机系统设计 (4)3.2.1STM32F103复位电路 (6)3.2.2电源电路 (6)3.3电机驱动电路设计 (7)3.4光电码盘编码器电路设计 (7)3.5显示电路设计 (8)3.6按键电路设计 (10)4. 系统软件设计 (10)4.1PID算法 (10)4.2PID参数整定方法 (11)4.3电机速度采集算法 (12)4.4程序流程图 (12)5. 系统调试 (13)5.1软件调试 (13)5.2系统测试与分析 (14)6. 总结与展望 (15)参考文献 (16)附录一部分程序源程序 (17)附录二系统界面实物图和PCB图 (20)1.绪论1.1研究背景与意义电动机在现代的工业中,是主要的驱动设备,尤其是直流电动机,由于它的平滑调速性和结构上的简单,使其成为许多电器,如洗衣机,电梯等的驱动。

基于STM32的直流电机PID调速系统设计概要

基于STM32的直流电机PID调速系统设计概要

《电气控制技术》研究生课程设计报告题目基于STM32的直流电机PID调速系统学院机械与汽车工程学院专业班级车辆工程学号************学生姓名李跃轩指导教师康敏完成日期2017年01月03日《智能控制基础》研究生课程设计报告目录1.绪论 (1)2.设计方案 (1)3.系统硬件电路设计 (2)3.1整体电路设计 (2)3.2最小单片机系统设计 (3)3.2.1STM32F103复位电路 (3)3.2.2电源电路 (4)3.3电机驱动电路设计 (5)3.4光电码盘编码器电路设计 (6)3.5 显示电路设计 (6)3.6按键电路设计 (7)4.系统软件设计 (7)4.1 PID算法 (7)4.2电机速度采集算法 (8)5.系统调试 (9)5.1 软件调试 (9)5.2 系统测试与分析 (9)6.总结与展望 (10)附录一 (11)附录二 (16)1.绪论本文主要研究了利用STM32系列单片机,通过PWM方式控制直流电机调速的方法。

PWM控制技术以其控制简单、灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。

由于当今科学技术的发展已经没有了学科之间的界限,结合现代控制理论思想或实现无谐振软开关技术将会成为PWM控制技术发展的主要方向之一。

本文就是利用这种控制方式来改变电压的占空比实现直流电机速度的控制。

采用的芯片组成了PWM信号的发生系,然后通过L298N放大来驱动电机。

利用光电编码盘器测得电机速度,然后反馈给单片机,在内部进行PID运算,输出控制量完成闭环控制,实现电机的调速控制。

2.设计方案根据系统设计的任务和要求,设计系统方框图如图1所示。

图中控制器模块为系统的核心部件,键盘和显示器用来实现人机交互功能,其中通过键盘将速度参数输入到单片机中,并且通过控制器显示到显示器上。

在运行过程中控制器产生PWM脉冲送到电机驱动电路中,经过放大后控制直流电机转速,同时利用速度检测模块将当前转速反馈到控制器中,控制器经过数字PID运算后改变PWM脉冲的占空比,实现电机转速实时控制的目的。

基于stm32的直流无刷电动机调速系统设计_开题报告

基于stm32的直流无刷电动机调速系统设计_开题报告

毕业设计开题报告
题目:基于STM32的直流无刷电动机
调速系统设计
学院:
学生:
学号:
指导教师:
完成时间:
四、所需条件及落实措施:
1.理论基础:
常用无刷直流电机的逆变器采用三相桥式主回电路的控制方式一般有2 种:二二
导通模式和三三导通模式,根据图2换相时序图可知,这两种工作方式,一个周期
都存在6 种导通状态,以60°电角度为间隔改变。

由于两种导通模式相比较,二二导通较三三导通方式电磁转矩更大,稳定性更好,而且结合本文的反电动势检测法,使控制更为简单。

所以本系统设计采用的是传统的二二导通模式,即任意时刻都有而且只有2 只开关管导通。

可以推出功率管的导通顺序依次是:T6、T1-> T1、T2-> T2、T3-> T3 、T4 ->T4、T5-> T5、T6。

每个功率管导通120°电角度,之间间隔60°电角度,并处于关断状态,可以很好的避免死区的产生而发生主回路直通短路,此种工作方式称为两相导通星型三相6 状态方式。

由此可见逆变器功率管的换相时刻精准确定就成为了调速控制的重中之重。

图2 直流无刷电动机的工作原理
2.设备和器材:
示波器、万用表、电烙铁、焊锡丝、螺丝刀、直流无刷电动机、导线若干、电子元。

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

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

基于STM32的直流电机PID调速系统设计雷慧杰【摘要】The DC motor speed control system based on MCU was designed. The system takes the microcontroller STM32 based on ARM Cortex⁃M3 as its core. Its PWM control signal is generated with software. The incremental PID algorithm is adopt⁃ed to control starting,braking,positive inversion and speed regulation of DC motors. The running information of the motors can be monitored in real time on the simple and friendly interface of the upper computer. Practical result shows that the system has small steady state error,high control precision,fast response,low energy consumption and high efficiency,and has a certain reference for the research of upper limb rehabilitation robot.%设计一种基于单片机的直流电机调速系统,该系统以基于ARM Cortex⁃M3内核的STM32微控制器为核心,利用软件产生PWM控制信号,采用增量式PID算法控制直流电机的起动、制动、正反转和速度调节,简单友好的上位机界面可实时监测电机的各种运行信息。

基于STM32的直流电机PWM调速控制

基于STM32的直流电机PWM调速控制

(《嵌入式系统及接口技术》课程大作业)课程名称:嵌入式系统及接口技术班级专业:姓名学号:指导老师:电动摩托车控制器中的电机PWM调速摘要:随着“低碳”社会理念的深入,新型的电动摩托车发展迅速,逐渐成为人们主要的代步工具之一,由于直流无刷电机的种种优点,在电动摩托车中也得到了广泛应用,因此,本文控制部分主要介绍一种基于STM32F103芯片的新型直流无刷电机调速控制系统,这里主要通过PWM技术来进行电机的调速控制,且运行稳定,安全可靠,成本低,具有深远的意义。

1.总体设计概述1.1 直流无刷电机及工作原理直流无刷电机(简称BLDCM),由于利用电子换向取代了传统的机械电刷和换向器,使得其电磁性能可靠,结构简单,易于维护,既保持了直流电机的优点又避免了直流电机因电刷而引起的缺陷,因此,被广泛应用。

另外,由于直流无刷电机专用控制芯片价格昂贵,本文介绍了一种基于STM32的新型直流无刷电机控制系统,既可降低直流无刷电机的应用成本,又弥补了专用处理器功能单一的缺点,具有重要的现实意义和发展前景。

工作原理:直流无刷电机是同步电机的一种,其转子为永磁体,而定子则为三个按照星形连接方式连接起来的线圈,根据同步电机的原理,如果电子线圈产生一个旋转的磁场,则永磁体的转子也会随着这个磁场转动因此,驱动直流无刷电机的根本是产生旋转的磁场,而这个旋转的磁场可以通过调整A、B、C三相的电流来实现,其需要的电流如图1所示随着我国经济和文化事业的发展,在很多场合,都要求有直流电机PWM调速系统来进行调速,诸如汽车行业中的各种风扇、刮水器、喷水泵、熄火器、反视镜、宾馆中的自动门、自动门锁、自动窗帘、自动给水系统、柔巾机、导弹、火炮、人造卫星、宇宙飞船、舰艇、飞机、坦克、火箭、雷达、战车等场合。

1.2 总体设计方案总体设计方案的硬件部分详细框图如图1所示。

图1 总体方案系统框图该方案主要运行状况如下:通过摩托车车把的转动来改变其机械位置,然后这个变量通过ADC 转换后,传送其调速信号给STM32F103,另外,霍尔传感器将其对电机速度的检测信号也传送给STM32,在STM32中,首先根据ADC 的值改变PWM 波形,并且与霍尔传感器的检测信号进行叠加,最终输出叠加后的PWM 波形给功率驱动电路,从而驱动电机并对其进行速度的控制和调节。

基于STM32单片机的直流电机调速系统设计

基于STM32单片机的直流电机调速系统设计

P1
VCC5 1
Right_A 2
Right_B 3

右光电码盘
图 4 测速模块的电路设计
3 系统软件设计
当把直流电机闭环控制所需的程序编译没有错误,利用keil4 编译环境把程序通过J-LINK下载到STM32单片机。闭合直流电机 闭环控制模块的电源开关,电机开始转动,STM32单片机隔50ms采 集电机转速, 增量式P I D 运算, 调剂P W M 波的占空比。不断地调试 PID参数,可以使电机的转速达到给定值。系统的主程序是一个循 环程序,其流程图如图5所示。
参考文献
[1]刘长青,李迎光,等.基于特征的飞机结构件数控加工工时预测模 型[J].计算机集成制造系统,2011,17(10):2156-2162. [2]王殿龙,陈劲枰,等.基于 BP 神经网络的切削力预报[J].大连理工 大学学报,2005,45(06):814-818. [3]FatihCamci,R.B.C.Health-State Estimation and Prognostics in Machining Processes.IEEE Transactions on Automation Science and Engineering,2010,7(3):581-597.
MC33886
IN22 VCC5
OUT22
+ C16 33nF
OUT21
- A +
B2 Motor Servo
OUT22
P?
VCC5 Right_A Right_B
1 2 3

右光电码盘
图 3 直流电机 H 桥驱动电路图 2.3 电机转速检测模块电路设计
现在对电机转速测量应用较多的装置为光电码盘。它的基本测

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

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

《计算机控制技术课程设计》题目:基于STM32的直流电机PID调速学院:计算机与电子信息学院专业:电气工程及其自动化班级:电气12-5 学号:姓名:任课教师:完成时间:——基于STM32的直流电机PID调速摘要电机转速控制在运动控制系统中占有至关重要的地位,本设计将电机转速控制作为研究对象;以PID为基本控制算法,STM32F103单片机为控制核心,产生受PID算法控制的PWM脉冲实现对直流电机转速的控制。

同时利用光电传感器将电机速度转换成脉冲频率反馈到单片机中,实现转速闭环控制,达到转速无静差调节的目的。

在系统中采320×240TFTLCD显示器作为显示部件,通过4个按键通过界面切换方式设置P、I、D、V四个参数和正反转控制,启动后可以通过显示部件了解电机当前的运行状态和系统的CPU温度。

该系统控制精度高,具有很强的抗干扰能力。

关键词:PID 直流电机反馈调节Based on the STM32 PID speed control of dc motorAbstractMotor speed control occupies a crucial position in the motion control system, the design of the motor speed control for the study; in the basic PID control algorithm, STM32F103 microcontroller core, by the PID control algorithm generates a PWM pulse to achieve DC speed control. At the same time the use of photoelectric sensors to convert the motor speed to pulse frequency feedback to the microcontroller to achieve closed-loop speed control, to speed static error adjustment purposes. Mining 320 × 240TFTLCD monitor as a display unit in the system, through four key settings P, I, D, V four parameters and reversing control through the interface switching mode, start to understand the current state of the motor and the system through the display unit CPU temperature. The system control and high precision, has a strong anti-jamming capability.Keywords: PID DC motor feedback regulation目录1. 绪论 (1)研究背景与意义 (1)本文主要研究方法 (1)2. 设计方案与论证 (2)系统设计方案 (2)控制器模块设计方案 (2)3. 系统硬件电路设计 (3)整体电路设计 (3)整体理论 (3)整体简单结构图和资源分配图 (3)最小单片机系统设计 (4)STM32F103复位电路 (6)电源电路 (6)电机驱动电路设计 (7)光电码盘编码器电路设计 (7)显示电路设计 (8)按键电路设计 (10)4. 系统软件设计 (10)PID算法 (10)PID参数整定方法 (11)电机速度采集算法 (12)程序流程图 (12)5. 系统调试 (13)软件调试 (13)系统测试与分析 (14)6. 总结与展望 (15)参考文献 (16)附录一部分程序源程序 (17)附录二系统界面实物图和PCB图 (20)1.绪论1.1研究背景与意义电动机在现代的工业中,是主要的驱动设备,尤其是直流电动机,由于它的平滑调速性和结构上的简单,使其成为许多电器,如洗衣机,电梯等的驱动。

一种基于STM32的PID直流电机控制系统

一种基于STM32的PID直流电机控制系统

为微分时间常量。
位置式 PID 算法是根据当前实际位置与要达到的预
期位置的偏差,进行 PID 控制。将每一次的误差进行累
加作为积分,其运算量大,每次输出均与过去的状态相
关,缺点是可能会引起大幅度超调。
1.2 增量式PID算法
增量式 PID 算法的表达式为
= ∆u (k )
Kp [e(k) − e(k
图2 硬件系统整体流程图
2.1 电机驱动模块L298N 本 文 选 用 L298N 为 驱 动 模 块, 其 电 路 中 包 含 有
两个 H 桥的高电压大电流双桥式驱动器。在使用中, STM32F103 配置的 PWM 输出引脚直接给该模块提供 变占空比的信号,方便控制。
其控制状态表见表 1。L298N 电机驱动模块可以实 现电机的调速与正反转,此次研究只使用其驱动一台二 相直流电机构成闭环调速系统,根据表 1 配置 IN1(输入) 与 IN2,对使能端输出 PWM 脉冲,即可实现变占空比 调速。
系统对电机的输出轴分别进行转速设定 , [13] 分别设定 了 190 rpm、220 rpm、250 rpm、280 rpm、310 rpm、 340 rpm、370 rpm、400 rpm、410 rpm、420 rpm、 430 rpm,实际测量结果如表 2,数据进行了误差计算。
表2 转速数据采集及误差计算
3 软件整体流程
此次研究以 Keil MDK 作为编译开发环境,软件部 分的重点是 PID 控制的处理。流程图如图 4,主要包括 主程序、PID 处理、外部中断、定时中断、PWM 的输 出和编码器的脉冲计数。
2.2 编码器测速模块 编码器为 AB 相增量式霍尔编码器,输出标准的方
波,STM32F103 自带的编码器模式可直接读取脉冲信 号,AB 相编码器的 A 相、B 相互相延迟四分之一周期 输出脉冲。如图 3 为编码器的输出波形,取 A 相、B 相 的上升沿和下降沿都作为脉冲,可以取得二倍频或四倍 频。四倍频采样可提高系统运算时的精确性。通过每 10 ms 读取处理一次编码器脉冲,可以测得电机速度和 处理控制,此次使用四倍频采样,有提高系统运算精确 性的优势。

基于STM32直流电机控制程序

基于STM32直流电机控制程序
}
/* TIM2_CH3 toggling with frequency = 732.4 Hz */
if (TIM_GetITStatus(TIM2, TIM_IT_CC3) != RESET)
{
TIM_ClearITPendingBit(TIM2, TIM_IT_CC3);
capture = TIM_GetCapture3(TIM2);
TIM_OC1Init(TIM4,&TIM_OCInitStructure); //PWM_L初始化
TIM_OC1PreloadConfig(TIM4,TIM_OCPreload_Disable); //改变点空比后,立即产生效应
TIM_OCInitStructure.TIM_Pulse=PWM_R; //左轮PWM的占空比
在梦里,她吃着她的乳儿的婚酒,
坐在辉煌的结彩的堂上,
而她的娇美的媳妇亲切的叫她“婆婆”
…………
大堰河,深爱她的乳儿!
大堰河,在她的梦没有做醒的时候已死了。
她死时,乳儿不在她的旁侧,
她死时,平时打骂她的丈夫也为她流泪,
五个儿子,个个哭得很悲,
她死时,轻轻地呼着她的乳儿的名字,
大堰河,已死了,
她死时,乳儿不在她的旁侧。
STM32直流减速电机控制
直流减速电机控制中,最常用的方法就是通过PWM来控制直流电机的转速。在控制小车走直线的过程中,需要两者的转速一置(如果要走得很直,还需要在短时间内保证两者的行程大致相当,这可以用PID算法来控制,以后的文章中会专门叙述)。
因此,在检测到两者转速不一样时,需要动态调整其中一个或两个轮子的PWM的点空比(简单点的就以一个轮为基准,调整另外一个轮子即可;如果以一个固定的标准的话,需要调整两个轮子的PWM占空比)。

基于STM32的直流电机模糊PID调速系统研究

基于STM32的直流电机模糊PID调速系统研究

系统动态调节直流 电机 的 P I D参 数 , 有效解决了传统 P I D整定 困难 的问题 , 并显著提高了电机的响应速度和控制精度。 关键词 :直流电机 ; 模糊控制 P I D; 调速 系统
中 图分 类 号 : T H 3 9 ; T M3 3 文献标志码 : A 文章编号 : 1 0 0 1 — 4 5 5 1 ( 2 0 1 7 ) 0 4—0 3 8 0— 0 6
w a s s e n t t o t h e c o mp u t e r s o f t w a r e t o d r a w r e s p o n s e C H I V e .T h e d i f i f c u h y o f p a r a m e t e r a d j u s t m e n t i n c l a s s i c a l P 1 D c o n t r o l l e r w a s s o l v e d
D O I : 1 0 . 3 9 6 9 / j . i s s n . 1 0 0 1— 4 5 5 1 . 2 0 1 7 . 0 4 . 0 1 2
基于 S T M3 2的 直 流 电机 模 糊 P I D 调 速 系统 研 究
黄 平 , 王 英 , 江 先 志
( 浙江理 工大 学 机械 与 自动控 制学 院 , 浙 江 杭州 3 1 0 0 1 8 )
P I D c o n t r o l l e r ,a DC mo t o r c o n t r o l o p t i mi z e s o l u t i o n w a s p r o p o s e d i n t h i s p a p e r .T h i s s o l u t i o n wa s b a s e d o n t h e f u z z y — P I D a l g o r i t h m w h i c h ma d e u s e o f t h e S T M3 2 c h i p t o d e s i g n t h e D C mo t o r s p e e d c o n t r o l s y s t e m.B y u s i n g f u z z y — P I D c o n t r o l a l g o r i t h m ,t h e d u t y r a t i o n o f t h e P W M

STM32F103C8+L298N_PWM直流电机调速

STM32F103C8+L298N_PWM直流电机调速

STM32F103C8T6核心板+L298N直流电机调速PWM调速(一)功能说明用L298N驱动一台直流减速电机,引脚IN1,IN2可用于PWM控制。

仅用STM32的两个端口给出PWM信号控制IN1,IN2即可实现正反转、加减速等动作。

(二)硬件说明:控制板:STM32F03C8T6最小系统;直流电机驱动板:L298N是SGS公司的产品,比拟常见的是15脚MulTIwatt封装的L298N,内部同样包含4通道逻辑驱动电路。

可以方便的驱动两个直流电机,或一个两相步进电机。

(三)资源配置:(四)软件实现1:通用定时器TIM3的中断定时实现步骤①使能定时器时钟。

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);②初始化定时器,配置【ARR自动装载值,PSC预分频系数。

】TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);③开启定时器中断,配置NVIC。

TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);NVIC_Init(&NVIC_InitStructure);④使能定时器。

TIM_Cmd(TIM3, ENABLE); //实际是配置控制存放器1 (TIM3_CR1)⑥编写中断效劳函数。

TIM* IRQHandler();2:通用定时器TIM2的Channel1、Channel2的PWM实现步骤①使能定时器2和相关IO口时钟。

使能定时器2时钟:RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);使能GPIOB时钟:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);②初始化IO口为复用功能输出。

函数:GPIO_Init();GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;③初始化定时器:ARR,PSC等:TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);④初始化输出比拟参数:TIM_OC3Init(TIM2, &TIM_OCInitStructure);TIM_OC4Init(TIM2, &TIM_OCInitStructure);⑤使能预装载存放器: TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable);⑥使能定时器。

基于STM32 单片机的直流电机调速电源设计

基于STM32 单片机的直流电机调速电源设计

总619期第9期2017年9月河南科技Henan Science and Technology基于STM32单片机的直流电机调速电源设计夏叶媚徐松吴晨彤耿东山(湖北民族学院信息工程学院,湖北恩施445000)摘要:本文介绍了一种基于STM32F4的直流电机调速电源系统设计,系统由IR2110驱动电路、H桥电路、PWM控制、PID调控等部分组成,以PWM为核心,用驱动电路IR2110控制H桥的输出电压以对电机进行调速和实现正反转,同时液晶显示其速度和输出电压,并能用PID调节电压的输出,实现了调速精度高、功率因数和节能效果良好的目标。

关键词:STM32F4;直流电机调速;PWM;PID中图分类号:TM33文献标识码:A文章编号:103-5168(2017)09-0073-02A Design of DC Motor Speed Control Power SupplyBased on STM32MicrocontrollerXia Yemei Xu Song Wu Chentong Geng Dongshan(College of Information Engineering,Hubei University for Nationalities,EnShi Hubei445000)Abstract:This paper introduceda design of DC motor speed control power supply based on STM32micro⁃controller.Systemis made up of this components,IR2110drive circuit,H bridge circuit,PWM control,PID con⁃trol and so on,while PWM is the core,with a driving circuit IR2110control the output voltage of H bridge for implementing the motor,s speed and positive and negative rotation,at the same time,liquid crystal dis⁃play(LCD)and be able to use showthe speed and the output voltage,PID canregulate voltage output,to achieves the goal of high precision of speed,good power factor and the energy saving effect.Keywords:STM32F4;DC motor speed control;PWM;PID直流电机的应用广泛,从控制技术角度来看,其是交流调速系统的基础。

STM32直流电机控制程序简明教程

STM32直流电机控制程序简明教程

STM32直流电机控制程序简明教程
STM32是一款功能强大的微控制器,可以用于控制各种外设,例如直流电机。

在本教程中,我们将介绍如何使用STM32控制直流电机。

本教程面向有一定STM32开发经验的开发者。

以下是实现电机控制的基本步骤:
1.硬件连接:首先,将STM32与直流电机连接起来。

一般来说,直流电机有两个引脚,一正一负,以控制运动的方向。

将这两个引脚与STM32的GPIO引脚连接,并确保引脚的方向正确。

2. 配置GPIO引脚:使用STM32的开发工具,如Keil或
STM32CubeIDE,配置GPIO引脚。

将引脚配置为输出模式,并设置为默认状态下关闭电机。

3.配置定时器:使用STM32的定时器来生成PWM信号以控制电机的速度。

配置定时器的时基和计数值,以获得所需的PWM频率。

4.生成PWM信号:设置定时器的通道和占空比,以生成PWM信号。

根据电机的要求,设置合适的占空比来控制电机的转速。

5.控制电机方向:根据需要,将GPIO引脚设置为高电平或低电平,以确定电机的运动方向。

6.启动电机:启动定时器,开始生成PWM信号。

此时,电机将按照所设定的方向和速度运动。

7.监控电机状态:使用STM32的输入捕获功能,可以读取电机的实际转速或电流等信息。

根据需要,可以对电机进行实时监控和调整。

8.程序优化:通过调整PWM频率、占空比和电机控制算法等参数,对电机控制程序进行优化,以实现更好的控制效果。

基于stm32单片机的直流电机调速系统设计

基于stm32单片机的直流电机调速系统设计
I I 技术探讨I
基 于 stm3 2 单片机的直流电机调速系统设计
文/ 黑龙江农垦科技职业学院刘彦铭
摘 要 :直 流 电 机 调 速 系 统 的 发 展 ,对 单 片 机 在 系 统 设 计 中的运用提出更高的要求。如果使用传统的单片机,会导致 直 流 电 动 机 的 运 行 流 程 更 加 复 杂 ,难 以 充 分 满 足 数 字 化 调 节的需求。在此背景下,笔 者 以 stm3 2 单片机为例,通过应用 stm3 2 单片机为直流电机调速系统提供充足的保障,并研究 可 以 充 分 发 挥 性 能 的 方 式 ,让 电 机 调 速 系 统 设 计 工 作 得 到 有效保障,同时展开对电子调速器设计方案和stm3 2 单片机 应 用 背 景 下 ,电 路 及 软 件 设 计 的 探 讨 。
(上接第3 0 页)播则可以获得音浪。目 前 U) 个 音 浪 等 于 1 元 人 民 币 ,主 播 所 获 音 浪 与 抖 音 平 台 按 照 5 : 5 进 行 分 成 。
(2) CPS佣金。自抖音直播间开通购物车后,直播带货成 为 抖 音 变 现 的 主 要 手 段 。新 人 主 播 没 有 自 己 的 商 品 ,通过网 上分销平台或者线下合作的形式,根据 产 品 销 4 获得一定 比 例 的 佣 金 。对 于 头 部 主 播 或 者 比 较 有 名 气 的 主 播 ,则需要 另 外 支 付 一 定 的 合 作 费 ,在 佣 金 比 例 上 也 相 对 较 高 。
关键词:Stm3 2 单 片 机 直 流 电 机 调 速 系 统
直 流 电 机 通 常 表 现 出 良 好 的 启 动 性 和 可 控 性 ,因此在 轻 工 、机械制造和冶金等多个现代工业部门中得到广泛应 用 ,但是 对 于 直 流 电 机 调 速 的 问 题 却 一 直 存 在 争 议 。电动 机自动调速系统通常是使用P L C 和 D C S 等控制系统进行 调 节 ,也 可 以 通 过 智 能 式 或 通 用 式 P 1D 调节器仪表来实 现 ,尽 管 这 些 技 术 已 经 较 为 成 熟 ,且 运 行 可 靠 ,但是由于该 技 术 成 本 较 高 ,且硬件设施通常较为复杂,还是对直流电机 控制技术的推广和使用造成一定限制。为 此 ,笔者设计了一 款 以 s m 3 2 单片机为核心的直流电机调速系统,希望可以通 过 PW M 信号实现对直流电机速度的有效控制。 一 、直流电机调速系统设计方案
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电动摩托车控制器中的电机PWM调速摘要:随着“低碳”社会理念的深入,新型的电动摩托车发展迅速,逐渐成为人们主要的代步工具之一,由于直流无刷电机的种种优点,在电动摩托车中也得到了广泛应用,因此,本文控制部分主要介绍一种基于STM32F103芯片的新型直流无刷电机调速控制系统,这里主要通过PWM技术来进行电机的调速控制,且运行稳定,安全可靠,成本低,具有深远的意义。

1.总体设计概述1.1 直流无刷电机及工作原理直流无刷电机(简称BLDCM),由于利用电子换向取代了传统的机械电刷和换向器,使得其电磁性能可靠,结构简单,易于维护,既保持了直流电机的优点又避免了直流电机因电刷而引起的缺陷,因此,被广泛应用。

另外,由于直流无刷电机专用控制芯片价格昂贵,本文介绍了一种基于STM32的新型直流无刷电机控制系统,既可降低直流无刷电机的应用成本,又弥补了专用处理器功能单一的缺点,具有重要的现实意义和发展前景。

工作原理:直流无刷电机是同步电机的一种,其转子为永磁体,而定子则为三个按照星形连接方式连接起来的线圈,根据同步电机的原理,如果电子线圈产生一个旋转的磁场,则永磁体的转子也会随着这个磁场转动因此,驱动直流无刷电机的根本是产生旋转的磁场,而这个旋转的磁场可以通过调整A、B、C三相的电流来实现,其需要的电流如图1所示随着我国经济和文化事业的发展,在很多场合,都要求有直流电机PWM调速系统来进行调速,诸如汽车行业中的各种风扇、刮水器、喷水泵、熄火器、反视镜、宾馆中的自动门、自动门锁、自动窗帘、自动给水系统、柔巾机、导弹、火炮、人造卫星、宇宙飞船、舰艇、飞机、坦克、火箭、雷达、战车等场合。

1.2 总体设计方案总体设计方案的硬件部分详细框图如图1所示。

图1 总体方案系统框图 该方案主要运行状况如下:通过摩托车车把的转动来改变其机械位置,然后这个变量通过ADC 转换后,传送其调速信号给STM32F103,另外,霍尔传感器将其对电机速度的检测信号也传送给STM32,在STM32中,首先根据ADC 的值改变PWM 波形,并且与霍尔传感器的检测信号进行叠加,最终输出叠加后的PWM 波形给功率驱动电路,从而驱动电机并对其进行速度的控制和调节。

2.系统硬件设计2.1 总体硬件框图系统的硬件电路选用STM32F103为主控芯片,作为电机控制的核心,通过霍尔位置传感器检测位置信号,结合功率驱动电路以实现对电机的驱动。

此外,还有电流检测电路可根据电机的状态以调整转速和实现过流保护功能 系统的硬件框图如图2所示:图2 系统硬件框图2.2 电机功率驱动电路设计直流无刷电机是将直流有刷电机的机械换向改进成电子换向而来的,要使其转动,就必须通过电子换向的方法调整电流,按照转子所在的位置产生转动磁场,主控芯片控制H半桥驱动电路产生电机转动的换向电流,以产生转动的磁场,驱动电路如图3所示驱动电路的作用是将控制电路输出的脉冲放大到足以驱动功率晶体管或MOSFET管,所以单从原理上讲,驱动电路主要起开关功率放大作用,即脉冲放大器。

但随着开关工作频率的提高,驱动电路的优化设计显得越来越重要。

驱动电路的最佳驱动特性应具有:功率管开通时,驱动电路提供的基极电流应有快速的上升沿,并一开始有一定的过冲,以加速开通过程,并在集电极电流尖峰时开启驱动基极,从而减小开通损耗;功率管导通期间,驱动电路提供的基极电流在任何负载情况下都能保证功率管处于饱和导通状态,使功率管的饱和压降较低,以保证低的导通损耗;关断瞬时,驱动电路应提供足够的反向基极驱动,以迅速抽出基区的剩余载流子,并加反偏截止电压,使集电极电流迅速下降以减少下降时间。

为了增加系统的抗干扰能力,STM32 输出的6路PWM信号首先必须经隔离再送到IR2136进行驱动,由于开关速度达到20KHz左右,故设计中选用高速光耦器件HCPL4504,见图3,其最高速度可达1Mbit/s,内部的噪声抑制电路可提供高于15kV/us的共模抑制。

IR2136是IR公司的一款功率MOSFET、IGBT专用栅极驱动集成电路,独有的I-IVIC(High voltage integrated circuit)技术使得它可用作驱动工作在母线电压高达600V的电路中的功率MOS器件。

其内部采用自举技术,使得功率驱动元件驱动电路仅需输入一个直流电源,使其实现对功率MOSFET和IGBT的最优驱动,并且它还具有完善的保护功能包括欠压保护和过流保护,以便保证系统安全稳定的工作。

故本文选用IR2136作为主功率部分的MOSFET驱动,如图3所示:图3中经IR2136驱动的6路PwM信号被直接送到由6个MOSFET管组成的主功率电路。

如图所示,该功率驱动采用三相全控电路,电动机的三相绕组为Y 型联结。

MOSFET管选用IR公司的IRFZ48,该管导通电阻较低,当连续流过10A 电流时,功耗才1.2w,根本不需要散热片就可以稳定工作。

图3 功率驱动电路2.3 直流无刷电机的调速直流无刷电机调速的原理就是在驱动电机转动的基础上,将驱动电流由PWM 信号来控制,改变PWM 信号的脉冲宽度,即通过调节MOSFET通断的时间来调节提供给电机三相的电流大小,从而对电机进行调速控制。

本方案中MOSFET管的导通是通过STM32的PWM 信号来控制的, STM32内部的普通的定时器TIM3和TIM4,每个可以产生四路PWM发生器,这里用TIM3产生4路,TIM4产生两路,共六路可编程的PWM信号,驱动H桥。

直流无刷电机的电子换向是基于转子的位置来控制的,本系统采用3个霍尔传感器对直流无刷电机进行位置测量霍尔传感器安装在电机的内部,将转子的位置转换为三路数字信号直接输出到STM32的GPIO口在本设计中可方便地用于通过检测霍尔位置传感器的信号来实现检测转子的位置,然后据此输出相应的PWM信号控制功率管的导通或关断,从而实现电流的换向,在电机内部产生一个转动的磁场,进而驱动电机旋转。

另外,车把转动的时候会通过一个DA转换,然后得到调速的标志flag的值,从而根据这个flag值来改变PWM波的占空比,从而进行电机的调速。

直流无刷电机旋转时三个霍尔传感器的信号值和输出的PWM信号之间的对应关系如图4所示图4 相位与PWM信号的对应关系霍尔传感器的位置反馈信号在可以确定转子位置的同时,也可用来测量电机的转速电机每转动一周,每个霍尔传感器即会产生两次换向,三个霍尔传感器共会有6次换相,这六次换相之间的时间差即为电机运转一周所需的时间,继而可计算出电机的转速根据计算出的电机转速,调整PWM信号的脉冲宽度,从而达到调速的目的3.系统软件设计本系统编程部分工作在keil4开发环境下完成,采用模块化的设计方法,与各子程序作为实现各部分功能和过程的入口,完成PWM脉宽调速的控制。

STM32F103资源分配如下表:1.PWM产生程序:本设计中采用STM32F103的定时器TIM3,TIM4两个定时器来产生PWM波形,程序函数如下:#include "timer.h"//通用定时器中断初始化//这里时钟选择为APB1的2倍,而APB1为36M//arr:自动重装值。

//psc:时钟预分频数//这里使用的是定时器3void Timerx_Init(u16 arr,u16 psc){RCC->APB1ENR|=1<<1;//TIM3时钟使能TIM3->ARR=arr; //设定计数器自动重装值//刚好1msTIM3->PSC=psc; //预分频器7200,得到10Khz的计数时钟//这两个东东要同时设置才可以使用中断TIM3->DIER|=1<<0; //允许更新中断TIM3->DIER|=1<<6; //允许触发中断TIM3->CR1|=0x01; //使能定时器3MY_NVIC_Init(1,3,TIM3_IRQChannel,2);//抢占1,子优先级3,组2 }void PWM1_1_Init(u16 arr1,u16 psc1){//此部分需手动修改IO口设置RCC->APB1ENR|=1<<1; //TIM3时钟使能GPIOA->CRL&=0XF0FFFFFF;//PA6输出GPIOA->CRL|=0X0B000000;//复用功能输出GPIOA->ODR|=1<<6;//PA6上拉TIM3->ARR=arr1;//设定计数器自动重装值TIM3->PSC=psc1;//预分频器不分频TIM3->CCMR1|=7<<4; //CH1 PWM2模式TIM3->CCMR1|=1<<3; //CH1预装载使能TIM3->CCER|=1<<0; //OC1 输出使能TIM3->CR1=0x8000; //ARPE使能TIM3->CR1|=0x01; //使能定时器3}void PWM1_2_Init(u16 arr2,u16 psc2){//此部分需手动修改IO口设置RCC->APB1ENR|=1<<1; //TIM3时钟使能GPIOA->CRL&=0X0FFFFFFF;//PA7输出GPIOA->CRL|=0XB0000000;//复用功能输出GPIOA->ODR|=1<<7;//PA7上拉TIM3->ARR=arr2;//设定计数器自动重装值TIM3->PSC=psc2;//预分频器不分频TIM3->CCMR1|=7<<12; //CH2 PWM2模式TIM3->CCMR1|=1<<11; //CH2预装载使能TIM3->CCER|=1<<4; //OC2 输出使能TIM3->CR1=0x8000; //ARPE使能TIM3->CR1|=0x01; //使能定时器3}void PWM1_3_Init(u16 arr3,u16 psc3){//此部分需手动修改IO口设置RCC->APB1ENR|=1<<1; //TIM3时钟使能GPIOB->CRL&=0XFFFFFFF0;//PB0输出GPIOB->CRL|=0X0000000B;//复用功能输出GPIOB->ODR|=1<<0;//PB0上拉TIM3->ARR=arr3;//设定计数器自动重装值TIM3->PSC=psc3;//预分频器不分频TIM3->CCMR2|=7<<4; //CH3 PWM2模式TIM3->CCMR2|=1<<3; //CH3预装载使能TIM3->CCER|=1<<8; //OC3 输出使能TIM3->CR1=0x8000; //ARPE使能TIM3->CR1|=0x01; //使能定时器3}void PWM1_4_Init(u16 arr4,u16 psc4){//此部分需手动修改IO口设置RCC->APB1ENR|=1<<1; //TIM3时钟使能GPIOB->CRL&=0XFFFFFF0F;//PB1输出GPIOB->CRL|=0X000000B0;//复用功能输出GPIOB->ODR|=1<<1;//PB1上拉TIM3->ARR=arr4;//设定计数器自动重装值TIM3->PSC=psc4;//预分频器不分频TIM3->CCMR2|=7<<12; //CH4 PWM2模式TIM3->CCMR2|=1<<11; //CH4预装载使能TIM3->CCER|=1<<12; //OC4 输出使能TIM3->CR1=0x8000; //ARPE使能TIM3->CR1|=0x01; //使能定时器3}void PWM2_1_Init(u16 arr5,u16 psc5){//此部分需手动修改IO口设置RCC->APB1ENR|=1<<2; //TIM4时钟使能GPIOB->CRL&=0XF0FFFFFF;//PB6输出GPIOB->CRL|=0X0B000000;//复用功能输出GPIOB->ODR|=1<<6;//PB6上拉TIM4->ARR=arr5;//设定计数器自动重装值TIM4->PSC=psc5;//预分频器不分频TIM4->CCMR1|=7<<4; //CH1 PWM2模式TIM4->CCMR1|=1<<3; //CH1预装载使能TIM4->CCER|=1<<0; //OC1 输出使能TIM4->CR1=0x8000; //ARPE使能TIM4->CR1|=0x01; //使能定时器4}void PWM2_2_Init(u16 arr6,u16 psc6){//此部分需手动修改IO口设置RCC->APB1ENR|=1<<2; //TIM4时钟使能GPIOB->CRL&=0X0FFFFFFF;//PB7输出GPIOB->CRL|=0XB0000000;//复用功能输出GPIOB->ODR|=1<<7;//PB7上拉TIM4->ARR=arr6;//设定计数器自动重装值TIM4->PSC=psc6;//预分频器不分频TIM4->CCMR1|=7<<12; //CH2 PWM2模式TIM4->CCMR1|=1<<11; //CH2预装载使能TIM4->CCER|=1<<4; //OC2 输出使能TIM4->CR1=0x8000; //ARPE使能TIM4->CR1|=0x01; //使能定时器4}2、霍尔传感器部分的程序#include "huoer.h"void huoer_Init(void){RCC->APB2ENR|=1<<5; //使能PORTD时钟GPIOD->CRL&=0XF000FFFF; //PD4,5,5设置成输入GPIOD->CRL|=0X08880000;GPIOD->ODR|=1<<4; //PD4上拉GPIOD->ODR|=1<<5; //PD5上拉GPIOD->ODR|=1<<6; //PD6上拉}3、延时程序#include <stm32f10x_lib.h>#include "delay.h"static u8 fac_us=0;//us延时倍乘数static u16 fac_ms=0;//ms延时倍乘数//初始化延迟函数//SYSTICK的时钟固定为HCLK时钟的1/8//SYSCLK:系统时钟void delay_init(u8 SYSCLK){SysTick->CTRL&=0xfffffffb;//bit2清空,选择外部时钟HCLK/8 fac_us=SYSCLK/8;fac_ms=(u16)fac_us*1000;}//延时nms//SysTick->LOAD为24位寄存器,所以,最大延时为://nms<=0xffffff*8*1000/SYSCLK//对72M条件下,nms<=1864void delay_ms(u16 nms){u32 temp;SysTick->LOAD=(u32)nms*fac_ms;//时间加载(SysTick->LOAD为24bit) SysTick->V AL =0x00; //清空计数器SysTick->CTRL=0x01 ; //开始倒数do{temp=SysTick->CTRL;}while(temp&0x01&&!(temp&(1<<16)));//等待时间到达SysTick->CTRL=0x00; //关闭计数器SysTick->V AL =0X00; //清空计数器}//延时nus//nus为要延时的us数.void delay_us(u32 nus){u32 temp;SysTick->LOAD=nus*fac_us; //时间加载SysTick->V AL=0x00; //清空计数器SysTick->CTRL=0x01 ; //开始倒数do{temp=SysTick->CTRL;}while(temp&0x01&&!(temp&(1<<16)));//等待时间到达SysTick->CTRL=0x00; //关闭计数器SysTick->V AL =0X00; //清空计数器}4、主程序#include <stm32f10x_lib.h>#include "sys.h"#include "delay.h"#include "timer.h"#include "huoer.h"int main(void){u8 flag; //DA转换过来的调速标志Stm32_Clock_Init(9); //系统时钟设置delay_init(72); //延时初始化PWM1_1_Init(900,0); //不分频。

相关文档
最新文档