1_PID直流电机控制

合集下载

电机控制系统中的电机速度PID控制

电机控制系统中的电机速度PID控制

电机控制系统中的电机速度PID控制电机控制系统中的电机速度PID控制在工业自动化领域中扮演着重要的角色。

PID控制器是指比例积分微分控制器,通过调整这三个参数来实现对电机速度的精准控制。

本文将分析电机控制系统中电机速度PID控制的原理、优势以及应用。

1. 原理PID控制器是通过测量电机转速与期望转速之间的误差,根据比例、积分、微分这三个参数计算出控制电机所需的输出信号。

比例项(P)是误差的比例增益,积分项(I)是误差的积分增益,而微分项(D)是误差的微分增益。

通过这三个参数的调节,电机的运行速度可以得到准确控制,实现闭环反馈。

2. 优势使用PID控制器进行电机速度控制具有以下优势:- 精准度高:PID控制系统具有快速响应速度和稳定性,能够精确控制电机速度。

- 调节方便:PID控制器的三个参数可以根据实际情况进行调节,适用于不同的电机控制需求。

- 适用性广:PID控制器在工业自动化控制中广泛应用,适用于各种类型的电机控制系统。

3. 应用电机控制系统中的电机速度PID控制被广泛应用于各种场景,包括但不限于以下几个方面:- 电动汽车:在电动汽车中,PID控制器可以用于控制电动机的转速,提高电动汽车的驾驶性能和节能性。

- 工业机械:在工业机械中,PID控制器可以用于控制各种类型的电机,实现生产线自动化运行。

- 机器人:在机器人领域,PID控制器可以用于控制机器人臂的运动速度,实现精准操作和抓取。

综上所述,电机控制系统中的电机速度PID控制是一种高效、精准的控制方法,具有广泛的应用前景。

随着工业自动化技术的不断发展,PID控制器将继续发挥重要作用,推动工业生产的进步与优化。

pid电机控制算法

pid电机控制算法

pid电机控制算法的概念与基本原理
PID(Proportional-Integral-Derivative)控制算法是一种常用的电机控制算法,它结合了比例控制、积分控制和微分控制的特点,用于调节电机输出信号以使其接近或跟随给定的目标信号。

PID控制算法根据电机的运行状态和误差信号进行计算,并输出一个调节量作用于电机控制系统中的执行器(例如电机驱动器)。

以下是PID控制算法的基本原理:
1. 比例控制(Proportional Control):比例控制根据当前误差信号的大小与设定目标值之间的差异来产生一个调节量。

调节量与误差成正比,即误差越大,调节量越大。

比例控制提供了快速的响应,但通常无法完全消除稳态误差(即最终误差)。

2. 积分控制(Integral Control):积分控制通过累积误差信号的时间积分来产生一个调节量。

积分控制主要用于消除稳态误差,即使在达到目标值后仍然存在的小误差。

积分控制可以增加控制系统对慢速和渐变过程的响应能力。

3. 微分控制(Derivative Control):微分控制根据误差信号的变化率来产生一个调节量。

微分控制用于提供控制系统对快速变化的过程的响应能力,并减少超调和震荡。

微分控制还可以提供对系统动力学行为的预测,以提前调整输出信号。

PID控制算法通过调节比例、积分和微分系数的数值来实现适当的控制性能。

选择合适的参数需要根据具体的电机和控制要求进行实验和调整,以获得稳定性、响应速度和误差补偿的平衡。

需要注意的是,PID控制算法是一种经典的控制算法,在实际应用中可能会因为系统的非线性、时变性等特性而需要进行改进或采用其他高级控制算法来提高性能。

基于单片机pid算法的直流电机速度控制方法

基于单片机pid算法的直流电机速度控制方法

基于单片机pid算法的直流电机速度控制方法基于单片机PID算法的直流电机速度控制方法是一种常用的技术,其基本原理是通过调节PWM(脉宽调制)信号的占空比来控制电机的输入电压,从而实现电机的速度控制。

以下是基于单片机PID算法的直流电机速度控制方法的基本步骤:1.设定目标速度:首先,需要设定电机的目标速度。

这可以通过按键或其他输入设备来实现。

2.采集实际速度:为了实现精确的控制,需要实时获取电机的实际速度。

这可以通过在电机转轴上安装光电编码器或霍尔传感器来实现,这些传感器可以实时检测电机的转速并将其转换为电信号。

3.计算偏差:单片机通过比较目标速度和实际速度,计算出速度偏差。

如果实际速度小于目标速度,偏差为负;反之,偏差为正。

4.应用PID算法:单片机使用PID算法来处理速度偏差。

PID控制器通过比例、积分和微分三个环节来计算控制量,以尽可能消除偏差。

具体的PID参数(如Kp、Ki、Kd)可以根据实际情况进行调整,以获得最佳的控制效果。

