news 2026/4/27 17:59:29

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
学习笔记: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基本原理

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 23:30:49

Python+Vue的基于协同过滤算法的电影个性化推荐系统 Pycharm django flask

这里写目录标题项目介绍项目展示详细视频演示感兴趣的可以先收藏起来,还有大家在毕设选题(免费咨询指导选题),项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人技术栈文章下方名片联系我即可~解决的思路…

作者头像 李华
网站建设 2026/4/20 3:30:58

[Linux外设驱动详解]RK3588 启动地址与链接脚本详解

RK3588 启动地址与链接脚本详解 硬件平台: 瑞芯微 RK3588 目录 启动地址(Reset Vector) U-Boot 链接脚本 Linux 内核链接脚本 1. 启动地址(Reset Vector) 1.1 什么是启动地址? 启动地址(Reset Vector) 是 CPU 上电或复位后第一条指令的执行位置。RK3588 启动过程分为…

作者头像 李华
网站建设 2026/4/26 21:09:39

vue+uniapp+小程序php美食菜品点餐订单系统

文章目录VueUniApp小程序与PHP美食点餐订单系统摘要主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!VueUniApp小程序与PHP美食点餐订单系统摘要 该系统采用…

作者头像 李华
网站建设 2026/4/27 17:16:11

vue+uniapp+小程序springboot电影音点评影视评分系统-

文章目录系统概述核心功能技术亮点应用场景主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!系统概述 该系统基于Vue.js与Uniapp框架开发前端小程序&#x…

作者头像 李华
网站建设 2026/4/25 5:34:12

vue+uniapp+小程序springboot高校图书馆座位预约签到微座助手 a7rz7xe1-

文章目录技术架构核心功能创新点应用价值主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!技术架构 该系统采用前后端分离架构,前端基于Vue.js和…

作者头像 李华