久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9335|回復: 1
打印 上一主題 下一主題
收起左側

湊試法 擴充臨界比例度法 擴充響應曲線法整定PID參數單片機源程序 帶死區PID算法

[復制鏈接]
跳轉到指定樓層
樓主
ID:275622 發表于 2018-1-13 17:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
學過的單片機實驗內容及程序
計算機控制技術綜合性實驗指導書-電氣(單片機實驗
編寫:蒙志強
重慶交通大學機電與汽車工程學院
機電與自動化控制實驗室
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調節器的功能。

  1. *****************************************/
  2. #include <reg51.h>
  3. #include <absacc.h>
  4. #include <math.h>
  5. /*****************************************
  6. 宏定義
  7. *****************************************/
  8. #define uchar unsigned char
  9. #define uint  unsigned int
  10. #define ADC_7 XBYTE[0x0600]                                          //定義模數轉換IO地址
  11. #define DAC_1 XBYTE[0x0640]                                          //定義D/A第一路的IO地址

  12. /*****************************************
  13. 全局變量定義
  14. *****************************************/
  15. sbit  str  = P1^7;                                                                      //定義A/D啟動信號
  16. sbit  DIN0 = P1^0;                                                                      //聲明同步信號
  17. uint  data time;                                                                      //聲明變量,用于定時
  18. uchar data t0_h,t0_l;                                                        //用于存儲定時器0的初值
  19. char TK=5;                                                                                                  //聲明采樣周期變量,//采樣周期=TK*10ms
  20. char TC;                                                                                                  //TK的變量
  21. float kp=0.20;                                                                                    //比例系數
  22. char ti=30;                                                                                                  //積分系數
  23. char td=1;                                                                                                  //微分系數
  24. char IBAND=32;                                                                                    //積分分離值
  25. char EK;                                                                                                  //當前采樣的偏差值
  26. char EK_1;                                                                                                  //上一次采樣的偏差值
  27. char AEK;                                                                                                  //偏差的變化量
  28. char UK;                                                                                                  //當前時刻的D/A輸出
  29. int  ZEK;
  30. /*****************************************
  31. 主函數
  32. *****************************************/
  33. void main(void)
  34. {              
  35.               TMOD = 0x01;
  36.               time = 10;                                                                                                  //定時10ms
  37.               t0_h  = (65536-500*time)/256;                            //計算定時器0初值
  38.               t0_l  = (65536-500*time)%256;
  39.               t0_l = t0_l+20;                                                                                    //修正因初值重裝而引起的定時誤差
  40.               TH0  = t0_h;
  41.               TL0  = t0_l;
  42.               IT1  = 1;                                                                                                  //邊沿觸發中斷
  43.               EX1  = 1;                                                                                                  //開外部中斷1
  44.               ET0  = 1;                                                                                                  //開定時中斷0
  45.               TR0  = 1;                                                                                                  //啟動定時器

  46.               TC   = 1;
  47.               DAC_1= 0x80;                                                                                    //D/A清零
  48.               EK=EK_1=0;                                                                                                  //變量清零
  49.               AEK=UK=0;
  50.               ZEK=0;

  51.               EA              = 1;                                                                                                  //開總中斷
  52.               while(1);
  53. }

  54. /**********************************************
  55. 函數名:INT1
  56. 功能  :1號外部中斷服務程序
  57. 參數  :無*
  58. 返回值:無 *
  59. ***********************************************/
  60. void int1() interrupt 2 using 2
  61. {              float P,D,I,TEMP;

  62.               DIN0 = 1;                                                                                                  //讀取輸入前,先輸出高電平
  63.   if(DIN0)                                                                                                                //判同步信號到否
  64.               {
  65.                   EK=EK_1=0;                                                                                    //變量清零
  66.                             UK=AEK=0;
  67.                   ZEK=0;
  68.                   DAC_1 =0x80;                                                                      //D/A輸出零
  69.                             TC=1;
  70.               }
  71.   else
  72.     {
  73.                             TC--;                                                                                                  //判采樣周期到否
  74.                   if(TC==0)
  75.                                {
  76.                                           EK  = ADC_7-128;                                          //采樣當前的偏差值,并計算偏差的變化量
  77.                                           AEK =EK-EK_1;
  78.                                           EK_1=EK;
  79.                                          
  80.                                          
  81.                                  if(abs(EK)> IBAND)  I=0;              //判積分分離值
  82.                                  else
  83. …………
  84. …………限于本文篇幅 余下代碼請從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

控制度

T

KP

TI

TD

1.05

0.014TU

0.63KPU

0.49TU

0.14TU

1.2

0.043TU

0.47KPU

0.47TU

0.16TU

1.5

0.09TU

0.34KPU

0.43TU

0.20TU

2.0

0.16TU

0.27KPU

0.40TU

0.22TU


2) 實驗設計

圖3.4-2是一個PID閉環控制系統的實驗電路原理及接線圖,圖中畫“○”的線需用戶在實驗中自行接好,對象需用戶在運放單元搭接。其相應的程序流程圖和3.2節中的圖3.2-3是一樣的,實驗中的參數取值范圍規定為:

參數名稱

T

KP

TI

TD

取值范圍

1~FFH

0~FFFFH

1~7FFFH

0~7FFFH

實際量綱

10~2550ms

0~1倍

10ms~327.67s

0ms~327.67s


圖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

控制度

T

KP

TI

TD

1.05

0.05

1.15

2.00

0.45

1.2

0.16

1.0

1.90

0.55

1.5

0.34

0.85

1.62

0.65

2.0

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,在這里作為輸入管腳用來檢測信號是否同步。

實驗中,參考程序中的參數取值范圍規定為:

參數名稱

T

KP

TI

TD

取值范圍

1~7FH

0~800H

1~1FFH

0~1FFH

實際量綱

10~1270ms

0~8倍

10ms~5110s

0ms~5110ms


圖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)
程序:
example51_c.rar (382.72 KB, 下載次數: 29)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:335031 發表于 2018-11-28 20:08 | 只看該作者
謝謝支持一下
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品乱码一区二区三区 | 日本一本在线 | 人人性人人性碰国产 | 国产午夜精品一区二区三区四区 | 天堂av在线影院 | 毛片一级黄色 | 中日韩欧美一级片 | 久久无毛 | 国产一区二区三区在线看 | 欧产日产国产精品视频 | 日本久久久久久久久 | 中文字幕一区在线 | 欧美在线天堂 | 日韩国产欧美一区 | 91精品中文字幕一区二区三区 | 在线观看免费av网 | aaa一区| 涩涩操 | 亚洲一区 中文字幕 | 亚洲精品黄色 | 9999视频 | 91精品国产一区二区在线观看 | 韩国精品在线观看 | 91精品国产一区二区三区 | 黑人巨大精品欧美一区二区免费 | 成人精品国产一区二区4080 | 日韩精品不卡 | 九九av| 成人a网| 在线日韩 | 免费在线成人 | 一区中文字幕 | 欧美一区二区三区在线视频 | 久久婷婷av | 久久精品亚洲精品国产欧美kt∨ | 国产精品片aa在线观看 | 久久伊人免费视频 | 久久综合伊人 | 国产一区不卡 | 九九热精品免费 | 亚洲一区二区在线免费观看 |