上一篇介紹了建立系統模型的三種方法,這一篇介紹如何調節pid,並用MATLAB模擬

調節pid的目標就是使得從模型中得到的增益能夠使物理系統正常工作

調節pid的理論分析

pid的一般形式如下圖

經過移動化簡可以得到

現在我們的問題就簡化成了在哪裡放置這兩個極點,和設置多大的增益?

在給微分器加上濾波器,相當於系統多了一個極點,濾波器的相關內容之後介紹

MATLAB模擬

模擬使用的模型還是我們上一篇使用的電機模型

隨便取一個之前的模型進行pid控制模擬

先初始化電機模型的變數,再加上pid的必要模型,開始模擬

隨便調了幾下pid參數,得到下圖的效果

調節零點位置和增益的方法

新名詞介紹

根軌跡圖(root locus)是控制理論及穩定性理論中,繪圖分析的方式,可以看到在特定參數(一般會是反饋系統的環路增益)變化時,系統極點的變化。

說實話,這東西以前我聽都沒聽過,在經過線上線下查找資料纔算知道了這麼個東西。

簡單的說,這個圖可以用來判斷非時變系統系統的穩定性,以及計算系統增益並實現它的控制器

手畫這個圖是有許多規則的,不過我沒有去了解,畢竟我時間也不多,只知道可以用MATLAB畫

進入主題

有兩種方法用於調節:Pole placement 和 Loop shaping

Pole placement

一個簡單的開環系統,他的根軌跡圖是這樣的

在加入PID後,會引入新的零點和極點,就會變成這樣

這種調節方法就是通過調節增益,從而得到希望的系統性能

Loop shaping

這個方法和上面的類似,換了種形式的圖

據論文介紹,這兩種方法的性能都是差不多的,loop-shaping多了兩個優點,(i)不需要在FRF上擬合LTI模型來設計控制器,並且(ii)隨著控制器係數的平滑變化,增益調度的實現更加緩慢。

對於我來說,暫時只管怎麼用,好不好用,就沒有深入學習了

MATLAB模擬

下圖是我用之前的模型隨意調的pid的階躍響應,可以看出是不符合我們的期望的,下面我們就使用MATLAB進行pid調節

我們首先需要做的是打開analysis->control design->control system designer,然後按照下面三張圖所示,添加需要調節的pid模塊,添加需要的信號

在control system designer的菜單欄中點擊tuning methods,在下拉框中選擇root locus editor,就可以得到下圖

在new plot下選擇new step,在彈出窗口按下圖配置

最終效果如下

手動pid調節

手動調節說實話我是不太懂,我這裡只是隨便亂調一下表示可以手動修整而已

這裡使用的是pole placement的方法,loop shaping也是類似的

自整定pid

這裡主要還是介紹自整定pid,畢竟方便,不需要懂太多相關知識

在tuning methods下選擇pid tuning

可以在彈出窗口中選擇pid控制器的類型、性能等等,最後附上調節效果圖

最後弄完後要在菜單欄選擇update blocks

結尾

調節好的模型已上傳github的項目庫

參考資料

  • Design Compensator Using Automated PID Tuning and Graphical Bode Design
  • Designing PID Controllers with PID Tuner

個人博客

公眾號:greedyhao


推薦閱讀:
相關文章