强奸久久久久久久|草草浮力在线影院|手机成人无码av|亚洲精品狼友视频|国产国模精品一区|久久成人中文字幕|超碰在线视屏免费|玖玖欧洲一区二区|欧美精品无码一区|日韩无遮一区二区

首頁 > 產品 > 知識 > pid控制算法,PID控制算法

pid控制算法,PID控制算法

來源:整理 時間:2023-08-16 18:24:44 編輯:智能門戶 手機版

本文目錄一覽

1,PID控制算法

PID控制是將偏差的比例(p)、積分(I)和微分(D)通過線性組合構成控制量,對被控對象進行控制。說到PID控制算法有很多種,好比位置式PID控制算法、增量式PID控制算法、積分分離PID控制算法......根據(jù)系統(tǒng)的連續(xù)性和離散性,PID控制算法也不同,所以不知LZ是在問什么
首先看自動控制原理的pid表達式,然后看懂離散表達式,不要看網上的pid程序,然后根據(jù)離散表達式自己就可以寫出程序。網上的pid控制大部分都是用結構函數(shù)寫的,看不太懂。

PID控制算法

2,單片機中的PID算法是什么意思啊有什么用途呢謝謝

pid就是比例積分微分算法
PID算法是一種經典的控制算法.由比例/積分/微分組成.建議看看控制理論.PID就是比例積分微分控制,在工業(yè)里面應用非常廣泛,據(jù)統(tǒng)計,現(xiàn)在有一半以上以上的工業(yè)系統(tǒng)直接應用PID控制.PID分模擬和數(shù)字,既然用到了單片機當然就得用數(shù)字了,另外PID還分理想,實際,微分先行,抗積分飽和等等,但都是在理想或者實際PID式子上面進行一些修改得來的.關于這方面的知識,建議你還是找一本控制理論書刊以下,很簡單,但卻是非常有用的,搞工業(yè)設計,不懂PID,說出來都沒人信
就是一算法 用于控制

單片機中的PID算法是什么意思啊有什么用途呢謝謝

3,什么是PID 算法

PID是工業(yè)控制上的一種控制算法,其中P表示比例,I表示積分,D表示微分。以溫度控制的PID程序為例:P(比例)表示在溫度設定值上下多少度的范圍內做比例動作,當溫度越高,功率越小,溫度越低,功率就越大,功率到底為多大,就看溫度偏差值和比例區(qū)間的大小按反比關系計算。I(積分)也是一種比例,是溫度偏差值的累積值與設定的一個值之間的反比關系,但要注意何時將溫度偏差值的累積值清零。積分就好像當溫度比設定值低很多而你有覺得溫度升的慢的時候就使勁的加大功率一樣。D(微分)是溫度變化快慢跟功率的比值,即當你覺得溫度上升的太快時,就降低功率,一阻止溫度上升過快,反之當溫度下降太快時,就加大功率以阻止溫度下降太快一樣。給我郵箱我可以給你發(fā)一份PID溫度控制程序。

什么是PID 算法

4,pid控制的算法

