2229|4

27

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

单片机pid控制 [复制链接]

#include
#include  
struct _pid()
{
float SetWater;            //定义设定值
float Water;
float incrementWater;   
float result;        //定义实际值                  
float err;                //定义偏差值
float err_next;            //定义上一个偏差值     
float err_last;            //定义最上前的偏差值
float Kp,Ki,Kd;            //定义比例、积分、微分系数 }pid;  
void PID_init()
{
  pid.SetWater=0.0;     
  pid.result=0.0;     
  pid.err=0.0;
  pid.err_last=0.0;     
  pid.err_next=0.0;     
  pid.Kp=0.2;     
  pid.Ki=0.015;     
  pid.Kd=0.2;
}
}  
float PID_realize(Water)
{   
pid.SetWater=Water;
pid.err=pid.SetWater-pid.result;   
incrementWater=pid.Kp*(pid.err-pid.err_next)+pid.Ki*pid.err+pid.Kd*(pid.err-2*pid.err_next+pid.err_last);
pid.err_last=pid.err_next;     
pid.err_next=pid.err;     
return  incrementWater;
}


compiling pid.c...
PID.C(3): error C141: syntax error near ')'
PID.C(24): error C141: syntax error near '}'
pid.c - 2 Error(s), 0 Warning(s).
怎么改啊,刚学不太懂

此帖出自51单片机论坛

最新回复

1、struct _pid(),括号“()”去掉;结构体定义语法规则,没有() 2、 //定义比例、积分、微分系数 }pid; 这行  在“}”前面换行,//把 “}pid;” 注释掉了有错误; 3、float PID_realize(Water),这行上面的“}”去掉一个,多余了一个; 4、incrementWater=pid.Kp。。。应该是pid.incrementWater=...;否则是未定义的; 5、同上,return incrementWater也应该是pid.incrementWater。否则是未定义的。  详情 回复 发表于 2016-6-28 10:37
点赞 关注
 

回复
举报

1792

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
第一个“}”放错位置了,应该放在void PID_init()的上方
此帖出自51单片机论坛
 
 
 

回复

20

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
同意楼上
此帖出自51单片机论坛
 
 
 

回复

2148

帖子

8

TA的资源

五彩晶圆(初级)

4
 
1、struct _pid(),括号“()”去掉;结构体定义语法规则,没有()
2、 //定义比例、积分、微分系数 }pid; 这行  在“}”前面换行,//把 “}pid;” 注释掉了有错误;
3、float PID_realize(Water),这行上面的“}”去掉一个,多余了一个;
4、incrementWater=pid.Kp。。。应该是pid.incrementWater=...;否则是未定义的;
5、同上,return incrementWater也应该是pid.incrementWater。否则是未定义的。
此帖出自51单片机论坛
 
个人签名坐而言不如起而行
 
 

回复

27

帖子

0

TA的资源

一粒金砂(中级)

5
 
wsmysyn 发表于 2016-6-28 10:37
1、struct _pid(),括号“()”去掉;结构体定义语法规则,没有()
2、 //定义比例、积分、微分系数 }pid;  ...

超级感谢你,我也要努力学习了
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表