当前位置:文档之家› 基于PWM控制的直流电机调速

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

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

基于PWM控制的直流电机调速摘要:直流电机(direct current machine)是指能将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。它是能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。直流电机的结构应由定子和转子两大部分组成。直流电机运行时静止不动的部分称为定子,定子的主要作用是产生磁场,由机座、主磁极、换向极、端盖、轴承和电刷装置等组成。运行时转动的部分称为转子,其主要作用是产生电磁转矩和感应电动势,是直流电机进行能量转换的枢纽,所以通常又称为电枢,由转轴、电枢铁心、电枢绕组、换向器和风扇等组成。

本文设计了直流电机控制系统的基本方案,阐述了该系统的基本结构,工作原理,运行特性及其设计方法,主要研究直流电机的控制和测量方法。本设计系统以单片机AT80C52为核心,实现直流电机调速的系统。

关键字:直流电机 PWM 控制 AT80C52

DC motor is a rotary motor that can convert a direct current into a mechanical energy (a DC motor) or a mechanical energy into a direct current (DC generator). It is capable of achieving the conversion of DC electric energy and mechanical energy to each other. When the motor is running, it is a direct current motor, the electric energy can be converted into mechanical energy; the generator is a direct current generator, the mechanical energy can be converted to electric energy. The structure of the DC motor is composed of two parts, the stator and the rotor. Operation of the DC motor are still part of the said stator, stator's main function is produces a magnetic field, is composed of a frame, a main pole, Huan Xiangji, an end cover, a bearing and an electric brush device and composition. Said operation, the rotating part of the rotor, the main role is electromagnetic torque and induction electromotive force generated, the DC motor is the hub of energy conversion, so is often referred to as the armature and is composed of a shaft, the armature core, an armature wining and commutator and fan.

In this paper, the design of the basic scheme of DC motor control system, expounds the basic structure of the system, working principle, operating characteristic and the design method, mainly research on DC motor control and measurement method. The design system based on SCM AT80C52 as the core, to achieve the DC motor speed control sytem.

一、算法概述

1.PID算法

当今的闭环自动控制技术都是基于反馈的概念以减少不确定性。反馈理论的要素包括三个部分:测量、比较和执行。测量关心的是被控变量的实际值,与期望值相比较,用这个偏差来纠正系统的响应,执行调节控制。在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。

PID控制器(比例-积分-微分控制器)是一个在工业控制应用中常见的反馈回路部件,由比例单元P、积分单元I和微分单元D组成。

这个理论和应用的关键是,做出正确的测量和比较后,如何才能更好地纠正系统。

PID(比例(proportion)、积分(integration)、微分(differentiation))控制器作为最早实用化的控制器已有近百年历史,现在仍然是应用最广泛的工业控制器。PID控制器简单易懂,使用中不需精确的系统模型等先决条件,因而成为应用最为广泛的控制器。

PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。其输入e (t)与输出u (t)的关系为

u(t)=kp[e(t)+1/TI∫e(t)dt+TD*de(t)/dt] 式中积分的上下限分别是0和t

因此它的传递函数为:G(s)=U(s)/E(s)=kp[1+1/(TI*s)+TD*s]

其中kp为比例系数; TI为积分时间常数; TD为微分时间常数

在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID 控制器(亦称PID调节器)是应用最为广泛的一种自动控制器。它具有原理简单,

易于实现,适用面广,控制参数相互独立,参数的选定比较简单等优点;而且在理论上可以证明,对于过程控制的典型对象──“一阶滞后+纯滞后”与“二阶滞后+纯滞后”的控制对象,PID控制器是一种最优控制。PID调节规律是连续系统动态品质校正的一种有效方法,它的参数整定方式简便,结构改变灵活(PI、PD、…)

Pid位置算法离散公式:

u(k)=Kp*e(k) +Ki*+Kd*[e(k)-e(k-1)]

比例控制

比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。

积分控制

在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。

微分控制

在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避

免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。

2.PWM基本原理

脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。

