带你学习PID控制算法

#PID涉及相关知识

        开环控制系统:开环系统,无反馈系统,即系统的输入不受输出的影响,在受到外界干扰输出效果减小,此时输入也不会增加,因为输出不会对输入施加影响,像是断开的环一样称为开环,

                             

        闭环控制系统:也就是有反馈信息的控制系统,输出量通过反馈信息去影响调节输入量,从而使输出量不断接近设定期望值。当外界存在干扰时,可以通过反馈信息,调节输入,从而抵消干扰。

                             

        PID数学表达式:这个表达式是离散型数学表达式,单片机是离散的表达式,内部是一些数字量而不是连续的模拟量。

                           

        稳态误差:当P算法调节接近预定值的时候,P算法提供的力会减小,此时距离预定值还有很小的误差,但是没有办法解决这个误差叫做稳态误差。

#PID相关介绍

        PID算法是嵌入式开发中最为常用的算法,只要你想用任何一个项目都能用上PID,非常重要。PID算法由 P  I  D 三种算法组成,可以进行不同的组合来达到不同的控制效果,这三种算法分别对应上面公式的 1   2   3 位每个算法也有不同的含义,以及不同的作用。在实际使用中通常不会使用三种算法,通常是拆分。

                       

        P算法作用:在P算法里面 e是指的误差,这里可以看出误差越大,这里P的输出越大,P

算法的作用,是减小测量值和理论值之间的误差(差值),让测量值不断接近理论值。

                                               

        #但是如果只用P算法会存在一个情况,那就是过度调节出现不断靠近预定值,也就是过度调节的情况,一般P算法是跟D算法一起进行使用的,D算法可以减少P算法过度调节而出现的震荡这种情况。

        

   

        这里可以看到当Kp为10 Kd为0的时候,小球不会靠近点,会围绕着这个点运动,震荡,就是不会接近这个点,这里因为此时的KD为0,只有KP。这个实验网站链接放在文章末尾,

        D算法作用:D算法就是为P算法提供阻力,当P算法参数过大时,就会造成输入很大,这时会出现过度调节显现,D算法就是在此时为P算法提供阻力,防止P算法提供哦过冲现象,让系统刚好停留在理论值防止出现过冲现象。1

        ​​​​​​​        ​​​​​​​        ​​​​​​​                       

        (ek-ek-1)-某种程度上就是代表着,系统对P算法调节的阻力响应程度,前文提到e代表着误差,(ek-ek-1)就代表着前后误差绝对值,当ek越大  ek-1越小,就代表了,此时P算法作用力,很大,也就是此时过度响应,此时(ek-ek-1)也就变大,提供的阻力也就越大,反之阻力也就越小。

        ​​​​​​​               ​​​​​        ​​​​​​​            ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​                   

              这里网站实验加入KD之后,发现小球在接近目标点之后,就没有发生移动了,也就验证了D算法对P算法提供的阻力,这里如果只用D算法是没有用的,D算法是对P算法提供阻力,P算法是提供一个调节的力。

        i算法作用: 当系统很接近预定目标值的时候,p算法提供的里很小,起不到继续减小误差的作用,就会出现稳态误差,此时需要用到i算法,让误差值不断地累加,并将累加后的值,进行输出调节,所以i算法通常用于更加精准的控制。不论误差有多少,I算法会累加的越来越大。

        ​​​​​​​        ​​​​​​​        ​​​​​​​                

#代码表达PID算法

        

int PID_function(float measure ,float set)//measure 测量值  set 设定值
{   err = measure -set; //差值err_sum += err;//累加差值I_limit();//ki限制err_diff = err - err_last; //d算法err_last = err;return Kp*err +Ki*err_sum +Kd*err_diff;
}

        当在看一个PID函数的时候,看它的返回值类型,就可以知道,这个函数使用了PID里面的几种算法。

return Kp*err //P算法return Kp*err+Kd*err_differ //PD算法组合return Kp*err+Kd*err_sum //PI算法组合return Kp*err+Kd*err_differ+Kd*err_sum //PID算法组合

                             希望对你所有帮助!!!

