我,不是说了PID要平均值吗?
前几日写了一篇PID算法学习笔记,并幻想了一个场景进行算法仿真。经过不断探索后,博主发现,PID算法的精髓不在算法逻辑,而在于PID三个参数的值。本篇随笔将延续上次的仿真实验进行调试,总结PID调参的规律和方法。

一、调参口诀
先看看百度找到的调参口诀。
参数整定找最佳, 从小到大顺序查。①
先是比例后积分, 最后再把微分加。②
曲线振荡很频繁, 比例度盘要放大。③
曲线漂浮绕大弯, 比例度盘往小扳。④
曲线偏离回复慢, 积分时间往下降。⑤
曲线波动周期长, 积分时间再加长。⑥
曲线振荡频率快, 先把微分降下来。⑦
动差大来波动慢, 微分时间应加长。⑧
理想曲线两个波, 前高后低四比一。⑨
一看二调多分析, 调节质量不会低。⑩

二、调参实战
口诀①,从小到大。根据${PID}$公式可知,积分常数${I}$越大,对输出值影响越小,而比例常数和微分常数越大,对输出值影响越大。
因此,以${(P,I,D)=(5,500,0)}$为初始值,其仿真曲线为

口诀②,先比例。先调节${P}$,分别为5,25,50。

如上图,比例系数越大,曲线越快接近设定值,${P}$为50时,效果最佳。
后积分。后调${I}$,分别为50, 5, 0.5

如上图,积分常数P越小,曲线越快达到设定值。当${P}$为0.5时效果最佳
再微分。再调${D}$,分别为0.005, 0.05, 0.5

如上图,${D}$值变大,曲线并没有明显变化。通过上面几次调节,暂时得到一组较优的PID值,为
${PID_{s}=(50,500,0)}$
进一步研究,以该值为基准,改变其中的值。
(1)改变P值,改变为500,发现曲线很快超出了设定值,但是如果不考虑稳定性的话,该曲线能更快接近设定值。

(2)改变I值,改变为0.02,发现曲线也会很快超出设定值,后缓慢抖动接近设定值,抖动频率小于曲线(1),根据口诀⑨,这样的曲线可以称作“理想曲线”

(3)改变${D}$值,改变为0.0.75,曲线剧烈抖动。根据口诀⑦可知,积分系数过大,需要减小。


三、总结
我的数学模型存在很多缺陷,并不能完全模仿真实环境。进行简单的调参后可以发现,P系数调节可能出现“一劳永逸”的情况。而I调节可以减弱P的某些过激行为,比如剧烈抖动变为缓慢震荡,D调节则增强这种行为。本实验中,D系数的作用并不明显,还应在以后的实验中多多观察。
最后,如果调成平均值会发生什么呢?

看,它是不是变得非常强大了……
我,不是说了我不是标题党吗?

