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

经典PID控制算法原理以及优化思路

文章目录

  • 0、概念
  • 1、理解
  • 2、实现
  • 3、优化
  • 4、引用


在这里插入图片描述

0、概念

PID算法是工业应用中最广泛算法之一,在闭环系统的控制中,可自动对控制系统进行准确且迅速的校正。PID控制,即Proportional §– Integral(I) – Derivative(D) Control, 实际上是三种反馈控制:比例控制,积分控制与微分控制的统称。根据控制对象和应用条件,可以采用这三种控制的部分组合,即P控制,PI控制,PD控制或者是三者的组合,即真正意义上的PID控制。我们可以笼统地去称呼他们为PID控制律。采取这种控制规律的控制器,我们称为PID控制器PID控制模型如下图所示
在这里插入图片描述
有其推导出公式(直接截图)
在这里插入图片描述
括号内第一项是比例项,第二项是积分项,第三项是微分项,前面仅仅是一个系数。很多情况下,仅仅需要在离散的时候使用,则控制可以化为
在这里插入图片描述
系数进一步统一:
在这里插入图片描述
再进一步的简化:
在这里插入图片描述
我觉得优点可以概括为:快速,精准,稳定


1、理解

由上面的公式可以理解,在实际应用中主要是针对三个比例系数的调优:
在这里插入图片描述

有人这么理解pid控制算法: p是控制现在,i是纠正曾经,d是管控未来!只有不忘过往,把握当前,规划未来才能让人生的轨迹按照既定的目标前进。

比例系数:kp
比例环节的作用是对偏差瞬间作出反应。偏差一旦产生控制器立即产生控制作用, 使控制量向减少偏差的方向变化。 控制作用的强弱取决于比例系数Kp, 比例系数Kp越大,控制作用越强, 则过渡过程越快, 控制过程的静态偏差也就越小; 但是Kp越大,也越容易产生振荡, 破坏系统的稳定性。 故而, 比例系数Kp选择必须恰当, 才能过渡时间少, 静差小而又稳定的效果。

积分系数:ki
从积分部分的数学表达式可以知道, 只要存在偏差, 则它的控制作用就不断的增加; 只有在偏差e(t)=0时, 它的积分才能是一个常数,控制作用才是一个不会增加的常数。 可见,积分部分可以消除系统的偏差。

积分环节的调节作用虽然会消除静态误差,但也会降低系统的响应速度,增加系统的超调量。积分常数Ti越大,积分的积累作用越弱,这时系统在过渡时不会产生振荡; 但是增大积分常数Ti会减慢静态误差的消除过程,消除偏差所需的时间也较长, 但可以减少超调量,提高系统的稳定性。

微分系数:Kd
实际的控制系统除了希望消除静态误差外,还要求加快调节过程。在偏差出现的瞬间,或在偏差变化的瞬间, 不但要对偏差量做出立即响应(比例环节的作用), 而且要根据偏差的变化趋势预先给出适当的纠正。

举一个例子:汽车从0加速到100这个过程。
在理想的情况下只需要比例系数Kd,这里取0.5
t =1 速度为50,
t = 2 速度为 75,

时间上总会无限趋近与100

但是实际情况是地面有摩擦,空气有阻力,系统受外部环境和实际情况影响t=1秒,实际情况达不到50,这种情况下可能达不到给到100速度实际情况只有90多,这时候加上一个 ki,来弥补达不到的速度,那么问题又来了,系统的从0-100时间上又会被Ki影响,这里在引入一个Kd来加快调节整个系统时间。


2、实现

一个简单的C语言实现:

// 第一步:定义PID变量结构体,代码如下:
struct _pid{float SetSpeed;            //定义设定值float ActualSpeed;         //定义实际值float err;                 //定义偏差值float err_last;            //定义上一个偏差值float Kp,Ki,Kd;            //定义比例、积分、微分系数float voltage;             //定义电压值(控制执行器的变量)float integral;            //定义积分值
}pid;//第二部:初始化变量,代码如下:
void PID_init(){pid.SetSpeed=0.0;pid.ActualSpeed=0.0;pid.err=0.0;pid.err_last=0.0;pid.voltage=0.0;pid.integral=0.0;pid.Kp=0.2;pid.Ki=0.015;pid.Kd=0.2;
}
//第三步 pid算法的实现
float PID_realize(float speed){pid.SetSpeed=speed;pid.err=pid.SetSpeed-pid.ActualSpeed;pid.integral+=pid.err;pid.voltage=pid.Kp*pid.err+pid.Ki*pid.integral+pid.Kd*(pid.err-pid.err_last);pid.err_last=pid.err;pid.ActualSpeed=pid.voltage*1.0;return pid.ActualSpeed;
}//测试代码int main(){printf("System begin \n");PID_init();int count=0;while(count<1000){float speed=PID_realize(200.0);printf("%f\n",speed);count++;}
return 0;
}

