PID算法C语言实现

本文介绍了如何使用C语言实现位置型和增量型PID算法。通过定义结构体 `_pid` 存储相关变量,初始化函数 `PID_init` 设置默认值,以及计算控制电压的 `PID_realize` 函数,实现了PID控制器的核心逻辑。通过对比例系数Kp、积分系数Ki和微分系数Kd的调整,可以优化控制效果。
摘要由CSDN通过智能技术生成

位置型PID的C语言实现:

 struct _pid{

float SetSpeed;//定义设定值

float ActualSpeed;//定义实际值

float err;//定义偏差值

float err_last;//定义上一个偏差值

float Kp,Ki,Kd;//定义比例,积分,微分系数

float voltage;//定义电压值(控制执行器的变量)

float integral;//定义积分值

}pid;

void PID_init(){

printf(“PID_init begin \n”);

pid.SetSpeed = 0.0;

pid.ActualSpeed=0.0;

pid.err=0.0;

pid.err_last=0.0;

pid.voltage=0.0;

pid.integral=0.0;

pid.Kp=0.2;

pid.Ki=0.015;

pid.Kd=0.2;

printf(“PID_init end \n”)

}

//统一初始化变量,尤其是Kp,Ki,Kd三个参数,调试过程当中,对于要求的控制效果,可以通过调节这三个量直接进行调节

float PID_realize(float speed){

pid.SetSpeed=speed;

pid.err=pid.SetSpeed-pid.ActualSpeed;

pid.integral+=pid.err

pid.voltage=pid.Kp*pid.err+pid.Ki*pid

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值