#include "pid.h"
float get_pid(pidDef *pid,float target,float actual)
{
pid->err = target - actual;
pid->integ += pid->err;
if(pid->integ > pid->integ_limit)
{
pid->integ = pid->integ_limit;
}
else if(pid->integ < -pid->integ_limit)
{
pid->integ = -pid->integ_limit;
}
pid->diff = pid->err - pid->last_err;
pid->last_err = pid->err;
pid->out = pid->kp*pid->err + pid->ki * pid->integ + pid->kd*pid->diff;
if(pid->out >= pid->out_limit)
pid->out = pid->out_limit;
if(pid->out <= -pid->out_limit)
pid->out = -pid->out_limit;
//输出斜率限制
if(pid->ramp>0)
{
float ramp = pid->out - pid->out_last;
if(ramp > pid->ramp)
{
pid->out = pid->out_last + pid->ramp;
}
else if(ramp < -pid->ramp)
{
pid->out = pid->out_last - pid->ramp;
}
}
pid->out_last = pid->out;
return pid->out;
}
没有合适的资源?快使用搜索试试~ 我知道了~
输出限幅、积分限幅、输出斜率限制PID算法(C语言)
共2个文件
h:1个
c:1个
需积分: 2 16 下载量 21 浏览量
2022-12-17
14:14:46
上传
评论
收藏 742B ZIP 举报
温馨提示
C语言实现的 并联型PID算法,输出限幅、积分限幅、输出斜率限制PID算法(C语言)
资源推荐
资源详情
资源评论
收起资源包目录
C语言pid输出限幅.zip (2个子文件)
C语言pid输出限幅
pid.h 332B
pid.c 896B
共 2 条
- 1
资源评论
renjkun
- 粉丝: 132
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功