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

標題: PID算法新手感悟與總結 [打印本頁]

作者: Rouse    時間: 2018-4-16 17:26
標題: PID算法新手感悟與總結
作為新手接觸PID算法,略有些感悟,特將此總結作為記錄
PID控制器參數選擇的方法很多,例如試湊法、臨界比例度法、擴充臨界比例度法等。但是,對于PID控制而言,參數的選擇始終是一件非常煩雜的工作,需要經過不斷的調整才能得到較為滿意的控制效果。依據經驗,一般PID參數確定的步驟如下:
(1) 確定比例系數Kp
確定比例系數Kp時,首先去掉PID的積分項和微分項,可以令Ti=0、Td=0,使之成為
純比例調節。輸入設定為系統允許輸出最大值的60%~70%,比例系數Kp由0開始逐漸增大,直至系統出現振蕩;再反過來,從此時的比例系數Kp逐漸減小,直至系統振蕩消失。記錄此時的比例系數Kp,設定PID的比例系數Kp為當前值的60%~70%。
(2) 確定積分時間常數Ti
比例系數Kp確定之后,設定一個較大的積分時間常數Ti,然后逐漸減小Ti,直至系統出現振蕩,然后再反過來,逐漸增大Ti,直至系統振蕩消失。記錄此時的Ti,設定PID的積分時間常數Ti為當前值的150%~180%。
(3) 確定微分時間常數Td
微分時間常數Td一般不用設定,為0即可,此時PID調節轉換為PI調節。如果需要設定,則與確定Kp的方法相同,取不振蕩時其值的30%。
(4) 系統空載、帶載聯調
對PID參數進行微調,直到滿足性能要求。


PID控制器參數選擇的方法很多,例如試湊法、臨界比例度法、擴充臨界比例度法等。但是,對于PID控制而言,參數的選擇始終是一件非常煩雜的工作,需要經過不斷的調整才能得到較為滿意的控制效果。依據經驗,一般PID參數確定的步驟如下:
(1)        確定比例系數Kp
確定比例系數Kp時,首先去掉PID的積分項和微分項,可以令Ti=0、Td=0,使之成為
純比例調節。輸入設定為系統允許輸出最大值的60%~70%,比例系數Kp由0開始逐漸增大,直至系統出現振蕩;再反過來,從此時的比例系數Kp逐漸減小,直至系統振蕩消失。記錄此時的比例系數Kp,設定PID的比例系數Kp為當前值的60%~70%。
(2)        確定積分時間常數Ti
比例系數Kp確定之后,設定一個較大的積分時間常數Ti,然后逐漸減小Ti,直至系統出現振蕩,然后再反過來,逐漸增大Ti,直至系統振蕩消失。記錄此時的Ti,設定PID的積分時間常數Ti為當前值的150%~180%。
(3)        確定微分時間常數Td
微分時間常數Td一般不用設定,為0即可,此時PID調節轉換為PI調節。如果需要設定,則與確定Kp的方法相同,取不振蕩時其值的30%。
(4)        系統空載、帶載聯調
對PID參數進行微調,直到滿足性能要求。


PID代碼
  1. //定義變量
  2. float Kp;                       //PI調節的比例常數
  3. float Ti;                       //PI調節的積分常數
  4. float T;                        //采樣周期
  5. float Ki;
  6. float ek;                       //偏差e[k]
  7. float ek1;                      //偏差e[k-1]
  8. float ek2;                      //偏差e[k-2]
  9. float uk;                       //u[k]
  10. signed int uk1;                 //對u[k]四舍五入取整
  11. signed int adjust;              //調節器輸出調整量

  12. //變量初始化
  13.     Kp="4";
  14.     Ti="0"。005;
  15.     T="0".001;
  16. // Ki="KpT/Ti"=0.8,微分系數Kd=KpTd/T=0.8,Td=0.0002,根據實驗調得的結果確定這些參數
  17.     ek="0";
  18.     ek1=0;
  19.     ek2=0;
  20.     uk="0";
  21.     uk1=0;
  22.     adjust="0";

  23. int piadjust(float ek)  //PI調節算法
  24. {
  25.     if( gabs(ek)<0.1 )
  26.     {
  27.        adjust="0";
  28.     }
  29.     else
  30.     {     
  31.        uk="Kp"*(ek-ek1)+Ki*ek;  //計算控制增量
  32.        ek1=ek;
  33.       
  34.        uk1=(signed int)uk;
  35.        if(uk>0)
  36.        {
  37.           if(uk-uk1>=0.5)
  38.           {
  39.              uk1=uk1+1;
  40.           }
  41.        }
  42.        if(uk<0)
  43.        {
  44.           if(uk1-uk>=0.5)
  45.           {
  46.              uk1=uk1-1;
  47.           }
  48.        }
  49.        adjust="uk1";   
  50.     }        
  51.    
  52.    
  53.     return adjust;
  54. }

  55. 下面是在AD中斷程序中調用的代碼。
  56.       
  57.        。。。。。。。。。。。
  58.        else //退出軟啟動后,PID調節,20ms調節一次
  59.            {
  60.               EvaRegs.CMPR3=EvaRegs.CMPR3+piadjust(ek);//誤差較小PID調節穩住
  61.               if(EvaRegs.CMPR3>=890)
  62.               {
  63.                  EvaRegs.CMPR3=890; //限制PWM占空比
  64.               }        
  65.            }
復制代碼








歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: a视频 | 欧美亚洲国产日韩 | 日韩有码在线视频 | 精品一区二区三区中文字幕 | 最新中文字幕在线观看 | 黄色大片在线免费观看 | 一区二区三区不卡视频 | 亚洲精品一级 | 欧美成人极品 | 欧美成人猛片aaaaaaa | 精品久久一区二区 | www四虎影院| 日本一区二区三区在线视频 | 一区二区三区国产精品 | 手机在线播放av | 97色在线 | 啪啪免费网站 | 欧美精品久久 | 欧美视频免费看 | 欧美日韩在线一区 | 日韩免费小视频 | www.草 | 日韩欧美三区 | 日韩网站免费观看 | 91性视频 | 国产欧美在线播放 | 欧美综合久久 | 午夜国产在线观看 | 亚洲国产成人在线 | 国产91在线看 | 特一级黄色片 | 手机在线播放av | 中文字幕色哟哟 | 日本免费在线 | 天天色天天色 | 国产日韩在线播放 | 国产精品高潮呻吟久久 | 三级视频在线观看 | 伊人亚洲 | www中文字幕 | 日本欧美久久久久免费播放网 |