5.生成PWM信号:基于PID控制器的输出,单片机生成PWM信号来调节电机的输入电压。

占空比决定了电机输入电压的大小,进而影响电机的转速。

6.实时调整:在整个控制过程中,单片机不断采集电机的实际速度,计算偏差,并调整PWM信号的占空比,以使电机尽可能接近目标速度。

7.显示和保存数据:为了方便调试和观察,可以通过单片机的显示屏实时显示电机的实际速度和偏差。

此外,也可以将重要的数据保存在单片机的内部或外部存储器中。

8.安全保护:为了防止电机过载或意外事故,单片机应具备安全保护功能。

例如,当电机实际速度超过设定速度一定时间时,单片机应自动切断电源或发出报警信号。

基于单片机PID算法的直流电机速度控制方法具有精度高、稳定性好、适应性强等优点,广泛应用于各种需要精确控制电机速度的场合。

直流电机控制(PID)实验报告

直流电机控制(PID)实验报告
b = speed1 / 100;
s = speed1 % 100 / 10;
g = speed1 % 100 % 10;
sent(table[b]);
sent(table[s]);
sent(table[g]);
sent(0); sent(0);//预期值
sent(table[speedset/100]);
out=0;
uk1=uk;//为下一次增量做准备
e2=e1;
e1=e;
PWMTime=out; //out对应于PWM高电平的时间
return(0);
}
void PWMOUT()
{
//PWM=1;
if(cnt<PWMTime)//若小于PWM的设定时间,则输出高电平
PWM=1;
else//否则输出低电平
三、仪器及原理图
实验仪器:THKL-C51仿真器
四、实验代码
%增量式
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define ufloat unsigned float
sbit PWM=P1^2;
sbit DIN=P1^0;
sbit CLK=P1^1;
uint num;
float count=0;
uint cnt,n=0;
uint out;
uint PWMTime;
uchar code table[] = { 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x7B,0x71,0x00,0x40 };

直流电机PID控制实验

直流电机PID控制实验

直流电机PID 控制实验一、 实验目的1、 学习数字控制器的模拟化设计方法;2、 学习数字PID 控制器的设计方法;3、 学习PWM 控制理论;4、 学习数字PID 控制器在DSP 上的实现方法。

二、 实验设备计算机,实验箱、DSP 仿真器、导线。

三、 基础理论PID 控制器(按闭环系统误差的比例、积分和微分进行控制的调节器)自30年代末期出现以来,在工业控制领域得到了很大的发展和广泛的应用。

它的结构简单,参数易于调整,在长期应用中已积累了丰富的经验。

特别是在工业过程控制中,由于被控制对象的精确的数学模型难以建立,系统的参数经常发生变化,运用控制理论分析综合不仅要耗费很大代价,而且难以得到预期的控制效果。

在应用计算机实现控制的系统中,PID 很容易通过编制计算机语言实现。

由于软件系统的灵活性,PID 算法可以得到修正和完善,从而使数字PID 具有很大的灵活性和适用性。

实现PID 控制的计算机控制系统如图1所示,其中数字PID 控制器是由软件编程在计算机内部实现的。

图1 模拟PID 控制 1、PID 控制规律的离散化PID 控制器是一种线性调节器,这种调节器是将系统的给定值r 与实际输出值y 构成的控制偏差y r c -=的比例(P )、积分(I )、微分(D ),通过线性组合构成控制量,所以简称PID 控制器。

连续控制系统中的模拟PID 控制规律为: ])()(1)([)(0dtt de T dt t e T t e K t u DtIp ++=⎰ (式1) 式中)(t u 是控制器的输出,)(t e 是系统给定量与输出量的偏差,P K 是比例系数,I T 是积分时间常数,D T 是微分时间常数。

其相应传递函数为:pK sT K I p sT K D p 对象r eyu+++-+)11()(s T sT K s G D I p ++= (式2) 比例调节器、积分调节器和微分调节器的作用:(1)比例调节器:比例调节器对偏差是即时反应的,偏差一旦出现,调节器立即产生控制作用,使输出量朝着减小偏差的方向变化,控制作用的强弱取决于比例系数。

PID控制直流电机

PID控制直流电机

标签:调速直流PID数字智能车基于单片机的数字PID实现直流电机调速(智能车)现在做很多的智能车,都需要对车速进行控制.或匀速或变速,在调速算法中,PID的经典永垂不朽.其实,简单的51单片机尚能轻易的实现平滑良好的调速,更不用说性能优良的单片机.然而,要做到最好,是需要很高的专业水平和动手能力.但是,工程上能达到我们的目标即可.抱着"够用就好"的思想,我们来开始我们的调速旅程:所谓的PID是肯定基于一个闭环系统而言的,什么是闭环系统呢,我简单的介绍一下:看上面的这个系统,就不是一个闭环系统,而是一个开环系统.再看下面的这个就是闭环系统:上图这个系统就是典型的闭环系统.大家也许看出来了,"开环"系统,就是系统没有反馈,是个"打开的环",而闭环系统,是有反馈的,是一个完整的环形.正是这个反馈,就可以将当前电机的转速传递给系统控制端,如果电机转速快了,控制器就让它慢点(比如可以降低电机两端的电压),同样,如果速度传感器检测到转速低了,就应该让电机两端的电压提高一点.就是在这样的不断矫正中,电机的速度会保持恒定.当然,这个矫正的周期是非常短的,矫正的速度是很快的.有人说,不就是多了就少点,少了就多点嘛,干嘛使用什么玄乎的PID?对,你说对了,"多了就少点,少了就多点"这本身就是PID里面的一种:P控制--只使用了P算法.接下来我们就看看到底什么是PID,为什么要使用PID,怎么样使用PID:P--比例I--积分D--微分我们来一条一条的讲解P,I,D的含义及其意义:P--比例部分这个很好理解.比如说,速度传感器发现,当前速度是1200(每分钟).而我们设定的速度值为1000,那么就差别了200,这时,如果我设定P为0.1,如果输入的电压就应该是Uo-0.1x200.看到了没有,这里的比例的意思就是"倍数",就是你要把这个偏差放大多少倍."放大"本身就是一个比例嘛.知道了这个,你就可以写一个PID控制里面的P控制了.很多时候,不需要I 和D控制,单单一个P控制就足够了.到了这里你就可以控制电机的速度了.I--积分部分.这个积分其实也很好理解 .它是一个积分运算.有的时候偏差不是很大,所以继续运行下去,会使系统存在一个偏差.但是你如果使用I运算将这个偏差累加起来,到了一定大小的时候就进行处理.这样就能防止系统的误差累计.其实,在程序中,这个过程就是对一个小偏差的连续累加罢了. D--微分部分.这个部分也比较好理解.所谓的微分就是对变量求导呗,意思就是一个量的变化率呗.所以,微分部分就是能够将变量变化率放入计算中.这个量在边城中其实就是求上次的偏差和这次的偏差的差罢了.其实,在温度控制中PID还是比较有效的,但是在于电机控制这种速度经常变化的场合,一个参数整定好的P控制就能完成任务.为了便于大家的理解,我给大家举一个例子吧:。

基于PID控制的直流电机转速闭环控制系统设计

基于PID控制的直流电机转速闭环控制系统设计

基于PID控制的直流电机转速闭环控制系统设计一、绪论直流电机广泛应用于工业自动化控制系统中,对其转速进行精确控制是提高系统性能和稳定性的关键。

PID控制技术是一种经典且常用的控制方法,被广泛应用于直流电机转速控制系统中。

本文旨在设计一个基于PID控制的直流电机转速闭环控制系统,实现对电机转速的精准控制。

二、直流电机转速控制系统结构直流电机转速闭环控制系统主要由以下几个部分组成:1. 直流电机:负责将电能转化为机械能,并提供给待控对象。

2. 传感器:用于测量电机转速,将测得的转速信号反馈给控制系统。

3. 控制器:根据测量的转速信号与设定值之间的差异,计算控制信号,并输出给执行器。

4. 执行器:根据控制信号控制电机的转速,通过调节电机输入电流实现转速控制。

三、PID控制器原理PID控制器是一种基本的比例-积分-微分控制器,通过调节这三种控制分量的权重,实现对系统的控制。

具体原理如下:1. 比例控制分量:根据测量值与设定值之间的差异,产生与差值成正比的控制信号,用于快速响应系统误差。

2. 积分控制分量:根据时间与误差的乘积进行积分,用于消除系统误差的稳态偏差。

3. 微分控制分量:根据误差的变化率进行微分,用于增强系统的稳定性,减小超调量。

四、基于PID控制的直流电机转速闭环控制系统设计步骤1. 系统建模:根据直流电机的特性以及系统的动力学方程,建立数学模型,描述电机的转速与输入电流之间的关系。

2. 参数调整:根据实际情况,通过试验或者经验,调整PID控制器的三个控制参数:比例系数(Kp),积分时间(Ti),微分时间(Td),以获得系统的最佳控制效果。

3. 信号采集与处理:利用传感器获取电机转速的测量值,然后经过滤波和放大等处理,得到合适的输入信号。

4. PID控制计算:根据测量值与设定值之间的差异,计算PID控制器的输出信号。

5. 信号放大与转换:将PID控制器输出的控制信号进行放大,并转换为合适的电压或电流信号,用于控制电机的转速。

PID控制直流电机速度

PID控制直流电机速度

摘要在运动控制系统中,电机转速控制占有至关重要的作用,其控制算法和手段有很多,模拟PID控制是最早发展起来的控制策略之一,长期以来形成了典型的结构,并且参数整定方便,能够满足一般控制的要求,但由于在模拟PID控制系统中,参数一旦整定好后,在整个控制过程中都是固定不变的,而在实际中,由于现场的系统参数、温度等条件发生变化,使系统很难达到最佳的控制效果,因此采用模拟PID控制器难以获得满意的控制效果。

随着计算机技术与智能控制理论的发展,数字PID技术渐渐发展起来,它不仅能够实现模拟PID所完成的控制任务,而且具备控制算法灵活、可靠性高等优点,应用面越来越广。

本设计以上面提到的数字PID为基本控制算法,以AT89S51单片机为控制核心,产生占空比受数字PID算法控制的PWM脉冲实现对直流电机转速的控制。

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

在系统中采128×64LCD显示器作为显示部件,通过4×4键盘设置P、I、D、V四个参数和正反转控制,启动后可以通过显示部件了解电机当前的转速和运行时间。

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

关键词:数字PID;PWM脉冲;占空比;无静差调节前言21世纪,科学技术日新月异,科技的进步带动了控制技术的发展,现代控制设备的性能和结构发生了翻天覆地的变化。

我们已进入高速发展的信息时代,控制技术成为当今科技的主流之一,广泛深入到研究和应用工程等各个领域。

控制理论的发展经历了古典控制理论、现代控制理论和智能控制理论三个阶段。

其控制系统包括控制器﹑传感器﹑变送器﹑执行机构﹑输入输出接口。

控制器的输出经过输出接口﹑执行机构、加到被控系统上;控制系统的被控量、经过传感器、变送器、通过输入接口送到控制器。

不同的控制系统、传感器﹑变送器﹑执行机构是不一样的。

比如压力控制系统要采用压力传感器。

电加热控制系统的传感器是温度传感器。

对直流无刷电机的pid控制

对直流无刷电机的pid控制

PID闭环速度调节器采用比例积分微分控制闭环速度调节器采用比例积分微分控制(简称PID控制),其输出是输入的比例、积分和微分的函数。

PID调节器控制结构简单,参数容易整定,不必求出被控对象的数学模型,因此PID 调节器得到了广泛的应用。

PID调节器虽然易于使用,但在设计、调试无刷直流电机控制器的过程中应注意:PID调节器易受干扰、采样精度的影响,且受数字量上下限的影响易产生上下限积分饱和而失去调节作用。

所以,在不影响控制精度的前提下对PID控制算法加以改进,关系到整个无刷直流电机控制器设计的成败。

2速度设定值和电机转速的获取为在单片机中实现PID调节,需要得到电机速度设定值(通过A/D变换器)和电机的实际转速,这需要通过精心的设计才能完成。

无刷直流电机的实际转速可通过测量转子位置传感器(通常是霍尔传感器)信号得到,在电机转动过程中,通过霍尔传感器可以得到如图2所示的周期信号。

由图2可知,电机每转一圈,每一相霍尔传感器产生2个周期的方波,且其周期与电机转速成反比,因此可以利用霍尔传感器信号得到电机的实际转速。

为尽可能缩短一次速度采样的时间,可测得任意一相霍尔传感器的一个正脉冲的宽度,则电机的实际转速为:但由于利用霍尔传感器信号测速,所以测量电机转速时的采样周期是变化的,低速时采样周期要长些,这影响了PID 调节器的输出,导致电机低速时的动态特性变差。

解决的办法是将三相霍尔传感器信号相“与”,产生3倍于一相霍尔传感器信号频率的倍频信号,这样可缩短一次速度采样的时间,但得增加额外的硬件开销。

直接利用霍尔传感器信号测速虽然方便易行,但这种测速方法对霍尔传感器在电机定子圆周上的定位有较严格的要求,当霍尔传感器在电机定子圆周上定位有误差时,相邻2个正脉冲的宽度不一致,会导致较大的测速误差,影响PID调节器的调节性能。

若对测速精度要求较高时,可采用增量式光电码盘,但同样会增加了电路的复杂性和硬件的开销。

电机速度设定值可以通过一定范围内的电压来表示。

基于pid算法的直流电机转速控制系统的设计

基于pid算法的直流电机转速控制系统的设计

基于pid算法的直流电机转速控制系统的设计基于PID算法的直流电机转速控制系统是现代控制系统的一个重要组成部分。

其主要功能是通过调节电机的电压和电流来控制电机的转速,以达到所需的转速控制效果。

本文将介绍如何设计PID算法控制系统,以实现直流电机的转速控制。

首先,我们需要了解PID算法的基本原理。

PID算法是一种基于反馈控制的方法,它通过对系统的误差进行测量和反馈控制,不断调整输出信号以达到所需的控制效果。

PID算法的核心就是三个控制参数:比例系数、积分系数和微分系数。

我们需要通过试验的方法来调整这些参数以达到最佳的控制效果。

接下来,我们就可以开展PID算法直流电机转速控制系统的设计。

首先,我们需要确定系统的控制目标和工作条件,包括期望转速范围、电机额定电压和电流等参数。

接着,我们需要选择合适的线性二次调节器,并通过MATLAB软件进行参数调整和仿真测试。

在参数调整和仿真测试过程中,需要进行多次试验,找到最佳的控制参数,以达到最理想的转速控制效果。

同时,还需要在系统设计过程中,考虑到一些实际应用中可能出现的问题,如电网失电、电机负载变化等因素,保证控制系统的稳定性和可靠性。

最后,我们需要对设计的PID算法直流电机转速控制系统进行实际测试和验证。

通过实现所设计的控制系统,并进行各项测试和实验,验证其控制效果和性能是否满足所需的要求和标准。

综上所述,基于PID算法的直流电机转速控制是一个相对复杂的系统设计工作,需要掌握一定的控制理论和实践经验。

通过认真的系统设计、参数调整和测试验证,可以实现一个高效、可靠的直流电机转速控制系统。

数字pid算法在无刷直流电机控制器中的应用

数字pid算法在无刷直流电机控制器中的应用

数字pid算法在无刷直流电机控制器中的应用数字PID算法在无刷直流电机控制器中的应用1. 简介在现代工业自动化领域,无刷直流电机控制器的应用越来越广泛。

无刷直流电机具有高效率、低噪音、高转速等优点,因此被广泛应用于航空航天、汽车制造、工业生产等领域。

为了更好地控制无刷直流电机,数字PID算法成为一种常用的控制策略。

本文将从深度和广度两方面对数字PID算法在无刷直流电机控制器中的应用进行全面评估,并撰写一个有价值的文章,消除读者对该主题的疑惑。

2. 无刷直流电机的特点无刷直流电机相比传统的有刷直流电机具有许多优点。

无刷直流电机不需要使用碳刷与旋转子进行直接的电气连接,因此摩擦损耗小,效率高,寿命长。

无刷直流电机没有碳刷产生的火花,噪音小,适用于对噪音要求严格的场合,比如医疗设备和办公自动化设备。

另外,由于无刷直流电机可以直接对转子进行控制,使得其具有响应速度快、调速范围宽等优点。

在众多领域中都有广泛的应用。

3. 数字PID算法原理PID控制算法是一种经典的控制策略,由比例环节、积分环节和微分环节组成。

在数字PID算法中,通过采样输入信号和输出信号,利用计算机进行离散化处理,根据离散化的输入信号和输出信号计算控制量,从而对系统进行控制。

数字PID算法通过不断地调节比例系数、积分系数和微分系数,使系统的输出信号逐渐逼近或稳定在期望值。

数字PID算法可以在不同的系统中实现自动控制。

4. 数字PID算法在无刷直流电机控制器中的应用在无刷直流电机控制器中,数字PID算法可以实现精准的速度控制和位置控制。

通过对无刷直流电机的速度、位置信号进行采样,可以得到实时的转速和位置信息。

利用数字PID算法根据期望的转速和位置信息计算出控制量,通过PWM控制电路,驱动无刷直流电机旋转到期望的位置和转速。

数字PID算法可以根据实际反馈信号不断地调节控制量,使得无刷直流电机的转速和位置逐渐逼近或稳定在设定值,从而实现精准的控制。

基于单片机的数字PID控制直流电机PWM调压调速器系统(★)

基于单片机的数字PID控制直流电机PWM调压调速器系统(★)

基于单片机的数字PID控制直流电机PWM调压调速器系统(★)第一篇:基于单片机的数字PID控制直流电机PWM调压调速器系统题目: 基于单片机的数字PID控制直流电机PWM 调压调速器系统目录一、PID简介 (6)二、设计原理 (7)三、设计方案 (8)四、心得体会 (16)五、参考文献 (16)二、设计原理基本的设计核心是运用PID调节器,从而实现直流电机的在带动负载的情况下也能稳定的运行。

运用A/D转换芯片将滑动变阻器的模拟电压转换为数字量作为控制直流电机速度的给定值;用压控振荡器模拟直流电机的运行(电压高-转速高-脉冲多),单片机在单位时间内对脉冲计数作为电机速度的检测值;应用数字PID模型作单片机控制编程,其中P、I、D参数可按键输入并用LED数码显示;单片机PWM调宽输出作为输出值,开关驱动、电子滤波控制模拟电机(压控振荡器)实现对直流电机的PID调压调速功能。

基于以上的核心思想,我们把这次设计看成五个环节组成,其具体的原理如下见原理图2.0图2.0 PID调速设计原理图如图可以知道,这是一个闭环系统,我们借助单片机来控制,我们现运用AD芯片,运用单片机来控制AD芯片来转换模拟电压到数字电压,AD给定的电压越大,则产生的数字量越大,单片机再控制这个数字量来产生一个PWM,PWM占空比越大,就驱动晶体管导通的时间越长,这样加到压频转换器的电压也就越大,电压越大,则压频转换器输出的计数脉冲再单位时间也就越多,这样就相当于电机的电压越大,其转速也就会越快,我们再用单片机对压频转换器的输出脉冲计数,PID调节器就把这个计数脉冲和预先设定的值进行比较,比设定值小,这样就会得到一个偏差,再把这个偏差加到AD的给定电压,这样就相当于加大了PWM的占空比,要是比设定值大,这样也会得到一个偏差,就把这个变差与给定的电压向减,这样就可以减少PWM 的占空比,通过改变占空比来改变晶体管的导通时间,就可以改变压频转换器的输入电压,也就改变压频转换器的单位计数脉冲,达到调电动机速度的目的。

29. 如何通过PID控制实现电机控制?

29. 如何通过PID控制实现电机控制?

29. 如何通过PID控制实现电机控制?29、如何通过 PID 控制实现电机控制?在现代工业自动化领域,电机控制是一个至关重要的环节。

而 PID 控制作为一种经典的控制算法,在电机控制中发挥着重要作用。

要理解如何通过 PID 控制实现电机控制,首先得搞清楚什么是 PID 控制。

PID 是比例(Proportional)、积分(Integral)、微分(Derivative)的缩写。

这三个参数的组合可以使控制系统达到期望的性能。

比例控制(P)是 PID 控制中最基本的部分。

它的作用是根据偏差的大小来输出控制量。

比如说,如果电机的实际转速低于设定转速,偏差就产生了。

比例控制会根据这个偏差的大小成比例地输出一个控制信号,来增加电机的输入电压或电流,从而提高转速。

但是,仅仅依靠比例控制往往会存在稳态误差,也就是电机的实际转速可能无法完全达到设定转速。

这时候,积分控制(I)就派上用场了。

积分控制的作用是对偏差进行积分。

即使偏差很小,但经过一段时间的积累,积分控制也会产生一个较大的控制量,从而消除稳态误差。

不过,积分控制如果设置不当,可能会导致系统响应变慢或者产生超调。

微分控制(D)则是根据偏差的变化率来输出控制量。

它能够预测偏差的变化趋势,提前给出控制信号,从而抑制系统的超调,改善系统的动态性能。

接下来,我们看看如何将 PID 控制应用到电机控制中。

第一步,需要确定控制的目标量。

在电机控制中,通常是电机的转速、位置或者转矩等。

第二步,选择合适的传感器来测量实际的控制量。

例如,使用编码器来测量电机的转速或位置。

第三步,就是 PID 参数的整定。

这是一个关键的步骤,需要根据具体的电机系统和控制要求来进行。

一般可以采用试凑法,先设置一组初始的 PID 参数,然后观察系统的响应,逐步调整参数,直到达到满意的控制效果。

在实际应用中,还需要考虑一些其他因素。

比如,电机的负载变化、系统的干扰等。

如果负载突然增大,可能会导致电机转速下降。

数字PID在直流电机控制中的研究与应用

数字PID在直流电机控制中的研究与应用

数字PID在直流电机控制中的研究与应用摘要:本文主要研究的是数字PID控制技术在运动控制领域中的应用。

众所周知,运动控制系统最主要的控制对象是电机,在生产过程特别是核电无损检测设备上,电机的运行状态要满足现场检测需求,对电机运动精度的控制起着至关重要的作用。

因此下面利用PID控制技术对直流电机运动控制进行简单的分析和研究。

关键字:数字PID、运动控制、直流电机1.引言:在核电站无损检测设备的运动过程中,高效的调节PID参数可以提高设备运行的可靠性和稳定性。

在传统的模拟PID控制系统中,参数一旦整定好后整个控制过程中都是固定不变的,而在实际中由于现场环境的不确定性,使系统很难达到最佳的控制效果。

因此采用模拟PID控制器难以获得满意的控制效果。

随着计算机技术与智能控制理论的发展,数字PID技术渐渐发展起来,它不仅能够实现模拟PID所完成的控制任务,而且具备控制算法灵活、可靠性高等优点,应用面越来越广。

2.运动控制系统概述运动控制就是对机械运动部件的位置、速度等进行实时的控制和管理,使其在各自驱动装置的作用下,按照预期的运动轨迹和规定的运动参数进行运动。

在核电检测设备中所采用的一个最基本的控制系统如图1所示。

该运动控制系统主要由电机,驱动器,编码器,运动控制器和控制电脑组成,其中运动控制器作为伺服控制系统的智能元件,对整个系统起主导作用。

3.PID 控制原理 控制算法是微机化控制系统的一个重要组成部分,整个系统的控制功能主要由控制算法来实现。

目前提出的控制算法有很多。

根据偏差的比例(P )、积分(I )、微分(D )进行的控制,称为PID 控制。

实际经验和理论分析都表明,PID 控制能够满足相当多工业对象的控制要求,至今仍是一种应用最为广泛的控制算法之一。

3.1模拟PID在模拟控制系统中,调节器最常用的控制规律是PID 控制,常规PID 控制系统原理框图如图2所示,系统由模拟PID 调节器、执行机构及控制对象组成。

PID直流电机调速讲解1

PID直流电机调速讲解1

PI 组合 消除了误差 带来了超调
Velocity
Time
5
of
26

PID是什么?
D--微分控制部分
所谓的微分就是对变量求导, 意思就是一个量的变化率.其 微分部分就是能够将变量变 化率放入计算中.这个量在编 程中其实就是求上次偏差和 这次偏差的差.
PID 黄金组合 加快迚入稳态 减少超调

绕不开的理论公式
上面介绍的公式,叫做位置PID,也就是每次都使用整个系统的状态。 可以理解为:偏差使用的是所有的全量偏差。 还有一种算法是增量式PID。 摘录网上的话:“位置式PID算法每次输出不整个过去状态有关,计算 式中要用到过去误差的累加值,因此,容易产生较大的累积计算误差。 而增量式PID只需计算增量,计算误差戒精度丌足时对控制量的计算影 响较小。” 上一次的输出为u(k-1),这次的输出为u(k) ,变化量为^u(k)
5
of
26

实际如何下手
硬件准备: 1.N20直流电机,配有1:145的金属变速箱。电机必须带测速。 2.Aduino nano控制板,主控芯片atmel328p。 3.实现电机控制的H桥电路板,带pwm输入。 4.供电电池。
软件准备: 1.Arduino IDE开发环境。 2.串口猎人,用于收集数据,实时绘制可视化图像。
5
of
26

实际如何下手 代码实现
速度测定: 程序可以通过定时器来计数,利用单片机上的引脚变化中断实现。 问题是这个采样时间怎么取? 这里针对我买的电机,测速是放在转轴上未减速前的,采样周期可以设短为30ms。 电机每圈有12个ticks,就设为15ms测速一次,每测2次求平均值,作为当前速度值。 有了采样周期,就可以得到:输出量。

直流电机PID控制

直流电机PID控制

目录1. .................................................................................................................................................................... 设计题目.. (1)2. .................................................................................................................................................................... 设计内容.. (1)3. .................................................................................................................................................................... 方案总体设计与论证. (1)4. .................................................................................................................................................................... 硬件电路设计. (2)4.1 最小系统设计 (2)4.2 传感器模块 (2)4.3 负载模块 (3)4.4 键盘模块 (4)4.5 显示模块 (4)5. .................................................................................................................................................................... 软件设计.. (5)5.1 主函数部分 (5)5.2 中断部分 (6)5.3 显示刷新部分 (6)5.4 按键扫描部分 (7)5.5 按键功能实现部分 (8)5.6 更新输出控制信号部分 (9)5.7 PID 控制部分 (10)5.8 LCD显示部分 (11)5.9 延时部分 (11)6. .................................................................................................................................................................. 系统调试.. (12)7. .................................................................................................................................................................. 结束语 .. (12)8 .参考文献 (12)附录一系统硬件原理图 (13)附录二源程序代码 (14)摘要本文章介绍了由51单片机以及直流电机、三极管驱动电路、矩阵键盘、LCD和红外传感器构成的转速闭环控制系统。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PID控制:PID通过调节结构体中比例常数(Proportion)、积分常数(Integral)、微分常数(Derivative)使得转速控制达到想要的精度。

试凑法实验凑试法的整定步骤为"先比例,再积分,最后微分"。

(1)整定比例控制将比例控制作用由小变到大,观察各次响应,直至得到反应快、超调小的响应曲线。

(2)整定积分环节若在比例控制下稳态误差不能满足要求,需加入积分控制。

(3)整定微分环节若经过步骤(2),PI控制只能消除稳态误差,而动态过程不能令人满意,则应加入微分控制,构成PID控制。

先置微分时间TD=0,逐渐加大TD,同时相应地改变比例系数和积分时间,反复试凑至获得满意的控制效果和PID控制参数。

代码实现:#define uint unsigned intuint Proportion = 8; //比例常数Proportional Constuint Integral = 3; //积分常数Integral Constuint Derivative = 1; //微分常数Derivative Constuint LastError = 0; //Error[-1]uint PrevError = 0; //Error[-2]uint Error = 0; //Error[0]int Out = 0; //outcomeint Contr_PID(){Error = expc_speed - real_speed; //计算偏差//进行增量式PID计算Out = Out +Proportion*(Error-LastError) +Integral*Erro +Derivative*(Error+PrevError-2*LastError);//进行误差更新PrevError = LastError;LastError = Error;If (Out < 0)Out = 0;If (Out > 255)Out = 255;return Out;}3.电机驱动:原理:直流有刷电机既可以用模拟电压驱动,又可以用PWM驱动.如果用PWM驱动时,刚刚PID后的输出可以直接对应到PWM高电平持续的时间,PWM周期为T,则低电平对应为T-Out即可,这个实现比较简单。

代码实现://PCF8591.h//延时4usvoid delay(void);//iic初始化void init(void);// iic开始信号void start(void) ;// iic停止信号void stop(void) ;// iic应答相当于一个智能的延时函数void respons(void) ;// iic读一个字节数据uchar read_byte(void) ;//iic写一字节数据void write_byte(uchar date) ;// 控制DA转换void write_add(uchar control,uchar date);// 控制AD转换uchar read_add(uchar control); #include<AD.h>#include<reg52.h>#define PCF8591 0x90 //默认为写,如果为读,则为0x91 sbit SDA=P2^0;sbit SCL=P2^1;//延时4usvoid delay(void){unsigned char i;for(i=1; i>0; i--);}// //iic初始化void init(){SDA=1;delay();SCL=1;delay();} // iic//开始信号void start(){SDA=1;delay();SCL=1;delay();SDA=0;delay();}// iic停止信号void stop(){SDA=0;delay();SCL=1;delay();SDA=1;delay();}// iic//应答相当于一个智能的延时函数void respons(){uchar i;SCL=1;delay();while((SDA==1)&&(i<250))i++;SCL=0;delay();}// iic读一个字节数据uchar read_byte(){uchar i,k;SCL=0;delay();SDA=1;delay();for(i=0;i<8;i++){SCL=1;delay();k=(k<<1)|SDA;//先左移一位,再在最低位接受当前位SCL=0;delay();}return k;}//iic写//一字节数据void write_byte(uchar date){uchar i,temp;temp=date;for(i=0;i<8;i++){temp=temp<<1; //左移一位移出的一位在CY中SCL=0; //只有在scl=0时sda能变化值delay();SDA=CY;delay();SCL=1;delay();}SCL=0;delay();SDA=1;delay();}// 控制DA转换void write_add(uchar control,uchar date){start();write_byte(PCF8591);respons();write_byte(control);respons();write_byte(date);respons();stop();}// 控制AD转换uchar read_add(uchar control){uchar date;start();write_byte(PCF8591);respons();write_byte(control);respons();start();write_byte(PCF8591+1);//把最后一位变成1,读数据respons();date=read_byte();stop();return date;}主函数:主函数中主要是一些初始化工作,还有按键检测和实际转速和期望转速显示。

关于显示部分可以用液晶或者数码管,这里不再具体讲解。

#include<display.h>#include<reg52.h>#include<AD.h>#define uint unsigned int#define uchar unsigned char#define PCF8591 0x90 //默认为写,如果为读,则为0x91#define AD_IN0 0x40#define AD_IN1 0x41#define AD_IN2 0x42#define AD_IN3 0x43#define KeyPort P1#define CYCLE 100 //限定的最大转速unsigned int Proportion=8;//比例常数Proportional Constunsigned int Integral=3;//积分常数Integral Constunsigned int Derivative=1;//微分常数Derivative Constunsigned int LastError=0;//Error[-1]unsigned int PrevError=0;//Error[-2]unsigned int Error=0;//Error[0]int Out=0;//outcomeunsigned int expc_speed=0; unsigned int real_speed=0;main(){unsigned char num;Init_Timer0(); //初始化定时器0Init_Timer1(); //初始化计数器1lcd_init();init();while (1) //主循环{num=KeyScan(); //循环调用按键扫描switch (num){case 1:{if(expc_speed<CYCLE)expc_speed++;}break;case 2:{if(expc_speed>0)expc_speed--;}}lcd_display(4,expc_speed);lcd_display(5,real_speed);}}//按键扫描函数,返回扫描键值unsigned char KeyScan(void) {unsigned char keyvalue;if(KeyPort!=0xff){delay_ms(10);if(KeyPort!=0xff){keyvalue=KeyPort;while(KeyPort!=0xff); switch(keyvalue){case 0xfe:return 1;break;case 0xfd:return 2;break;case 0xfb:return 3;break;case 0xf7:return 4;break;case 0xef:return 5;break;case 0xdf:return 6;break;case 0xbf:return 7;break;case 0x7f:return 8;break;default:return 0;break;}}}return 0;}。

相关文档
最新文档