亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? c-for-pid.txt

?? C語言實現PID算法 研究PID控制的朋友 請下載!
?? TXT
字號:
C語言實現PID算法:
#include <stdio.h>
#include<math.h>
  
  struct _pid {
   int pv; /*integer that contains the process value*/
   int sp; /*integer that contains the set point*/
   float integral;
   float pgain;
   float igain;
   float dgain;
   int deadband;
   int last_error;
  };
  
  struct _pid warm,*pid;
  int process_point, set_point,dead_band; 
  float p_gain, i_gain, d_gain, integral_val,new_integ;; 
    
  /*------------------------------------------------------------------------ 
  pid_init 
  
  DESCRIPTION This function initializes the pointers in the _pid structure 
  to the process variable and the setpoint. *pv and *sp are 
  integer pointers. 
  ------------------------------------------------------------------------*/ 
  void pid_init(struct _pid *warm, int process_point, int set_point)
  { 
   struct _pid *pid; 
   
   pid = warm; 
   pid->pv = process_point; 
   pid->sp = set_point; 
  }   
  /*------------------------------------------------------------------------ 
  pid_tune 
  
  DESCRIPTION Sets the proportional gain (p_gain), integral gain (i_gain), 
  derivitive gain (d_gain), and the dead band (dead_band) of 
  a pid control structure _pid. 
  ------------------------------------------------------------------------*/ 
  
  void pid_tune(struct _pid *pid, float p_gain, float i_gain, float d_gain, int dead_band) 
  { 
   pid->pgain = p_gain; 
   pid->igain = i_gain; 
   pid->dgain = d_gain; 
   pid->deadband = dead_band; 
   pid->integral= integral_val; 
   pid->last_error=0; 
  } 
  
  /*------------------------------------------------------------------------ 
  pid_setinteg 
  
  DESCRIPTION Set a new value for the integral term of the pid equation. 
  This is useful for setting the initial output of the 
  pid controller at start up. 
  ------------------------------------------------------------------------*/ 
  void pid_setinteg(struct _pid *pid,float new_integ)
  { 
   pid->integral = new_integ; 
   pid->last_error = 0; 
  } 
  
  /*------------------------------------------------------------------------ 
  pid_bumpless 
  
  DESCRIPTION Bumpless transfer algorithim. When suddenly changing 
  setpoints, or when restarting the PID equation after an 
  extended pause, the derivative of the equation can cause 
  a bump in the controller output. This function will help 
  smooth out that bump. The process value in *pv should 
  be the updated just before this function is used. 
  ------------------------------------------------------------------------*/ 
  void pid_bumpless(struct _pid *pid) 
  {   
   pid->last_error = (pid->sp)-(pid->pv);    
  } 
  
  /*------------------------------------------------------------------------ 
  pid_calc   
  DESCRIPTION Performs PID calculations for the _pid structure *a. This function uses the positional form of the pid equation, and incorporates an integral windup prevention algorithim. Rectangular integration is used, so this function must be repeated on a consistent time basis for accurate control. 
  
  RETURN VALUE The new output value for the pid loop.   
  USAGE #include "control.h"*/   
  float pid_calc(struct _pid *pid)
  { 
   int err;
   float pterm, dterm, result, ferror; 
   
   err = (pid->sp) - (pid->pv); 
   if (abs(err) > pid->deadband) 
   { 
   ferror = (float) err; /*do integer to float conversion only once*/ 
   pterm = pid->pgain * ferror; 
   if (pterm > 100 || pterm < -100)
   {
   pid->integral = 0.0; 
   }
   else 
   { 
   pid->integral += pid->igain * ferror; 
   if (pid->integral > 100.0) 
   {
   pid->integral = 100.0; 
   }
   else if (pid->integral < 0.0) pid->integral = 0.0; 
   } 
   dterm = ((float)(err - pid->last_error)) * pid->dgain; 
   result = pterm + pid->integral + dterm; 
   } 
   else result = pid->integral; 
   pid->last_error = err; 
   return (result); 
  }
  
