2017-08-05 70 views
0

爲什麼我們在PID行後面的代碼中添加所有錯誤?我無法正確理解答案。 公式: total_error = int(kp *比例+ ki *積分+ kd *導數)使用arduino後的PID行

回答

0

比例項給出一個與當前誤差值成比例的值。積分誤差會增加一個與誤差大小和持續時間成正比的誤差量。導數誤差是在特定時間誤差隨時間的斜率。它們都相互作用以提供PID算法的輸出值。

所有這些都加在一起的原因是,如果條件中的各種增益(K)值得到優化,則可以在給定系統中獲得最佳調諧,最穩定的響應(如果穩定性可行)。但正如任何資料來源會告訴你的那樣,PID調整可能是一個難題,因爲這些錯誤是隨時間和系統變化而異相動態發生的,都會及時相互影響。它們被設計成加在一起創建一個封閉形式的方程,可以用不同的增益值進行優化。

關於這些如何相互作用有大量的信息。你可以在Wikipedia上得到一個很好的介紹。這個僞代碼和維基百科附帶的描述證明了在算法中下一個輸出是從哪裏衍生出來的,從添加錯誤:

previous_error = 0 
integral = 0 
loop: 
    error = setpoint - measured_value 
    integral = integral + error*dt 
    derivative = (error - previous_error)/dt 
    output = Kp*error + Ki*integral + Kd*derivative 
    previous_error = error 
    wait(dt) 
    goto loop 
+0

謝謝!!!!! –

+0

@abhitpahwa你很受歡迎。如果您發現這個功能有用,請隨時單擊複選標記,接受我的答案對您有用。這將有助於其他人在未來找到我的答案。 [請閱讀此有用的建議](https://stackoverflow.com/help/someone-answers)。 – TomServo

+0

@TomServo ...絕對 –