PID控制動手玩玩看

PID三個參數到底該怎麼調才好,真的是一門藝術。
雖然在Marlin韌體內有提供自動測量的功能,但是測得的結果,不見得能令人滿意,還是需要調整。可是到底該怎麼調整?從哪個參數開始動手?數值該增加還是該減小?會不會調整了這個,又需要回頭調整上一個?整個調整過程實在是亂七八糟,不容易理出頭緒。在加上實驗需要時間,可是有一直找不出最佳參數,實在有夠累人。
今天我不曉得是哪根筋不對,突然想說可以用excel模擬PID溫度控制,這樣就可以很快得得到實驗結果,增加調整PID參數的經驗。雖然沒辦法直接透過模擬獲得擠出頭加熱需要的PID參數,但是至少可以熟悉調整PID參數對溫度控制的影響。
下載excel並且開啟後,可以看到左上角有可調整的參數,中間是模擬過程,右邊有兩個模擬結果的圖表。模擬參數分成兩組,前面幾項是環境變數,最後三項是PID值。
受熱物比熱:每公克的受熱物值,需要多少卡的熱量,能上升1℃。水的比熱為1(卡/公克-℃)
受熱物質量:(這不用解釋吧...)
初始溫度:(這不用解釋吧...)
環境溫度:(這不用解釋吧...)
目標溫度:(這不用解釋吧...)
散熱常數:跟受熱物散熱速度相關的常數。系統散失的熱量,我這邊用 (當下溫度 - 環境溫度 ) x 散熱常數來模擬計算。散熱常數越大,系統散失熱量的速度就越快;系統溫度跟環境溫度差異越大,散失熱量也越快。
PID:分別是比例控制常數、機分控制常數、微分控制常數。
系統熱量供應:這邊相對應於加熱棒輸出多少百分比的功率。這邊"系統熱量供應"的模擬計算公式如下:
"這次的"系統熱量供應 =
        P x 這次取樣的溫度誤差 +
        I x 從系統開始以來每次取樣的溫度誤差總和 +
        D x (上次取樣的溫度誤差 - 這次取樣的溫度誤差)
P:比例控制常數。誤差值乘上P值,再加回系統熱量供應。
如果只有P,I跟D都設為零時,我覺得可以把他比喻成開車的時候,油門只會"直接"踩到某個定值,或是完全放掉。不會微調油門的力道。理論上只用比例控制,仍然可以讓溫度控制在目標溫度附近,但是震盪的狀況會比較嚴重。就像司機開車,總是猛踩油門,又猛踩剎車,車子會跑,速度也有,只是乘客會暈到死...

D:微分控制常數。溫度誤差對時間的曲線圖,是一個二維曲線。而對二維曲線微分的幾何意義,則是斜率。所以微分控制,實做上是取上一次採樣與這一次採樣的溫度誤差相減,再除以兩次採樣的時間間隔,算出斜率。用斜率乘上D,再加回系統熱量供應。
D值的效果,我會把他比喻成"提早減速"。當車子的速度接近司機想要維持的速度,速度還沒超過之前,有經驗的司機就會開始預先減小油門。不要等速度衝過頭再來踩剎車,減少車子加速減速的震盪,讓乘客舒適不暈車。不過該提早多少時間開始減速、該減多少速度不要減過頭或是減太少,就要靠D值的大小來調整了。

加入D "微分控制",可以讓系統較快穩定得達到目標溫度。

合適的D值,能讓溫度快速又穩定得恆定在目標溫度,而且沒有衝過頭的問題。

D值過大,提早剎車煞的力道多了,反而會讓系統不穩定得震盪。

再繼續加大D值,甚至會讓控制結果發散不能收斂到目標溫度。

I:積分控制常數。積分在這邊的概念,是把過去所有的誤差加總起來。積分控制當然就是拿積分控制常數乘以過去所有誤差的加總,,再加回系統熱量供應。
積分控制多用來校正穩態誤差。當溫度穩定下來之後,溫度離目標溫度仍然有些微的誤差,這就是"穩態誤差"。如果為了穩態誤差而調整P值,整個系統的穩定度會大受影響。積分控制靠累積穩態誤差,讓這個誤差的效應因累積而放大,再乘以機分控制常數,就可以消彌穩態誤差。
以上是我對PID控制的一些想法。特別注意我介紹的時候,順序是PDI,用意就是建議大家調整的時候,可以先來回調整P、D這兩個常數(I歸零),覺得系統穩定、滿意了,再針對"穩態誤差"來調整 I 積分控制常數。
修改受熱物的質量、比熱,可以觀察受熱系統熱含對PID控制的影響。修改散熱常數,則可以觀察系統散熱情況(多加了風扇吹喉管),對系統穩定的影響。透過模擬實驗,多改幾組環境,並且調出相對應的PID值,應該可以更熟悉PID控制這門藝術~

參考資料

關於PID的認識與討論?

