1. 數字(離散)pid控制演算法的表示式:
將pid調節器離散化,用差分方程來代替連續系統的微分方程,分為位置式和增量式兩類。
重點理解概念如下:
a) 基本偏差e(t):表示當前測量值與設定目標值間的差,設定目標是被減數,結果可為正或負值,正值表示未達到目標,負值表示超過設定值。(代表比例)
b) 偏差和:即每次測量的差值總和,注意正負(代表積分)
位置式:
增量式:
位置式和增量式三個引數的作用:
1. kp引數:能迅速反映誤差,從而減小誤差,但他不能消除穩態誤差,加大kp還會引起系統的不穩定。
2. ki引數:只要有足夠的時間,積分作用將能完全消除誤差。但其缺點積分控制是偏差累積控制,控制作業緩慢,但是如果積分作用太強會使系統的超調量加大,甚至出現振盪。
3. kd引數:**誤差變化趨勢,減小超調量,克服振盪,使系統的穩定性提高,還能加快系統的動態響應速度,減小調整時間,從而改善系統的動態效能。
參考**如下:
增量式**:/*
位置型pid
*/#include
#include
struct _pidpid;
//專案中獲取到的引數
void
pid_init
()
float
pid_realize
(float speed)
intmain
()
return
0;
}
/*
增量型pid
*/#include
#include
struct _pidpid;
void
pid_init
()
float
pid_realize
(float speed)
intmain
()
return
0;
}
中綴表示式轉字尾表示式 以及 字尾表示式求值
字尾表示式也叫逆波蘭表示式,其求值過程可以用到棧來輔助儲存。假定待求值的字尾表示式為 6 5 2 3 8 3 則其求值過程如下 1 遍歷表示式,遇到的數字首先放入棧中,此時棧如下所示 2 接著讀到 則彈出3和2,執行3 2,計算結果等於5,並將5壓入到棧中。3 讀到8,將其直接放入棧中。4 讀到 彈...
表示式 條件控制 迴圈
表示式 expression 是運算子 operator 和運算元 operand 所構成的序列 最好實際操作驗證例 mood true if mood print go to left else print go to right go to left a input print a is a p...
Pid控制演算法 增量型pid演算法的C 實現
上一節中介紹了最簡單的位置型pid的實現手段,這一節主要講解增量式pid的實現方法.實現過程仍然是分為定義變數 初始化變數 實現控制演算法函式 演算法測試四個部分,這裡直接給出 了。pid.h ifndef pid h define pid h typedef struct pidpid class...