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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

焊機PI調節程序,請大家看看有問題嗎這樣寫

[復制鏈接]
跳轉到指定樓層
樓主
ID:163950 發表于 2017-11-8 08:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
double ref = 0;     //設置參數 最大5V 對應512  1V對應102
double feb = 0;     //采樣反饋 最大5V 對應512  1V對應102


int pwm_var = 0;    //PID調整量

int PWM_out = 0;    //PWM輸出量
int index =0 ;
int abs (int j);   //絕對值函數定義

double Uo = 0;
double Ek = 0;        //定義當前偏差值
double Ek1 = 0; //定義上一次偏差值
double Ei = 0;
double Ed = 0;

#define Kp   0.4      //PID調節的比例常數
#define Ti   0.05     //PID調節的積分常數
#define Td   0.02     //PID調節的微分時間常數
#define T    0.02     //采樣周期
#define A    0
//原0.02 0.005  0
#define Kpp  0.15//0.02//0.05//0.02//0.04//0.08//Kp * ( 1 + (T / Ti) + (Td / T) )        // 0.96
#define Ki   0.04//0.01/*0.01*//*0.005*///*(-Kp) * ( 1 + (2 * Td / T ) )        // -1.2        //0.02-0.024// 0.016
#define Kd   0 //0.01//0.02//0//0.002//0.01///*0*/*Kp * Td / T        //0.01對應-0.004                // 0.4        //0.025-0.01//
#define N 10
#define uint8 char


#define Emin 10          //誤差的閥值即0.1V,避免誤差較小時頻繁調節引起震蕩


#define Umax 180//8//6//25//100      //調整值上限,防止積分飽和
#define Umin 10//-8//-6//-25//-100 //調整值下限,防止積分飽和


#define Pmax  300//200//84           //輸出值上限
#define Pmin  -100//75//10     //輸出值下限
//----------------------PID執行程序---------------------------------------------

//-----------------------PID試行 ----------------------------------------------
void pid_ctrl(void)  
{ int index;
  Ek = ref - feb;      // 差值運算 誤差=給定-反饋
    if( (Ek <= Emin)&&(Ek >=-10) )     // 誤差的閥值小于10(即0.1V)
  {
    pwm_var = 0;                     // PID執行增量等于0 不加減

  }
   if( feb>Pmax  )     // 反饋值的閥值大于最大300 即3V
  {
    if(abs(Ek)>100)    // 誤差絕對值大于100                  即1V
          {
         index=0;                   //取消積分環節
        }
        else                           //否則
        {                                  
         index=1;                   //加入積分環節
         if(Ek>0)                   //如果反饋值>0
         {
          Ei+=Ek;                   //積分項累積負值
         }
        }
  }
  else if( feb<Pmin)   //如果反饋值小于最小值-100         即-1V
        {
         if(abs(Ek)>80)   //如果誤差絕對值>80            即0.8V
         {
         index=0;                   //取消積分環節
         }
         else                           //否則
         {
         index=1;                   //加入積分環節
         if(Ek<0)                   //如果誤差值<0
          {
          Ei+=Ek;                   //累計負的積分值
          }
         }
        }
        else                             //否則
        {
          if(abs(Ek)>30)  //如果誤差絕對值>200
          {
          index=0;                   //取消積分項
          }         else                    //否則
           {
           index=1;                   //加入積分項
           Ei+=Ek;                   //累計積分值
           }       
        }
    Uo = Kpp*Ek + Ki*Ei*index + Kd*(Ek-Ek1);    //PID增量計算
    Ek1= Ek;
    pwm_var = Uo*1.0;
        PWM_out =PWM_out+pwm_var;

  if(PWM_out > Umax ){PWM_out = Umax ;  }  //輸出值最大限幅512   約5V
  if(PWM_out < Umin ){PWM_out = Umin ;  }  //輸出最小限制
        CCAP1H=CCAP1L = 255- PWM_out;          //輸出PWM暫空比 最大5V              


}  

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

使用道具 舉報

沙發
ID:581852 發表于 2019-7-10 19:12 來自手機 | 只看該作者
怎么聯系你怎么聯系你呀
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美不卡 | 一级黄在线观看 | 日本不卡一区二区三区 | 精品国产第一区二区三区 | 人人九九精 | 91精品国产综合久久久久久 | 国产在线观看一区二区三区 | 久久国产亚洲 | 日本在线你懂的 | 国产亚洲成av人在线观看导航 | 一二区视频 | 国产精品99久久久精品免费观看 | 欧美视频免费在线 | 中文在线a在线 | 欧美日韩在线成人 | 亚洲精品在线免费看 | 亚洲高清在线 | 一本一道久久a久久精品综合蜜臀 | 国产成人精品免费 | 麻豆久久久久久 | 午夜成人免费视频 | 久久精品国产久精国产 | 久久国产精品-久久精品 | 女同久久另类99精品国产 | 国产91色在线 | 亚洲 | 欧美亚洲国产一区二区三区 | 97人人超碰 | 91精品国产综合久久久动漫日韩 | 一级h片 | 久久久久亚洲精品 | 日韩精品一区二区三区中文字幕 | 黄色片在线 | 久久99精品久久久久久国产越南 | 国产亚洲日本精品 | a免费在线 | 久久久久久久一区二区三区 | 中文字幕在线一区 | 成人做爰69片免费观看 | 亚洲在线观看视频 | 视频一区二区中文字幕 | 亚洲一区在线免费观看 |