news 2026/5/27 23:49:39

工程师 - 从不懂到会用!PID从理论到实践~

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
工程师 - 从不懂到会用!PID从理论到实践~

从不懂到会用!PID从理论到实践~_哔哩哔哩_bilibili

1,不懂 (秒懂PID概要)

2,略懂(PID基本知识储备)

3,懂的都懂(PID通俗公式理解)

4,会用就行(PID从理论到实践)

1,PID适用系统

适用线性系统,满足叠加性和齐次性。

准确:二阶以内线性系统

2, 一阶系统举例

3,二阶系统举例

4, **数学表达关联**:

线性微分方程的形式为各阶导数及变量的线性组合(如不含变量的平方、乘积等非线性项)。例如:

方程的线性特性保证了系统响应符合叠加原理,由此判定系统为线性的。

5, PID不适用高阶系统,可以将其简化为二阶系统,就可能控制了。

非线性系统,可以通过李雅普诺夫第一方法,在平衡点处线性化,转变为线性系统,也可能通过PID进行控制。

6,宏观意义

在工业应用上,占有95%应用比例。

上手简单,无需对子系统精确建模。

把系统拿过来,直接就控制。

7,控制系统概述

A. 一般开环控制系统。一个系统有输入X和输出Y。

加入要控制阀门控制水的流量,要1L/s。一个流量控制系统。

实际输出就是实际水的流量,按照期望输出对应的就是对应的设定输入信号,然后给到控制器,就是阀门开关。控制量就是圈数比如一圈。

执行器就是阀门,控制对象就是水管开度。

拧完就不管了,不会看输出的实际流量。

8,B, 前馈控制系统的框图

这个干扰,比如在输出的罐子里放一些石头,减少了流量。

检测到干扰,输出的孔径变小了,告诉控制的人,多拧一圈。

9,闭环控制系统

控制器输入的是偏差Error, E = X - Y。

人脑是控制器,人眼去看,实际输出的流量差异是多少,再调节控制器输入。

10,双闭环系统,内环和外环。

现在不是流量控制系统,而是液位控制系统。

有流量的控制,可以有一个相对稳定的流量,更方便。

11,前馈反馈复合控制系统

有一个前馈控制器,这样抵消干扰对控制对象的作用。

12,参数详解

a, 误差 Error

期望输出(输入) - 实际输出

b,控制器输出

控制器的输入,可以是开环的输入,或者是闭环的做差的Error值。

这个Error通过控制的PID运算或其他算法,得到的值,给执行器的输入。

c,执行器输出

直接作用到对象。

d,系统输出

对象后面的输出。

13,连续与离散信号

这个离散信号的积分感觉不对,还要乘以一个系数的。

14,PID公式解释,抽象派

C是控制系统的输出,上面的Uc。

e是控制系统的误差,期望输出 - 实际输出。

下面是实际常用中的归一化。

15,PID算法的形象解释

小车的控制系统建模,使用前面的单闭环控制系统。

4个执行器。

传感器把速度或者位置信息给到输入。

把输入设定为期望位置,输出是实际位置。

小车前面100米有堵墙。

16, 先只研究P。

PID可以只用P,只用PI,只用PD。

P给0.1, 100m误差,就是10m/s的信号。执行器实现对地10m/s的速度。

速度对时间的积分就是行驶距离。

17,想要控制的更快?调整PID的值。P值0.5,快。

P值0.05,慢。曲线也不一样。

P值的作用调节控制系统,到达期望值的时间。

18,第二个例子无人机。

控制信号是螺旋桨转速,悬停时是100 rpm。

对P取值,1,2,3,100,1000.

发现最后总会中间就停下。比如P=100,则在99m处悬停。因为100-99=1, 1x100=100 rpm。

无限接近100m,但无法到达100m。

对无人机这个系统,只靠P就不行。所以要引入 I 项。

19,偏差在控制系统里叫稳态误差,一般用 I 来弥补。比如悬停在99m,稳态误差就是100-99=1m。

当悬停时的P项输出,误差恒定,P输出恒定。需要引入I。

下图E偏差信号,即误差一直为1,比例系数Pterm也一直不变,为100 *(100-99)= 100 rpm,维持悬停。

误差一直不变,就会一直积累,是线性函数,就是积分项。

20,

再分析一下偏差为0的情况。

积分项还在,因为是之前所有的误差一直累积下来的,偏差为0时,积分项值继续保持。

实际的积分项和比例项的曲线:

21,

积分项和比例项一起,就会在初始提供很大的速度,那无人机就会飞过头。出现超调。

