代码拉取完成,页面将自动刷新
#include "PIController.h"
#include "FocConfig.h"
/**
* @brief pi计算
* @param target目标值 real实际值
* @return out输出值
*/
void PIControllerStep(PIController_t *pi)
{
float integ,out;
pi->err = pi->target - pi->real;
integ = pi->integral;
integ += pi->ki * pi->err * FOC_PWM_PERIOD;
out = integ + pi->kp * pi->err;
//防止积分饱和,限幅处理
if(out > pi->maxValue)
{
out = pi->maxValue;
}
else if(out < pi->minValue )
{
out = pi->minValue;
}
else
{
}
// if(pi->integSat < integ)
// {
// integ = pi->integSat;
// }
// else if(-pi->integSat > integ)
// {
// integ = -pi->integSat;
// }
pi->integral = integ;
pi->out = out;
}
/**
* @brief pi计算
* @param target目标值 real实际值
* @return
*/
void SpeedLoopStep(PIController_t *pi)
{
float integ,out;
pi->err = pi->target - pi->real;
integ = pi->integral;
integ += pi->ki * pi->err;
out = integ + pi->kp * pi->err;
//防止积分饱和,限幅处理
if(pi->integSat < integ)
{
integ = pi->integSat;
}
else if(-pi->integSat > integ)
{
integ = -pi->integSat;
}
pi->integral = integ;
pi->out = out + pi->lastout;
if(pi->out > pi->maxValue)
{
pi->out = pi->maxValue;
}
else if(pi->out < pi->minValue )
{
pi->out = pi->minValue;
}
else
{
}
pi->lastout = pi->out;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。