谁能帮我看下这一段C语言?我一点都不懂,每行都解释下吧,尤其是Pdlt+=()是什么个意思?谢谢了!

#defineKp3.3#defineKi0.2#defineKd0floatfDoPID(floatError){staticfloatPrevError_1=0,Pr... #define Kp 3.3
#define Ki 0.2
#define Kd 0
float fDoPID (float Error)
{
static float PrevError_1 = 0, PrevError_2 = 0;
float Pdlt=0;
Pdlt = (Error - PrevError_1) ;
Pdlt += Ki * (Error);
Pdlt += Kd * (Error - 2*PrevError_1 + PrevError_2);
Pdlt *= Kp;
return (Pdlt);
}
展开
 我来答
轩逸一
2013-06-18 · TA获得超过357个赞
知道小有建树答主
回答量:153
采纳率:0%
帮助的人:147万
展开全部
#define Kp 3.3//定义 常量Kp 值为 3.3(一遇到Kp就用3.3代替)
#define Ki 0.2//定义 常量Ki
#define Kd 0//定义 常量Kd
float fDoPID (float Error)//返回值类型 float 函数名 fDoPID 形参类型 float 形参名 Error
{
static float PrevError_1 = 0, PrevError_2 = 0;//声明变量
float Pdlt=0;//声明变量
Pdlt = (Error - PrevError_1) ;
Pdlt += Ki * (Error);//等价于 Pdlt = Pdlt + Ki*(Error);
Pdlt += Kd * (Error - 2*PrevError_1 + PrevError_2);//同理
Pdlt *= Kp;//等价于 Pdlt = Pdlt * Kp;
return (Pdlt);//返回 Pdlt的值
}

解释语法:a+=b;等价于 a = a+b;
a*=b;等价于 a = a* b;
符号 /= %= -= 都是同理
希望你能找一本C语言书好好看一看。
ljt20061908
2013-06-18 · TA获得超过1033个赞
知道小有建树答主
回答量:527
采纳率:87%
帮助的人:202万
展开全部
Pdlt += Ki * (Error);//就是Pdlt = Pdlt + Ki * (Error)前面的写法编译效率高
Pdlt *= Kp;//就是Pdlt = Pdlt * Kp;
追问
谢谢!  这句呢?
static float PrevError_1 = 0, PrevError_2 = 0;

static是什么?百度说的没看懂,能否通俗讲讲这条指令的作用?
追答
静态变量,这个是个关键字,不同的地方有不同的作用。是给编译器看的,告诉编译器定义的这个变量应该放在什么地方。不是我几句话就能让你完全明白的,你先看别人解释,以后多遇到了,一一对比,慢慢的就懂了,不可能一下吃成个胖子的,慢慢来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjj0814best
2013-06-18 · 超过19用户采纳过TA的回答
知道答主
回答量:129
采纳率:0%
帮助的人:55.5万
展开全部
一条PID控制回路
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式