所以需要引入一个微分项D。

22,误差图形:

有些系统不让你超太多或有限制的。所以要加入微分项。

对误差求导,误差变化率是负的。

23,

Kp越大,则误差减小越快。

Ki越大,则静差越容易抵消,后期响应速度更快。是说这个系统,达到期望值之前进入的一个稳定静止状态。

Kd越大,则误差变化越大,则提供的降低的控制信号越大。抵消一些。

Kp控制主要期望值的变化速率,Kd控制期望值的变化速率,Ki控制期望值的收敛速度。

单个Kp无法消除稳态误差。

Kd减小超调效果,减小震荡。值太大会增加调整时间。

24,PID参数整定。调参。

Kp逐渐调大,使曲线达到某种靠近和贴合度,达到稳定误差之前的时间。

在Kp合适情况下,Ki提供了误差消减的持续动力,所以为加强调节速度。

Kd,系统出现超调,为了减少震荡,太大会增加系统调节时间,减少震荡幅度却增加了震荡周期。

一般用PI就可以,出现震荡的话再加入D。

25,其余相关控制知识

a, 积分限幅

如果手一直按住无人机。I 项会线性增长会变很大,P恒定。

松手后,输出信号就很大,飞的就很离谱的快。

所以加一个限制的最大值。

所以使用积分项的第一个问题就是误差变化延迟后,随时间会积累变得过大,要进行阈值的限制。

b, 积分分离

当无人机达到期望高度后,要由 I 项保持无人机悬停。这时再给一个新的较高的期望值高度。

这时就会出现积分项较大的情况。所以做一个分离,比如说误差不能超过500,超过500,积分作用等于0,只依靠P的作用。

等到误差降低到一定范围,积分项再开始生效。

c,微分先行。

26,使用PID控制电机。发送端是单片机, STM32。

控制器输出的主控发送值,是有协议的。

27,

执行器是个电调C620,使用CAN发送信号,接收命令后控制电机。

28,代码

29,RM电机6020角度双环。双环,外环角度,内环速度。

期望输出和实际输出都是角度值。输入角度减去输出角度,得到偏差信号E,给到控制器。

再进行PID运算得到结果,再和第二个传感器的值做差得到偏差,这个是速度偏差。

经过第二个PID控制器,才得到一个执行器需要的输出结果。然后作用到对象。

6020是一个集成的。电机会输出角度速度电流扭矩等。这个模块会返回信息给单片机。

PID在进行第一次处理时,对角度做了一个量纲转化。角度变成了角速度,乘以R就是V。

比如小车的例子,位移单位m或cm,经过转换变为速度,也是一个量纲转化。

30, 代码讲解,比如设定值30°。

具体运算和单环的一样。

30,角度更新的代码

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

如何用AI诊断和解决MySQL锁等待超时问题

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个MySQL锁等待超时分析工具,能够自动解析错误日志,识别导致锁等待的SQL语句和事务,提供优化建议如索引调整、事务拆分或隔离级别修改。工…

作者头像 李华
网站建设 2026/5/22 5:40:16

STARWIND V2V入门指南:5步完成首次转换

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个交互式新手教程应用,通过5个简单步骤引导用户完成首次STARWIND V2V转换。包括:1) 安装配置 2) 选择源文件 3) 设置目标格式 4) 执行转换 5) 验证结…

作者头像 李华
网站建设 2026/5/20 12:12:04

OPENSPEC在企业级API开发中的实战案例

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 生成一个企业级电商平台的OPENSPEC规范示例,包含商品管理、订单处理和用户认证模块。要求每个模块有详细的接口定义,包括路径、参数、请求和响应示例。特别…

作者头像 李华
网站建设 2026/5/21 21:08:21

Element Plus开发效率对比:传统vsAI辅助

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个对比实验项目:1. 传统方式手动开发Element Plus表格组件(含复杂筛选和自定义列);2. 使用快马AI生成相同功能的组件。记录两…

作者头像 李华
网站建设 2026/5/22 12:05:24

5分钟快速验证:OPENJDK8在线试用方案

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建一个基于Web的OPENJDK8沙箱环境,功能包括:1) 在线代码编辑器 2) 即时编译执行 3) 常用Java库预装 4) 代码分享功能 5) 基础调试支持。要求响应快速&…

作者头像 李华
网站建设 2026/5/22 22:10:28

Java农场投入品农产品商城发票运营管理系统vue3

目录系统概述核心功能技术架构应用价值开发技术核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!系统概述 Java农…

作者头像 李华