Simple PID Online Simulator | PID 在线模拟器 (longluo.me)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/34802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二自由度机械臂软件系统(一)urdf和moveit2

一、urdf模型 参考链接:https://blog.csdn.net/weixin_45168199/article/details/105755388 这部分直接看参考链接就可以,主要思路如下 1、把sw中的零散零件按照机器人中连杆的分类整合成几个大零件 2、把几个大零件整合成装配体,并设置若干…

eNSP中静态NAT和动态NAT的配置和使用

一、静态NAT 1.拓扑图 a.新建拓扑图 b.PC端配置 PC1: PC2&#xff1a; c.路由器配置 AR1: <Huawei>system-view [Huawei]sysname R1 [R1]interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]ip address 192.168.1.254 24 [R1-GigabitEthernet0/0/0]quit…

全网最全图书管理后台系统 ---前端项目简介文档

仅供参考&#xff0c;请勿抄袭 图书管理后台系统 ---前端项目简介 Vue2基础脚手架Request http请求封装(src/utils/request.js)Axios--前端和后端的通信工具前端向后端发送请求&#xff0c;可以把数据传给后端&#xff0c;从后端提取数据 前端跨域解决方案 vue使用request.…

录音怎么转文字更高效?5款软件带你轻松拿捏文本转换~

临近大学生们最难熬的期末考试周&#xff0c;如何在短时间内复习完所有必考的科目也就成为大家迫在眉睫的首要任务。 想要在复习的过程中&#xff0c;更加高效地捕捉和整理关键信息、提高学习效率&#xff0c;那么录音转文字免费应用无疑是你的一大好帮手&#xff01; 倘若你…

关于docker存储overlay2相关问题

报错如下&#xff1a; 报错原因&#xff1a;使用rm -rf 清理overlay2导致的&#xff0c;非正常清理。 正常清理命令如下&#xff1a; # 清理Docker的所有构建缓存 docker builder prune# 删除旧于24小时的所有构建缓存 docker builder prune --filter "until24h"#删…

20240624(周一)欧美股市总结:AI股再熄火!标普纳指连跌三日,英伟达市值跌穿3万亿美元,芯片股指跌3%

市场等待周五的美国PCE重磅通胀数据&#xff0c;今年票委、旧金山联储主席戴利称降息之前“还有更多工作要做”&#xff0c;纳指尾盘加速跳水并收跌1%&#xff0c;但道指五连涨至五周高位。谷歌、微软脱离最高&#xff0c;英伟达跌6.7%为近两个月最差&#xff0c;三天累跌近13%…

vue3-openlayers 点击多边形弹框,高亮多边形,自定义属性传递,鼠标悬浮多边形上动态修改鼠标样式

本篇介绍一下使用vue3-openlayers点击多边形弹框&#xff0c;高亮多边形&#xff0c;自定义属性传递&#xff0c;鼠标悬浮多边形上动态修改鼠标样式 1 需求 加载天地图&#xff0c;polygon传递自定义属性标悬浮在polygon上&#xff0c;根据自定义属性&#xff0c;动态修改鼠标…

web系统数据库敏感数据处理

一、前言 web系统数据库中保存的公民信息不允许明文存储&#xff0c;比如手机号&#xff0c;身份证号&#xff0c;收货地址等。 二、处理方式 数据库中密文存储&#xff0c;web通过注解的方式对数据加解密处理&#xff0c;下面是处理方法 1、编写接口 public interface E…

IIC学习笔记

目录 #I2C涉及相关知识 #I2C相关介绍 欢迎指正&#xff0c;希望对你&#xff0c;有所帮助&#xff01;&#xff01;&#xff01; 个人学习笔记&#xff0c;参考文献&#xff0c;链接最后&#xff01;&#xff01;&#xff01; #I2C涉及相关知识 SDA串行数据线&#xff1a; Ser…

AI降重技术:论文查重率的智能解决方案

现在大部分学校已经进入到论文查重降重的阶段了。如果查重率居高不下&#xff0c;延毕的威胁可能就在眼前。对于即将告别校园的学子们&#xff0c;这无疑是个噩梦。四年磨一剑&#xff0c;谁也不想在最后关头功亏一篑。 查重率过高&#xff0c;无非以下两种原因。要么是作为“…

