基于STM32的直流电机PID调速系统设计资料.docx
《基于STM32的直流电机PID调速系统设计资料.docx》由会员分享,可在线阅读,更多相关《基于STM32的直流电机PID调速系统设计资料.docx(25页珍藏版)》请在冰豆网上搜索。
基于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 直流电机 反馈 调节
BasedontheSTM32PIDspeedcontrolofdcmotorAbstract
Motorspeedcontroloccupiesacrucialpositioninthemotioncontrolsystem,
thedesignofthemotorspeedcontrolforthestudy;inthebasicPIDcontrolalgorithm,STM32F103microcontrollercore,bythePIDcontrolalgorithmgeneratesaPWMpulsetoachieveDCspeedcontrol.Atthesametimetheuseofphotoelectricsensorstoconvertthemotorspeedtopulsefrequencyfeedbacktothemicrocontrollertoachieveclosed-loopspeedcontrol,tospeedstaticerroradjustmentpurposes.Mining320×240TFTLCDmonitorasadisplayunitinthesystem,throughfourkeysettingsP,I,D,Vfourparametersandreversingcontrolthroughtheinterfaceswitchingmode,starttounderstandthecurrentstateofthemotorandthesystemthroughthedisplayunitCPUtemperature.Thesystemcontrolandhighprecision,hasastronganti-jammingcapability.
Keywords:
PIDDCmotorfeedbackregulation
目录
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
参考文献 1.6
附录一部分程序源程序 1.7
附录二系统界面实物图和PCB图 20
1.绪论
1.1研究背景与意义
电动机在现代的工业中,是主要的驱动设备,尤其是直流电动机,由于它的平滑调速性和结构上的简单,使其成为许多电器,如洗衣机,电梯等的驱动。
而对于直流电机的控制,最流行的莫过于采用可控硅装置向电动机供电,即KZ—D拖动系统。
起初的控制系统是发电机—电动机系统,相当的笨重。
随着电力电子技术和单片机的成熟应用[1],使得直流电机调速系统从模拟化向数字化转变。
而PWM脉宽调制,是现在应用最成熟的方法。
它来源于电力电子的桥式电路,通过单片机可进行简单的模拟,而将它们结合起来,由电力电子元件组桥进行方向控制,而由单片机产生PWM波控制晶闸管的门极。
调节占空比就能够控制电机的平均电压,从而控制电机的转速。
直流电动机调速应用于实际中各个方面,工业,家电等,因为它能够在一个相当大的范围内进行平滑调速。
但是早起以模拟元件为控制装置的系统,由于模拟元件本身的缺陷,导致硬件复杂,功能简单,不灵活,误差大,无法实行精确的调速。
单片机的应用解决了这个问题的一部分,误差可由许多完善的算法来解决,而且减小了硬件的复杂性[2]。
使得直流调速逐步由模拟化向数字化转变,使直流调速进入一个更加智能与可靠的新阶段。
1.2本文主要研究方法
[3]
本文主要研究了利用STM32系列单片机,通过PWM方式控制直流电机调速的方法。
PWM控制技术以其控制简单、灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。
由于当今科学技术的发展已经没有了学科之间的界限,结合现代控制理论思想或实现无谐振软开关技术将会成为PWM控制技术发展的主要方向之一[4]。
本文就是利用这种控制方式来改变电压的占空比实现直流电机速度的控制。
文章中采用了专门的芯片组成了PWM信号的发生系统[5],然后通过L298N放大来驱动电机。
利用光电编码盘器测得电机速度,然后反馈给单片机,在内部进行PID运算,输出控制量完成闭环控制,实现电机的调速控制。
4
2.设计方案与论证
2.1系统设计方案
显示模块
PWM脉冲
键盘模块
控制器模块
电机驱动模块
直流电机
速度检测模块
根据系统设计的任务和要求,设计系统方框图如图1所示[6]。
图中控制器模块为系统的核心部件,键盘和显示器用来实现人机交互功能,其中通过键盘将需要设置的参数和状态输入到单片机中,并且通过控制器显示到显示器上。
在运行过程中控制器产生PWM脉冲送到电机驱动电路中,经过放大后控制直流电机转速,同时利用速度检测模块将当前转速反馈到控制器中,控制器经过数字PID运算后改变PWM脉冲的占空比,实现电机转速实时控制的目的[7]。
2.2控制器模块设计方案
图1系统方案框图
根据设计任务,控制器主要用于产生占空比受数字PID算法控制的PWM脉冲,并对电机当前速度进行采集处理,根据算法得出当前所需输出的占空比脉冲。
对于控制器的选择有以下二种方案。
方案一:
采用FPGA(现场可编辑门列阵)作为系统的控制器,FPGA可以实现各种复杂的逻辑功能,模块大,密度高,它将所有器件集成在一块芯片上,减少了体积,提高了稳定性,并且可应用EDA软件仿真、调试,易于进行功能控制。
FPGA采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。
通过输入模块将参数输入给FPGA,FPGA通过程序设计控制PWM脉冲的占空比,但是由于本次设计对数据处理的时间要求不高,FPGA的高速处理的优势得不到充分体现,
并且由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作[8]。
方案二:
采用STM32F103作为系统控制的方案。
STM32F103单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。
相对于FPGA来说,它的芯片引脚少,在硬件很容易实现。
并且它还具有功耗低、体积小、技术成熟和成本低等优点,在各个领域中应用广泛。
综合上述两种方案比较,采用STM32F103作为控制器处理输入的数据并控制电机运动较为简单,可以满足设计要求。
因此在本次设计选用方案二。
3.系统硬件电路设计
3.1整体电路设计
3.1.1整体理论
。
单片机直流电机调速简介:
单片机直流调速系统可实现对直流电动机的平滑调速。
PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。
在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。
通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。
因此,PWM又被称为“开关驱动装置”。
本系统以89C52单片机为核心,通
过单片机控制,C语言编程实现对直流电机的平滑调速
[9]
系统控制方案的分析:
本直流电机调速系统以单片机系统为依托,根据PWM调速的基本原理,以直流电机电枢上电压的占空比来改变平均电压的大小,从而控制电动机的转速为依据,实现对直流电动机的平滑调速,并通过单片机控制速度的变化。
本文所研究的直流电机调速系统主要是由硬件和软件两大部分组成。
硬件部分是前提,是整个系统执行的基础,它主要为软件提供程序运行的平台。
而软件部分,是对硬件端口所体现的信号,加以采集、分析、处理,最终实现控制器所要实现的各项功能,达到控制器自动对电机速度的有效控制。
3.1.2整体简单结构图和资源分配图
本系统硬件资源分配见图2所示,简单结构如图4。
采用STM32F103单片机作
为核心器件,转速检测模块作为电机转速测量装置[10],通过STM32F103的PA(A相)和PA7(B相)将电脉冲信号送入单片机处理,L298作为直流电机的驱动模块,利用
320×240TFTLCD显示器和4个独立按键作为人机接口。
4个独立按键
UP:
PA0
Down:
PE3 PG
PD
Right:
PE4
Left:
PE2
320x240TFTLCD
显示模块
5
STM3P2A2
PE0
pwmout1
电机驱动模块
PA7
PA6
PE1
out2
电 机转速检测
图2系统电路连接及硬件资源分配图
3.2最小单片机系统设计
STM32F103ZETT6作为MCU,该芯片是STM32F103里面配置非常强大的了,它拥有的资源包括:
64KBSRAM、512KBFLASH、2个基本定时器、4个通用定时器、2