0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文看懂舵机硬件pid电路原理

姚小熊27 来源:网络整理 2018-03-29 17:06 次阅读

舵机概要

小车转向的控制机构。也就是控制小车的转向。它的特点是结构紧凑、易安装调试、控制简单、大扭力、成本较低等。舵机的主要性能取决于最大力矩和工作速度(一般是以秒/60°为单位)。它是一种位置伺服的驱动器,适用于那些需要角度不断变化并能够保持的控制系统。在机器人的控制系统中,舵机控制效果是性能的重要影响因素。舵机能够在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出值得单片机系统很容易与之接口

舵机组成和工作原理

组成:舵盘、减速齿轮组、位置反馈电位计、直流电机控制电路

工作原理:控制信号→控制电路板→电机转动→齿轮组减速→舵盘转动→位置反馈电位计→控制电路板反馈。

输入线:中间红色——电源线Vcc;黑色——地线GND;白色/橘黄色——控制信号线

一文看懂舵机硬件pid电路原理

信号:pwm信号,其中脉冲宽度从0.5-2.5ms(周期为20ms),相对应的舵盘位置为0-180度,呈线性变化。

pwm波脉冲宽度与舵机转角角度的关系:

一文看懂舵机硬件pid电路原理

也就是不同脉冲宽度的pwm波,舵机将输出不同的轴转角。所以要控制小车的转角,我们就要控制输出不同脉冲宽度的pwm波。

PWM:脉冲宽度调制

原理:对电路元件的通断进行控制,使输出端得到一系列幅值相等的脉冲。猪八戒的耙子就可以看似脉冲宽度相等的pwm波形。那不相等的呢,可以把一排身高相等但胖瘦不同的人排排站看做脉冲宽度不相等的pwm波形。

比如这里有一个简单的电路:

一文看懂舵机硬件pid电路原理

我们以5s为一个周期,在每一个5s内,前3s开关打开,后2s开关闭合,则ab端电压将会这样变化:

一文看懂舵机硬件pid电路原理

(对电路元件的通断进行控制,使输出端得到一系列幅值相等的脉冲。)

(在这个例子中,输入信号脉冲宽度为3s,周期为5s。)

重复一下:所以要控制小车的转角,我们就要控制输出不同脉冲宽度的pwm波。

还有一个新的概念——占空比。

占空比:在周期型的现象中,某种现象发生后持续的时间与总时间的比

例如,在成语中有句话:「三天打渔,两天晒网」,如果以三天为一个周期,“打渔”的占空比则为三分之一。(这一行和上一行摘自百度百科,版权归百度百科。)

因为感觉这个成语说得很对,就拿来它做例子,根据这个成语,大家也应该懂占空比的意思了(所以上图简单的电路,它的占空比应该是3/5)。

PID控制:一种调节器控制规律为比例、积分、微分的控制。其中:P:比例(proportion)、I:积分(integral)、D:导数(derivative)

一文看懂舵机硬件pid电路原理

式子中Kp为比例系数,Ti为积分时间参数,Td为微分时间常数。

各个参数的意义作用:

Kp:比例系数。一般增大比例系数,将加快系统的响应。

Ti:积分时间常数。一般地,积分控制通常与比例控制或比例微分控制联合使用,构成PI或PID控制.增大积分时间常数(积分变弱)有利于小超调,减小振荡,使系统更稳定,但同时要延长系统消除静差的时间.积分时间常数太小会降低系统的稳定性,增大系统的振荡次数.

Td:微分时间常数。一般微分控制和比例控制和比例积分控制联合使用,组成PD或PID控制,微分控制可改善系统的动态特性。

PID的控制方法

1.增量式PID

所谓的增量,就是本次控制量和上次控制量的差值。增量式PID是一种对控制量的增量进行PID控制的一种控制算法。

公式:

一文看懂舵机硬件pid电路原理

(说明:Kp-》P,Ki-》I,Kd-》D,e数组-》error数组,

e[n]-》本次差值,e[n-1]-》上次差值,e[n-2]-》上上次差值)