3、优化

在这里插入图片描述
在实际应用过程中会对某个值做偏重,因为每个值都影响系统不同的反应:如稳定,灵敏度等,在实际工程考虑情况不一样,在引入各个参数的时机也不一样,具体优化见参考2.


4、引用

1、一文搞懂PID控制算法
2、PID控制算法的C语言实现


相关文章:

经典PID控制算法原理以及优化思路

文章目录0、概念1、理解2、实现3、优化4、引用0、概念 PID算法是工业应用中最广泛算法之一&#xff0c;在闭环系统的控制中&#xff0c;可自动对控制系统进行准确且迅速的校正。PID控制&#xff0c;即Proportional – Integral(I) – Derivative(D) Control, 实际上是三种反馈…...

经典面试题之赋值和深浅拷贝的区别

1.区别 **赋值&#xff1a;**基本数据直接拷贝&#xff0c;互不影响&#xff0c;引用数据把地址赋值给新对象&#xff0c;新旧对象指向同一个地址。 **浅拷贝: **基本类型之间互不影响&#xff0c;对象只会复制对象的第一层基本数据和引用类型的地址&#xff0c;对象内部嵌套的…...

电子取证的电脑配置有关问题,以我仅有的知识为大家建议一下。

电子取证火力很重要&#xff0c;用轻薄本是没法取证的&#xff0c;所以至少是全能本或者是游戏本&#xff0c;牛逼的选手上台式&#xff0c;参考浙警许专家&#xff0c;yyds我专家&#xff01; 我从实战出发&#xff0c;参考历年“美亚杯”和“长安杯”比赛&#xff0c;给大家…...

【基础算法】单链表的OJ练习(5) # 环形链表 # 环形链表II # 对环形链表II的解法给出证明(面试常问到)

文章目录前言环形链表环形链表 II写在最后前言 本章的OJ练习相对于OJ练习(4)较为简单。不过&#xff0c;本章的OJ最重要的是要我们证明为何可以这么做。这也是面试中常出现的。 对于OJ练习(4)&#xff1a;-> 传送门 <-&#xff0c;分割链表以一种类似于归并的思想解得&a…...

MySQL 基础教程[13]

MySQL 基础教程[13]问题1问题1代码问题2问题2代码本系列MySQL 基础教程通过“问题-代码”的方式介绍各类方法&#xff0c;每篇设置2个MySQL综合问题&#xff0c;并给出解决方案。 问题1 kwgl数据库中有学生基本信息表student和系别表dept。表结构及说明如下: student (sid, s…...

个人练习-Leetcode-826. Most Profit Assigning Work

题目链接&#xff1a;https://leetcode.cn/problems/most-profit-assigning-work/ 题目大意&#xff1a;给出一串任务&#xff0c;difficulty表示任务难度&#xff0c;profit表示任务的收益&#xff08;以下简称diff和pro&#xff09;。给出一串工人的能力worker。每个工人只能…...

云原生周刊:边缘计算会吞噬云吗?| 2023.3.13

文章推荐 边缘计算吞噬云&#xff1f; 这篇文章讨论了边缘计算对传统云计算的潜在冲击。 边缘计算是一种新型的计算架构&#xff0c;它将计算移动到离数据源和终端设备更近的地方&#xff0c;从而提供更快的响应时间和更好的用户体验。相比之下&#xff0c;云计算是一种集中…...

python+django+vue图书个性化推荐系统

整个系统是由多个功能模块组合而成的&#xff0c;要将所有的功能模块都一一列举出来&#xff0c;然后进行逐个的功能设计&#xff0c;使得每一个模块都有相对应的功能设计&#xff0c;然后进行系统整体的设计。 本图书个性化推荐系统结构图如图python manage.py runserver 开…...

经典文献阅读之--LIO-PPF(增量平面预拟合LIO)

0. 简介 自从ikd-tree出来后&#xff0c;现在越来越多的工作瞄准了增量式这种方法&#xff0c;比如说激光惯导里程计&#xff08;LIDAR-Inertial Odometry&#xff0c;LIO&#xff09;的高精度跟踪通常涉及最小化点到平面距离的k最近邻&#xff08;kNN&#xff09;搜索&#x…...