void main(void)
  {
   float display_value;
   int count=0;
  
   pid = &warm;
  
  // printf("Enter the values of Process point, Set point, P gain, I gain, D gain \n");
  // scanf("%d%d%f%f%f", &process_point, &set_point, &p_gain, &i_gain, &d_gain);  
   process_point = 30;
   set_point = 40;
   p_gain = (float)(5.2);
   i_gain = (float)(0.77);
   d_gain = (float)(0.18);
    
   dead_band = 2;
   integral_val =(float)(0.01);
    
   printf("The values of Process point, Set point, P gain, I gain, D gain \n");
   printf(" %6d %6d %4f %4f %4f\n", process_point, set_point, p_gain, i_gain, d_gain);
  
   printf("Enter the values of Process point\n");
  
   while(count<=20)
   {  
   scanf("%d",&process_point);  
   pid_init(&warm, process_point, set_point);
   pid_tune(&warm, p_gain,i_gain,d_gain,dead_band);
   pid_setinteg(&warm,0.0); //pid_setinteg(&warm,30.0);
  
   //Get input value for process point
   pid_bumpless(&warm);
  
   // how to display output
   display_value = pid_calc(&warm); 
   printf("%f\n", display_value); 
   //printf("\n%f%f%f%f",warm.pv,warm.sp,warm.igain,warm.dgain); 
   count++;   
   }   
  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲男女一区二区三区| 久久综合久久综合久久综合| 国产精一品亚洲二区在线视频| 亚洲香肠在线观看| 午夜激情久久久| 亚洲成在线观看| 亚洲成人动漫av| 日韩高清中文字幕一区| 日本三级韩国三级欧美三级| 免费在线观看一区| 免费观看一级特黄欧美大片| 美国十次综合导航| 麻豆久久久久久久| 国产成人精品亚洲午夜麻豆| 99久久伊人精品| 色婷婷一区二区| 欧美日韩国产另类一区| 欧美一区二区三区婷婷月色| 精品国产免费人成电影在线观看四季| 欧美一级片在线看| 国产午夜亚洲精品午夜鲁丝片| 国产欧美1区2区3区| 自拍偷拍亚洲欧美日韩| 亚洲第一二三四区| 久久电影网站中文字幕| 丁香激情综合五月| 色综合色狠狠天天综合色| 欧美日韩久久不卡| 欧美精品一区二区三区蜜桃视频 | 日韩一区在线看| 亚洲综合激情网| 久久91精品久久久久久秒播| 国产成人啪午夜精品网站男同| 91女厕偷拍女厕偷拍高清| 欧美日韩一区不卡| 精品国产乱码久久久久久蜜臀| 国产精品青草综合久久久久99| 亚洲精品国产品国语在线app| 日韩专区在线视频| 成人午夜大片免费观看| 欧美日韩免费观看一区二区三区 | 成人永久免费视频| 欧美性三三影院| 久久亚洲二区三区| 亚洲成av人**亚洲成av**| 国产一区 二区 三区一级| 欧美在线免费观看亚洲| 国产偷v国产偷v亚洲高清| 性做久久久久久久久| 成人av在线观| 欧美va亚洲va| 亚洲国产精品人人做人人爽| 国产一区二区看久久| 欧美日韩和欧美的一区二区| 久久综合久久鬼色| 日韩国产在线观看| 在线一区二区三区四区五区| 日本一区二区三区高清不卡| 青青草成人在线观看| 欧美制服丝袜第一页| 国产精品免费免费| 国产精品一区二区在线观看网站| 欧美一区二区三区在线视频| 亚洲一级二级三级在线免费观看| 国产高清亚洲一区| 日韩三级.com| 麻豆成人91精品二区三区| 欧美日韩一区高清| 一区二区三区四区亚洲| 99久久精品免费看| 国产拍揄自揄精品视频麻豆| 国产精品亚洲专一区二区三区| 91精品国产91久久久久久一区二区| 一区二区三区在线影院| 99亚偷拍自图区亚洲| 国产精品剧情在线亚洲| 丁香婷婷深情五月亚洲| 国产精品拍天天在线| 国产精品亚洲专一区二区三区 | 精品一区二区在线看| 日韩一区二区三区视频在线| 日韩国产欧美在线视频| 欧美精品久久久久久久久老牛影院| 亚洲成人自拍网| 欧美日韩免费高清一区色橹橹 | 另类小说综合欧美亚洲| 精品国产区一区| 国产一区视频网站| 欧美激情综合在线| 99国产精品久久久久久久久久久 | 国产精品99精品久久免费| 久久亚洲二区三区| 成人h版在线观看| 一区二区三区视频在线看| 精品视频在线免费观看| 奇米在线7777在线精品| 久久天天做天天爱综合色| 国产成人精品影视| 亚洲人被黑人高潮完整版| 欧美日韩五月天| 国产在线乱码一区二区三区| 欧美—级在线免费片| 在线免费亚洲电影| 日韩av一区二| 国产精品久久影院| 欧美久久一二区| 国产乱码精品一品二品| 亚洲综合免费观看高清完整版| 日韩欧美在线一区二区三区| 国产成人免费视频| 亚洲激情在线播放| 精品99久久久久久| 91免费看视频| 久久激情五月婷婷| 亚洲品质自拍视频网站| 欧美videos中文字幕| 91麻豆精品秘密| 国产精品中文欧美| 亚洲成人1区2区| 国产午夜一区二区三区| 911精品产国品一二三产区| 国产成人免费网站| 日本欧美韩国一区三区| 亚洲人成在线播放网站岛国| 26uuu亚洲| 欧美日韩视频不卡| 不卡影院免费观看| 九九热在线视频观看这里只有精品| 综合色天天鬼久久鬼色| 亚洲精品在线网站| 91精品国产入口在线| caoporn国产精品| 韩国一区二区三区| 亚洲va韩国va欧美va精品| 中文字幕一区日韩精品欧美| 日韩片之四级片| 在线不卡中文字幕| 欧美性色欧美a在线播放| jiyouzz国产精品久久| 国产一区二区三区香蕉| 日韩高清一区二区| 亚洲综合999| 亚洲精选在线视频| 亚洲欧洲99久久| 中文av一区二区| 久久久蜜桃精品| 欧美成人官网二区| 日韩一区二区三区视频| 欧美一级二级三级乱码| 欧美日韩aaa| 在线中文字幕一区二区| 91麻豆国产福利在线观看| 99视频精品在线| 成人精品亚洲人成在线| 成人在线综合网| 成人精品免费看| 成人在线一区二区三区| 丁香天五香天堂综合| 粉嫩一区二区三区在线看| 国产白丝精品91爽爽久久| 国产乱码字幕精品高清av| 国产福利电影一区二区三区| 国产精品亚洲午夜一区二区三区 | 中文久久乱码一区二区| 国产色爱av资源综合区| 中文在线一区二区| 欧美国产97人人爽人人喊| 国产精品九色蝌蚪自拍| 《视频一区视频二区| 亚洲欧美激情插 | 久久久久久毛片| 中文字幕高清不卡| 一区二区激情视频| 视频在线观看一区二区三区| 黄色日韩三级电影| 国产成人99久久亚洲综合精品| 99九九99九九九视频精品| 色综合久久中文字幕| 欧美日韩国产免费一区二区| 欧美一区二区精品| 国产精品天干天干在观线| 亚洲女同女同女同女同女同69| 一区二区三区欧美| 天天av天天翘天天综合网| 美女脱光内衣内裤视频久久影院| 精品一区二区精品| 色天天综合色天天久久| 欧美一级免费观看| 国产精品成人免费| 日本在线不卡视频| 白白色 亚洲乱淫| 国产精品日日摸夜夜摸av| 亚洲精品成人a在线观看| 91蜜桃视频在线| 国产三级一区二区| 色婷婷综合视频在线观看| 久久精品视频在线看| 久久国产人妖系列| 91丨九色porny丨蝌蚪| 91精品国产日韩91久久久久久|