給你個PID控制算法的程序段,該程序是西門子PLC的SCL程序。帶"_IN"與帶"_OUT"的變量,如果前綴是一樣的,要求連接同一個變量。這段程序已經在溫度控制上運行通過了。FUNCTION FC1 : VOID VAR_INPUT Run:BOOL; //True-運行,F(xiàn)alse-停止 Auto:BOOL; //True-自動,F(xiàn)alse-手動 ISW:BOOL; //True-積分有效,F(xiàn)alse-積分無效 DSW:BOOL; //True-微分有效,F(xiàn)alse-微分無效 SetMV:REAL; //手動時的開度設定值 SVSW:REAL; //當設定值低于SVSW時,開度為零 PV:REAL; //測量值 SV:REAL; //設定值 DeadBand:REAL; //死區(qū)大小 PBW:REAL; //比例帶大小 IW:REAL; //積分帶大小 DW:REAL; //微分帶大小 dErr_IN:REAL; //誤差累積 LastPV_IN:REAL; //上一控制周期的測量值 END_VAR VAR_OUTPUT MV:REAL; //輸出開度 dErr_OUT:REAL; //誤差累積 LastPV_OUT:REAL;//上一控制周期的測量值 END_VAR VAR Err:REAL; //誤差 dErr:REAL; //誤差累積 PBH:REAL; //比例帶上限 PBL:REAL; //比例帶下限 PVC:REAL; //測量值在一個控制周期內的變化率,即測量值變化速率 P:REAL; //比例項 I:REAL; //積分項 D:REAL; //微分項 END_VAR IF Run=1 THEN IF Auto=1 THEN IF SV>=SVSW THEN Err:=SV-PV; PBH:=SV+PBW; PBL:=SV-PW; IF PV MV:=1; ELSIF PV>PBH THEN MV:=0; ELSE P=(PBH-PV)/(PBH-PBL); //計算比例項//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////以下為積分項的計算////////////////////////////////////////////////////////////// IF ISW=1 THEN dErr:=dErr_IN; IF (PV(SV+DeadBand)) THEN IF (dErr+Err) dErr:=0-IW; ELSIF (dErr+Err)>IW THEN dErr:=IW; ELSE dErr:=dErr+Err; END_IF; END_IF; I:=dErr/IW; dErr_OUT:=dErr; ELSE I:=0; END_IF;/////////////////////////////////////////////以上為積分項的計算////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////以下為微分項的計算////////////////////////////////////////////////////////////// IF DSW=1 THEN PVC:=LastPV_IN-PV; D:=PVC/DW; LastPV_OUT:=PV; ELSE D:=0; END_IF;/////////////////////////////////////////////以上為微分項的計算/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// IF (P+I+D)>1 THEN MV:=1; ELSIF (P+I+D)<0 THEN MV:=0; ELSE MV:=P+I+D; END_IF; END_IF; ELSE MV:=0; END_IF; ELSE MV:=SetMV; END_IF; ELSE MV:=0; END_IF;END_FUNCTION

5,單片機中的PID算法

