当前位置:首页 » 操作系统 » pid算法实验

pid算法实验

发布时间: 2022-04-29 10:27:43

❶ 什么是“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)。

❷ PID算法控制温度加热系统,室温(为防止分数流失,做成追加100分以上)

刚好前不久搞过PID,部分程序如下,仅供参考

/*==============================================================================
在使用单片机作为控制cpu时,请稍作简化,具体的PID参数必须由具体对象通过实验确定。
由于单片机的处理速度和ram资源的限制,一般不采用浮点数运算,而将所有参数全部用整数,
运算到最后再除以一个2的N次方数据(相当于移位),作类似定点数运算,可大大提高运算速度,
根据控制精度的不同要求,当精度要求很高时,注意保留移位引起的“余数”,做好余数补偿。
这个程序只是一般常用pid算法的基本架构,没有包含输入输出处理部分。
==============================================================================*/

#include <string.h>
#include <stdio.h>

/*===============================================================================
PID Function
The PID function is used in mainly
control applications. PID Calc performs one iteration of the PID
algorithm.
While the PID function works, main is just a mmy program showing
a typical usage.

PID功能
在PID功能主要用于控制应用。 PID 计算器执行一个PID的迭代算法。虽然PID功能的工程,
主要只是一个虚拟程序显示一个典型的使用。
================================================================================*/
typedef struct PID {
double SetPoint; // 设定目标 Desired Value
double Proportion; // 比例常数 Proportional Const
double Integral; // 积分常数 Integral Const
double Derivative; // 微分常数 Derivative Const
double LastError; // Error[-1]
double PrevError; // Error[-2]
double SumError; // Sums of Errors
} PID;

/*================================ PID计算部分===============================*/
double PIDCalc( PID *pp, double NextPoint )
{
double dError, Error;

Error = pp->SetPoint - NextPoint; // 偏差
pp->SumError += Error; // 积分
dError = pp->LastError - pp->PrevError; // 当前微分
pp->PrevError = pp->LastError;
pp->LastError = Error;
return (pp->Proportion * Error // 比例项
+ pp->Integral * pp->SumError // 积分项
+ pp->Derivative * dError // 微分项
);
}

/*======================= 初始化的PID结构 Initialize PID Structure===========================*/
void PIDInit (PID *pp)
{
memset ( pp,0,sizeof(PID));
}

/*======================= 主程序 Main Program=======================================*/
double sensor (void) // 虚拟传感器功能 Dummy Sensor Function{ return 100.0;}
void actuator(double rDelta) // 虚拟驱动器功能 Dummy Actuator Function{}
void main(void)
{
PID sPID; // PID控制结构 PID Control Structure
double rOut; // PID响应(输出) PID Response (Output)
double rIn; // PID反馈(输入) PID Feedback (Input)
PIDInit ( &sPID ); // 初始化结构 Initialize Structure
sPID.Proportion = 0.5; // 设置PID系数 Set PID Coefficients
sPID.Integral = 0.5;
sPID.Derivative = 0.0;
sPID.SetPoint = 100.0; // 设置PID设定 Set PID Setpoint
for (;;)
{ // 模拟最多的PID处理 Mock Up of PID Processing
rIn = sensor (); // 读取输入 Read Input
rOut = PIDCalc ( &sPID,rIn ); // 执行的PID迭代 Perform PID Interation
actuator ( rOut ); // 所需的更改的影响 Effect Needed Changes
}

❸ 数字PID算法研究及仿真

等着我来~

❹ PID算法实现该系统控制

增量式PID控制程序:
%Increment PID Controller
clear all
close all
ts=0.005;
sys=tf([0.1,10],[0.0004,0.0454,0.555,1.51,11],'inputdelay',0.2);
dsys=c2d(sys,ts,'z');
[num den]=tfdata(dsys,'v');
for k=1:44
yout(k)=0;
end
u_1=0;u_2=0;u_3=0;u_4=0;
y_1=0.0;y_2=0.0;y_3=0.0;y_4=0.0;
x=[0,0,0];error_1=0,error_2=0;
kp=0.016;ki=0.056;kd=1
for k=45:1000
time(k)=k*ts;
kp=0.55,ki=0,kd=0;
rin(k)=1.0;
(k)=kp*x(1)+kd*x(2)+ki*x(3);
u(k)=u_1+(k);
yout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3-den(5)*y_4+num(1)*u_1+num(2)*u_2+num(3)*u_3+num(4)*u_4
error=rin(k)-yout(k);
u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);
y_4=y_3;y_3=y_2;y_2=y_1;y_1=yout(k);
x(1)=error-error_1; %calculating p
x(2)=error-2*error_1+error_2; %calculating d
x(3)=error; %calculating i
error_2=error_1;error_1=error;
end
figure(1);
plot(time,rin,'b',time,yout,'r');
xlabel('time(s)'),ylabel('rin,yout');
title('单位阶跃响应曲线')

Z-N法整定:
clear all
close all
ts=0.005;
sys=tf([0.1,10],[0.0004,0.0454,0.555,1.51,11],'inputdelay',0.2);
dsys=c2d(sys,ts,'z');
rlocus(dsys)