PID控制動手玩玩看的更多相关文章

  1. 手把手教你看懂并理解Arduino PID控制库——引子

    介绍 本文主要依托于Brett Beauregard大神针对Arduino平台撰写的PID控制库Arduino PID Library及其对应的帮助博客Improving the Beginner’s ...

  2. 【iCore3应用开发平台】发布 iCore3 应用开发平台PID控制代码

    说明:1.本代码包包含FPGA和STM32F407两部分内容2.FPGA工程为出厂代码FPGA工程,版本为REV43.STM32F407为只含PID控制的ARM工程4.在使用风扇过程中,请勿将手伸入扇 ...

  3. SLAM+语音机器人DIY系列:(四)差分底盘设计——5.底盘PID控制参数整定

    摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...

  4. PID控制最通俗的解释与PID参数的整定方法

    转自->这里 PID是比例.积分.微分的简称,PID控制的难点不是编程,而是控制器的参数整定.参数整定的关键是正确地理解各参数的物理意义,PID控制的原理可以用人对炉温的手动控制来理解.阅读本文 ...

  5. PID控制及整定算法

    一.PID控制算法 PID是比例.积分.微分的简称,PID控制的难点不是编程,而是控制器的参数整定.参数整定的关键是正确地理解各参数的物理意义,PID 控制的原理可以用人对炉温的手动控制来理解.阅读本 ...

  6. 一文读懂PID控制算法(抛弃公式,从原理上真正理解PID控制)

      PID控制应该算是应用非常广泛的控制算法了.小到控制一个元件的温度,大到控制无人机的飞行姿态和飞行速度等等,都可以使用PID控制.这里我们从原理上来理解PID控制. PID(proportion ...

  7. STM32—PID控制在直流电机中的应用

    文章目录 一.PID控制算法 1.什么是PID 2.PID系数的理解 Ⅰ.比例(P)部分 Ⅱ.积分(I)部分 Ⅲ.微分(D)部分 3.PID的数字化处理 二.位置闭环控制 三.速度闭环控制 一.PID ...

  8. 专家PID控制仿真学习

    目录 专家控制 专家系统 专家控制 学习笔记,用于记录学习 资料:<智能控制>(第四版)--刘金琨 专家系统 一.专家系统的定义 专家系统是一类包含知识和推理的智能计算机程序,其内部包含某 ...

  9. 两轮自平衡小车双闭环PID控制设计

                                                                                            两轮自平衡小车的研究意义 ...

随机推荐

  1. 将获得datebox值的文本形式转为日期格式

    在使用datebox时,已选择结束日期后,再次选择开始日期.此时判断开始日期不能大于结束日期. datebox的onSelect: function (date){}事件传入的参数是日期类型,而使用d ...

  2. 压缩维度oj P1173+P1174+P1164

    今天在洛谷上刷dp,忽然冒出一道求最大字段和的问题,然后忘了瞬间忘了这是dp,几分钟一个贪心出来了成功ac,忽然想起自己在作dp,于是乖乖刷dp. 这个可能很多人都会但是今天有4种解法哦,本人只尝试了 ...

  3. 第一版STM32PCB的问题

    1.5与6引脚连在一起了 2.有3个插排隔得太近,导致传感器安装不了 3.开关不匹配,画PCB时可以考虑一下实验室有哪些东西 4.可以用开关代替跳冒 5.AM3.3电路电容 6.钽电容的正负极区分 有 ...

  4. AIX动态增加SWAP空间

    增加SWAP交换页空间 查看SWAP,使用lsps –a命令查看,默认安装SWAP是512M,例如: # lsps -a              Page Space      Physical V ...

  5. Java List的分段操作

    实现思路: list按sublist的大小截成一定的份数,然后放到一个数组里面, 一下是一个demo例子: public List<List<String>> getSubLi ...

  6. 小程序升级实时音视频录制及播放能力,开放 Wi-Fi、NFC(HCE) 等硬件连接功能

    “ 小程序升级实时音视频录制及播放能力,开放 Wi-Fi.NFC(HCE) 等硬件连接功能.同时提供按需加载.自定义组件和更多访问层级等新特性,增强了第三方平台的能力,以满足日趋丰富的业务需求.” 0 ...

  7. 转场动画UINavigationControllerDelegate

    从iOS7开始,苹果更新了自定义ViewController转场的API,这些新增的类和接口让很多人困惑,望而却步.本文就从这些API入口,让读者理清这些API错综复杂的关系. 几个protocol ...

  8. uploadify3.2.1的参数设置

    $('#file_upload').uploadify({ auto:false, //接受true 或 false两个值,当为true时选择文件后会自动上传:为false时只会把选择的文件增加进队列 ...

  9. MySQL大表优化方案 Mysql的row_format(fixed与dynamic)

    转自:https://mp.weixin.qq.com/s/VY69wWlrVLjRtKU7ULrYGw 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除 ...

  10. vux 是基于 WeUI 和Vue(2.x)开发的移动端UI组件库,主要服务于微信页面。

    https://doc.vux.li/zh-CN/ https://vux.li/