PID学习笔记-3-正反作用的调节

PID控制算法-正反作用的调节

正反作用的调节

问题

如果是冰箱等设备,存在随着输出的提升被控量减小的情况下,目前的PID并不适用;

解决思路

因为是调节方向跟物理特性相关,所以在初始化时就可以完成,那么增加一个函数 R e v e r s e C o n t r o l l e r D i r e c t i o n ( ) ReverseControllerDirection() ReverseControllerDirection() 翻转PID控制的调节方向(默认正向调节);

代码实现

float kp,ki,kd; // * (P)roportional,(I)ntegral,(D)erivative Tuning Parameter   
float setPoint, output, input, errSum, lastErr;// 期望值,输出,输入,累积误差,系统上一时刻的误差

void SetTunings(double Kp, double Ki, double Kd, int SampleTime)//采样时间的单位为毫秒
{
   float SampleTimeInSec = ((float)SampleTime)/1000;
   kp = Kp;
   ki = Ki * SampleTimeInSec;
   kd = Kd / SampleTimeInSec;
}

void ReverseControllerDirection()
{
	kp = (0 - kp);
	ki = (0 - ki);
	kd = (0 - kd); 
}

void Compute()
{
	/*Compute all the working error variables*/
	float err = setPoint - input;	
	errSum += err;
	float dErr = err - lastErr;
	/*Compute PID output*/
	output = kp * err + ki * errSum + kd * dErr;
	/*record var for next time*/
	lastErr = err;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PID调节器是一种常用的控制器,用于自动调节系统输出值,使其尽可能接近所设定的目标值。PID调节器由比例(P)、积分(I)和微分(D)三个环节组成,每个环节都有反作用。 比例作用(P)是最基本的环节,根据当前误差的大小来产生控制量。P环节提供了一个线性关系,误差越大,控制量的变化越大,作用为误差增大时增大控制量,反作用为误差减小时减小控制量。 积分作用(I)用于消除系统的静差,通过累积误差来产生控制量。I环节具有时间积分的特点,作用为持续的累积误差会增大控制量,反作用为累积误差减小时减小控制量。 微分作用(D)根据误差的变化速率来产生控制量,用于预测系统的未来变化趋势。D环节可以提高系统的快速响应性,作用为误差的快速变化时增加控制量,反作用为误差变化缓慢时减小控制量。 PID调节器的反作用主要是通过控制量的增减来实现的。作用会增加控制量,以增加系统的输出值,使其接近目标值。反作用会减小控制量,以减小系统的输出值,使其接近目标值。通过合理地设置PID调节器的参数,可以达到稳定控制、快速响应和准确跟踪目标值的效果。 总之,PID调节器的反作用是根据系统的误差、误差积分和误差微分的不同情况,通过增加或减小控制量来实现对系统输出值的调节

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值