simulink中的PID模組中的P,I引數問題

2021-03-04 08:30:16 字數 3053 閱讀 2044

1樓:匿名使用者

對運bai算次數進行優du化後的離散pid演算法的偽代zhi碼如下:

d[k+1] = d[k] +

e[k]*(kp+ki+kd)-

e[k-1]*(kp+2*kd)+

e[k-2]*(kd);

其中d[k]為當

dao前時刻pid的控制輸出,d[k+1]為下一時刻(內新的)pid的控制輸出,e[k]為當前時刻的容控制誤差,e[k-1]和e[k-2]分別為上一時刻和上上個時刻的控制誤差。

如果令kd=0,就可以得到題主想要的對應關係:

d[k+1] = d[k] + e[k]*(kp+ki) - e[k-1]*(kp);

即a=kp+ki,b=kp。

參考資料:

simulink中pid引數調節經常出現這個問題,希望高手予以解答!不勝感激!!!

2樓:匿名使用者

微分環節不要用du/dt,該環節對於階躍訊號求解時會使用盡量小的步長,因而導致你遇到的問題。

使用傳遞函式 s/(s/n+1) 代 du/dt,其中n是一個稍大一點的數(一般取n=10即可)。

simulink中自帶的pid模組怎麼設定引數

3樓:du知道君

對運算次數抄進行優化後bai

的離散pid演算法的偽**如下:du

d[k+1] = d[k] +

e[k]*(kp+ki+kd)-

e[k-1]*(kp+2*kd)+

e[k-2]*(kd);

其中d[k]為當前時刻pid的控制輸zhi出,daod[k+1]為下一時刻(新的)pid的控制輸出,e[k]為當前時刻的控制誤差,e[k-1]和e[k-2]分別為上一時刻和上上個時刻的控制誤差。

如果令kd=0,就可以得到題主想要的對應關係:

d[k+1] = d[k] + e[k]*(kp+ki) - e[k-1]*(kp);

即a=kp+ki,b=kp。

參考資料:

matlab simulink**中pid引數設定問題

4樓:

積分系數直接寫12.8就可以了,另外,看你的**時間是不是設定得太大了,如果是預設**時間,就是10.0,你可以改小點試試看,例如0.5,1.0。

5樓:匿名使用者

怎麼是這樣寫:8.4/12.8?。

simulink 中的pid控制模組怎麼用

6樓:陽光的侢見青春

pid是由p(比例),i(積分),d(微分)三部分組成p可以通過乘法實現,i則使用連續系統庫模組裡的intergrator模組,d使用連續系統庫模組裡的derivative模組

對照課本上的框圖,就能構建出了

離散:simpowersystems-discrete control blocks裡面,一個是pi,一個是pid

2.連續:simulink extras-additional linear裡面。

simulink pid controller傳遞函式怎麼設定

7樓:星願下的期盼

1、開啟simulink的主頁以後,直接

定義相關的變數。

2、這個時候,需要根據實際情況建立對應的迴圈語句。

3、下一步如果沒問題,就繼續輸入plot(x,y)進行確定。

4、這樣一來會生成圖示的效果,即可設定pid controller傳遞函式了。

8樓:嚇棟棟

pid模組如下圖所示,

設定引數時,雙擊該模組,會彈出如下對話方塊

對應設定p、i、d引數即可,這裡n一般預設即可。注意matlab中的pid形式和一般意義的pid形式略有不同,我在下面這個問題回答中進行過相應的解釋,你可以參考一下。

9樓:東哥

方法如下:在simulink模型實現一個連續或離散時間控制器(pid,pi,pd,p,i)。 pid控制器的增益是可調的手動或自動方式。

自動調整需要simulink控制設計軟體(pid調諧器或siso設計工具)。  pid controller block塊的輸出是輸入的加權總和的訊號,輸入訊號的積分,和輸入訊號的導數。權重比例,積分和微分增益引數。

一階極點濾波器的微分動作。 pid controller模組的配置選項包括:   控制器的型別(pid,pi,pd,p,或我)  控制器形式(並行或理想)  時域(連續或離散)  初始條件和復位觸發   輸出飽和的限制,並內建抗飽和機制   無波動地控制傳輸的訊號跟蹤和多回路控制  在一個公共執行方式中,pid控制器塊的前饋路徑中的反饋環路工作:

塊的輸入端通常是一個誤差訊號,

這是一個參考訊號和所述系統的輸出之間的差異。對於兩個輸入的塊,允許給定值的加權,請參閱pid controller (2 dof))塊。  可以生成**來實現你的控制器可以使用任何simulink的資料型別,包括定點資料型別。

(**生成需要simulink編碼器軟體定點的實現需要定點工具箱)。

matlab,關於simulink中的pid控制器

10樓:匿名使用者

由於simulink不支援純微分傳遞函式(s),所以加入一個較小時間常數的慣性環節來代替,即用

s/(s/n+1)

來近似純微分環節。n一般取10-100就會有比較好的效果。

11樓:愛睡覺的

純微分環節是物理不可實現的,在matlab中用慣性環節代替,傳遞函式如上;

n越大,分子中1的影響越小,這個近似越接近於純微分。

simulink裡有個測量模組three phase vi

three phase vi measurement串接在三相電路中,測量三相電路的電壓和電流 v表示電壓,i 表示電流,那vi 呢 電機的tm端 負載轉矩輸入,constant是一個常數模組,表示給電機一個固定的負載轉矩 如果是某時刻突加負載,可以用階躍模組,即step模組 three phase...

simulink中下圖的模組是什麼,在哪找

這個就是電流測量模組。在simpowersystems庫下面的measurements裡面,current measurement simulink中這個模組在哪找 這兩個模組都是自定義模組,matlab沒有提供現成的,需要你自己搭建或者從別人的 裡複製過來。請問matlab的simulink中的下...

MATLAB中simulink中的積分模組啥樣子

saturation是用來限幅的,因為控制器本身不可能有那麼大的控制量,同樣,某一個通道的控制發散會使得整個系統發散。積分是帶一個1 s,微分是s,這些都是自控原理裡面的 matlab的simulink 裡,這個符號表示的是什麼模組?這個是帶有初值輸入的積分,你把積分模組開啟,裡面有設定的地方。前面...