基于STM32的直流电机PID调速系统设计_第1页
基于STM32的直流电机PID调速系统设计_第2页
基于STM32的直流电机PID调速系统设计_第3页
基于STM32的直流电机PID调速系统设计_第4页
基于STM32的直流电机PID调速系统设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电气控制技术电气控制技术研究生课程设计报告研究生课程设计报告题题 目目 基于 STM32 的直流电机 PID 调速系统 学学 院院 机械与汽车工程学院 专业班级专业班级 车辆工程 学学 号号 221601852020 学生姓名学生姓名 李跃轩 指导教师指导教师 康 敏 完成日期完成日期 2017 年 01 月 03 日 智能控制基础研究生课程设计报告第 1 页页/共共 14 页页目录1.绪论.12.设计方案.13系统硬件电路设计.23.1 整体电路设计 .23.2 最小单片机系统设计 .33.2.1STM32F103 复位电路 .33.2.2 电源电路.43.3 电机驱动电路设计 .53.4

2、光电码盘编码器电路设计 .63.5 显示电路设计 .63.6 按键电路设计 .74.系统软件设计.74.1 PID 算法.74.2 电机速度采集算法 .85.系统调试.85.1 软件调试 .85.2 系统测试与分析 .96.总结与展望.10附录一.11附录二.16智能控制基础研究生课程设计报告11.绪论绪论本文主要研究了利用 STM32 系列单片机,通过 PWM 方式控制直流电机调速的方法。PWM 控制技术以其控制简单、灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。由于当今科学技术的发展已经没有了学科之间的界限,结合现代控制理论思想或实现无谐振软开关技术将会

3、成为PWM 控制技术发展的主要方向之一。本文就是利用这种控制方式来改变电压的占空比实现直流电机速度的控制。采用的芯片组成了 PWM 信号的发生系,然后通过 L298N 放大来驱动电机。利用光电编码盘器测得电机速度,然后反馈给单片机,在内部进行 PID 运算,输出控制量完成闭环控制,实现电机的调速控制。2.设计方案设计方案根据系统设计的任务和要求,设计系统方框图如图 1 所示。图中控制器模块为系统的核心部件,键盘和显示器用来实现人机交互功能,其中通过键盘将速度参数输入到单片机中,并且通过控制器显示到显示器上。在运行过程中控制器产生PWM 脉冲送到电机驱动电路中,经过放大后控制直流电机转速,同时利

4、用速度检测模块将当前转速反馈到控制器中,控制器经过数字 PID 运算后改变 PWM 脉冲的占空比,实现电机转速实时控制的目的。按键模块显示模块控制器模块电机驱动模块直流电机码盘PWM脉冲图 1 系统方案框图智能控制基础研究生课程设计报告23系统硬件电路设计系统硬件电路设计3.1 整体电路设计整体电路设计单片机直流调速系统可实现对直流电动机的平滑调速。PWM 是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。在 PWM 驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢

5、上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。因此,PWM 又被称为“开关驱动装置” 。本系统以 STM32 单片机为核心,通过单片机控制,C 语言编程实现对直流电机的平滑调速。本直流电机调速系统以单片机系统为依托,根据 PWM 调速的基本原理,以直流电机电枢上电压的占空比来改变平均电压的大小,从而控制电动机的转速为依据,实现对直流电动机的平滑调速,并通过单片机控制速度的变化。本文所研究的直流电机调速系统主要是由硬件和软件两大部分组成。硬件部分是前提,是整个系统执行的基础,它主要为软件提供程序运行的平台。而软件部分,是对硬件端口所体现的信号,加以采集、分析、处理,最终实现控制器