软通动力携子公司鸿湖万联中标南方电网调峰调频发电有限公司数据采集装置研究开发项目

近日&#xff0c;软通动力携子公司鸿湖万联成功中标南方电网调峰调频发电有限公司数据采集装置研究开发项目。该项目是针对智能化、国产化、自主可控业务需求研制的基于国产芯片、OpenHarmony系统的抽蓄电站机械化施工数据采集设备。本次中标是软通动力布局数字能源战略的一次胜…

大数据组件--Hue

Apache Hue hue是一个集成化的大数据可视化软件&#xff0c;可以通过hue访问浏览操作主流的大数据生态圈软件。hue本身来自于cloudera后来贡献给了apachehue本身是一个web项目&#xff0c;基于python实现的&#xff0c;通过该web项目的UI集成了各个软件的UI 下面是一个hue调度…

【MySQL】如果表被锁可以尝试看一下事务

今天在MySQL中删除表的时候&#xff0c;发现无法删除&#xff0c;一执行drop&#xff0c;navicat就卡死。 通过 SHOW PROCESSLIST显示被锁了 kill掉被锁的进程后依旧被锁 最后发现是由于存在为执行完的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX; kill掉这些事务以…

EXCEL表格怎么批量删除日期后的时间?

竞价师最近有点忙了&#xff0c;因为百度新出来一个“线索有效性诊断”功能 一、下载电话、表单、咨询表格 二、选中整列 三、选中ctrlf 进行替换&#xff0c;日期输入空格&#xff0c;时间输入*&#xff0c;替换为空即可&#xff01; 四、整列单元格格式“日期”拉倒底部&…

大脑网路分析的进展:基于大规模自监督学习的诊断| 文献速递-先进深度学习疾病诊断

Title 题目 BrainMass: Advancing Brain Network Analysis for Diagnosis with Large-scale Self-Supervised Learning 大脑网路分析的进展&#xff1a;基于大规模自监督学习的诊断 01 文献速递介绍 功能性磁共振成像&#xff08;fMRI&#xff09;利用血氧水平依赖&#x…

面试-java多线程与并发

1.如何实现处理线程的返回值 (1)主线程等待法 主线程等待法&#xff1a;程序执行时&#xff0c;没有等到value值赋予完成&#xff0c;就直接在主函数 中执行打印value的值。 缺点&#xff1a;需要自己去实现循环等待的逻辑。若需要等待的变量变多&#xff0c;需要等待的时间可能…

qt.qpa.xcb: could not connect to display问题解决

1、问题描述 以服务器pi5作为远程解释器&#xff0c;本地win11使用vscode远程调试视觉时报错如下&#xff1a; qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "xxxxx" even though it was …

英伟达GB200系列AI芯片供不应求;阿里云通义灵码上线Visual Studio插件市场

&#x1f989; AI新闻 &#x1f680; 英伟达GB200系列AI芯片供不应求 摘要&#xff1a;英伟达GB200系列AI芯片供不应求&#xff0c;台积电和日月光等公司获追加订单。GB200芯片性能提升30倍&#xff0c;成本和能耗降至25分之一。预计2025年出货量突破百万颗&#xff0c;后段封…

精准把握时间脉络:Java日期时间处理API深度解析与实战指南

在软件开发领域&#xff0c;准确无误地处理日期和时间信息是构建稳定、可靠应用程序的关键一环。随着技术的演进&#xff0c;Java作为一门广泛应用的编程语言&#xff0c;其处理日期和时间的API也经历了显著的变化和发展&#xff0c;旨在为开发者提供更为强大、灵活且易用的工具…

Linux网络 - 再谈、详谈UDP和TCP协议

文章目录 前言预备netstatpidofcat /etc/services 一、UDP协议UDP协议端格式UDP的缓冲区基于UDP的应用层协议 二、TCP协议1.TCP协议段格式确认应答(ACK)机制三次握手疑问1 最后一次客户端发给服务端的ACK请求怎么保证服务端能够收到&#xff1f; 四次挥手疑问2 为什么挥手是四次…