PID算法 下面對控制點所采用的PID控制算法進行說明。 控制點目前包含三種比較簡單的PID控制算法,分別是:增量式算法,位置式算法,微分先行。 這三種PID算法雖然簡單,但各有特點,基本上能滿足一般控制的大多數(shù)要求。1) PID增量式算法離散化公式: 注:各符號含義如下 u(t) 控制器的輸出值。 e(t);;控制器輸入與設定值之間的誤差。 Kp;; 比例系數(shù)。 Ti;;積分時間常數(shù)。 Td;微分時間常數(shù)。 T;;調節(jié)周期。 對于增量式算法,可以選擇的功能有: (1) 濾波的選擇可以對輸入加一個前置濾波器,使得進入控制算法的給定值不突變,而是有一定慣性延遲的緩變量。 (2) 系統(tǒng)的動態(tài)過程加速在增量式算法中,比例項與積分項的符號有以下關系:如果被控量繼續(xù)偏離給定值,則這兩項...PID算法 下面對控制點所采用的PID控制算法進行說明。 控制點目前包含三種比較簡單的PID控制算法,分別是:增量式算法,位置式算法,微分先行。 這三種PID算法雖然簡單,但各有特點,基本上能滿足一般控制的大多數(shù)要求。1) PID增量式算法離散化公式: 注:各符號含義如下 u(t) 控制器的輸出值。 e(t);;控制器輸入與設定值之間的誤差。 Kp;; 比例系數(shù)。 Ti;;積分時間常數(shù)。 Td;微分時間常數(shù)。 T;;調節(jié)周期。 對于增量式算法,可以選擇的功能有: (1) 濾波的選擇可以對輸入加一個前置濾波器,使得進入控制算法的給定值不突變,而是有一定慣性延遲的緩變量。 (2) 系統(tǒng)的動態(tài)過程加速在增量式算法中,比例項與積分項的符號有以下關系:如果被控量繼續(xù)偏離給定值,則這兩項符號相同,而當被控量向給定值方向變化時,則這兩項的符號相反。 由于這一性質,當被控量接近給定值的時候,反號的比例作用阻礙了積分作用,因而避免了積分超調以及隨之帶來的振蕩,這顯然是有利于控制的。但如果被控量遠未接近給定值,僅剛開始向給定值變化時,由于比例和積分反向,將會減慢控制過程。 為了加快開始的動態(tài)過程,我們可以設定一個偏差范圍v,當偏差|e(t)|= β時,則不管比例作用為正或為負,都使它向有利于接近給定值的方向調整,即取其值為|e(t)-e(t-1)|,其符號與積分項一致。利用這樣的算法,可以加快控制的動態(tài)過程。 (3) PID增量算法的飽和作用及其抑制 在PID增量算法中,由于執(zhí)行元件本身是機械或物理的積分儲存單元,如果給定值發(fā)生突變時,由算法的比例部分和微分部分計算出的控制增量可能比較大,如果該值超過了執(zhí)行元件所允許的最大限度,那么實際上執(zhí)行的控制增量將時受到限制時的值,多余的部分將丟失,將使系統(tǒng)的動態(tài)過程變長,因此,需要采取一定的措施改善這種情況。 糾正這種缺陷的方法是采用積累補償法,當超出執(zhí)行機構的執(zhí)行能力時,將其多余部分積累起來,而一旦可能時,再補充執(zhí)行。2) PID位置算法 離散公式: ;= 對于位置式算法,可以選擇的功能有: a、濾波:同上為一階慣性濾波 b、飽和作用抑制: (1) 遇限削弱積分法一旦控制變量進入飽和區(qū),將只執(zhí)行削弱積分項的運算而停止進行增大積分項的運算。具體地說,在計算Ui時,將判斷上一個時刻的控制量Ui-1是否已經超出限制范圍,如果已經超出,那么將根據(jù)偏差的符號,判斷系統(tǒng)是否在超調區(qū)域,由此決定是否將相應偏差計入積分項。(2) 積分分離法在基本PID控制中,當有較大幅度的擾動或大幅度改變給定值時, 由于此時有較大的偏差,以及系統(tǒng)有慣性和滯后,故在積分項的作用下,往往會產生較大的超調量和長時間的波動。特別是對于溫度、成份等變化緩慢的過程,這一現(xiàn)象將更嚴重。為此可以采用積分分離措施,即偏差較大的時,取消積分作用;當偏差較小時才將積分作用投入。 另外積分分離的閾值應視具體對象和要求而定。若閾值太大,達不到積分分離的目的,若太小又有可能因被控量無法跳出積分分離區(qū),只進行PD控制,將會出現(xiàn)殘差。 離散化公式:Δu(t) = q0e(t) + q1e(t-1) + q2e(t-2) 當|e(t)|≤β時 q0 = Kp(1+T/Ti+Td/T) q1 = -Kp(1+2Td/T) q2 = Kp Td /T 當|e(t)|>β時 q0 = Kp(1+Td/T) q1 = -Kp(1+2Td/T) q2 = Kp Td /T u(t) = u(t-1) + Δu(t) 注:各符號含義如下 u(t);;控制器的輸出值。 e(t);控制器輸入與設定值之間的誤差。 Kp;;比例系數(shù)。 Ti;;;積分時間常數(shù)。 Td;;微分時間常數(shù)。 T;;;調節(jié)周期。 β;;; 積分分離閾值 (3) 有效偏差法當根據(jù)PID位置算法算出的控制量超出限制范圍時,控制量實際上只能取邊際值U=Umax,或U=Umin,有效偏差法是將相應的這一控制量的偏差值作為有效偏差值計入積分累計而不是將實際的偏差計入積分累計。因為按實際偏差計算出的控制量并沒有執(zhí)行。 如果實際實現(xiàn)的控制量為U=U(上限值或下限值),則有效偏差可以逆推出,即:= 然后,由該值計算積分項 3) 微分先行PID算法 當控制系統(tǒng)的給定值發(fā)生階躍時,微分作用將導致輸出值大幅度變化,這樣不利于生產的穩(wěn)定操作。因此在微分項中不考慮給定值,只對被控量(控制器輸入值)進行微分。微分先行PID算法又叫測量值微分PID算法。公式如下: 離散化公式: 參數(shù)說明同上對于純滯后對象的補償 控制點采用了Smith預測器,使控制對象與補償環(huán)節(jié)一起構成一個簡單的慣性環(huán)節(jié)。PID參數(shù)整定(1) 比例系數(shù)Kc對系統(tǒng)性能的影響: 比例系數(shù)加大,使系統(tǒng)的動作靈敏,速度加快,穩(wěn)態(tài)誤差減小。Kc偏大,振蕩次數(shù)加多,調節(jié)時間加長。Kc太大時,系統(tǒng)會趨于不穩(wěn)定。Kc太小,又會使系統(tǒng)的動作緩慢。Kc可以選負數(shù),這主要是由執(zhí)行機構、傳感器以控制對象的特性決定的。如果Kc的符號選擇不當對象狀態(tài)(pv值)就會離控制目標的狀態(tài)(sv值)越來越遠,如果出現(xiàn)這樣的情況Kc的符號就一定要取反。 (2) 積分控制Ti對系統(tǒng)性能的影響: 積分作用使系統(tǒng)的穩(wěn)定性下降,Ti小(積分作用強)會使系統(tǒng)不穩(wěn)定,但能消除穩(wěn)態(tài)誤差,提高系統(tǒng)的控制精度。 (3) 微分控制Td對系統(tǒng)性能的影響: 微分作用可以改善動態(tài)特性,Td偏大時,超調量較大,調節(jié)時間較短。Td偏小時,超調量也較大,調節(jié)時間也較長。只有Td合適,才能使超調量較小,減短調節(jié)時間。

