煞北是什么意思| 什么是纳豆| 吃醋对身体有什么好处| 一毛三是什么军衔| 螃蟹爱吃什么| 戈谢病是什么病| 全身骨头疼是什么原因| 怀孕为什么会流褐色分泌物| 履新是什么意思| 金字旁有什么字| 男人时间短吃什么药| 安逸是什么意思| 眼泪为什么是咸的| 甲亢吃什么盐好| 大悲咒什么意思| 信女是什么意思| 小三阳吃什么药能转阴| 为什么头老是晕晕的| pct是什么意思| 梦见给别人剪头发是什么意思| 生理期没来是什么原因| 心眼是什么意思| 寅时五行属什么| 无以言表什么意思| 摩羯座男生喜欢什么样的女生| 超敏c反应蛋白高是什么意思| 祭奠用什么花| 拉肚子吃什么水果| 排卵期身体有什么症状表现吗| 青鱼和草鱼有什么区别| 郑板桥擅长画什么| 导火索是什么意思| 05属什么生肖| 拔河是什么意思| 胰腺炎为什么喝水就死| 厄警失痣是什么意思| 什么叫钙化了| 腠理是什么意思| 什么药治鼻炎| 像什么一样| 香港是什么时候回归的| 观音菩萨的坐骑是什么| 水蛭怕什么| 皮是什么意思| 82年属狗是什么命| 梦到和别人打架是什么意思| 时光荏苒的意思是什么| 娃娃鱼属于什么类动物| 阳刃是什么意思| 美蛙是什么蛙| 英纳格手表什么档次| 头皮屑多是什么原因怎么去除| 跳蛋是什么感觉| 产检是什么意思| 医士是什么职称| 愤是什么生肖| 岍是什么意思| 九门提督相当于现在什么官| 食欲亢进是什么意思| 去阴虱用什么药最好| 悻悻然是什么意思| 青羊药片有什么功效| 梦见长牙齿预示着什么| 吃地瓜叶有什么好处和坏处| 草字头加叔念什么| 倍他乐克是什么药| 9.23什么星座| 温婉是什么意思| 尿酸高是什么原因导致的| 屁股生疮是什么原因| 化疗后吃什么恢复快| 无名指和小指发麻是什么原因| 中药一剂是什么意思| 为什么晚上血压比白天高| 促甲状腺素高是什么意思| 贴黄瓜片对皮肤有什么好处| 焖面用什么面条| 脑卒中是什么意思| mu是什么意思| ct查什么| 狗狗蛋蛋红肿是什么原因| 减肥吃什么主食比较好| 妊娠是什么意思啊| 酵母菌属于什么菌| 读书有什么好处| 什么是精神病| 一进大门看见什么最好| 新生儿睡觉突然大哭是什么原因| 死库水是什么意思| 眼睛胀痛是什么原因| 什么是辅酶q10| 高血压吃什么药好| 为什么拉屎是黑色的| 什么人入什么| 氧氟沙星和诺氟沙星有什么区别| 路上遇到蛇是什么征兆| 耳朵疼痛是什么原因| cbb电容是什么电容| 湄公鱼是什么鱼| 尿毒症小便什么颜色| 女人抖腿代表什么意思| 总警司相当于大陆什么官| 为什么会尿路感染| 开口腔诊所需要什么条件| mct是什么| mj是什么意思| 嗓子痒吃什么药| 拜谢是什么意思| 更是什么结构的字| 脑梗病人吃什么营养恢复最好| 6月30日是什么节日| 嫁给香港人意味着什么| 荷花什么时候开花| 什么血型不招蚊子| 为什么湿气重| 车票改签是什么意思| 乱花渐欲迷人眼是什么意思| 蘑菇不能和什么一起吃| 梦到蜈蚣是什么意思| 药店最怕什么样的举报| 鸾凤和鸣什么意思| 群聊名字什么最好听| 锁阳是什么| 618是什么日子| 五月二十八是什么日子| 双鱼座是什么性格| 嘴角流口水是什么原因| 什么中药减肥| 欧豪资源为什么这么好| 壬水代表什么| 初秋的天冰冷的夜是什么歌| 月经是黑色的是什么原因| 房颤有什么危害| 四十岁月经量少是什么原因| 破伤风有什么症状| 转基因和非转基因有什么区别| 肚子胀气吃什么药好得快| 鼻尖疼是什么原因| 风湿性关节炎吃什么药| 日光灯属于什么光源| 夏天吃羊肉有什么好处| 做肝功能检查挂什么科| 来大姨妈能喝什么饮料| 藏红花有什么作用| 树冠是指什么| 肝功能看什么科室| 獐子是什么动物| 乙状结肠是什么意思| 姓袁女孩叫什么名字好听| 到底为什么| 为什么排卵期会出血| mk属于什么档次| 月亮是什么生肖| 水银中毒会出现什么状况| 月字旁与什么有关| 1994年属狗的是什么命| 女人什么时候排卵期| crp高是什么感染| 孩子拉肚子吃什么食物好| 什么原因引起低压高| 数字化摄影dr是检查什么| 5月25日什么星座| 胎盘前置是什么意思| 脾不统血吃什么中成药| 身上为什么会长小肉球| fan是什么意思| 三班倒什么意思| 失代偿期的肝是属于什么程度| 你太low了是什么意思| 最好的洗发水是什么牌子| 什么样的人长寿| 胃疼吃什么消炎药| 先天性聋哑病属于什么遗传病| 旗舰机是什么意思| 6是什么意思网络语言| 窦房结是什么意思| 胆囊结石用什么药好| 瞌睡多什么原因| 党的执政理念是什么| 吃什么补黄体酮最快| 肚子特别疼是什么原因| 九点是什么时辰| 良性反应性改变是什么意思| 右边偏头痛什么原因| 颅内缺血灶是什么病症| 肠炎吃什么药好的快| 张学良为什么叫小六子| 红艳桃花是什么意思| 化疗后吃什么食物最好| 胎儿颈部可见u型压迹什么意思| 非亲非故是什么意思| 下下签是什么意思| 眼睛出现飞蚊症什么原因怎么办| 大便失禁是什么原因造成的| 梦到挖坟墓是什么意思| 甲状腺属于什么科室| 好汉不吃眼前亏是什么意思| 围产期是什么意思| 头孢治疗什么| 对虾是什么虾| 农历十月初五是什么星座| 6月16日是什么星座| 积液是什么| 咸湿佬是什么意思| 白带变多是什么原因| 梦魇是什么原因造成的| 外泌体是什么| 金是什么结构| 梦见很多人是什么意思| 草酸对人体有什么危害| 夏天中暑吃什么药| 吃薄荷对人身体有什么好处| 男士圆脸适合什么发型| 天空为什么是蓝色| 长期贫血会导致什么严重后果| 鹭鸶是什么动物| 什么叫真菌| 穿刺检查是什么意思| 尿道炎吃什么药好| tam是什么意思| nmol是什么单位| 硝苯地平是什么药| 男羊配什么属相最好| 遗精频繁是什么原因| 肝内多发低密度影是什么意思| 吃什么补骨髓造血| 宝宝消化不良吃什么药| 黄体功能不足是什么原因造成的| 样板间是什么意思| notebook什么意思| 巨蟹座和什么星座最配| 五四运动是什么| 守灵什么意思| 芈月和秦始皇是什么关系| 丙是什么意思| 孕妇为什么要躲着白事| 握手是什么意思| 想吐吃什么药| 徒劳无功是什么意思| 萨瓦迪卡什么意思| 尿结石挂什么科| 阴囊潮湿是什么症状| 大便为什么不成形| 什么辣椒又香又辣| 肠炎有什么表现| 肝内低回声区是什么意思| 什么是基础医学| 农历六月十四是什么日子| 什么时候吃苹果最好| 羊膜束带是什么意思| 属羊的是什么星座| 艾草泡脚有什么功效| 蚊子为什么要吸血| 做人流挂什么科| 乌龟最喜欢吃什么| 东北方五行属什么| 白球比偏低吃什么补| 鲜为人知什么意思| 地球为什么自转| 眼睛经常有眼屎是什么原因| lsil什么意思| 扁平足是什么| 小便少是什么原因| 魏丑夫和芈月什么关系| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 综合技术 ? 电源与模拟 ? msp430单片机中增量式pid算法的C实现方法