我,不是说了PID要平均值吗?的更多相关文章
- HDU 2376 树形dp|树上任意两点距离和的平均值
原题:http://acm.hdu.edu.cn/showproblem.php?pid=2376 经典问题,求的是树上任意两点和的平均值. 这里我们不能枚举点,这样n^2的复杂度.我们可以枚举每一条 ...
- 记录一个多核CPU负载不均衡问题(动态绑定进程到指定cpu:taskset -pc $CPU $PID)
昨晚和一位读者朋友讨论了一个问题:在一台多核 CPU 的 Web 服务器上,存在负载不均衡问题,其中 CPU0 的负载明显高于其它 CPUx,进一步调查表明 PHP-FPM 的嫌疑很大.话说以前我曾经 ...
- 漫谈PID——实现与调参
闲话: 作为一个控制专业的学生,说起PID,真是让我又爱又恨.甚至有时候会觉得我可能这辈子都学不会pid了,但是经过一段时间的反复琢磨,pid也不是很复杂.所以在看懂pid的基础上,写下这篇文章,方便 ...
- SIMATIC PID温度控制
SIMATIC PID温度控制 // VAR_INPUT ------------------------------------------------------------------- #if ...
- 移动端测试===PROC系列之---/proc/pid/stat 如何准确取cpu的值【转】
/proc/ /stat 包含了所有CPU活跃的信息,该文件中的所有值都是从系统启动开始累计到当前时刻. [root@localhost ~]# cat /proc/6873/stat 68 ...
- 自整定模糊PID算法的理论
模糊控制系统的构成与与常规的反馈控制系统的主要区别在于控制器主要是由模糊化,模糊推理机和精确化三个功能模块和知识库(包括数据库和规则库)构成的.具体实现过程如下所示: (1)预处理: 输入数据往往是通 ...
- PID控制算法的C语言实现
参考: PID控制器开发笔 浅谈位置式PID 专家PID控制在快速系统中的仿真及应用(这篇了论文介绍的积分分离PID.专家PID(脚本实现和simulink实现)很详细) PID控制算法的C语言实现一 ...
- C语言 · 整数平均值
编写函数,求包含n个元素的整数数组中元素的平均值.要求在函数内部使用指针操纵数组元素,其中n个整数从键盘输入,输出为其平均值. 样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以 ...
- 80 端口被占用 pid=4
80端口被pid=4的系统进程给占用的解决方法: 一般开发的时候我们都会安装sqlserver ,也会把Sql server Reporting Services 安装上去.原因就是这个服务占用了80 ...
随机推荐
- 关于ubuntu安装vmware报错问题解决
命令行中报错 首先报错内容为:(vmware-installer.py:3847): Gtk-WARNING **: 无法在模块路径中找到主题引擎:“murrine”, 以上的内容: sudo apt ...
- Thymeleaf入门入门入门入门入门入门入门入门入门入门入门
Thymeleaf 官网部分翻译:反正就是各种好 Thymeleaf是用来开发Web和独立环境项目的服务器端的Java模版引擎 Spring官方支持的服务的渲染模板中,并不包含jsp.而是Thymel ...
- Spring5参考指南:Environment
文章目录 Profiles PropertySource 使用@PropertySource Spring的Environment接口有两个关键的作用:1. Profile, 2.properties ...
- QML-AES加解密小工具
Intro 为了解码网课视频做的小工具,QML初学者可以参考一下. 项目地址 Todo 在插入新条目时,ListView不会自动根据section进行重排,因此出现同一个文件夹重复多次的现象.目测强行 ...
- 单源最短路径(3):SPFA 算法
SPFA(Shortest Path Faster Algorithm)算法,是西南交通大学段凡丁于 1994 年发表的,其在 Bellman-ford 算法的基础上加上一个队列优化,减少了冗余的松弛 ...
- document.documentElement.scrollTop指定位置失效解决办法
近期在vue的H5项目中,做指定位置定位的时候发现使用document.documentElement.scrollTop一直不生效. 解决办法是document.documentElement.sc ...
- 什么是动态规划?动态规划的意义是什么?https://www.zhihu.com/question/23995189
阮行止 上海洛谷网络科技有限公司 讲师 intro 很有意思的问题.以往见过许多教材,对动态规划(DP)的引入属于"奉天承运,皇帝诏曰"式:不给出一点引入,见面即拿出一大堆公式吓人 ...
- Top 命令数据分析
一.top 命令详解 当前时间 20:27:12 当前系统运行时间 3:18秒 1个用户 系统负载平均长度为 0.00,0.00,0.00(分别为1分钟.5分钟.15分钟前到现在的平均值) 第二行为进 ...
- css属性、样式、边框、选择器
CSS 层叠样式表 (Cascading Style Sheets,缩写为 CSS),是一种 样式表 语言, 用来描述 HTML或 XML(包括如 SVG.MathML.XHTML 之类的 XML 分 ...
- vue element select多选回显
我们经常在使用 Element组件里面的 select多选 场景:添加账号的时候需要选择可见分公司(分公司为多选),添加成功之后可以编辑,需要回显添加时所提交的分公司 代码如下: 多选框: data( ...