脉冲宽度调制是一种模拟控制方脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。

脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。

PWM控制技术以其控制简单,灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。由于当今科学技术的发展已经没有了学科之间的界限,结合现代控制理论思想或实现无谐振波开关技术将会成为PWM控制技术发展的主要方向之一。式,其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。

控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。按一定的规则对各脉冲的宽度进行调制,即可改变逆变电路输出电压的大小,也可改变输出频率。

二、原理与设计

1.直流电机

直流电机的结构应由定子和转子两大部分组成。直流电机运行时静止不动的部分称为定子,定子的主要作用是产生磁场,由机座、主磁极、换向极、端盖、轴承和电刷装置等组成。运行时转动的部分称为转子,其主要作用是产生电磁转矩和感应电动势,是直流电机进行能量转换的枢纽,所以通常又称为电枢,由转轴、电枢铁心、电枢绕组、换向器和风扇等组成。

直流电机里边固定有环状永磁体,电流通过转子上的线圈产生安培力,当转子上的线圈与磁场平行时,再继续转受到的磁场方向将改变,因此此时转子末端的电刷跟转换片交替接触,从而线圈上的电流方向也改变,产生的洛伦兹力方向不变,所以电机能保持一个方向转动。

直流发电机的工作原理就是把电枢线圈中感应的交变电动势,靠换向器配合电刷的换向作用,使之从电刷端引出时变为直流电动势的原理。

感应电动势的方向按右手定则确定(磁感线指向手心,大拇指指向导体运动方向,其他四指的指向就是导体中感应电动势的方向)。

导体受力的方向用左手定则确定。这一对电磁力形成了作用于电枢一个力矩,这个力矩在旋转电机里称为电磁转矩,转矩的方向是逆时针方向,企图使电枢逆时针方向转动。如果此电磁转矩能够克服电枢上的阻转矩(例如由摩擦引起的阻转矩以及其它负载转矩),电枢就能按逆时针方向旋转起来。

本电机控制系统采用基于51内核的单片机设计,主要用于电机的测速与转速控制,硬件方面设计有可调电源模块,串口电路模块,电机测速模块,速度脉冲信号调理电路模块,直流电机驱动模块等电路。软件方面采用基于C语言的变成语言,能实现系统与上位机的通信,并实时显示电机的专属和控制电机的运行状态,如开启、停止、正反转等。

单片机选用了AT89C52作为主控制器,该芯片完全兼容之前较低版本的所有51指令,同时还自带2路PWM控制器,2个定时器,2个串行口支持独立的波特率发生器,3路可编程时钟输出,8路10位AD转换器,1个SPI借口等。

2.直流电机基本结构

3.原理框图

三、程序分析

1.PROFESS

2.AT89C52

AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。

AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。

参数设置

3.直流电机MOTOR-DC

参数设置

4.电机驱动模块L298

参数设置

5.仿真结果分析

仿真开始时,各个模块处于初始状态。点击下方的独立键位加速或减速。

不断按下加速按钮以后仿真波形的变化情况,按下减速也情况相反

四、结论分析

从波形图的变化可以看到,通过PWM的调节实现了对直流电机的调速。本设计利用ST89C52单片机为控制核心,完成了输出模块,输入模块异界外围电路等模块的设计。

本系统完成了对直流电机的控制要求,设计的主要特点是电路设计简单,C语言编程简洁,不足的地方是功能不够全面,可以通过缩小体积,减少控制的方法使总体设计更加完善。

五、参考文献

【1】《单片机原理及应用系统设计》凌玉华中南大学出版社 2006-5

【2】《微型计算机原理与接口技术》周荷琴中国科学技术大学出版社2008-6

【3】《电机与拖动基础》李发海清华大学出版社第三版 2005-8

【4】《C语言程序设计》谭浩强清华大学出版社第二版 2008-11

【5】《传感器与检测技术》徐科军电子工业出版社第二版 2008-2

【6】《微型计算机控制技术》于海生清华大学出版社第二版 2009-9 【7】实验指导书以及唐都试验箱系统结构介绍