ChatGPT背后有哪些关键技术?CSIG企业行带你一探究竟

目录1 ChatGPT的时代2 CSIG企业行3 议题&嘉宾介绍3.1 对生成式人工智能的思考3.2 对话式大型语言模型研究3.3 文档图像处理中的底层视觉技术4 观看入口1 ChatGPT的时代 2015年&#xff0c;马斯克、美国创业孵化器Y Combinator总裁阿尔特曼、全球在线支付平台PayPal联合创始…...

C#基础之面向对象编程(二)

总目录 文章目录总目录前言一、概述1. 定义2. 面向对象的三大特性二、封装1. 定义2. 属性三、继承1. 定义2. 继承的使用3. base 和this四、多态1. 定义2. 重写和重载3. 多态性的实现1、静态多态性2、动态多态性4. 向上转型和向下转型1、定义2、语法格式3、案例结语前言 本文主…...

蓝桥杯刷题冲刺 | 倒计时25天

作者&#xff1a;指针不指南吗 专栏&#xff1a;蓝桥杯倒计时冲刺 &#x1f43e;马上就要蓝桥杯了&#xff0c;最后的这几天尤为重要&#xff0c;不可懈怠哦&#x1f43e; 文章目录1.完全二叉树1.完全二叉树 题目 链接&#xff1a; 完全二叉树的权值 - 蓝桥云课 (lanqiao.cn) 给…...

c语言—动态内存管理

一.为什么存在动态内存开辟开辟空间的特点&#xff1a;空间开辟大小是固定的数组在申明时&#xff0c;必须指定数组长度&#xff0c;她所需要的内存在编译时分配但是对于空间的需求&#xff0c;不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道&#xff…...

请说明Ajax、Fetch、Axios三者的区别

相同点&#xff1a; 1、三者都用于网络请求&#xff0c;但是不同维度 2、 Ajax(Asynchronous Javascript and XML)&#xff0c;一种技术的统称&#xff0c;并不是实际的API 3、Fetch是一个具体的API&#xff0c;浏览器里面直接有一个API就叫Fetch 4、 Axios是一个第三方库&…...

阿里p8测试总监,让我们用这份《测试用例规范》,再也没加班过

经常看到无论是刚入职场的新人&#xff0c;还是工作了一段时间的老人&#xff0c;都会对编写测试用例感到困扰&#xff1f;例如&#xff1a; 固然&#xff0c;编写一份好的测试用例需要&#xff1a;充分的需求分析能力 理论及经验加持&#xff0c;作为测试职场摸爬打滚的老人&…...

【Unity】数据持久化路径Application.persistentDataPath

今天突然想到这个路径Application.persistentDataPath&#xff0c;热更的重要路径&#xff0c;该文件夹可读可写&#xff0c;在移动端唯一一个可读写操作的文件夹。移动端可以将本地的资源&#xff08;资源MD5值配置表&#xff09;等一些文件放到StreamingAssets文件夹下&#…...

华为OD机试 - 插队(Java JS Python)

题目描述 某银行将客户分为了若干个优先级, 1 级最高, 5 级最低,当你需要在银行办理业务时,优先级高的人随时可以插队到优先级低的人的前面。 现在给出一个人员到来和银行办理业务的时间序列,请你在每次银行办理业务时输出客户的编号。 如果同时有多位优先级相同且最高…...

MongoDB数据库从入门到精通系列之八:调整oplog大小

MongoDB数据库从入门到精通系列之八:调整oplog大小 一、oplog的概念二、oplog大小三、调整oplog大小详细步骤一、oplog的概念 操作日志oplog包含了主节点执行的每一次写操作。oplog是存在于主节点local数据库中的一个固定集合。从节点通过查询此集合以获取需要复制的操作。每个…...

PCL 间接平差法拟合二维直线

目录 一、算法原理二、代码实现三、结果展示四、相关链接一、算法原理 通过传统最小二乘法对点云数据进行二维直线拟合时,可将误差只归因于一个方向上,本文假设误差只存在于 y y y轴方向上,设点云拟合的二维直线方程为: y =...

进程调度的基本过程

这里写目录标题什么是进程进程管理结构体或类的主要属性pid内存指针文件描述符表辅助进程调度的属性并发并行并发什么是进程 进程是操作系统对一个正在运行的程序的一种抽象&#xff0c;也就是说&#xff0c;一个运行起来的程序就是一个进程。 进程又是操作系统进行资源分配的…...

