[其它产品/技术] c语言实现PID算法

[复制链接]
1914|33
 楼主| eefas 发表于 2024-4-21 18:20 | 显示全部楼层 |阅读模式
#include <stdio.h>
struct _pid
{
       float  error;        //差值
       float error_last;    //上一次差值
       float integral;      //差值的和
}

float Kp =0.01;    //比例系数,  提升速度
float Ki = 1;      //积分系数,稳定输出
float Kd =0.01;    //微分系数,减小振荡

float cur_speed = 0;        //当前的速度
float level = 0;            //用于输出pwm
float set_speed = 50;       //设定的速度

struct _pid pid;
void pid_init()
{
     pid.error = 0;
     pid.error_last = 0;
     pid.integral = 0;
}

void pid_control()
{
     pid.error=set_speed-cur_speed;
     pid.integral +=pid.error;

     level =Kp*pid.error+Ki*pid.integral+Kd*(pid.error-pid.error_last);
     pid.error=pid.error_lasst;

}
int main()
{
     pid_init();
     for(i=0;i<10;i++)
     {
           pid_control();
           printf("当前速度%f  等级 %f\n",cur_speed,level);

     }
     return 0 ;

}

zhengshuai888 发表于 2024-4-21 18:59 来自手机 | 显示全部楼层
PID算法本身不复杂,难的是参数调优。
lidi911 发表于 2024-4-22 08:47 来自手机 | 显示全部楼层
有关PID算法的教程有很多,基础的知识其实就那么多,关键是怎么用好。
小夏天的大西瓜 发表于 2024-4-22 20:23 | 显示全部楼层
PID算法重在参数调优
suncat0504 发表于 2024-4-30 17:42 | 显示全部楼层
PID的调试很麻烦吗?所谓的参数调优,针对不同设备,需要单独调试吗?
地瓜patch 发表于 2024-4-30 22:18 | 显示全部楼层
参数整定才是重点
eleg34ance 发表于 2024-9-18 14:40 | 显示全部楼层
C语言开发PID算法确实会更好 一些,C语言是一种编译型语言,生成的机器码执行效率高,适合对实时性要求较高的控制系统
pe66ak 发表于 2024-9-18 15:53 | 显示全部楼层
这种pid还行,但是调参的时候就麻烦了
miltk 发表于 2024-9-18 17:01 | 显示全部楼层
这是就适用于电机方面的PID操作吗?
wamed 发表于 2024-9-18 18:11 | 显示全部楼层
这套代码具有较好的可移植性,可以在不同的硬件平台和操作系统上运行,便于跨平台开发
teaccch 发表于 2024-9-18 19:21 | 显示全部楼层
PID在嵌入式系统、机器人控制、自动化设备等领域应用广泛,有大量的开发资源和社区支持
canfeil 发表于 2024-9-19 08:48 | 显示全部楼层
我觉得这种算法挺好,简单易懂,很不错
canfeil 发表于 2024-9-19 10:12 | 显示全部楼层
写的好简单啊,PID有这么简单的吗?
suiziq 发表于 2024-9-19 10:14 | 显示全部楼层
这种就调节当前速度是不是就可以了?
twinkhahale 发表于 2024-9-19 12:45 | 显示全部楼层
看这个代码真的简单,以前移植的PID都是好麻烦的啊
nqty 发表于 2024-9-19 14:46 | 显示全部楼层
话说,微分系统减小震荡这个是怎么玩的?
shenxiaolin 发表于 2024-9-20 18:18 | 显示全部楼层
还是不错,现在这个算法很多了,关键是调试
szt1993 发表于 2024-9-24 11:23 | 显示全部楼层
C语言开发PID算法确实会更简单,PID算法涉及的层面还是很多的
星辰大海不退缩 发表于 2024-9-25 18:38 | 显示全部楼层
PID参数优化确实很复杂重点就在参数调试
OKAKAKO 发表于 2024-9-28 16:25 | 显示全部楼层
PID算法其实重在参数的调节
您需要登录后才可以回帖 登录 | 注册

本版积分规则

98

主题

3148

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部