所有关于电路
行业的文章

测量直流电机的位置和速度控制使用一个模拟PID控制器

2018年8月14日通过马哈茂德•Hamdy Brightskies技术

本文展示了如何实现一个模拟PID控制器,包括调整直流电机轴角位置,编辑设计来控制它的速度,优化PID参数,性能可靠。

本文展示了如何实现一个模拟PID控制器,包括调整直流电机轴角位置,编辑设计来控制它的速度,优化PID参数,性能可靠。

本文主要关注在教育装备展示效果的直流电机的PID控制器在响应试图达到beplay网页版本一个特定的位置,在这种情况下,零位置。教育装备beplay网页版本还可以修改PID控制调节电动机转速达到一个特定的理想转速,无论任何合理的电机上的负载。

主系统概述

系统分为三个主要部分:

  1. 旋转编码器,继电器直流电机轴的位置作为一个模拟信号,喂了模拟PID控制器。这将是通过使用矩阵SLG46621可编程的混合信号集成电路所示的对话框。
  2. 一个模拟PID控制器有3个电位器控制PID参数。这需要一个模拟信号从一个点和设置点的零位置。这一部分然后输出一个模拟信号控制电机的速度。这个信号还没有一个PWM信号。这个系统使用四运算放大器SLG88104的一部分。
  3. PWM发生器,采用模拟信号控制电机的速度和饲料PWM块在我们的系统。然后提要马达驱动器的PWM输出块调整电机轴到所需的位置。注意电机的方向已知来自第1部分编码器的反馈信号。

通常,微控制器用来实现PID控制器。他们收到的输入脉冲编码器,然后给他们通过控制算法输出电动机转速。然而,这需要软件开发,它需要大量的时间和金钱来开发一个可靠的系统。不需要任何GreenPAK实现软件开发或其他先进的硬件。基于软件的限制取决于您使用哪个单片机PID。相反,硬件PID给你更可靠的控制在任何你想要的参数影响你的反应,但是硬件通常是很难调整。

这个解决方案是可行的一个教育工具需要几个组件:beplay网页版本

  • 一个设计良好的外壳和一个开/关开关,宽控制PID参数,和额外的LCD显示参数的值。
  • 可调脉宽调制频率GreenPAK PWM块的平稳响应。
  • 稳定的指针连接到电动机的安装。

增量式旋转编码器解码

旋转编码器的输出是由两个脉冲信号90º的阶段。脉冲的数量与插槽的数量的磁盘编码器覆盖在一个完整的旋转。位置控制的主要思想是,从初始位置(零)我们需要计算槽的数量的磁盘将覆盖在连续波或公约的方向。数会减少如果磁盘扭转方向。例如,如果电动机开始顺时针数5脉冲槽(5),然后回到其初始位置需要5项逆时针方向移动,最终回到开始。

正交编码器输出信号

图1所示。正交编码器输出信号

我们将使用脉冲和脉冲位置跟踪和方向检测。一个向上/向下计数器使用GreenPAK实现块将增加/减少取决于电机的方向。所有的模块都是通过内部振荡器同步。