BGE-Large-Zh模型安全:对抗样本防御策略

BGE-Large-Zh模型安全&#xff1a;对抗样本防御策略 1. 引言 在人工智能技术快速发展的今天&#xff0c;语义向量模型已经成为搜索、推荐和知识检索等领域的核心组件。BGE-Large-Zh作为优秀的中文语义向量模型&#xff0c;在处理文本理解和语义匹配任务中表现出色。然而&…...

ANIMATEDIFF PRO性能实测:RTX 3060也能跑?显存不足应急方案

ANIMATEDIFF PRO性能实测&#xff1a;RTX 3060也能跑&#xff1f;显存不足应急方案 1. 当电影级渲染遇到入门级显卡 最近在星图GPU平台上折腾ANIMATEDIFF PRO&#xff0c;说实话&#xff0c;一开始我是抱着“试试看”的心态。毕竟官方推荐配置写着“RTX 4090最佳”&#xff0…...

MiniMax Token Plan 权益码

MiniMax 专属邀请码订阅 Token Plan&#xff0c;享9折优惠&#xff0c;并获得 Builder 身份&#x1f449; 立即参与&#xff1a;https://platform.minimaxi.com/subscribe/token-plan?code1EcvFvxqXP&sourcelinkMiniMax M2.7 已上线 性价比突出 与 openclaw 最佳组合之一。…...

如何快速开发微信应用?WeChatDeveloper for PHP 完整指南

如何快速开发微信应用&#xff1f;WeChatDeveloper for PHP 完整指南 【免费下载链接】WeChatDeveloper zoujingli/WeChatDeveloper: WeChatDeveloper 是一个用于微信开发的 PHP 库&#xff0c;提供了微信公众平台的接口封装和 SDK&#xff0c;可以用于快速开发微信公众平台和小…...

企业合规新选择:LiuJuan Z-Image图片生成+AI审核一体化方案

企业合规新选择&#xff1a;LiuJuan Z-Image图片生成AI审核一体化方案 1. 企业图片生成面临的合规挑战 在数字化转型浪潮中&#xff0c;AI图片生成技术正迅速改变企业的内容生产方式。LiuJuan Z-Image Generator作为一款高性能的本地化图片生成工具&#xff0c;能够快速产出各…...

SenseVoice-Small模型Dify工作流集成:打造无代码语音AI应用

SenseVoice-Small模型Dify工作流集成&#xff1a;打造无代码语音AI应用 你是不是也遇到过这样的场景&#xff1f;手头有一堆会议录音、访谈音频&#xff0c;需要整理成文字稿&#xff0c;再提炼出核心要点&#xff0c;最后还得把总结发出去。整个过程繁琐又耗时&#xff0c;得…...

基于QT的Lingyuxiu MXJ LoRA桌面应用开发

基于QT的Lingyuxiu MXJ LoRA桌面应用开发 将AI绘画能力装进桌面应用&#xff0c;让创意触手可及 1. 为什么需要桌面端LoRA应用&#xff1f; 如果你用过在线AI绘画平台&#xff0c;肯定遇到过这样的困扰&#xff1a;网络不稳定时生成中断&#xff0c;想批量处理图片却只能一张张…...

别再只pip install了!PySerial模块在Windows/Linux/macOS上的完整安装与验证指南

别再只pip install了&#xff01;PySerial模块在Windows/Linux/macOS上的完整安装与验证指南 当你第一次尝试用Python控制Arduino或树莓派的串口时&#xff0c;pip install pyserial这个看似简单的命令可能会让你陷入长达数小时的调试噩梦。不同操作系统、Python版本和环境配置…...

Visual Studio深度清理指南:从残留困境到环境净化

Visual Studio深度清理指南&#xff1a;从残留困境到环境净化 【免费下载链接】VisualStudioUninstaller Visual Studio Uninstallation sometimes can be unreliable and often leave out a lot of unwanted artifacts. Visual Studio Uninstaller is designed to thoroughly …...

Qwen3.5-9B多场景:食品包装图像理解+营养成分表提取案例

Qwen3.5-9B多场景&#xff1a;食品包装图像理解营养成分表提取案例 1. 案例背景与价值 在食品行业&#xff0c;快速准确地获取包装上的关键信息一直是个挑战。传统方法需要人工查看包装、手动记录数据&#xff0c;效率低下且容易出错。Qwen3.5-9B模型通过其强大的视觉-语言理…...