增量式PID簡單翻板角度控制


1.研究背景

      隨着電子技術、信息技術和自動控制理論技術的完善與發展,近來微型處理器在控制方面的應用也越來越多。隨之逐漸滲透到我們生活的各個領域。如導彈導航裝置,飛機上儀表的控制,網絡通訊與數據傳輸,工業自動化中的實時控制和數據處理,以及廣泛使用的各類智能IC卡,轎車的安全保障系統,錄像機、攝像機、全自動洗衣機的控制,以及程控玩具等等,所有這些都離不開單片機。加上其體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優點,使之廣泛應用於儀器儀表中,並結合不同類型的傳感器,實現諸如電壓、功率、頻率、流量、濕度、溫度、速度、厚度、長度、角度、硬度、元素、壓力等物理量的測量。並且,采用單片機控制會使得儀器儀表變得數字化、智能化和微型化,而且其功能比起采用電子或數字電路會更加強大。所以用該類型芯片開發的產品成本低廉且使用方面。單片機還可以構成像工廠流水線的智能化管理,電梯智能化控制、各種報警系統,與計算機聯網構成二級控制系統等形式多樣的控制系統、數據采集系統。 

由於單片機其體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等的這些優點,所以在經過分析設計后,我們決定設計出基於IAP15W4K58S4單片機為控制核心的帆板控制系統。帆板系統主要實現對風扇轉速的控制,並調節風力大小,改變其轉角,有着很廣泛的應用前景和發展空間。

2. 主要研究方法

      通過分析帆板控制系統的任務和基本要求,設計制作了帆板控制系統,從而來實現對角度的精確控制。系統主要是由電源電路、中央處理器、角度檢測電路、AD/DA轉換電路、帆板偏轉機構、鍵盤輸入部分以及顯示系統等部分組成。系統可通過獨立鍵盤預設傾角,控制風扇直流電機轉速,則采用PID算法實現風扇電機轉速閉環控制,利用PWM結合增量式PID算法進行自動調節控制。系統以IAP15W4K58S4單片機為控制核心,通過編碼器水平固定在帆板轉軸上,達到實時檢測帆板角度的目的,並利用IAP15W4K58S4的硬件PWM功能、AD檢測功能,以增強型N溝道MOS管驅動暴力風扇且控制風扇轉速實現帆板的轉動角度設定,系統穩定。

3.理論分析與計算

3.1  角度測量原理

角度測量采用高精度角度傳感器增量式光電旋轉編碼器(400脈沖)實時檢測,實際角度測量原理:帆板偏轉的角度通過編碼器觸發外部中斷進行計數轉換成角度並用液晶顯示,實際測量中測量角度值與實際角度值的絕對誤差穩定在<=3℃。經過實際驗證,該傳感器應用簡單方案可行。圖3為角度傳感器示意圖                                                 

 

角度傳感器示意圖

3.2  角度控制算法

void int_0() interrupt 0      {//400線編碼器

   if(bianma==1)

   {

     cont++;

   }

   else

   {

     cont--;

   }

   if(cont<0)     cont+=400;

   if(cont>400) cont-=400;

   jiaodu_c=0.9*cont;

}

編碼器脈沖

      角度控制算法采用單片機中斷(A端),在中斷函數中計數並判斷另一端口(B端)電平高低,高(或低)確定編碼器正(或反)轉動,通過計算,得出當前角度。用編碼器測得的角度值與實際測量角度相差小於等於3℃,完全符合題目實際要求。事實證明此方法切實可行。

 3.3兩線風扇基於外部PWM控制的調速表現

3.4增量式PID

      PID分位置式PID和增量式PID兩種,由於位置式PID控制的輸出與整個過去的狀態有關,用到了誤差的累加值;而增量式PID的輸出只與當前狀態和前兩狀態的誤差有關,因此位置式PID控制的累積誤差相對更大,增量式PID輸出的是控制量增量,如果微處理器出現故障,誤動作影響較小,而執行機構本身有記憶功能,可仍保持原位,不會嚴重影響系統的工作,而位置式的輸出直接對應對象的輸出,對

系統影響較大,因此實際中增量式PID應用更加廣泛,下面我就單獨對增量式PID公式及控制規律和參數整定作一定的探討。

u(k) =Kp*e(k)+Ki*∑k j=0e(j)+Kd*[e(k)-e(k-1)]

u(k-1)=Kp*e(k-1)+Ki*∑k j=0+Kd*[e(k-1)-e(k-2)]

△u(k)=u(k)-u(k-1)

△u(k)=Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)]

u(k)=△u(k)+u(k-1)

其中:e為誤差;

(一)PID三個參數的控制規律

1. 比例調節規律(Kp):是按比例反應系統的偏差,系統一旦出現了偏差,比例調節立即產生調節作用用以減少偏差。

2. 積分調節規律(Ki):實質上就是對偏差累積進行控制,直至偏差為零。使系統消除穩態誤差,提高無差度。 

3. 微分調節規律(Kd):微分作用反映系統偏差信號的變化率,具有預見性,能預見偏差變化的趨勢,因此能產生超前的控制作用,在偏差還沒有形成之前,已被微分調節作用消除。 

4. 比例積分微分控制規律PID:PID控制規律是一種較理想的控制規律,它在比例的基礎上引入積分,可以消除余差,再加入微分作用,又能提高系統的穩定性。

(二)PID參數整定的一般方法

1. 實驗湊試法,整定步驟為"先比例,再積分,最后微分,這也是初接觸PID的人常使用的。

2. 理論計算整定法。它主要是依據系統的數學模型,經過理論計算確定控制器參數。

3. 實驗經驗法,擴充臨界比例度法,實驗經驗法調整PID參數的方法中較常用的是擴充臨界比例度法,其最大的優點是,參數的整定不依賴受控對象的數學模型,直接在現場整定、簡單易行。

PID算法的程序實現:

struct _pid

{

 float SetSpeed;            //定義設定值    

 float ActualSpeed;        //定義實際值    

 float err;                //定義偏差值

 float err_next;            //定義上一個偏差值   

 float err_last;            //定義最上前的偏差值

 float Kp,Ki,Kd;            //定義比例、積分、微分系數

 float incrementSpeed;

 float PID_output;           //定義PID輸出值

 

 float integral;

}pid; 

void PID_init()

{

 pid.SetSpeed=0.0;    

 pid.ActualSpeed=0.0;    

 pid.err=0.0;

 pid.err_last=0.0; 

 pid.err_next=0.0;

 pid.PID_output=0.0;

 /***************************/   

 pid.Kp=4.0; // 4.0

 pid.Ki=0.003;// 0.01

 pid.Kd=0.01;// 0.01

 /***************************/

}

//反饋系統的實質就是系統的輸出量作(實際值)為反饋量與系統的輸入量(設置值)進行作差,

//從而得到系統的誤差e,那么這個誤差e就能夠反應目前系統所處的狀態。

/***********增量式PID*************/ 

float PID_realize(float speed/*輸入值,設定值*/)

{

 pid.SetSpeed=speed;

 pid.err=pid.SetSpeed-pid.ActualSpeed/*實際值,初值為0*/;

 if((unsigned char)pid.err<=0)LED=0;else LED=1;    

 pid.incrementSpeed=pid.Kp*(pid.err-pid.err_next)+pid.Ki*pid.err+pid.Kd*(pid.err-2*pid.err_next+pid.err_last);   

 pid.PID_output+=pid.incrementSpeed;   

 pid.err_last=pid.err_next;   

 pid.err_next=pid.err;   

 return pid.PID_output; }

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM