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

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

3天内不再提示

pid控制中三个参数的作用

STM32嵌入式开发 来源:STM32嵌入式开发 2023-08-23 09:31 次阅读

PID控制应该算是非常古老而且应用非常广泛的控制算法了,小到热水壶温度控制,大到控制无人机的飞行姿态和飞行速度等等。在电机控制中,PID算法用得尤为常见。

位置式PID 1 计算公式电机控制中,我们给电机输出的是一个PWM占空比的数值。 话不多说,直接上位置式PID基本公式: d20a477c-4138-11ee-a2ef-92fbcf53809c.png     控制流程图如下: d2306e2a-4138-11ee-a2ef-92fbcf53809c.png     上图中的目标位置一般我们可以通过按键或者开关等方式编程实现改变目标值,测量位置就是通过 stm32 去采集编码器的数据。     目标位置和测量位置之间作差就是目前系统的偏差。送入 PID 控制器进行计算输出,然后再经过电机驱动的功率放大控制电机的转动去减小偏差, 最终达到目标位置的过程。 2 C语言实现 如何把我们以上的理论分析和控制原理图使用 C 语言写出来呢,这是一个有趣且实用的过程。位置式 PID 具体通过 C 语言实现的代码如下:

int Position_PID (int Encoder,int Target)
{
  static float Bias,Pwm,Integral_bias,Last_Bias;
  Bias=Target- Encoder; //计算偏差
  Integral_bias+=Bias; //求出偏差的积分
  //PID基本公式
  Pwm=Position_KP*Bias+Position_KI*Integral_bias+Position_KD*(Bias-Last_Bias);
  Last_Bias=Bias; //保存上一次偏差
  return Pwm; //输出
}
入口参数编码器的位置测量值和位置控制的目标值,返回值为电机控制PWM(现在再看一下上面的控制框图是不是更加容易明白了)。 第一行是相关内部变量的定义。 第二行是求出位置偏差,由测量值减去目标值。 第三行通过累加求出偏差的积分。 第四行使用位置式 PID 控制器求出电机 PWM。 第五行保存上一次偏差,便于下次调用。 最后一行是返回。 增量式PID 1 计算公式 速度闭环控制就是根据单位时间获取的脉冲数(这里使用了 M 法测速)测量电机的速度信息,并与目标值进行比较,得到控制偏差,然后通过对偏差的比例、积分、微分进行控制,使偏差趋向于零的过程。 d252a92c-4138-11ee-a2ef-92fbcf53809c.png     在我们的速度控制闭环系统里面只使用 PI 控制,因此对 PID 控制器可简化     为以下公式: d274e046-4138-11ee-a2ef-92fbcf53809c.png     控制框图和位置式的一样的。 d28b4a48-4138-11ee-a2ef-92fbcf53809c.png     上图中的目标速度一般我们可以通过按键或者开关等方式编程实现改变目标值,测量速度前面在编码器的章节已经有说到就是通过单片机定时去采集编码器的数据并清零。     目标速度和测量速度之间做差就是目前系统的偏差。送入 PID 控制器进行计算输出,然后再经过电机驱动的功率放大控制电机的转动去减小偏差, 最终达到目标速度的过程。 2 C语言实现 如何把我们以上的理论分析和控制原理图使用 C 语言写出来呢,这是一个有趣且实用的过程。位置式 PID 具体通过 C 语言实现的代码如下:
int Incremental_PI (int Encoder,int Target)
{
  static float Bias,Pwm,Last_bias;
  Bias=Encoder-Target; //计算偏差
  //增量式 PI 控制器
  Pwm+=Velocity_KP*(Bias-Last_bias)+Velocity_KI*Bias;
  Last_bias=Bias; //保存上一次偏差
  return Pwm; //增量输出
}
入口参数为编码器的速度测量值和速度控制的目标值,返回值为电机控制 PWM。

第一行是相关内部变量的定义。

第二行是求出速度偏差,由测量值减去目标值。 第三行使用增量 PI 控制器求出电机 PWM。

第四行保存上一次偏差,便于下次调用。

最后一行是返回。

P、I、D各个参数的作用

自动控制系统的性能指标主要有三个方面:稳定性、快速性、准确性。 稳定性:

系统在受到外作用后,若控制系统使其被控变量随时间的增长而最终与给定期望值一致,则称系统是稳定的,我们一般称为系统收敛。 如果被控量随时间的增长,越来越偏离给定值,则称系统是不稳定的,我们一般称为系统发散。稳定的系统才能完成自动控制的任务,所以,系统稳定是保证控制系统正常工作的必要条件。


一个稳定的控制系统其被控量偏离给定值的初始偏差应随时间的增长逐渐减小并趋于零。

快速性:

快速性是指系统的动态过程进行的时间长短。过程时间越短,说明系统快速性越好,过程时间持续越长,说明系统响应迟钝,难以实现快速变化的指令信号。 稳定性和快速性反映了系统在控制过程中的性能。系统在跟踪过程中,被控量偏离给定值越小,偏离的时间越短,说明系统的动态精度偏高。

准确性:

是指系统在动态过程结束后,其被控变量(或反馈量)对给定值的偏差而言,这一偏差即为稳态误差,它是衡量系统稳态精度的指标,反映了动态过程后期的性能。


在实践生产工程中,不同的控制系统对控制器效果的要求不一样。比如平衡车、倒立摆对系统的快速性要求很高,响应太慢会导致系统失控。 智能家居里面的门窗自动开合系统,对快速性要求就不高,但是对稳定性和准确性的要求就很高,所以需要严格控制系统的超调量和静差。
审核编辑:彭菁
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电机控制
    +关注

    关注

    3465

    文章

    1707

    浏览量

    264466
  • 编码器
    +关注

    关注

    41

    文章

    3362

    浏览量

    131559
  • PWM
    PWM
    +关注

    关注

    114

    文章

    4901

    浏览量

    209949
  • 参数
    +关注

    关注

    11

    文章

    1398

    浏览量

    31476
  • PID控制
    +关注

    关注

    10

    文章

    442

    浏览量

    39703

原文标题:STM32单片机实现电机的PID控制

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    PID的比例,积分,微分三个参数怎么确定呢

    PID的比例,积分,微分三个参数怎么确定呢?
    发表于 04-29 16:02

    请问下列图中三个电阻起到什么作用

    `来自自学者的问题,下列图中三个电阻起到什么作用。`
    发表于 12-28 01:00

    请问四轴的串级pid调试调内环候时外环pid参数如何设置?

    四轴的串级pid调试,在调内环的时候,外环pid三个参数是怎么设置?遥控器给的控制是给在外环上,那我现在要调节内环的
    发表于 08-06 03:56

    什么是PID控制算法?PID控制算法C语言是如何实现的?

    什么是PID控制算法?PID控制算法C语言是如何实现的?特殊情况下的控制算法该如何去调整?比例、积分、微分
    发表于 06-29 09:24

    PID控制中P、I、D参数作用是什么?

    PID控制中有P、I、D三个参数,只有明白这三个参数的含义和
    发表于 06-20 06:50

    什么是PID控制

    PID控制中有P、I、D三个参数,只有明白这三个参数的含义和
    的头像 发表于 07-18 16:10 2.9w次阅读
    什么是<b class='flag-5'>PID</b><b class='flag-5'>控制</b>?

    PID控制参数有什么作用

    PID控制器除了上述Ke、Ti、Td三个参数外,还有采样周期Ts,其作用如下:
    发表于 07-21 10:15 1.3w次阅读
    <b class='flag-5'>PID</b><b class='flag-5'>控制</b>器<b class='flag-5'>参数</b>有什么<b class='flag-5'>作用</b>

    PID控制中P、I、D参数作用

    PID控制中有P、I、D三个参数,只有明白这三个参数的含义和
    的头像 发表于 08-31 09:34 4364次阅读
    <b class='flag-5'>PID</b><b class='flag-5'>控制</b>中P、I、D<b class='flag-5'>参数</b>的<b class='flag-5'>作用</b>

    PID控制中P、I、D参数分别有什么作用

      PID控制中有P、I、D三个参数,只有明白这三个参数的含义和
    的头像 发表于 12-25 17:24 1.5w次阅读

    PID控制中P、I、D参数作用是什么

    PID控制中有P、I、D三个参数,只有明白这三个参数的含义和
    发表于 05-27 15:38 95次下载

    PID控制中如何整定PID参数

    可以得到各种输出响应特性,也就是说,通过适当给定PID参数,大多数的控制任务都可以由PID完成。本文根据经典PID
    发表于 06-01 10:28 59次下载

    pid控制三个参数怎么调整

    pid控制三个参数怎么调整?
    发表于 09-19 09:08 4.6w次阅读

    PID控制中P、I、D参数作用

    PID控制中有P、I、D三个参数,只有明白这三个参数的含义和
    的头像 发表于 09-27 15:27 4303次阅读

    pid三个参数分别起到什么作用

    在计算机科学中,PID(进程标识符)是一个用于唯一标识运行中的进程的整数值。PID主要具有以下三个参数作用: 进程创建:
    的头像 发表于 01-16 14:56 5754次阅读

    什么是pid控制原理 pid各个参数对系统的影响

    参数对系统的影响。 一、PID控制原理 PID控制的基本原理是根据反馈信号来调整输出控制量,使得
    的头像 发表于 01-22 15:35 1338次阅读