2020年6月6日 星期六

好站 : Build a PID Controller with Python 2019

今天找到下面這個用 Python 實作 PID 控制器的文章, 以前在學校讀電機時選的是自動控制組, 控制系統裡面的 ABC 就是談 PID 控制, 看到這篇文章感覺好熟悉又好遙遠. 離開這領域多年後又重新回頭複習學校的功課, 主要是因為研究飛行控制的需要, 例如使用 PID 控制無人機的飛行姿態等. 現代控制理論教科書上大都使用 MATLAB/Simulink 作為工具, 但這是不便宜的商用軟體, 如果能在樹莓派上用 Python 來實作那就太棒了.

Build a PID Controller with Python 2019

PID 是 Proportional-Integral-Derivative (比例, 積分, 微分) 控制器的簡稱, 結構上就是一種回授控制系統, 將輸入與量測之間的誤差透過比例, 微分, 與積分參數的調整, 控制致動器以得到理想的輸出, 避免出現過激 (overshoot) 響應. 參考 :

維基 : PID控制器


Source : Wiki


這篇文章以加熱器溫度控制為例, 示範如何使用 PID 控制器得到較佳的溫控結果, 所使用的 PID 函式庫可在 GitHub 下載 :

https://raw.githubusercontent.com/ivmech/ivPID/master/PID.py

此模組使用 Python 2.7 編寫, 但也可以無誤地在 Python 3 執行, 應該也可以不需改寫直接移植到 ESP32/ESP8266/Micro:bit 上用 MicroPython 來跑 (要試試).

在校時用的那本 B.C. Kuo 寫的 "自動控制系統" 聖經歷久不衰, 他本人雖已在 2012 年去世, 書卻仍由先前的協作者於 2017 年出了第 10 版, 中文翻譯版則於 2018 年由東華出版 :

自動控制系統, 10/e


Source : 天瓏


書中範例用的是 MATLAB, 如能改寫為 Python 會更好.

沒有留言:

張貼留言