學(xué)過(guò)的單片機(jī)實(shí)驗(yàn)內(nèi)容及程序
計(jì)算機(jī)控制技術(shù)綜合性實(shí)驗(yàn)指導(dǎo)書(shū)-電氣(單片機(jī)實(shí)驗(yàn))
編寫(xiě):蒙志強(qiáng)
重慶交通大學(xué)機(jī)電與汽車(chē)工程學(xué)院
機(jī)電與自動(dòng)化控制實(shí)驗(yàn)室
2017年3月1日
目錄
項(xiàng)目一、湊試法整定PID參數(shù)
項(xiàng)目二、帶死區(qū)PID算法
項(xiàng)目三、擴(kuò)充臨界比例度法PID參數(shù)
項(xiàng)目四、擴(kuò)充響應(yīng)曲線(xiàn)法整定PID參數(shù)
項(xiàng)目1 湊試法整定PID參數(shù)
一、實(shí)驗(yàn)?zāi)康?br />
1.了解PID參數(shù)對(duì)系統(tǒng)性能的影響。
2.學(xué)習(xí)湊試法整定PID參數(shù)。
3.掌握積分分離法PID控制規(guī)律
二、實(shí)驗(yàn)設(shè)備
PC機(jī)一臺(tái),TD-ACC+實(shí)驗(yàn)系統(tǒng)一套,i386EX系統(tǒng)板一塊
三、實(shí)驗(yàn)原理和內(nèi)容

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

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

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

項(xiàng)目4 擴(kuò)充響應(yīng)曲線(xiàn)法整定PID參數(shù)一、實(shí)驗(yàn)?zāi)康?/strong> 1.學(xué)習(xí)并掌握擴(kuò)充響應(yīng)曲線(xiàn)法整定PID參數(shù)。 二、實(shí)驗(yàn)設(shè)備 PC機(jī)一臺(tái),TD-ACC+實(shí)驗(yàn)系統(tǒng)一套,i386EX系統(tǒng)板一塊 三、實(shí)驗(yàn)原理及內(nèi)容 1 實(shí)驗(yàn)原理 擴(kuò)充響應(yīng)曲線(xiàn)法是模擬調(diào)節(jié)器的響應(yīng)曲線(xiàn)法的一種擴(kuò)充,也是一種常用的工程整定方法。其參數(shù)整定步驟如下: (1) 使數(shù)字調(diào)節(jié)器不接入系統(tǒng),讓系統(tǒng)處于手動(dòng)操作狀態(tài),當(dāng)系統(tǒng)穩(wěn)定在某一值處后,給對(duì)象一個(gè)階躍輸入。 (2) 用儀表記錄下被調(diào)量在階躍輸入下的整個(gè)響應(yīng)曲線(xiàn),見(jiàn)圖3.4-3。 
圖3.4-3 圖中“ ”表示對(duì)象的時(shí)間常數(shù);“ ”表示對(duì)象的純滯后時(shí)常 (4) 根據(jù)所得的 、 ,查表3.4-2計(jì)算出采樣周期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) 實(shí)驗(yàn)設(shè)計(jì) 同樣,圖3.4-4也是一個(gè)PID閉環(huán)控制系統(tǒng)的實(shí)驗(yàn)電路原理及接線(xiàn)圖,圖中畫(huà)“○”的線(xiàn)需用戶(hù)在實(shí)驗(yàn)中自行接好,對(duì)象需用戶(hù)在運(yùn)放單元搭接。其相應(yīng)的程序流程圖和3.2節(jié)中的圖3.2-3是一樣的。本實(shí)驗(yàn)中,將針對(duì)該閉環(huán)系統(tǒng)應(yīng)用擴(kuò)充響應(yīng)曲線(xiàn)法來(lái)整定PID參數(shù)。 圖3.4-4中,控制計(jì)算機(jī)的“OUT1”表示386EX內(nèi)部1#定時(shí)器的輸出端,定時(shí)器輸出的方波周期=定時(shí)器時(shí)常,“IRQ7”表示386EX 內(nèi)部主片8259的7號(hào)中斷,用作采樣中斷,“DIN0”表示386EX的I/O管腳P1.0,在這里作為輸入管腳用來(lái)檢測(cè)信號(hào)是否同步。 實(shí)驗(yàn)中,參考程序中的參數(shù)取值范圍規(guī)定為:

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