共1条 1/1 1 跳转至

msp430单片机中增量式pid算法的C实现方法

工程师
2025-08-04 18:46:56     打赏
百度 2010年发布的《保险公司股权管理办法》有37条,近年来做过一些补充性规则,并没有体系性修订。

#include 
  #include

  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++; 

   } 

  }

 msp430单片机中增量式pid算法的C实现方法.rar (1.64 KB, 下载次数: 0) 




关键词: msp430     单片     机中     增量     算法     实现     方法    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
老人脚肿是什么原因 什么时候断奶最合适 什么才是真正的情人 孕妇多吃什么食物好 长瘊子是什么原因
经常失眠是什么原因 寒热往来什么意思 南京菜属于什么菜系 阴道干燥是什么原因 什么减肥效果最好
郑成功是什么朝代的 cip号是什么 孕妇肾积水是什么原因引起的 蓝莓不能和什么一起吃 血糖高喝什么茶好
头皮痒用什么洗发水效果好 子宫后位是什么意思 午时属什么生肖 蚝油可以用什么代替 为什么会有痛经
金乐什么字hcv8jop4ns6r.cn 乳粉是什么hcv7jop9ns7r.cn 树大招风的意思是什么hcv9jop4ns4r.cn 梦见孕妇是什么预兆xscnpatent.com 鹿茸是什么hcv7jop7ns0r.cn
表白送什么花clwhiglsz.com 肠胃不好吃什么药好hcv7jop9ns6r.cn mys是什么意思zhiyanzhang.com 胎心不稳定是什么原因hcv7jop7ns4r.cn 阿米替林片是治什么病的xianpinbao.com
必要条件是什么意思hcv9jop7ns3r.cn 一什么木屋hcv9jop6ns8r.cn 什么有作为hcv7jop7ns0r.cn 没吃多少东西但肚子很胀是什么aiwuzhiyu.com 李健是清华什么专业hcv9jop3ns4r.cn
打破伤风针挂什么科hcv7jop9ns8r.cn 心脏病是什么症状chuanglingweilai.com 室早三联律是什么意思weuuu.com 珈字五行属什么hcv8jop1ns0r.cn 宝宝拉黑色大便是什么原因hcv8jop2ns7r.cn
百度