0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

噪声对理想的PID控制器又有什么影响呢?

痞子衡嵌入式 来源:小麦大叔 2023-02-06 14:12 次阅读

1 先说噪声

电子设备等电路系统中,噪声是不被系统需要的电信号;电子设备产生的噪声会由于多种不同的影响而产生很大的差异。在通信系统中,噪声是一个错误或不希望出现的随机干扰从而作用于有效的信号

2 噪声对于系统的影响

噪声出现的第一个场景,当我们在教室里做英语听力,然后旁边的同学手机忽然来了一条短信,这时候往往可以听到放英语听力的喇叭会被干扰,然后会发出哔哔哔的声音;

下面是一个正弦信号跌加噪声的例子,在原始信号上叠加一定幅度的高斯噪声,可以看到信号不再像原来的正弦信号那样完美,具体如下图所示;

b75a08fc-a3bf-11ed-bfe3-dac502259ad0.png

或者,很久很久以前,数字电视还没有普及,那时候的显像管的黑白电视,也容易出现这样的雪花一样的噪声,叠加在图片上就会出现这样的效果,具体如下图所示;

b76da70e-a3bf-11ed-bfe3-dac502259ad0.png

从上述的例子中可以看到,噪声往往会对系统造成一定程度的影响,但是如果噪声的幅度减小到一定程度,对于系统的影响可能就没有那么容易被发现。

下面做一个实验;在一张黑色图片上叠加幅度很小幅度的高斯噪声;从第二张图片中发现噪声没有影响到整体图片;

然后我尝试提高了整幅图片的亮度,发现,噪点便开始出来了,这像极平时那些枪版影片的马赛克画质;整体的实验结果如下图所示;

b7815920-a3bf-11ed-bfe3-dac502259ad0.png

3 对于PID控制器的影响

既然噪声的幅度减小到一定程度,对于系统的影响可能就没有那么容易被发现,那么对理想的PID控制器又有什么影响呢?

不要忘了,在理想PID控制器中,微分控制器会对偏差的变化率(斜率)进行累加,从而产生积分器的输出;

对于微分器来说,即使噪声幅度足够小,但是只要达到足够高频率,偏差的变化率一样可以变得很大,下面举个例子;

poYBAGPgmryAdMRhAADUEwmoKrk599.jpg

简单画了一下这个信号,具体如下图所示;

b7969146-a3bf-11ed-bfe3-dac502259ad0.png

pYYBAGPgmuCAEOk5AAEZe8fKfwc928.jpg

遇到高频噪声,那么微分器会产生较大的输出,从而最终对系统造成影响,这是我们不希望出现的结果,因此在反馈回路中并不希望高频噪声进入PID控制器的计算,这里就需要低通滤波器将噪声滤除。

4 加入滤波器

低通滤波器可以滤除高频信号,这样保留了有效信号,可以设置所需的截止频率;系统处理有效信号,由于低频部分信噪比较高,因此噪声对于系统的影响较小,而高频部分,信噪比就很低,这时候对于系统来说,噪声就会造成不小的影响,具体如下图所示;

b7a6a6f8-a3bf-11ed-bfe3-dac502259ad0.png

信噪比:有效信号和噪声的比值,英文名称叫做SNR或S/N(SIGNAL-NOISE RATIO);

所以下面我们会在PID控制器的微分部分加入低通滤波器,这样对反馈的信号进行一部分处理,从而减小系统干扰,如下图所示;b7dbf024-a3bf-11ed-bfe3-dac502259ad0.png

4.1 传递函数

pYYBAGPgmv-AUGjxAAFF4NbKL7o518.jpg

4.2 串联微分的等效形式反馈积分

串联等效传递函数的关系为,两个方框串联等于各个方框传递函数的乘积;具体如下所示;

b7ea6550-a3bf-11ed-bfe3-dac502259ad0.png

因此低通滤波串联微分的传递函数为:

poYBAGPgmxSAclbjAAALGOmbTXw853.jpg

闭环负反馈的等效传递函数的关系如下所示

b80169d0-a3bf-11ed-bfe3-dac502259ad0.png

这里我们可以使用负反馈积分的方式,构建等效于串联微分的传递函数,最终的传递函数结果是相同的,具体如下图所示;

b819c11a-a3bf-11ed-bfe3-dac502259ad0.png

串联微分的形式,可能在算法的实现上会更加直观,但是会比较费资源