6,關于PID算法

所謂比例 ,就是調節(jié)量與調節(jié)系數(shù)成正比,加大比例系數(shù)的話肯定就加快調節(jié)了;但是為了不至于調節(jié)過量,引如了微分了積分調節(jié),就是對應其中I D ,具體情況可以查查資料, 引入這些參數(shù)主要是為了保證控制系統(tǒng)的快速性以及穩(wěn)定性 可以看看自動控制原理
http://www.ee.zsu.edu.cn/irp/uploadfile/netclass/CONTROL/lesson/ccs2/ccs2-2/ccs2-2-2/ccs2-2-2.htm
#include struct _pid { int pv; /*integer that contains the process value*/ int sp; /*integer that contains the set point*/ float integral; float pgain; float igain; float dgain; int deadband; int last_error; }; struct _pid warm,*pid; int process_point, set_point,dead_band; float p_gain, i_gain, d_gain, integral_val,new_integ;; void pid_init(struct _pid *warm, int process_point, int set_point) { struct _pid *pid; pid = warm; pid->pv = process_point; pid->sp = set_point; } void pid_tune(struct _pid *pid, float p_gain, float i_gain, float d_gain, int dead_band) { pid->pgain = p_gain; pid->igain = i_gain; pid->dgain = d_gain; pid->deadband = dead_band; pid->integral= integral_val; pid->last_error=0; } void pid_setinteg(struct _pid *pid,float new_integ) { pid->integral = new_integ; pid->last_error = 0; } void pid_bumpless(struct _pid *pid) { pid->last_error = (pid->sp)-(pid->pv); } float pid_calc(struct _pid *pid) { int err; float pterm, dterm, result, ferror; err = (pid->sp) - (pid->pv); if (abs(err) > pid->deadband) { ferror = (float) err; /*do integer to float conversion only once*/ pterm = pid->pgain * ferror; if (pterm > 100 || pterm < -100) { pid->integral = 0.0; } else { pid->integral += pid->igain * ferror; if (pid->integral > 100.0) { pid->integral = 100.0; } else if (pid->integral < 0.0) pid->integral = 0.0; } dterm = ((float)(err - pid->last_error)) * pid->dgain; result = pterm + pid->integral + dterm; } else result = pid->integral; pid->last_error = err; return (result); } void main(void) { float display_value; int count=0; pid = &warm; // printf("Enter the values of Process point, Set point, P gain, I gain, D gain \n"); // scanf("%d%d%f%f%f", &process_point, &set_point, &p_gain, &i_gain, &d_gain); process_point = 30; set_point = 40; p_gain = (float)(5.2); i_gain = (float)(0.77); d_gain = (float)(0.18); dead_band = 2; integral_val =(float)(0.01); printf("The values of Process point, Set point, P gain, I gain, D gain \n"); printf(" %6d %6d %4f %4f %4f\n", process_point, set_point, p_gain, i_gain, d_gain); printf("Enter the values of Process point\n"); while(count<=20) { scanf("%d",&process_point); pid_init(&warm, process_point, set_point); pid_tune(&warm, p_gain,i_gain,d_gain,dead_band); pid_setinteg(&warm,0.0); //pid_setinteg(&warm,30.0); //Get input value for process point pid_bumpless(&warm); // how to display output display_value = pid_calc(&warm); printf("%f\n", display_value); //printf("\n%f%f%f%f",warm.pv,warm.sp,warm.igain,warm.dgain); count++; } }
文章TAG:控制控制算法算法pid控制算法