6、所要实现的各项功能,达到控制器自动对电机速度的有效控制。本系统硬件资源分配见图 2 所示。采用 STM32F103 单片机作为核心器件,转速检测模块作为电机转速测量装置,通过 STM32F103 的 PA1(A 相)将电脉冲信号送入单片机处理,L298 作为直流电机的驱动模块,利用 320240TFTLCD 显示器和3 个独立按键作为人机接口。智能控制基础研究生课程设计报告3S ST TM M3 32 2F F1 10 03 3Z ZE ET T6 6码盘测速直流电机电机驱动模块L298NTFT显示屏按键模块PA1PA3 RESET:PE1KEY-3:PE3KEY-2:PE2PGPDGND图

7、2 系统电路连接及硬件资源分配图3.2 最小单片机系统设计最小单片机系统设计STM32F103ZETT6 作为 MCU,该芯片是 STM32F103 里面配置非常强大的了,它拥有的资源包括:64KB SRAM、512KB FLASH、2 个基本定时器、4 个通用定时器、2 个高级定时器、2 个 DMA 控制器(共 12 个通道) 、3 个 SPI、2 个 IIC、5 个串口、1 个 USB、1 个 CAN、3 个 12 位 ADC、1 个 12 位 DAC、1 个 SDIO 接口、1 个 FSMC 接口以及 112 个通用 IO 口。该芯片的配置十分强悍,并且还带外部总线(FSMC)可以用来外

8、扩 SRAM 和连接 LCD 等,通过 FSMC 驱动 LCD,可以显著提高 LCD 的刷屏速度,是 STM32F1 家族常用型号里面,最高配置的芯片了。3.2.1STM32F103 复位电路复位电路STM32F103 的复位电路如图 3 所示:智能控制基础研究生课程设计报告4 图 3 复位电路图因为 STM32 是低电平复位的,所以我们设计的电路也是低电平复位的,这里的R3 和 C12 构成了上电复位电路。同时,开发板把 TFT_LCD 的复位引脚也接在RESET 上,这样这个复位按钮不仅可以用来复位 MCU,还可以复位 LCD。3.2.2 电源电路电源电路STM32F103板载的电源供电部

9、分,其原理图如图4所示:图 4 电源电路图中,总共有3个稳压芯片:U12/U13/U15,DC_IN用于外部直流电源输入,范围是DC624V,输入电压经过U13 DC-DC芯片转换为5V电源输出,其中D4是防反接二极管,避免外部直流电源极性搞错的时候,烧坏开发板。K2为开发板的总电源智能控制基础研究生课程设计报告5A1A2SE N111Y 121Y 23Vs41A 151E N61A 27GN D8Vcc92A 1102A 2122E N112Y 1132Y 214SE N215U5L298ND4D3D1D2C1020FC920F+5V+12V+12VR1470R25KR45KR3470R54

10、70MG 1P2.7P2.6P2.5开关,F1为1000ma自恢复保险丝,用于保护USB。U12为3.3V稳压芯片,给开发板提供3.3V电源,而U15则是1.8V稳压芯片,供VS1053的CVDD使用。3.3 电机驱动电路设计电机驱动电路设计驱动模块是控制器与执行器之间的桥梁,在本系统中单片机的 I/O 口不能直接驱动电机,只有引入电机驱动模块才能保证电机按照控制要求运行,在这里选用L298N 电机驱动芯片驱动电机,该芯片是由四个大功率晶体管组成的 H 桥电路构成,四个晶体管分为两组,交替导通和截止,用单片机控制达林顿管使之工作在开关状态,通过调整输入脉冲的占空比,调整电动机转速。其中输出脚(

11、SENSEA 和SENSEB)用来连接电流检测电阻,Vss 接逻辑控制的电源。Vs 为电机驱动电源。IN1-IN4 输入引脚为标准 TTL 逻辑电平信号,用来控制 H 桥的开与关即实现电机的正反转,ENA、ENB 引脚则为使能控制端,用来输入 PWM 信号实现电机调速。其电路如图 5 所示,利用两个光电耦合器将单片机的 I/O 与驱动电路进行隔离,保证电路安全可靠。这样单片机产生的 PWM 脉冲控制 L298N 的选通端,使电机在PWM 脉冲的控制下正常运行,其中四个二极管对芯片起保护作用。图 5 电机驱动电路智能控制基础研究生课程设计报告63.4 光电码盘编码器电路设计光电码盘编码器电路设计