使用负反馈积分的等效形式进行实现,则进一步减少了算法的资源消耗,下面给出一个TI公司的PID算法实现就是通过负反馈积分的等效形式进行实现的。

5 C语言实现

这里直接使用了TI公司的PID算法,对于微分部分做了滤波的处理,并且使用的是负反馈积分的方式, 具体可以参考controlSUITElibsapp_libsmotor_controlmath_blocksv4.2pid_grando.hPID控制器的整体框图如下所示,我们只关心微分部分;

b82bc9f0-a3bf-11ed-bfe3-dac502259ad0.png

pYYBAGPgmz6Ae3TOAAButhqzFIo518.jpg

C语言实现如下:

/*=================================================================================
Filename:PID_GRANDO.H
===================================================================================*/


#ifndef__PID_H__
#define__PID_H__

typedefstruct{_iqRef;//Input:referenceset-point
_iqFbk;//Input:feedback
_iqOut;//Output:controlleroutput
_iqc1;//Internal:derivativefiltercoefficient1
_iqc2;//Internal:derivativefiltercoefficient2
}PID_TERMINALS;
//note:c1&c2placedheretokeepstructuresizeunder8words

typedefstruct{_iqKr;//Parameter:referenceset-pointweighting
_iqKp;//Parameter:proportionalloopgain
_iqKi;//Parameter:integralgain
_iqKd;//Parameter:derivativegain
_iqKm;//Parameter:derivativeweighting
_iqUmax;//Parameter:uppersaturationlimit
_iqUmin;//Parameter:lowersaturationlimit
}PID_PARAMETERS;

typedefstruct{_iqup;//Data:proportionalterm
_iqui;//Data:integralterm
_iqud;//Data:derivativeterm
_iqv1;//Data:pre-saturatedcontrolleroutput
_iqi1;//Data:integratorstorage:ui(k-1)
_iqd1;//Data:differentiatorstorage:ud(k-1)
_iqd2;//Data:differentiatorstorage:d2(k-1)
_iqw1;//Data:saturationrecord:[u(k-1)-v(k-1)]
}PID_DATA;


typedefstruct{PID_TERMINALSterm;
PID_PARAMETERSparam;
PID_DATAdata;
}PID_CONTROLLER;

/*-----------------------------------------------------------------------------
DefaultinitalisationvaluesforthePIDobjects
-----------------------------------------------------------------------------*/

#definePID_TERM_DEFAULTS{
                  0,
0,
0,
0,
                   0
}

#definePID_PARAM_DEFAULTS{
_IQ(1.0),
_IQ(1.0),
_IQ(0.0),
_IQ(0.0),
_IQ(1.0),
_IQ(1.0),
_IQ(-1.0)
}

#definePID_DATA_DEFAULTS{
_IQ(0.0),
_IQ(0.0),
_IQ(0.0),
_IQ(0.0),
_IQ(0.0),
_IQ(0.0),
_IQ(0.0),
_IQ(1.0)
}


/*------------------------------------------------------------------------------
PIDMacroDefinition
------------------------------------------------------------------------------*/

#definePID_MACRO(v)

/*proportionalterm*/
v.data.up=_IQmpy(v.param.Kr,v.term.Ref)-v.term.Fbk;

/*integralterm*/
v.data.ui=_IQmpy(v.param.Ki,_IQmpy(v.data.w1,
(v.term.Ref-v.term.Fbk)))+v.data.i1;
v.data.i1=v.data.ui;

/*derivativeterm*/
v.data.d2=_IQmpy(v.param.Kd,_IQmpy(v.term.c1,
(_IQmpy(v.term.Ref,v.param.Km)-v.term.Fbk)))-v.data.d2;
v.data.ud=v.data.d2+v.data.d1;
v.data.d1=_IQmpy(v.data.ud,v.term.c2);

/*controloutput*/
v.data.v1=_IQmpy(v.param.Kp,
(v.data.up+v.data.ui+v.data.ud));
v.term.Out=_IQsat(v.data.v1,v.param.Umax,v.param.Umin);
v.data.w1=(v.term.Out==v.data.v1)?_IQ(1.0):_IQ(0.0);

#endif//__PID_H__





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 滤波器
    +关注

    关注

    160

    文章

    7727

    浏览量

    177668
  • PID
    PID
    +关注

    关注

    35

    文章

    1471

    浏览量

    85283
  • C语言
    +关注

    关注

    180

    文章

    7598

    浏览量

    136161
  • 正弦信号
    +关注

    关注

    0

    文章

    45

    浏览量

    16524
  • 微分器
    +关注

    关注

    0

    文章

    15

    浏览量

    6707