❺ 分析常规PID控制算法与积分分离PID控制算法在实验中的控制效果。

积分分离PID算法具有抗积分饱和作用,当系统出现长时间较大偏差时限制输出增幅太大,提高控制品质。

❻ 用PID算法实现温度控制

第一步:把器件等各种实物连上...
第二步:开环,对PWM的控温信号加阶跃(改变PWM的占空比),由输入输出的结果大致得出加热器的数学模型
第三部:由理论公式整定出PID参数
第四部:根据实际结果调节PID以达到你想要的指标

❼ 什么是pid算法,难学吗,用C语言,plc怎么实现

一、什么是PID:

PID即:Proportional(比例)、Integral(积分)、Differential(微分)的缩写。顾名思义,PID控制算法是结合比例、积分和微分三种环节于一体的控制算法,它是连续系统中技术最为成熟、应用最为广泛的一种控制算法,该控制算法出现于20世纪30至40年代,适用于对被控对象模型了解不清楚的场合。 ---网络

二、PID是否难学:

在工业应用中PID及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法,如果能够熟练掌握PID算法的设计与实现过程,对于一般的研发人员来讲,应该是足够应对一般研发问题了,而难能可贵的是,在我所接触的控制算法当中,PID控制算法又是最简单,最能体现反馈思想的控制算法,可谓经典中的经典。经典的未必是复杂的,经典的东西常常是简单的,而且是最简单的,想想牛顿的力学三大定律吧,想想爱因斯坦的质能方程吧,何等的简单!简单的不是原始的,简单的也不是落后的,简单到了美的程度。 ---【1】

三、PID算法的C语言源码

PID 控制算法可以分为位置式 PID和增量式 PID控制算法

详细见参考【1】【2】


参考:

【1】PID算法

【2】简易PID算法的快速扫盲(超详细+过程推导+C语言程序)

❽ PID的计算公式

PID的增量型公式:

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

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

位置式PID的输出与过去的所有状态有关,计算时要对e(每一次的控制误差)进行累加,这个计算量非常大,而明显没有必要。而且小车的PID控制器的输出并不是绝对数值,而是一个△,代表增多少,减多少。换句话说,通过增量PID算法,每次输出是PWM要增加多少或者减小多少,而不是PWM的实际值。所以明白增量式PID就行了。


PID控制原理:

本系统通过摆杆(辊)反馈的位置信号实现同步控制。收线控制采用实时计算的实际卷径值,通过卷径的变化修正PID前馈量,可以使整个系统准确、稳定运行。

PID系统特点:

1、主驱动电机速度可以通过电位器来控制,把S350设置为SVC开环矢量控制,将模拟输出端子FM设定为运行频率,从而给定收卷用变频器的主速度。

2、收卷用S350变频器的主速度来自放卷(主驱动)的模拟输出端口。摆杆电位器模拟量

信号通过CI通道作为PID的反馈量。S350的频率源采用主频率Ⅵ和辅助频率源PID叠加的方式。通过调整运行过程PID参数,可以获得稳定的收放卷效果。

3、本系统启用逻辑控制和卷径计算功能,能使系统在任意卷径下平稳启动,同时两组PID参数可确保生产全程摆杆控制效果稳定。

❾ 如何判断PID算法的好坏

比如你的控制器件是蒸汽阀,温控器出来的信号给蒸汽阀,开启相应的阀度。想看干扰效果,就调整阀开度和给定信号不一致,如给定信号类别为4-20MA型,信号值为10ma,阀门实际为全关,那么在这样的干扰下,看PID运行是否能运行到给定值变为20ma。
做以上的研究并无多大意义,PID本身就是为抗中间环节干扰而设计,想看PID参数设置是否优化,最好的办法是将控制目标换成易达到设定值的那种,看PID的曲线是否为标注的大小波。
另外你的第二个提问,另外在控温过程中整定速度快慢、是否冲温、受干扰后升温稳定速度、是否存在过冲等等,看曲线就知道了,过冲是不可避免的,但是过冲多少,以及过冲之后是否能稳定,才是你要关心解决的。你可以将你的控制动作设备告诉我,我给个参考PID参数

热点内容
ui与编程 发布:2024-10-04 23:26:49 浏览:900
google访问ip 发布:2024-10-04 23:19:28 浏览:51
陕西税票服务器地址 发布:2024-10-04 23:04:23 浏览:16
2014访问学者 发布:2024-10-04 22:59:37 浏览:917
c质数的算法 发布:2024-10-04 22:58:32 浏览:521
三星的浏览器在哪个文件夹 发布:2024-10-04 22:57:05 浏览:987
连接line的服务器地址 发布:2024-10-04 22:57:01 浏览:181
衣柜门尺寸简单算法 发布:2024-10-04 22:56:54 浏览:722
有什么软件可以清理缓存垃圾 发布:2024-10-04 22:55:24 浏览:755
手机电脑中配置是指的什么 发布:2024-10-04 22:53:53 浏览:156