12、在本系统中由于要将电机本次采样的速度与上次采样的速度进行比较,通过偏差进行 PID 运算,因此速度采集电路是整个系统不可缺少的部分。本次设计中应用了比较常见的光电测速方法来实现,其具体做法是将电机轴上固定一圆盘,且其边缘上有 N 个等分凹槽如图 6 所示,在圆盘的一侧固定一个发光二极管,其位置对准凹槽处,在另一侧和发光二极光平行的位置上固定一光敏三极管,如果电动机转到凹槽处时,发光二极管通过缝隙将光照射到光敏三极管上,三极管导通,反之三极管截止,电路如图 7 所示,从图中可以得出电机每转一圈在 PA3 的输出端就会产生N 个低电平。这样就可根据低电平的数量来计算电机此时转速了。例如当电机以一定

13、的转速运行时,PA3 将输出如图 7 所示的脉冲,若知道一段时间 t 内传感器输出的低脉冲数为 n,则可求出电机转速。 图 6 电机速度采集方案 图 7 传感器输出脉冲波形3.5 显示电路设计显示电路设计根据设计要求要对电机的转速进行读取,因此在电路中加入显示模块是很有必要的。在系统运行过程中需要显示的数据比较多,而且需要汉字显示,在这里选用320240 液晶显示器比较适合,它是一种图形点阵液晶显示器,主要由行驱动器/列驱动器及 320240 全点阵液晶显示器组成,可完成汉字显示。圆盘 光敏三极管发光二极管+5VP3.3470200R1R2智能控制基础研究生课程设计报告7TFTLCD 模块采用

14、 16 位的并方式与外部连接,之所以不采用 8 位的方式,是因为彩屏的数据量比较大,如果用 8 位数据线,就会比 16 位方式慢一倍以上,我们当然希望速度越快越好,所以我们选择 16 位的接口。3.6 按键电路设计按键电路设计根据设计需求,本系统中使用了 3 个独立按键用以实现对电机转速的设定以及复位功能。键盘操作说明:在系统开始运行时,320240TFTLCD 将显示开机界面,按KEY_2 增加速度,按 KEY_3 减少速度,按 KEY_RESET 键是复位,使程序回到初始状态。4.系统软件设计系统软件设计4.1 PID 算法算法本系统设计的核心算法为 PID 算法,它根据本次采样的数据与设