原文标题:PID微分器与滤波器的爱恨情仇

文章出处:【微信号:pzh_mcu,微信公众号:痞子衡嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    怎样去设计一种PID控制器

    PID控制器是由哪些部分组成的?怎样去设计一种PID控制器
    发表于 10-11 07:34

    怎样去编写PID控制器和模糊控制器代码

    PID控制的原理是什么?怎样去编写PID控制器和模糊控制器代码?如何对
    发表于 11-19 07:47

    什么是pid控制,什么是pid控制器

    什么是pid控制器 所谓PID控制,就是在一个闭环控制系统中,使被控物理量能够迅速而准确地无限接近于
    发表于 09-10 12:39 1.7w次阅读
    什么是<b class='flag-5'>pid</b><b class='flag-5'>控制</b>,什么是<b class='flag-5'>pid</b><b class='flag-5'>控制器</b>

    pid控制器原理

    pid控制器原理       在工程實際中,應用最為廣泛的調節控制規律為比例積分微分控制
    发表于 09-10 12:44 1.4w次阅读
    <b class='flag-5'>pid</b><b class='flag-5'>控制器</b>原理

    13个基于PID控制器的设计实例

    PID控制器(比例-积分-微分控制器)是一个在工业控制应用中常见的反馈回路部件,由比例单元比例P(proportion)、积分单元I(integration)和微分单元D
    发表于 11-15 11:36 72次下载

    PID控制器PID算法的研究

    PID 算法 在过程控制中,PID 控制器,一直是应用最为广泛的一种自动控制器PID
    发表于 11-21 17:03 29次下载

    pid控制器的输入输出_PID控制器控制实现

    本文首先介绍的是PID控制器的工作原理,其次介绍的是pid控制器的输入输出,最后介绍了PID控制器
    的头像 发表于 06-01 09:09 2.9w次阅读

    PID控制器控制电压的详细介绍和PID控制器的C程序的概述

    本文档的主要内容介绍的是PID控制器控制电压的详细介绍和PID控制器的C程序的概述
    发表于 06-07 08:00 71次下载
    <b class='flag-5'>PID</b><b class='flag-5'>控制器</b><b class='flag-5'>控制</b>电压的详细介绍和<b class='flag-5'>PID</b><b class='flag-5'>控制器</b>的C程序的概述

    过程控制中的PID控制技术

    PID控制,实际中也有PI和PD控制PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制
    的头像 发表于 12-22 15:08 8153次阅读

    pid控制器工作原理

    PID控制器广泛应用于工业过程控制。工业自动化领域的大约95%的闭环操作使用PID控制器控制器
    发表于 07-18 15:10 1.1w次阅读
    <b class='flag-5'>pid</b><b class='flag-5'>控制器</b>工作原理

    PID控制的理论和PID控制器设计的及PID控制器参数整定的以及分析

    PID控制作为一种经典的控制方法而广泛应用于工业控制中,是实际工业生产过程正常运行的基本保障。随着计算机技术的飞跃发展和人工智能技术渗透到自动控制
    发表于 12-04 08:00 26次下载
    <b class='flag-5'>PID</b><b class='flag-5'>控制</b>的理论和<b class='flag-5'>PID</b><b class='flag-5'>控制器</b>设计的及<b class='flag-5'>PID</b><b class='flag-5'>控制器</b>参数整定的以及分析

    自动化过程的绝佳选择PID控制器是什么?

    导读:什么是PID?你知道吗? PID控制器是工业控制中应用最广泛的一种控制器,那么什么是PID
    的头像 发表于 05-03 10:16 3451次阅读
    自动化过程的绝佳选择<b class='flag-5'>PID</b><b class='flag-5'>控制器</b>是什么?

    PID控制器的含义

    PID控制器的含义 PID 控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。将偏差
    发表于 03-09 14:22 3664次阅读

    PID控制器与PWM控制器的区别

    在工业自动化和控制系统设计中,PID控制器(比例-积分-微分控制器)和PWM控制器(脉冲宽度调制控制器
    的头像 发表于 06-05 18:25 2746次阅读

    PID控制器的类型和选择指南

    PID控制器是一种广泛应用于工业控制系统中的控制器,它根据系统的偏差来计算控制量,以实现对系统的精确控制
    的头像 发表于 11-06 10:37 268次阅读