举个例子,增量式PID可以应用在电机上。

假设当前电机PID的pwm值为5000(精度为10000,即此时的占空比为50%)。对应的速度为100r/s。

程序发出一个命令,要求pwm输出为0,即要求停车。(可能有人有疑问为什么不直接程序给pwm为0,这也是一种方法,可是由于惯性的存在,小车会在一段时间后才停下。)

这时,我们可以采用PID控制的方法来实现。

我们在程序中定义几个变量:

intspeed_now=100;//此刻的速度

intspeed_want=0;//期望输出的速度

intpwm_duty=0;//本次pwm输出值

floatP=100,I=20,D=2;//PID数值

floaterror_pre_pre=0;//上上次差值

floaterror_pre=0.0;//上次差值

floaterror=0.0;//本次差值

根据公式,我们编写程序:

voidPID()

{

/*

增量式PID

P=Kp*(error-error_pre);

D=Kd*(error-2*error_pre+error_pre_pre);

I=Ki*error;

Pwm+=P+I+D;

*/

error=speed_want-speed_now;//speed_now可以通过编码器采值等等方式得到

pwm_duty+=(int)(P*(error-error_pre)+I*error+D*(error-2*error_pre+error_pre_pre));

//注意上面的加号,加号是增量式PID的体现。我们对增量(即右边的式子)进行PID控制。

error_pre_pre=error_pre;

error_pre=error;

}

当函数运行第一次的时候,输出的pwm为:

电机给了一个反转的力,小车前进受到了阻力,于是可以很快的停下来了。

增量式PID的优缺点:

优:

①算式中不需要累加。控制增量Δu(k)的确定仅与最近3次的采样值有关,容易通过加权处理获得比较好的控制效果;

②计算机每次只输出控制增量,即对应执行机构位置的变化量,故机器发生故障时影响范围小、不会严重影响生产过程;

③手动—自动切换时冲击小。当控制从手动向自动切换时,可以作到无扰动切换。

缺:需要对控制量进行记忆。

2.位置式PID

与增量式不同,位置式PID不需要对控制量进行记忆,直接对偏差值进行计算得出期望的pwm。

一文看懂舵机硬件pid电路原理

公式:

一文看懂舵机硬件pid电路原理

举个例子,位置式PID可以应用在舵机上。因为舵机本次的pwm输出值与上次pwm输出值关系不太,舵机需要的是快速转到某个角度。

假设舵机pwm输出1000时舵盘转轴为90°,pwm输出0时舵盘转轴为0°,pwm输出2000时舵盘转轴为180°。

现在舵机pwm输出为1500,我们要让舵盘转到最中间。

在这里我们采用PD控制,即I值为0(I值为偏差的积分,即对偏差求和。我们当时试验小车的舵机控制时发现I值可以省略,PD控制足矣。当然,具体需不需要I项要在实际中进行分析验证)。

代码:

一文看懂舵机硬件pid电路原理

其他:

反馈系统:

一文看懂舵机硬件pid电路原理

舵机用PID控制是使小车保持在赛道中央,即偏移距离为0.根据传感器反馈过来的偏移距离用PID计算出给舵机的脉宽,这样就会使小车的偏移距离为0。在飞思卡尔智能车项目里面,我们就会用到PID算法,比如车爬坡和平底连续拐弯时。

PID算法的应用基础最开始是对PCB板上的运放的PID参数就行调校。P对应于运放增益;I是运放输入和输出端之间接一个电容引入反馈,就是控制器的输出和输入误差会累积起来影响输出;D就是运放输入端串接一个电容,起的微分作用是阻止输出与输入误差的变化,结合示波器来观察控制电机的PID参数设定。

PID一般有两种:位置式PID和增量式PID。在小车中一般用增量式。因为位置式PID的输出与过去的所有状态有关,计算时要对e(每一次的控制误差)进行累加,这个计算量非常大,而且没有必要。而且小车的PID控制器的输出并不是绝对数值,而是要一个△,代表增多少,减多少。通过增量PID算法,每次输出是PWM要增加多少或者减少多少,而不是PWM的实际值。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PID控制
    +关注

    关注

    10

    文章

    460

    浏览量

    40040
  • 舵机
    +关注

    关注

    17

    文章

    264

    浏览量

    40952
