c语言pid算法,c语言 pid算法

kodinid 6 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言pid算法问题,于是小编就整理了3个相关c语言pid算法的解答,让我们一起看看吧。

  1. pid算法c语言怎么写?
  2. pid怎么算?
  3. 什么是PID算法?

pid算法c语言怎么写?

PID (比例-积分-微分) 算法是一种常用的控制算法,可以用来调节控制系统性能。下面是一个简单的 PID 算法的 C 语言实现

#define MAX_OUTPUT100

c语言pid算法,c语言 pid算法-第1张图片-安济编程网
图片来源网络,侵删)

#define MIN_OUTPUT -100

void PID_Controller(float target, float current, float *output, float kp, float ki, float kd, float *integral, float *previous_error) {

float error = target

c语言pid算法,c语言 pid算法-第2张图片-安济编程网
(图片来源网络,侵删)

1.定义PID变量结构体: struct_pid{floatSetSpeed;//定义设定值floatActualSpeed;//定义实际值floaterr;//定义偏差值floaterr_last;//定义上一个偏差值floatKp,Ki,Kd;//定义比例、积分、微分系数floatvoltage;//定义电压值(控制执行器的变量)floatintegral;//定义积分值}pid; 

2.初始化变量: voidPID_init(){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;}  Kp,Ki,Kd

pid怎么算?

PID的增量型公式

c语言pid算法,c语言 pid算法-第3张图片-安济编程网
(图片来源网络,侵删)

PID=Uk+KP*【E(k)-E(k-1)】+KI*E(k)+KD*【E(k)-2E(k-1)+E(k-2)】

PID算法具体分两种:一种是位置式的 ,一种是增量式的。

PID的增量型公式:

PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。

输入e (t)与输出u (t)的关系为

u(t)=kp(e(t)+1/TI∫e(t)dt+TD*de(t)/dt) 式中积分的上下限分别是0和t

什么是PID算法?

“PID算法”在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器(亦称PID调节器)是应用最为广泛的一种控制器。;它具有原理简单,易于实现,适用面广,控制参数相互独立,参数的选定比较简单等优点;而且在理论上可以证明,对于过程控制的典型对象──“一阶滞后+纯滞后”与“二阶滞后+纯滞后”的控制对象,PID控制器是一种最优控制。;

PID调节规律是连续系统动态品质校正的一种有效方法,它的参数整定方式简便,结构改变灵活(PI、PD、…)。;控制点包含三种比较简单的PID控制算法,分别是:增量式算法,位置式算法,微分先行。 这三种PID算法虽然简单,但各有特点基本上能满足一般控制的大多数要求。;PID增量式算法;离散化公式:;△u(k)= u(k)- u(k-1);△u(k)=Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)];进一步可以改写成;△u(k)=Ae(k)-Be(k-1)+Ce(k-2)。

到此,以上就是小编对于c语言pid算法的问题就介绍到这了,希望介绍关于c语言pid算法的3点解答对大家有用。

标签: 算法 pid 控制