六、心得体会

这一周的实验调试过程中我学到了很多。觉得实践和理论是有差距的。实际的环境往往和我们设想的不太一样,而且很多情况下会发生一些意想不到的问题,比如这次试验里PWM模块的波形输出不能驱动电机跟单片机的管脚有关。这时候,我们在理论上找错误,如果确定理论是正确的之后要本着所有情况都试试的心态去尝试每种可能,这样一般的问题都能解决,解决完之后会感叹“竟然是这个原因”。

就如何消除误差这个问题,如果实际的转速比给定的转速一直都大三百左右的话,就可以把原来的给定值加上三百作为对应于现在的实际速度,要是误差跟转速成线性关系就在原来的给定值增加一个比例因子,等等更具不同的情况做不同改变,使它和实际转速尽量相同就可以了。这个理念很重要,对我们以后的学习和工作都很有指导意义。

附程序清单

#include"reg52.h" //单片机头文件

sbit P1_0=P1^0; //脉冲输出引脚

sbit P1_1=P1^1; //按钮1引脚

sbit P1_2=P1^2; //按钮2引脚

unsigned char PWMH;//高电平脉冲个数

unsigned char PWM; //PWM周期

unsigned char COUNTER; //计数变量

void K1CHECK(); //按钮1处理程序

void K2CHECK(); //按钮2处理程序

void INTTO()interrupt1 //定时中断0处理程序

{

COUNTER + +; //计数值加1

if((COUNTER!=PWMH)&&(COUNTER==PWM) //如果计数值不等于设定的高

{ //电平脉冲数,但计数值已到

//达周期数

COUNTER=1; //计数器复位

p1_0=1; //P1.0为高电平

}

else if(COUNTER==PWMH) //如果计数值等于设定的高电平脉冲数

P1_0=0; //P1.0变为低电平

}

main()

{

PWMH=0x02; //设置高电平脉冲数

COUNTER=0x01; //计数初值

PWM=0x15; //设置计数周期数

TMOD=0X02; //定时器0在模式2下工作

TL0=0X38; //定时器每200us产生一次溢出

TH0=0X38; //自动重装的值

ET0=1; //使能定时器0中断

EA=1; //使能总中断

TR0=1; //开始计时

while(1)

{

if(P1_1 = =0)

K1CHECK(); //扫描KEY1,如果按下KEY1,跳转到KEY1处理程序

if(P1_2 = =0)

K2CHECK(); //扫描KEY2,如果按下KEY2,跳转到KEY2处理程序

}

}

void K1CHECK() //按钮1处理子程序

{

while(P1_1 = =0); //等待按钮1放开

if(PWMH! =PWM) //设定高电平数不等于周期数

{

PWMH + + ; //设定高电平数加一

if(PWMH = =PWM) //如果设定高电平数等于周期数

{

TR0 =0; //停止中断处理

P1_0=1; //输出保持为高电平

}

else

{

TR0=1; //开启中断处理

}

}

}

void K2CHECK() //按钮2处理子程序

{

while(P1_2 = =0); //等待按钮2放开

if(PWMH!=0x01) //设定高电平数不等于最小值{

PWMH - -; //设定高电平数减一

if(PWMH= =0x01) //设定高电平数等于最小值

{

TR0=0; //停止中断处理

P1_0=0; //输出保持为低电平

}

else

{

TR0=1; //开启中断处理

}

}

}

目录

摘要 (1)

一、算法概述..................................…..........................………………….. ..2

1.PID算法 (2)

2.PWM基本原理 (4)

二、原理与设计 (5)

1. 直流电机 (5)

2.直流电机的基本结构 (5)

3.原理框图 (6)

三、程序分析 (7)

1.profess (7)

2.AT89C52 (7)

3.MOTOR-DC (9)

4.L298 (11)

5.仿真结果分析 (12)

四、结论分析........................................................................................... ..14

五、参考文献 (14)

六、心得体会 (14)

附程序清单 (15)

相关主题
文本预览
相关文档 最新文档