收藏 人收藏

    评论

    相关推荐

    看懂PID算法

    首先帮大家解决下什么是PID调节,为什么就要这样的疑惑。PID是比例,积分,微分的英文单词的首字母的简称。下面举个例子说明PID,让大
    发表于 07-19 16:54

    教你如何看懂电源电路单元

    组成的。因此初学者只要先熟悉常用的基本单元电路,再学会分析和分解电路的本领,看懂般的电路图应该是不难的。按单元
    发表于 02-20 18:33

    请问舵机PID怎么调?

    请问各位大侠,舵机PID 是怎么调出来的??? 多谢多谢!!!
    发表于 03-26 00:32

    看透什么是舵机舵机的工作原理是什么?

    舵机的工作原理是啥?舵机(Servo)里面都是些什么?舵机外的三根线是从上面哪个构件上引出来的?舵机依靠什么控制?
    发表于 06-30 06:17

    读懂什么是舵机

    什么是舵机舵机是由哪些部分组成的?怎样去控制舵机舵机的应用有哪些?数码舵机与模拟舵机有何区别
    发表于 08-19 06:08

    通过PID算法控制电机转速和舵机角度实现闭环控制

    ,通过PID算法控制电机转速和舵机角度,实现闭环控制。硬件电路分为:主控模块、传感器模块、电源模块、电机驱动模块、速度检测模块、车距检测模块、通信模块和蓝牙串口等辅助调试模块、
    发表于 08-26 10:45

    基于模糊PID控制的导弹舵机伺服控制器

    基于模糊PID控制的导弹舵机伺服控制器-2011。
    发表于 04-05 16:32 45次下载

    采用模糊PID控制律的舵机系统设计

    模糊PID控制率的舵机系统设计,有助于对舵机的理解和对模糊PID的理解。
    发表于 05-06 14:37 9次下载

    看懂步进电机和舵机及伺服电机的区别

    本文首先介绍了步进电机和舵机及伺服电机的区别,其次介绍了步进电机基本原理,最后介绍了舵机的构造的原理及介绍了伺服电机的工作原理。
    发表于 05-11 08:45 13.2w次阅读

    数字舵机控制原理是什么_数字舵机与模拟舵机的区别

    数字舵机(Digital Servo)和模拟舵机(Analog Servo)在基本的机械结构方面是完全样的,主要由马达、减速齿轮、控制电路等组成,而数字
    的头像 发表于 05-30 16:29 6.3w次阅读

    【理论】看懂数字PID

    数字PID主要是应用于MCU上的PID程序实现,PID调节是种反馈闭环调节,通过传感器反馈回的数据来指导MCU的数据输出。如果你耐心仔细读完本文,我相信你对数字式
    发表于 12-08 17:06 11次下载
    【理论】<b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>看懂</b>数字<b class='flag-5'>PID</b>

    看懂FPGA芯片投资框架.zip

    看懂FPGA芯片投资框架
    发表于 01-13 09:06 4次下载

    看懂PCB天线、FPC天线的特性.zip

    看懂PCB天线、FPC天线的特性
    发表于 03-01 15:37 33次下载

    看懂BLE Mesh

    看懂BLE Mesh
    的头像 发表于 12-06 16:24 1425次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>看懂</b>BLE Mesh

    看懂舵机规格书-帮你选择合适的舵机

    舵机种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。常应用于各种航模、车模、玩具无人机当中。起初常被应用于各种航模、车模、玩具当中。它的特点是控制简单,成本低,体积小扭力大;随着舵机生产技术的进步
    的头像 发表于 03-05 09:22 3238次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>看懂</b><b class='flag-5'>舵机</b>规格书-帮你选择合适的<b class='flag-5'>舵机</b>