当前位置: 首页 > news >正文

学习笔记:PID算法入门笔记-电机控制-倒立摆

文章目录

  • 前言
  • 一、PID基本原理
    • 1. PID简介
    • 2. 开环和闭环
    • 3. PID公式与系统框图
      • 3.1 比例项(P)
      • 3.2 比例项(P)波形分析
      • 3.3 稳态误差
      • 3.4 积分项(I)
      • 3.5 积分项(I)波形分析
      • 3.6 微分项(D)
      • 3.7 微分项(D)波形分析
    • 4. 连续形式PID和离散形式PID
      • 4.1 连续形式PID离散化示意图
      • 4.2 位置式PID与增量式PID公式
      • 4.3 位置式PID与增量式PID比较
    • 5. C语言程序编程思路
      • 5.1 PID程序实现
      • 5.2 位置式PID程序实现
      • 5.3 增量式PID程序实现(控制器内积分,输出全量)
    • 6.
  • 二、PID算法改进
  • 三、双环PID基本原理

前言

本文记录了PID算法入门学习的笔记,所学课程:江科大的《PID入门教程》,开发板使用STM32F103C8T6最小系统板+模块的组合。本文部分图片素材,从江科大教程所提供的资料中获得,MCU使用的是STM32F103C8T6。后续增加学习课程,也会综合记录。

学习PID之前,已经学习STM32的入门教程。

一、PID基本原理

1. PID简介

1)PID是比例(Proportional)、积分(Integral)、微分(Differential)的缩写
2)PID是一种闭环控制经典算法,它动态改变施加到被控对象的输出值(Out),使得被控对象某一物理量的实际值(Actual),能够快速、准确、稳定地跟踪到指定的目标值(Target)
3)PID是一种基于误差(Error)调控的算法,其中规定:误差=目标值-实际值,PID的任务是使误差始终为0
4)PID对被控对象模型要求低,无需建模,即使被控对象内部运作规律不明确,PID也能进行调控

2. 开环和闭环

1)开环(Open Loop):控制器单向输出值给被控对象,不获取被控对象的反馈,控制器对被控对象的执行状态不清楚,例如:PWM驱动舵机

2)闭环(Closed Loop):控制器输出值给被控对象,同时获取被控对象的反馈,控制器知道被控对象的执行状态,可以根据反馈修改输出值以优化控制,例如:锅炉的温度控制,电机速度的控制

3. PID公式与系统框图

3.1 比例项(P)

3.2 比例项(P)波形分析

红线:目标值(Target)
紫线:实际值(Actual)
输出值(Out):PWM占空比

3.3 稳态误差

1)PID稳态误差:系统进入稳态时,实际值和目标值存在始终一个稳定的差值
2)稳态误差产生原因:纯比例项控制时,若误差为0,则比例项结果也为0。被控对象输入0时,一般会自发地向一个方向偏移,产生误差。产生误差后,误差非0,比例项负反馈调控输出,当调控输出力度和自发偏移力度相同时,系统达到稳态
3)判断是否会产生稳态误差:给被控对象输入0,判断被控对象会不会自发偏移
4)判断稳态误差的方向:给被控对象输入0,自发偏移方向即为稳态误差方向

3.4 积分项(I)

3.5 积分项(I)波形分析

红线:目标值(Target)
紫线:实际值(Actual)
输出值(Out):PWM占空比

3.6 微分项(D)

3.7 微分项(D)波形分析

实际值的变化应该是缓慢接近目标值,如果过快比如蓝线这样的,就会造成超调问题,所以就需要微分项(D),产生反向作用力,就可以“阻碍”蓝线过快,就可以避免超调

4. 连续形式PID和离散形式PID


4.1 连续形式PID离散化示意图

4.2 位置式PID与增量式PID公式

1)离散形式的PID基本公式,就是位置式PID
2)增量式PID,就是第k次的输出减去上一次(k-1)的输出,即:k次的输出值,相比上一次输出值的增量

4.3 位置式PID与增量式PID比较

1)位置式PID由连续形式PID直接离散得到,每次计算得到的是全量的输出值,可以直接给被控对象
2)增量式PID由位置式PID推导得到,每次计算得到的是输出值的增量,如果直接给被控对象,则需要被控对象内部有积分功能
3)增量式PID也可在控制器内进行积分,然后输出积分后的结果,此时增量式PID与位置式PID整体功能没有区别
4)位置式PID和增量式PID计算时产生的中间变量不同,如果对这些变量加以调节,可以实现不同的特性

5. C语言程序编程思路

5.1 PID程序实现

5.2 位置式PID程序实现

5.3 增量式PID程序实现(控制器内积分,输出全量)

6.

二、PID算法改进

三、双环PID基本原理

http://www.jsqmd.com/news/188665/

相关文章:

  • 吐血推荐!9款AI论文写作软件测评:研究生科研写作全攻略
  • Python+Vue的 增强可视化的广州IT招聘系统Pycharm django flask
  • Elasticsearch:在 Streams 中使用 ML 自动化 log 解析
  • 聚焦七大主战场丨华为孟晚舟:唯有迎难而上
  • 华为Pura 80系列有多香?到手可升级鸿蒙 6,至高还减1500元
  • phome_enewsfava 数据表字段解释(收藏表)
  • win10/win11安装Word、EXCEL、PPT、VISIO
  • 华为“不讲武德”,6500mAh+100W+鸿蒙OS6,首销跌至“新低价”
  • Creed —— 过场动画
  • 数据安全新防线:本地知识库
  • Creed —— 盾牌格挡
  • phome_enewsfavaclass 数据表字段解释(收藏分类表)
  • C语言2:分支循环
  • phome_enewsmembergroup 数据表字段解释(会员组表)
  • 点击劫持解析:揭秘看不见的界面攻击
  • 【A_Star三维路径规划】基于matlab A_Star算法无人机三维路径规划(含雷达威胁)【含Matlab源码 14816期】
  • phome_enewsmemberf 数据表字段解释(会员字段表)
  • 【AHA三维路径规划】基于matlab人工蜂鸟算法AHA无人机群航迹协同避障路径规划【含Matlab源码 14817期】
  • 盘点现代 AI 流式界面的各种前端技术和实现方法
  • 导师推荐9个AI论文平台,助你轻松搞定本科生毕业论文!
  • Vivado FPGA指导:解答FPGA与DSP SRIO通信互联及图像滤波,配置DSP芯片电...
  • 提示工程在在线课程中的魔法:提示工程架构师的手笔
  • 最近在折腾一个温湿度监控项目,用VB配合MSChart控件搞了个实时曲线显示。这玩意儿需要跟下位机通过串口通信,中间踩了不少坑,今天把关键代码拎出来说说
  • 理光 210开机报sc559代码故障如何维修
  • 基于Python的电子书籍制作与管理系统开题报告
  • 电动汽车再生制动控制策略模型搭建与分析
  • 【ISP】暗角阴影校正-Radial Shading
  • SLURM: sbatch的hint参数介绍和解释
  • 【AHA三维路径规划】人工蜂鸟算法AHA无人机群航迹协同避障路径规划【含Matlab源码 14817期】
  • 2025必备!10个AI论文写作软件,研究生高效写论文神器!