编写脉冲轴闭环控制C语言代码
#include <stdio.h>
#include <math.h>
//定义脉冲轴参数
double Kp=1; //比例系数Kp
double Ki=0.1; //积分系数Ki
double Kd=0.01; //微分系数Kd
double Setpoint=1000; //设定值Setpoint
double ProcessValue = 0;//当前值ProcessValue
double LastError = 0;//上一次的误差LastError
double ErrorSum = 0 ;//误差累加 ErrorSum
double dErr = 0 ;//本次误差与上一次误差之差 dErr
double OutputValue = 0 ;//输出量 OutputValue
void PID_Calc() {
//本次误差,即当前值与设定值之间的偏差
double Error = Setpoint - ProcessValue ;
//P 控制项,根据偏差来直接作用在输出上,随着时间的变化而不断变化。
OutputValue += Kp * (Error - LastError);
//I 控制项,根据历史的误差进行加权平均,随时间的流逝而不断集中。
ErrorSum += Ki * Error; OutputValue += ErrorSum ;
//D 控制项,根据本次与上一时刻的误差之间的变化情况来作用于输出 ,以此来表征当前信号在波动方向上是否有显著性变化。 dErr = (Error - LastError); OutputValue += Kd * dErr ; LastError = Error ; }
AI智能问答网免责声明:
以上内容除特别注明外均来源于网友提问、ChatGPT回答,权益归原著者所有,本站仅作效果演示和欣赏之用;
若以上展示有冒犯或侵害到您,敬请联系我们进行删除处理,谢谢!