15、定值进行比较得出偏差,对偏差进行 P、I、D 运算最终利用运算结果控制 PWM 脉冲的占空)(ne比来实现对加在电机两端电压的调节,进而控制电机转速。其运算公式为: 1( ) (n)(n1)(n) (n)2 (n1)(n2)pdutK eeKeK eee(1)如何选择控制算法的参数,要根据具体过程的要求来考虑。一般来说,要求被控过程是稳定的,能迅速和准确地跟踪给定值的变化,超调量小,在不同干扰下系统输出应能保持在给定值,操作变量不宜过大,在系统和环境参数发生变化时控制应保持稳定。显然,要同时满足上述各项要求是很困难的,必须根据具体过程的要求,满足主要方面,并兼顾其它方面。PID 调节器是一种线

16、性调节器,它根据给定值与实际输出值构成的控)(tr)(tc制偏差: = )(te)(tr)(tc(2)智能控制基础研究生课程设计报告8将偏差的比例、积分、微分通过线性组合构成控制量,对控制对象进行控制,故称为 PID 调节器。在实际应用中,常根据对象的特征和控制要求,将 P、I、D 基本控制规律进行适当组合,以达到对被控对象进行有效控制的目的。例如,P 调节器,PI 调节器,PID 调节器等。模拟 PID 调节器的控制规律为 )()(1)()(0dttdeTdtteTteKtuDtIp(3)式中,为比例系数,为积分时间常数,为微分时间常数。PKITDT简单的说,PID 调节器各校正环节的作用是

17、:(1)比例环节:即时成比例地反应控制系统的偏差信号,偏差一旦产生,)(te调节器立即产生控制作用以减少偏差;(2)积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强;ITIT(3)微分环节:能反映偏差信号的变化趋势(变化速率) ,并能在偏差信号的值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。4.2 电机速度采集算法电机速度采集算法本系统中电机速度采集是一个非常重要的部分,它的精度直接影响到整个控制的精度。在设计中采用了光电传感器做为测速装置,其计算公式为: v= r/min 60tNn(3

18、)式中,速度 v 的误差主要是由圆盘边缘上的凹槽数的多少决定的,为了减少系统误差应尽量提高凹槽的数量,在本次设计中取凹槽数 N 为 260,采样时间 t 为10ms。智能控制基础研究生课程设计报告95.系统调试系统调试5.1 软件调试软件调试在程序编写的过程中,出现了很多问题,包括键盘扫描处理、PWM 信号发生电路的控制、以及单片机控制直流电机的转动方向等问题,虽然问题不是很大,但是也让我研究了好长时间,在解决这些问题的时候,我不断向老师和同学请教,希望能通过大家一块的努力把软件编写的更完整,让系统的功能更完备。经过多天的努力探索,也经过老师的指导,大部分问题都已经解决,就是程序还是不能实现应

19、该实现的功能,这让我很着急。后来经过一点一点的调试,并认真总结,发现了问题其实在编写中断处理程序时出现了错误,修改后即可实现直流电机调速的目的。总结这次软件调试,让我认识到了做软件调试的基本方法与流程:(1)认真检查源代码,看是否有文字或语法错误(2)逐段子程序进行设计,找出错误出现的部分,重点排查(3)找到合适的方法,仔细检查程序,分步调试直到运行成功5.2 系统测试与分析系统测试与分析为了确定系统与设计要求的符合程度,需要进行系统测试与分析,下面以 PID调节器为例,具体说明经验法的整定步骤:让调节器参数积分系数=0,实际微分系数=0,控制系统投入闭环运IKDK行,由小到大改变比例系数,让

20、扰动信号作阶跃变化,观察控制过程,直到获PK得满意的控制过程为止。取比例系数为当前的值乘以 5,由小到大增加积分系数,同样让扰动PKIK信号作阶跃变化,直至求得满意的控制过程。积分系数保持不变,改变比例系数,观察控制过程有无改善,如有IKPK改善则继续调整,直到满意为止。否则,将原比例系数增大一些,调整积分系PK智能控制基础研究生课程设计报告10数,力求改善控制过程。如此反复,直到找到满意的比例系数和积分系数IKPK为止。IK引入适当的实际微分系数和实际微分时间,此时可适当增大比例系DKDT数和积分系数。和前述步骤相同,微分时间的整定也需反复调整,直到控PKIK制过程满意为止。根据上诉方法,通

21、过观察得出该系统比较合适的 P、I、D 三者的参数值为: =5, =0.00105, =0。PKIKDK6.总结与展望总结与展望这一段时间过的无比的充实,每天都在忙碌着,查阅资料,翻看文档,了解相关的知识,每一个设计细节都要仔细的考虑,每一个环节都要查阅相关的资料,争取做到完美。在这个系统中以前学的很多东西现在都用上了,数码管的移位显示等等都是在以前学习的基础上慢慢调试出来的,所以在写这篇论文的时候又让我对以前的知识进行了一次回顾,对知识又有了新的认识!真是受益匪浅!通过本次课程设计,我学到了许多了东西,知道光靠书本上的东西是不够的,需额外去查资料。无论是在硬件、软件还是设计思路上,我都遇到了

22、不少的问题,在克服困难的过程中,我学到了许多。知道了 PID 算法的应用,以前总觉得 PID 就是像做数学一样,不知道实际应用。通过本次设计,让我很好的锻炼了理论与具体项目、课题相结合开发、设计产品的能力。既让我们懂得了怎样把理论应用于实际,又让我们懂得了在实践中遇到的问题怎样用理论去解决。智能控制基础研究生课程设计报告11附录一附录一 部分程序源程序#include stm32f10 x.h#include delay.h#include exti.h#include lcd.h#include text.h#include #include float WishSpeedMax=360;f

23、loat WishSpeedMin=0;float WishSpeed;extern float U_Out2;u8 WishSpeedChar11;u8 RealSpeedChar11;int main(void)SystemInit();delay_init(72);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);EXTI_Config();PID_ParameterReckon();Tim3_Init();DCMotor_Init(); DCMotor_Out(U_Out0);WishSpeed=200; POINT_COLOR=BLUE;B

