學過的單片機實驗內容及程序
計算機控制技術綜合性實驗指導書-電氣(單片機實驗)
編寫:蒙志強
重慶交通大學機電與汽車工程學院
機電與自動化控制實驗室
2017年3月1日
目錄
項目一、湊試法整定PID參數
項目二、帶死區PID算法
項目三、擴充臨界比例度法PID參數
項目四、擴充響應曲線法整定PID參數
項目1 湊試法整定PID參數
一、實驗目的
1.了解PID參數對系統性能的影響。
2.學習湊試法整定PID參數。
3.掌握積分分離法PID控制規律
二、實驗設備
PC機一臺,TD-ACC+實驗系統一套,i386EX系統板一塊
三、實驗原理和內容

圖3.2-1 圖3.2-1是一個典型的PID閉環控制系統方框圖,其硬件電路原理及接線圖可設計如下,圖中畫“○”的線需用戶在實驗中自行接好,對象需用戶在運放單元搭接。 
上圖中,控制計算機的“OUT1”表示386EX內部1#定時器的輸出端,定時器輸出的方波周期=定時器時常,“IRQ7”表示386EX 內部主片8259的7號中斷,用作采樣中斷,“DIN0”表示386EX的I/O管腳P1.0,在這里作為輸入管腳用來檢測信號是否同步。 這里,系統誤差信號E通過模數轉換單元“IN7”端輸入,控制機的定時器作為基準時鐘 (初始化為10ms),定時采集“IN7”端的信號,并通過采樣中斷讀入信號E的數字量,并進行PID計算,得到相應的控制量,再把控制量送到數模轉換單元,由“OUT1”端輸出相應的模擬信號,來控制對象系統。 本實驗中,采用位置式PID算式。在一般的PID控制中,當有較大的擾動或大幅度改變給定值時,會有較大的誤差,以及系統有慣性和滯后,因此在積分項的作用下,往往會使系統超調變大、過渡時間變長。為此,可采用積分分離法PID控制算法,即:當誤差e ( k ) 較大時,取消積分作用;當誤差e ( k ) 較小時才將積分作用加入。 討論PID參數對系統性能的影響: (1) 增大比例系數KP一般將加快系統的響應,在有靜差的情況下有利于減小靜差。但過大的比例系數會使系統有較大的超調,并產生振蕩,使系統穩定性變壞。 (2) 增大積分時間參數TI有利于消除靜差、減小超調、減小振蕩,使系統更加穩定,但系統靜差的消除將隨之減慢。 (3) 增大微分時間參數TD有利于加快系統響應,使超調量減小,系統穩定性增加,但系統對擾動的抑制能力減弱,對擾動有較敏感的響應。 在調整參數時,可以使用湊試法。參考以上參數對控制過程的影響趨勢,對參數實行“先比例,后積分,再微分”的步驟。 (1) 首先整定比例部分。將比例系數KP由小變大,并觀察相應的系統響應,直到響應曲線超調小、反應快。如果系統沒有靜差,或者靜差小到允許的范圍內,那么只需比例調節器即可。 (2) 如果在比例調節的基礎上系統的靜差不能滿足要求,則須加入積分作用。整定時首先置積分時間TI為一較大值,并將第一步整定得到的比例系數KP縮小 (如80%),然后減小積分時間,使靜差得到消除。如果動態性能 (過渡時間短) 也滿意,則需PI調節器即可。 (3) 若動態性能不好,則需加入微分作用。整定時,使微分時間TD從0變大,并相應的改變比例系數和積分時間,逐步湊試,直到滿意結果 由于PID三個參數有互補作用,減小一個往往可由幾個增大來補償,因此參數的整定值不唯一,不同的參數組合完全有可能得到同樣的效果。 四、實驗步驟 1.參考流程圖3.2-3編寫實驗程序,檢查無誤后編譯、鏈接。 2.按照實驗線路圖3.2-2接線,檢查無誤后開啟設備電源。 3.調節信號源中的電位器及撥動開關,使信號源輸出幅值為2V,周期6S的方波。確定系統的采樣周期以及積分分離值。 4.裝載程序,將全局變量TK (采樣周期)、EI (積分分離值)、KP (比例系數)、TI (積分系數)和TD (微分系數) 加入變量監視,以便實驗過程中觀察和修改。 5.運行程序,將積分分離值設為最大值7FH (相當于沒有引入積分分離),用示波器分別觀測輸入端R和輸出端C。 6.如果系統性能不滿意,用湊試法修改PID參數,直到響應曲線滿意,并記錄響應曲線的超調量和過渡時間。 7.修改積分分離值為20H,記錄此時響應曲線的超調量和過渡時間,并和未引入積分分離值時的響應曲線進行比較。 8.將6和7中的較滿意的響應曲線分別保存,在畫板、PHOTOSHOP中處理后粘貼到WORD中,方便形成實驗報告。 五、實驗代碼: 功能描述:實現數字PID調節器的功能。 - *****************************************/
- #include <reg51.h>
- #include <absacc.h>
- #include <math.h>
- /*****************************************
- 宏定義
- *****************************************/
- #define uchar unsigned char
- #define uint unsigned int
- #define ADC_7 XBYTE[0x0600] //定義模數轉換IO地址
- #define DAC_1 XBYTE[0x0640] //定義D/A第一路的IO地址
-
- /*****************************************
- 全局變量定義
- *****************************************/
- sbit str = P1^7; //定義A/D啟動信號
- sbit DIN0 = P1^0; //聲明同步信號
- uint data time; //聲明變量,用于定時
- uchar data t0_h,t0_l; //用于存儲定時器0的初值
- char TK=5; //聲明采樣周期變量,//采樣周期=TK*10ms
- char TC; //TK的變量
- float kp=0.20; //比例系數
- char ti=30; //積分系數
- char td=1; //微分系數
- char IBAND=32; //積分分離值
- char EK; //當前采樣的偏差值
- char EK_1; //上一次采樣的偏差值
- char AEK; //偏差的變化量
- char UK; //當前時刻的D/A輸出
- int ZEK;
- /*****************************************
- 主函數
- *****************************************/
- void main(void)
- {
- TMOD = 0x01;
- time = 10; //定時10ms
- t0_h = (65536-500*time)/256; //計算定時器0初值
- t0_l = (65536-500*time)%256;
- t0_l = t0_l+20; //修正因初值重裝而引起的定時誤差
- TH0 = t0_h;
- TL0 = t0_l;
- IT1 = 1; //邊沿觸發中斷
- EX1 = 1; //開外部中斷1
- ET0 = 1; //開定時中斷0
- TR0 = 1; //啟動定時器
-
- TC = 1;
- DAC_1= 0x80; //D/A清零
- EK=EK_1=0; //變量清零
- AEK=UK=0;
- ZEK=0;
-
- EA = 1; //開總中斷
- while(1);
- }
-
- /**********************************************
- 函數名:INT1
- 功能 :1號外部中斷服務程序
- 參數 :無*
- 返回值:無 *
- ***********************************************/
- void int1() interrupt 2 using 2
- { float P,D,I,TEMP;
-
- DIN0 = 1; //讀取輸入前,先輸出高電平
- if(DIN0) //判同步信號到否
- {
- EK=EK_1=0; //變量清零
- UK=AEK=0;
- ZEK=0;
- DAC_1 =0x80; //D/A輸出零
- TC=1;
- }
- else
- {
- TC--; //判采樣周期到否
- if(TC==0)
- {
- EK = ADC_7-128; //采樣當前的偏差值,并計算偏差的變化量
- AEK =EK-EK_1;
- EK_1=EK;
-
-
- if(abs(EK)> IBAND) I=0; //判積分分離值
- else
- …………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
六、實驗結果及分析 
項目2 帶死區PID控制一、實驗目的 掌握帶死區的PID控制規律 二、實驗設備 PC機一臺,TD-ACC+實驗系統一套,i386EX系統板一塊 三、實驗原理及內容 1.在計算機控制系統中,某些系統為了避免過于頻繁的控制動作,為了消除由于頻繁動作所引起的振蕩,通常采用帶死區的PID控制系統,該系統實際上是一個非線性控制系統。其基本思想是:可以按實際需要設置死區B,當誤差的絕對值 B時,P (K)為0,U (K)也為常值,實際應用中,常值是由經驗值來確定的;當 >B時,P (K)= , U (K)以PID運算的結果輸出。 
圖3.3-1 2.圖3.3-1所示的方框圖,其硬件電路原理及接線圖見圖3.3-3。 
圖3.3-3 四、實驗步驟 1.參照圖3.3-2的流程圖編寫實驗程序,檢查無誤后編譯、鏈接。 2.按照實驗線路圖3.3-3接線,檢查無誤后開啟設備電源。調節信號源中的電位器和撥動開關,使信號源輸出幅值為4V,周期6S的方波。 3.裝載程序,將全局變量TK (采樣周期)、EI (積分分離值)、KP (比例系數)、TI (積分系數)、TD (微分系數)、PT(死區變量值) 和 CONST(常值)加入變量監視,以便實驗過程中觀察和修改。 4.運行程序,將死區寬度B (PT) 設為最小值00H (相當于沒有引入死區控制),用示波器分別觀測控制量輸出端U (即數模轉換單元的“OUT1”端) 和對象輸出端C。 5.如果系統性能不滿意,用湊試法修改PID參數,直到響應曲線滿意。 6.修改死區寬度B (PT)為02H,用示波器分別觀測控制量輸出端U (即數模轉換單元的“OUT1”端) 和對象輸出端C,記錄并和積分分離時的響應曲線進行比較
五、實驗代碼
功能描述:實現死區PID數字調節器,死區寬度和常值可根據實際情況進行修改
(源碼見附件)
六、實驗結果分析

項目3 擴充臨界比例度法整定PID參數一、實驗目的 1.學習并掌握擴充臨界比例度法整定PID參數。 二、實驗設備 PC機一臺,TD-ACC+實驗系統一套,i386EX系統板一塊 三、實驗原理及內容 1、實驗原理 擴充臨界比例度法是對模擬調節器中的臨界比例度法的推廣,在工程實踐中最常用,其參數整定步驟如下: (1) 選擇一個足夠小的采樣周期T,一般取系統純滯后時間的1/10以下。 (2) 使系統閉環工作,只用比例控制,增大比例系數KP直到系統等幅振蕩,記下此時的臨界比例系數KPU和臨界振蕩周期TU (見圖3.4-1)。 
圖3.4-1 (3) 選擇控制度 (1.05~2.0)。控制度指數字調節器和模擬調節器控制效果之比。 (4) 根據控制度,查表3.4-1計算出采樣周期T和KP、TI、TD。 表3.4-1
2) 實驗設計 圖3.4-2是一個PID閉環控制系統的實驗電路原理及接線圖,圖中畫“○”的線需用戶在實驗中自行接好,對象需用戶在運放單元搭接。其相應的程序流程圖和3.2節中的圖3.2-3是一樣的,實驗中的參數取值范圍規定為:

圖3.4-2 上圖中,控制計算機的“OUT1”表示386EX內部1#定時器的輸出端,定時器輸出的方波周期=定時器時常,“IRQ7”表示386EX 內部主片8259的7號中斷,用作采樣中斷,“DIN0”表示386EX的I/O管腳P1.0,在這里作為輸入管腳用來檢測信號是否同步。 本實驗中,將針對該閉環系統應用臨界比例度法來整定PID參數。 四、實驗步驟 (1) 編寫程序,檢查無誤后編譯、鏈接并裝載程序。 (2) 按照實驗線路圖3.4-2接線,調節信號源使其輸出幅值為3V,周期6S的方波。 (3) 由于模擬對象的慣性時常約為250ms,取采樣周期T=10ms。 (4) 裝載程序,將全局變量TK (采樣周期)、EI (積分分離值)、KP (比例系數)、TI (積分系數)和TD (微分系數)加入變量監視,以便實驗過程中觀察和修改。 (5) 運行程序且只用比例控制 (EI = 0,TD = 0),KP由小變大,使系統等幅振蕩,記下此時的臨界比例系數KPU和臨界振蕩周期TU。 (6) 查表3.4-1,選擇控制度2.0,計算出采樣周期T和KP、TI、TD。 (7) 將參數重新寫入PID控制程序,運行程序并用示波器觀測輸入和輸出,如果控制效果不太滿意,可適當結合湊試法調整參數,直到滿意為止。 五、實驗代碼 功能描述:利用此程序可以實現臨界比例度法整定PID參數。
(源碼見附件)
六、實驗結果 

項目4 擴充響應曲線法整定PID參數一、實驗目的 1.學習并掌握擴充響應曲線法整定PID參數。 二、實驗設備 PC機一臺,TD-ACC+實驗系統一套,i386EX系統板一塊 三、實驗原理及內容 1 實驗原理 擴充響應曲線法是模擬調節器的響應曲線法的一種擴充,也是一種常用的工程整定方法。其參數整定步驟如下: (1) 使數字調節器不接入系統,讓系統處于手動操作狀態,當系統穩定在某一值處后,給對象一個階躍輸入。 (2) 用儀表記錄下被調量在階躍輸入下的整個響應曲線,見圖3.4-3。 
圖3.4-3 圖中“ ”表示對象的時間常數;“ ”表示對象的純滯后時常 (4) 根據所得的 、 ,查表3.4-2計算出采樣周期T和KP、TI、TD 表3.4-2 | | | | | | 0.05 | 1.15 | 2.00 | 0.45 | | 0.16 | 1.0 | 1.90 | 0.55 | | 0.34 | 0.85 | 1.62 | 0.65 | | 0.60 | 0.60 | 1.50 | 0.82 |
2) 實驗設計 同樣,圖3.4-4也是一個PID閉環控制系統的實驗電路原理及接線圖,圖中畫“○”的線需用戶在實驗中自行接好,對象需用戶在運放單元搭接。其相應的程序流程圖和3.2節中的圖3.2-3是一樣的。本實驗中,將針對該閉環系統應用擴充響應曲線法來整定PID參數。 圖3.4-4中,控制計算機的“OUT1”表示386EX內部1#定時器的輸出端,定時器輸出的方波周期=定時器時常,“IRQ7”表示386EX 內部主片8259的7號中斷,用作采樣中斷,“DIN0”表示386EX的I/O管腳P1.0,在這里作為輸入管腳用來檢測信號是否同步。 實驗中,參考程序中的參數取值范圍規定為:

圖3.4-4 四、實驗步驟 (1) 參照圖3.4-5接線,調節器先不接入系統中。圖中畫“○”的線需用戶在實驗中自行接好,對象需用戶在運放單元搭接。 
圖3.4-5 (2) 調節信號源使其“OUT”輸出幅值為2V,周期12S的方波。 (3) 用示波器測量系統輸出“C”,并記錄下波形。在響應曲線最大斜率處作切線,用游標測量,作圖求得滯后時間 和對象時常 。計算出 / ,查表3.4-2,控制度選擇2.0時可求得數字調節器的KP、TI、TD以及采樣周期T的初始值。 - 按照圖3.4-4接線,將數字調節器接入系統,將以上得到的參數KP、TI、TD和T重新寫入程序中,然后編譯、鏈接。
(5) 裝載程序,將全局變量TK (采樣周期)、EI (積分分離值)、KP (比例系數)、TI (積分系數)和TD (微分系數)加入變量監視,以便實驗過程中觀察和修改。 (6) 運行程序,用示波器測量系統輸出“C”,觀察數字調節器在這組參數下的控制效果,若不理想,可適當調整參數,直到控制效果滿意為止。 五、實驗代碼 功能描述:此程序可以作為擴充響應曲線法整定PID參數的驗證程序,可把整定后的PID參數寫入程序中。 (源碼見附件)
六、實驗結果分析
全部資料51hei下載地址:
計算機控制技術綜合性實驗指導書-電氣(新設備).docx
(404.12 KB, 下載次數: 25)
2018-1-13 17:17 上傳
點擊文件名下載附件
一些單片機實驗 下載積分: 黑幣 -5
程序:
example51_c.rar
(382.72 KB, 下載次數: 29)
2018-1-13 17:17 上傳
點擊文件名下載附件
程序 下載積分: 黑幣 -5
|