首先,我检查多少数量我需要覆盖比例在一个方向上,我发现我需要大约30项根据我的设计。我一个8位计数器用于提高精度。然后我实现了一个使用以正交方向检测电路译码器来确定电机移动连续波或公约。柜台CNT4 / DLY4 / FSM1时钟每次有一个脉冲连续波或公约。在连续波使计数器计数脉冲,脉冲在公约使计数器计数。计数器初始化为127 255(最大的价值给它足够的空间计算。给出的输出是通过SPI平行销12-20块输出。

我实现了一个以正交解码器使用几个DFFs和管延迟块。当A导致B对连续波脉冲,当B会有一个脉冲公约。然后最后一个阶段(DFF3)添加与连续波作为输入和公约作为一个时钟输入的反向输出DFF3仍然很低,当电机顺时针旋转,输出电机逆时针旋转时仍将居高不下。

以正交使用GreenPAK解码器

图2。以正交使用GreenPAK解码器

柜台将旋转编码器的位置,直到它触发了虽然在连续波或脉冲通过公约的脉冲。注意,SLG46621有2个矩阵:8位计数器实现第二个矩阵;第二个矩阵的正交解码电路实现。所需的组件生成PWM信号分离矩阵。

FSM向上/向下计数器

图3。FSM向上/向下计数器

SPI块

图4。SPI块

SPI并行输出

图5。SPI并行输出

将编码器数据转化为模拟信号

现在我们有一个8位数字数据值需要转换成一个模拟信号,因此它可以送入模拟PID。内置的DAC不支持直接从CNT4采取输入/ DLY4 FSM1阻止我实现外部8位DAC SLG88104四运算放大器使用对话框。

8位DAC

图6。8位DAC

我选择了R 10 k欧姆,0是SPI第一平行输出销12等等。最低的电阻R值对应于最高的加权输入7位二进制(MSB) [27 = 128]。2 R, 4 R, 8 R, R, 16日32和64 R对应的二进制权重位6(26 = 64),5(25 = 32),4(24 = 16),3(23 = 8),一点一点2(22 = 4),1(21 = 2)和0 (LSB)分别20 = [1]。数字输入之间的关系(一点一点0到7)和模拟输出电压输出如下:

VREF参考电压的电路,这是SLG46621 3.3 V。加法放大器是紧随其后的是一个反相放大器反向电压的极性正电压。

注意,如果您使用的是双运放输出供应将有两个供应rails和+ ve和负之间摇摆。你将不得不做出这个输出电压积极利用另一个运放,这样就可以将美联储PID回路。如果你使用单一供应运放输出接地之间的摇摆和+ ve VCC和您不需要使用一个转换电路。在这种情况下,因为我们使用的是SLG88104运放,病例从194年到255年将被丢弃,因为它们是以上5 V -最大电压的装置。

在本文的结果,小案板上的DAC实现。

使用SLG88104示范和实现PID控制器

PID这个词是一个缩写,代表比例积分微分。PID控制器是一个反馈系统的一部分,利用比例、积分和导数驱动元素来控制一个过程。

PID控制是必要的,因为有一些事情很难控制使用标准的方法。类似的应用程序进行调节的输出电源使用PIC单片机。图片读取ADC转换器的输出电压和调整PWM控制输出。控制策略很简单:如果电压低于设定值,打开PWM。如果测量电压高于设置点,那么关闭PWM。的图片几乎工作电源。

在实践中,图片控制器产生所需的直流输出电压。不幸的是,它也有一个重要的交流纹波直流信号。

这种控制策略被称为开关或继电器式控制控制。许多类型的系统使用这种控制策略。以炉在家里为另一个例子。当温度低于设定值时,炉。当温度高于设定值时,炉了。就像电源、温度随时间变化结果的情节在一个正弦波。

某些类型的控制,砰砰的枪声是可以接受的;对另一些人来说,它不是。你不会想要这种类型的伺服电机控制,不好的事情会发生!想象一下:电机全功率在一个方向上,下一刻,全功率在另一个方向。你可以看到术语砰砰的枪声从哪里来;伺服不会持续很长时间!

PID控制器可以提供一种控制,almost-intelligent驱动系统。现在我们将检查PID系统的各个组件。

比例控制器

仅仅是一个获得块的比例组件。增益是由电阻的值设置如下:

比例控制器

图7。比例控制器

积分控制器

我们可以认为这是随着时间的推移积累(添加)一个数量。在PID控制器,我们正在将电压随着时间的推移。输出电压是由:

积分控制器

图8。积分控制器

区域是一个组件的电压和时间。让我们看看一个理想积分器的操作。我们可以通过使简化数学等于1(即1 / RC术语。,让R = 100 KΩ和C = 10µF)。

积分控制器的输出和输入之间的关系

图9。关系输出和输入之间积分控制器

在图8中,从0到2秒,有2 V方波应用于积分器的输入。积分器的输出在这个时期是4 V(记住电路反相)。积分器已累积2 V信号2秒。面积等于4。从T2 T4,没有电压积分器。输出是不变。在余下的这张图,你可以看到积分器输出极性改变极性,当输入信号变化。

前面的讨论认为理想积分器。真正的电容器会有泄漏,会放电。同样,真正的放大器可能充电电容器没有输入。如果电路构建,它可能会浸透后几分钟的操作。为了防止这种饱和度,添加一个电阻并联电容器。就我们的目的而言,我们并不关心饱和。我们将使用积分器与其他电路控制电容器上的电荷。

微分控制器

导数是一个测量的速度变化。这个电路看起来类似于高通滤波器在其他图表你见过。低频衰减,而高频被允许通过。输出电压是由:

变化率等于测量直线的斜率。斜率是变化的测量电压除以时间变化量。在数学术语,这是被称为δ电压/δ时间或简单的dv / dt。如果我们应用微分器的斜坡,我们得到一个稳定的直流输出电压。

在微分控制器的输入和输出之间的关系

图10。关系在输入和输出之间一个微分控制器

为了简化计算,我们将让RC = 1。从0到2,4伏的电压变化,而时间变化2秒。因此,这条线的斜率是2。微分器的输出等于2 -记住舞台是反相。

使用PID控制器作为位置控制器的应用

首先要注意的是,这是一个平行的过程。P,我,和D条款独立计算,然后在夏天Σ添加。输入到这个循环是点——在我们的应用程序中,0 VDC作为零位置。输出一个信号,我们将使用适当的方向来控制电机转速,由编码器。现在我们将检查每个PID的条件独立,看看它们是相关的。

左边的图11中,我们看到一个求和结。置位点之间的差异和反馈是系统的错误。如果测量电动机的位置是正的,错误将是负的(即。,需要一个消极的修正)。同样,如果测量电动机的位置是负的,那么积极的调整是必需的。

PID位置控制器框图

图11。PID位置控制器框图

错误是乘以增益的比例。注意,框图显示这是一个负收益。这样做的好处是,框图和原理(稍后介绍)将相互一致。比例放大器的输出发送到第二个求和结,签在哪里再倒。放大器用于提高输出信号电压,所以它可以反馈到GreenPAK PWM块输出PWM信号驱动电机通过电机驱动。

成比例的操作

注意:必须提供一个错误!

系统将试图纠正这个错误,将电机的方向,反对以适当的速度误差。

修正的强度是由比例增益。如果没有错误,就没有开成比例。

积分操作

集成误差修正信号提供了一个电机。

注意:必须提供一个错误!

积分部分积累误差。一个小错误会成为一个大修正。

误差积累,电动机被迫纠正这个错误。

积分器将超过设定值。它必须产生一个错误,以抵消输入信号为电容器放电。

衍生品操作

当汽车开始,电阻器的电压测量将会增加或减少。如果我们有一个电压变化的时间,我们有一个斜坡!这增加的斜率变化与马达的速度。如果电机快速移动,斜率很高。因此,衍生阶段的输出将会很高。

注:电机必须移动!

微分电路将输出电压高时,电机快速移动和低压电动机时进展缓慢。

这个信号应用于减速电机等的一种方式。

如果电动机不动,微分器0输出电压。

微分电路的连接是不同的比例和积分的部分。微分电路接收输入直接从电阻。因此,它的措施只移动电机的速度。它不关心点。

模拟PID控制器电路的原理以及系统的其他模块

图12。模拟PID控制器电路的原理以及系统的其他模块

PID参数及其对系统响应的影响

提高PID参数对整个系统响应的影响

图13。提高PID参数对整个系统响应的影响

使用SLG88104实现电路

我使用一个可变电阻器来调整PID回路的定位点。选点是计数器的初始值是127。我需要3.27伏特。变量的输入电阻的VDD SLG46621我们调整输出3.27 V使用可变电阻器。

上面的PID回路测试后,我需要做一个电压放大器使用另一个运放放大输出信号。这将导致电压的变化更明显。

非反相电压放大器

图14。非反相电压放大器

要克服的问题添加另一个运放使用正确的符号运放我一个非反相放大器配置。输出电压是由:

我选择了R1 1 kΩ和R2 10 kΩ电压是放大了原始信号的11倍。输出信号将改变从0到4.7 V左右。

注意:如果你没有使用SLG88104,别忘了你的+ V - V到运放为适当的操作就像解释DAC操作。

我做了一个电路板使用EagleCAD软件的模拟PID接受SLG88104或LM358放大器的输出之间的比较。PCB测试针为输入信号,输出信号放大和定位点。之后,我添加了测试针通过放大后输出信号的跳投。

电压放大之前使用鹰软件模拟PID示意图

图15。电压放大之前使用鹰软件模拟PID示意图

模拟PID电压放大前电路板使用鹰软件

图16。模拟PID电压放大前电路板使用鹰软件

注意,如果您想要使用LM358把IC使用其持有人在PCB。如果你想使用SLG88104连接放大器从SLG88104评估板销头的扩展在最左边。PCB明显标记,便于连接和调试。

电压放大电路分别在小案板作为你不需要放大的电压如果使用LM358然而,你需要如果你正在使用SLG88104。

SLG88104 vs LM358

虽然你将需要添加一个额外的运放放大电压当使用SLG88104与这个运放有几个关键的好处;不太吵,有更快的响应比LM358输入信号的变化,明显是和小LM358相比,这模拟PID电路可以使用表面安装组件重新设计更紧凑,仍然表现出不同的性能。

把模拟信号

模拟信号,控制的PWM脉宽调制块GreenPAK和出来的PID回路,校正信号,保持电机转速达到127数量的零位(计数器的初始值)。因为这个信号是模拟电动机驱动程序不能直接吃,我们必须先喂GreenPAK PWM块。然后我们使用输出PWM信号保持电动机转速。

我使用了应用注意- 1057伺服电机控制调整PWM块参数作为参考。

为PWM Matrix0连接块

图17。Matrix0 PWM块连接

为PWM Matrix1连接块

图18。Matrix1 PWM块连接

脉宽调制电路参数

图19所示。脉宽调制电路参数

注意,在零位置,是我们的初始值127运动不会停止;振荡可能触发计数。即使只有一个小电压,电动机将振荡在零位置。我做了一个多路复用器控制销5的状态,反过来向电动机PWM信号驱动程序。起始位置点发生时州Q0 Q6很高和Q7很低。

然而,在其他情况下,销20输出将被连接到输出的PWM块作为PWM信号的汽车司机。这将确保电动机必须停止与一些可接受的错误在零位置。这是因为我使用了同一块用于控制直流伺服电机需要一个1.5毫秒脉冲在0度和多路复用器技巧确保没有输出,当计数是127即零位置。

选择正确的方向销连接到汽车司机

现在,让我们修改我们的场景:电动机启动最初在零位置,如果我们把它顺时针必须逆时针移动,以抵消运动与相应的输出速度的PWM块达到零的位置,反之亦然如果逆时针移动,这就是我们实际上从DFF3输出。顺时针移动将输出一个低信号的汽车司机,因此电机逆时针移动,以抵消PWM的运动与相应的输出速度块,反之亦然。

电机驱动PWM销与销5和汽车司机方向销与销6。

马达驱动针

图20。马达驱动针

最终系统监视和资源利用率

位置控制的系统框图

图21。系统框图位置控制

系统是如何工作的:一个总结

  • 电机编码器输出信号有两个输出:脉冲和脉冲B,这是用来喂养马达驱动器和以正交方向信号电路触发计数器向上或向下取决于电机的方向;
  • 一个8位向上/向下计数器用于计数槽电机编码器的磁盘覆盖:在连续波方向和公约方向;
  • 这些数据将使用外部DAC转换为模拟信号,然后将模拟PID电路和定位点将计数器的初始值是127;
  • 调整系统PID参数,直到你得到一个稳定的响应的输出PID应该保持电动机转速的信号。这个输出不是一个PWM信号,所以它应该反馈给GreenPAK;
  • 模拟信号会通过ADC块然后PWM块输出的PWM信号;
  • 现在我们有适当的PWM信号和方向信号的方向检测电路,应美联储汽车司机正确的电机的位置。

PID参数调优

PID调优是一个复杂的过程和应用注意的范围内。

此应用程序的范围,专注于向学生介绍PID控制的想法,尝试和错误是最完美的方式来优化PID参数,因为你看系统的响应和调整参数达到一个稳定点,没有过度或振荡。

然而,对于小,低转矩马达与很少或没有杠杆,一个程序你可以使用它来得到一个好的基线调整探测器响应扰动。

调整PID使用以下步骤:

  • 设置所有收益为零;
  • 增加P增益,直到响应扰动是稳定的振荡;
  • 增加D增益,直到振荡消失(即临界阻尼);
  • 重复步骤2和3,直到增加D增益不停止振荡;
  • 集P和D到最后稳定值;
  • 增加直到它带给你我得到定位点与振荡所需的数量(通常为零但更快的响应可以如果你不介意几个超调振荡)。

您使用什么干扰取决于连接到控制器的机制。通常情况下,移动机制用手远离选点和放手就足够了。如果振荡增长越来越大,那么你需要减少P。

如果你设置D获得过高的系统将开始喋喋不休(振动频率高于P获得振荡)。如果发生这种情况,减少D增益,直到停止。

表1。对比PID调优方法

表:对比PID调优方法

修改系统的速度控制

每秒脉冲的数量成正比的速度运动。脉冲解码产生计数脉冲或脉冲计数。的解码软件,软件计数器的输出是阅读和计数每秒每秒革命成正比。

解码的速度旋转编码器控制框图

图22。解码的速度旋转编码器控制框图

系统框图

速度控制的系统框图

图23。速度控制的系统框图

Arduino实现

一个替代使用GreenPAK进行PID控制是使用Arduino,这是一个流行的单片机爱好者使用。而GreenPAK, Arduino解决方案需要一些编程知识和更多的空间项目以来,Arduino比GreenPAK要大得多。此外,比最便宜的Arduino GreenPAK成本少得多。

此外,正如前面提到的,一个软件的PID控制器有一定的局限性。在硬件中实现PID为用户提供控制每一个参数在设计,但可以调整更加困难。

# include # include双选点,输入、输出;PID myPID(输入和输出,选点,1.002,0.0001,0.01,直接);编码器myEnc (8);长oldPosition = -999;无效的设置(){Serial.begin (9600);pinMode(10、输出);pinMode(9、输出);输入= myEnc.read ();选点= 0;myPID.SetMode(自动); myPID.SetOutputLimits(-254,254); myPID.SetSampleTime(60); } void loop() { long newPosition = myEnc.read(); if (newPosition != oldPosition) { oldPosition = newPosition; Input = myEnc.read(); myPID.Compute(); Serial.println(Output); Serial.println(newPosition); if(Output > 0){ digitalWrite(10,HIGH); analogWrite(9,abs(Output)); } else{ digitalWrite(10,LOW); analogWrite(9,abs(Output)); } } }

项目结果

系统的每个部分实现离散,然后部分集成在一起,整个系统调试。PCB设计便于调试的系统因为测试针。

第1部分:直流电机的位置和速度控制使用模拟PID控制器

第2部分:直流电机的位置和速度控制使用模拟PID控制器

以下测试被应用在建筑教育装备:beplay网页版本

  1. 单元测试:我将应用程序分成小块,每个小块单独测试的正确操作
    • GreenPAK向上/向下计数器缩放:主要的思想是通过缩放和移动指针手表柜台通过比例增加,我做了一个外部电路与8个LED测试8位计数器和另一个单独的领导方向检测即在公约,而移动连续波指示汽车司机正确的信号;
    • DAC电路:我验证的第4部分中描述的DAC操作这个程序注意;
    • 模拟PID不放大电路:在设计电路板之前,我做了模拟PID电路使用一个案板和测试它通过一个模拟信号从一个Arduino。通过输入信号后,我测试它的8位DAC;
    • 模拟PID与放大电路:我对PID运算放大器放大后输出;
    • 汽车司机:我测试的马达驱动器输入脉宽调制和方向信号Arduino和GreenPAK实现。
  2. 集成测试:我互相连接的小块系统和测试设计模块。
  3. 系统测试:我作为一个黑盒测试整个系统。我的装备然后检查电动机运动响应的指针。
  4. 验收测试:达到完美的参数稳定的系统,并注意改变电位计的价值如何影响响应。我使用下面的曲线完美的反应作为指导。

系统的示波器截图达到一个稳定的系统响应

图24。系统的示波器截图达到一个稳定的系统响应

参考曲线参数

图25。参考曲线参数

最后的组装

总装前系统的投入

图26。总装前系统的投入

教育的最终外观套件beplay网页版本

图27所示。教育的最终外观套件beplay网页版本

结论

这个程序注意演示了如何让一个直流电机的位置和速度控制。这可以作为一个教育工具显示的影响比例,积分,微beplay网页版本分控制方案以及饱和度的影响,anti-windup,和控制器更新率稳定,过度和稳态误差。

只有少数的内部块SLG46621V,留下大量的块可用于构建其他电路。这是一个理想的例子作为两个模拟和数字混合信号集成电路块在这个应用程序中使用。

液晶可以添加后显示PID参数值。

GreenPAK实现不需要任何额外的硬件或软件开发微控制器相比。此外,关注hardware-driven PID控制确保所需的快速响应模拟PID控制器。

引用

相关文档和软件,请访问GreenPak的产品页面

  1. GreenPAK设计软件、软件下载和用户指南
  2. AN-CM-xxx直流电机的位置和速度控制使用模拟PID控制器GreenPAK设计文件(zip文件)
  3. GreenPAK开发工具
  4. GreenPAK应用笔记

文章内容的一种形式,允许行业合作伙伴分享有用的新闻,信息,技术和关于电路的读者的方式编辑内容并不适合。所有行业的文章受到严格的编辑指南的目的是提供读者有用的消息,技术专长,或故事。在行业的文章中表达的观点和意见不一定是合作伙伴和所有的电路或其作家。