最近更新

  • 數(shù)字化儀,數(shù)字化儀有什么用數(shù)字化儀,數(shù)字化儀有什么用

    數(shù)字化儀有什么用2,數(shù)字化儀是輸入設備嗎為什么3,什么是數(shù)字化儀4,數(shù)字化儀屬于計算機的什么設備5,數(shù)字化儀的種類6,數(shù)字化儀的主要性能是什么1,數(shù)字化儀有什么用描點抄圖薄板零件直接測繪自.....

    知識 日期:2023-08-16

  • app需要本地數(shù)據(jù)庫嗎,安卓app本地數(shù)據(jù)庫app需要本地數(shù)據(jù)庫嗎,安卓app本地數(shù)據(jù)庫

    開發(fā)app所需數(shù)據(jù)及數(shù)據(jù)來源和格式?!?需要本地數(shù)據(jù)庫支持嗎?※.app我一定要有服務器嗎?關于app的數(shù)據(jù)是在開發(fā)過程中保存的,我們需要保存一些數(shù)據(jù),比如一些設置信息和一些用戶主動保存的.....

    知識 日期:2023-08-16

  • usb2.0四根數(shù)據(jù)線是,數(shù)據(jù)線usb2.0是什么意思usb2.0四根數(shù)據(jù)線是,數(shù)據(jù)線usb2.0是什么意思

    usb數(shù)據(jù)線中,哪兩條usb四根線是電源線?2.顏色識別4102如下:紅線:電1653源正極usb_vcc5v白線:負數(shù)據(jù)lineusb_data綠線:正版數(shù)據(jù)線usb_data黑線:接地usb_GND漆包銅右線:音頻音頻漆包線:音.....

    知識 日期:2023-08-16

  • 清理手機數(shù)據(jù)在哪里設置方法,手機清理了數(shù)據(jù)之后怎么恢復清理手機數(shù)據(jù)在哪里設置方法,手機清理了數(shù)據(jù)之后怎么恢復

    改手機如何徹底刪除手機-3/Ba手機-3/徹底刪除的方法是恢復手機并出廠。1.Android手機Ba手機-3/徹底清潔手機恢復出廠設置的步驟在-2,-1/恢復出廠設置Reset手機此時點擊清除所有內容按鈕.....

    知識 日期:2023-08-16

  • 數(shù)據(jù)庫基礎知識,關于數(shù)據(jù)庫的知識數(shù)據(jù)庫基礎知識,關于數(shù)據(jù)庫的知識

    關于數(shù)據(jù)庫的知識2,什么是數(shù)據(jù)庫3,數(shù)據(jù)庫的基礎知識都有那些4,數(shù)據(jù)庫的基本知識5,數(shù)據(jù)庫基礎知識6,數(shù)據(jù)庫基礎知識1,關于數(shù)據(jù)庫的知識DataBase有許多SqlServerORACLEMySqlAccess2,什么是數(shù)據(jù).....

    知識 日期:2023-08-16

  • 蘋果5關數(shù)據(jù)流量用不用關3g,蘋果手機的數(shù)據(jù)流量在哪里打開蘋果5關數(shù)據(jù)流量用不用關3g,蘋果手機的數(shù)據(jù)流量在哪里打開

    蘋果5如何使用3G流量Open流量?如果有3G信號,會自動使用3G。是否要關閉蜂窩移動電話數(shù)據(jù)?IPhone會默認使用3G蜂窩數(shù)據(jù)流量transmission數(shù)據(jù),會導致耗電,因此,建議您在不需要使用手機上網功能.....

    知識 日期:2023-08-16

  • 數(shù)據(jù)安全品牌日,網絡數(shù)據(jù)安全管理條例數(shù)據(jù)安全品牌日,網絡數(shù)據(jù)安全管理條例

    數(shù)據(jù)安全的重要性數(shù)據(jù)安全是指保護數(shù)據(jù)免受損壞、丟失、泄漏、篡改和未授權訪問的能力。數(shù)據(jù)安全對于企業(yè)的重要性?今年3月,特斯拉因為數(shù)據(jù)安全問題被推上輿論的風口浪尖,智能汽車數(shù)據(jù)安.....

    知識 日期:2023-08-16

  • 單片機c語言編程,單片機c程序設計單片機c語言編程,單片機c程序設計

    單片機c程序設計2,什么是c語言單片機編程3,c語言編程c51單片機4,單片機C語言編程5,單片機C語言程序6,單片機C程序1,單片機c程序設計沒問題,正確!a和b都是10相等,執(zhí)行a、b自加,所以a=11,b=112,什么.....

    知識 日期:2023-08-16