24、ACK_COLOR=WHITE; LCD_Init();LCD_Clear(WHITE);LCD_ShowString(30,50,Wished Speed,POINT_COLOR);WishSpeedLCDShow();LCD_ShowString(30,90,Real Speed,POINT_COLOR);智能控制基础研究生课程设计报告12while(1)Add_PID_Control();PID_Controller.c#include #include extern float WishSpeed;extern float RealSpeed;float U_OutMAX=1000;/

25、100%float U_OutMIN=0;float Kp;float Ki;float Kd;float Error3;float U_Out2;float U_Add;void PID_ParameterReckon(void)Kp=5;Ki=0.00105;Kd=0; U_Out0=0.0;Error2=0.0;Error1=0.0;Error0=0.0;void Add_PID_Control(void)Error2=WishSpeed-RealSpeed;if(Error2(-0.05*WishSpeed)&(Error2U_OutMAX)U_Out1=U_OutMAX;if(U_O

26、ut1U_OutMIN)U_Out1=U_OutMIN;DCMotor_Out(int16_t)(U_Out1); U_Out0=U_Out1;Error0=Error1;Error1=Error2;Dcmotor_PWM.c#include #include delay.hextern float U_Out2;int InPWM_HzNew;int InPWM_HzOld;int16_t OutPWM;static void Tim2_Init(void)TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef TIM_

27、OCInitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); TIM_TimeBaseStructure.TIM_Period=1000-1; TIM_TimeBaseStructure.TIM_Prescaler=4-1; TIM_TimeBaseStructure.TIM_ClockDivision=0; TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure); T

28、IM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse=0; TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High; TIM_OC4Init(TIM2,&TIM_OCInitStructure); TIM_OC4PreloadConfig(TIM2,TIM_OCPreload_Enable); TIM_ARRPreloadC

29、onfig(TIM2,ENABLE); TIM_Cmd(TIM2,ENABLE); 智能控制基础研究生课程设计报告14static void Tim5_Init(void)TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_ICInitTypeDef TIM_ICInitStructure;GPIO_InitTypeDef GPIO_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE); RCC_A

30、PB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_ResetBits(GPIOA,GPIO_Pin_0);TIM_TimeBaseStructure.TIM_Period=65536-1; TIM_TimeB

31、aseStructure.TIM_Prescaler=72-1; TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeBaseInit(TIM5,&TIM_TimeBaseStructure);TIM_ICInitStructure.TIM_Channel=TIM_Channel_2;TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Rising;TIM_IC

32、InitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI;TIM_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV1;TIM_ICInitStructure.TIM_ICFilter=0;TIM_ICInit(TIM5,&TIM_ICInitStructure);NVIC_InitStructure.NVIC_IRQChannel=TIM5_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);TIM_ITConfig(TIM5,TIM_IT_CC2,ENABLE);TIM_Cmd(TIM5,ENABLE);void Tim3_Init

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论