精华内容
下载资源
问答
  • 介绍了关于确定PID参数的其它方法的详细说明,提供仪器仪表的技术资料的下载。
  • 确定PID参数的方法.rar

    2019-10-31 06:12:15
    确定PID参数的方法rar,确定PID参数的方法
  • matlab中的simulink仿真界面功能强大,其中的pid广泛用于工业中的控制。pid参数确定一直是比较棘手的,本文从理论上分析pid控制器,给出参数调节方法。
  • 关于凑试法来确定PID参数doc,关于凑试法来确定PID参数
  • 直流伺服电动机 PID 调速...该文根据直流伺服电动机 PID 调速系统的数学模型及性能指标, 提出采用根轨迹确定 PID 参数法, 使 3 个待定参数减少到 1 个, 方便了 PID 参数确定。实践表明, 该方法能满足实际系统的要求。
  • PID参数解释

    万次阅读 多人点赞 2019-02-26 18:51:45
    我们在学习接触PID时,多数人对所谓的传递函数不感兴趣,毕竟实际的系统中,哪有那么多可以准确确定传递函数的系统呢?所以就特别需要对PID参数进行通俗易懂的解释。 举例如下: 一、比例作用 假设我们面对的...

    我们在学习接触PID时,多数人对所谓的传递函数不感兴趣,毕竟实际的系统中,哪有那么多可以准确确定传递函数的系统呢?所以就特别需要对PID的参数进行通俗易懂的解释。

        举例如下:

    一、比例作用

    假设我们面对的系统是一个简单的水箱液位控制,要从空水箱注水直到达到某个液位高度,而你能控制的变量就是注水水龙头的开关大小,那么这个简单的数学模型就是:

    u=dx,其中x为液位,u为水龙头开度大小,

    对于这个简单的系统,我们只需要一个比例环节就能实现:

    u=Kp*e  其中e是误差值,u是水龙头开度。

       说白了,就是水箱液位与预定高度相差较远的时候,水龙头开大点(Kp不变,u变大),离得近的时候,就开小点,随着液位逐步接近预定的高度,逐渐关掉水龙头,此时Kp的大小代表了水龙头的粗细,越粗调的越快,这也就是所谓的:

        “增大比例系数,一般会加快系统响应”的规律,如下图所示:

    二、积分作用

        假设这个水箱不仅仅是装水的容器,还需要持续稳定的给用户供水,那么这个系统的数学模型就需要再增加一项:

    u-c = dx,这里c是一个正的常数,

       这时候我们发现如果控制器只有一个比例环节,那么当系统稳定,也就是dx=0,(特别注意,这里的“稳定”并不是达到目标,而是系统稳定在某个液位,但是又没到目标液位),也就是u=Kp*e=c

       e = c/Kp

        e在系统稳定时不是为0,而是不变,这里要特别清楚,液位举例我们想要的高度总是差那么一点点,那么这个固定差,就是所谓的稳态误差,或者叫静态误差,这个时候c是固定的,所以Kp越大,e越小,这就是所谓的:

    “增大比例系数P在有静态误差的情况下有利于减小静差”,如下图:

      但是从上面的式子 e = c/Kp可以看出,即便Kp再大,它毕竟在分母上,e只能是接近于0,不可能为0,况且P太大,会有震荡,那怎么办呢,然后就有人自然会想到,我再加一个水龙头就行了,水箱漏掉多少水,我就给他补多少水,那么这里增加的第二个水龙头的补水功能,就是下面所说的积分作用。

    我们把比例环节+积分环节的表达式变为:

      积分环节的意义就相当于刚刚增加的那个水龙头,这个水龙头的开关规则是水位比预定高度低,就一直的往大拧(正向误差累加),比预定高度高了,就往小了拧(反向误差也是累计),有人可能会疑惑,这里不管是往大了拧还是往小了拧,不都是会一直往里补水,难道就不是肯定会补大了吗?这里有个小弯,注意情景,这个时候水箱还一直漏水呢,所以积分会补大,但是也会往小了补,虽然都是补,只要参数选择合适,不会一直补大了,因为误差是有正负的。所以这么一操作,静态误差就没有了,这也就是所谓的积分环节可以消除系统静差。

        积分项里有一个积分时间常数,其实就是表示积分环节前面的那个系数Ki = Kp/Ti,这个Ti就是积分常数,其实可以理解成做累计误差求和的频率,频率越大,累加的作用越大,积分的作用也就越大,频率和时间是倒数关系,所以从上面的式子也能看出来,Ti时间常数越大,积分环节的系数越小,积分环节也就越不敏感,也就是第二个水龙头越细。在具体写程序代码时,可以结合着PID的采样时间来写,毕竟数字PID的积分项表达式就是T/Ti。

       当用比例+积分,也就是用两个水龙头注水时,在没有达到预定高度前,第二个积分环节的水龙头是一致往大了拧的,因为一直是正向误差累加,只不过往大拧的幅度小了,但是整体趋势是往大拧,一直等到达到预定高度的时候,它恰好拧到了最大,由于惯性的作用,自然而然注水就会注多了,而多出来的这部分水就叫做“超调”,第二个水龙头越粗,也就是积分时间常数越小(在分母上),I越大,多注的水就越多,不过它调到恰好等于漏水速度的时间就会越快,但是同时会有更多的波折,于是老师告诉我们一个规律:增大积分时间有利于减小超调,减小震荡,使系统的稳定性增加,但是系统静差消除的时间会变长。所以我们在写程序算法时,积分时间常数Ti不能太小,积分系数I不能太大,越小越平稳,系统越平滑,当然要找到一个平衡点。如下图所示:

    上图中Ti=10时,曲线更平滑,(Ti并不是最终的I)

        接下来我们来看点有意思的东西,还是上面的系统,假设我们选择使用相同的积分时间常数,但是选择不同的比例系数会如何呢,如下图所示:

       上面的图会有些疑问,因为按照前面对Kp的分析“过大的比例系数会使系统有较大的超调,并产生震荡,使稳定性变坏”,但是上面的图里怎么比例大的范儿超调小呢?其实这个也很好解释,上面的PI控制超调出现的原因是积分这个水龙头在达到目标液位时也是恰好开到了最大,而比例这个水龙头越粗,那么它在超出目标液位时,对超调的抑制也就越明显,因为此时Kp这个水龙头是往负方向调节的,积分毕竟有惯性,反应没那么快,而比例则立刻往反方向调,所以P和I的合力才会P大反而超调越小。

    三、微分作用

    微分的作用是“阻尼”,也就是根据现在的趋势去判断未来,进而来阻碍未来可能出现过调的趋势,相当于是提前踩点刹车,但是又不全踩刹车,所以总结为:“微分环节的主要作用是响应过程中抑制偏差任何方向的变化”,注意“任何”二字,响应大了就往回拉一点,响应小了,就往大了补点。“微分常数不能过大,否则会使响应过程提前制动,反而延长了调节时间”,其实很多的系统本身就有很大的阻尼性,比如要加热一缸水,或者整个区域的供暖系统,温度本身就是大的滞后环节,加不加微分都没太大意义,毕竟很多时候“误差的误差”是很小,或者是0(温度很长时间多不变)的。为啥好多系统不需要D控制就可以呢,那是因为浙西系统本身就有足够的阻尼了,比如温度加热控制,本身温度就是一个大的滞后缓慢系统,但是有些系统就需要积分,比如单摆运动,如果没有微分,可能就要一直震荡下去了。

    四、PID变积分原理

    变积分PID可以看成是积分分离的PID算法的更一般的形式。在普通的PID控制算法中,由于积分系数ki是常数,所以在整个控制过程中,积分增量是不变的。但是,系统对于积分项的要求是,系统偏差大时,积分作用应该减弱甚至是全无,而在偏差小时,则应该加强。积分系数取大了会产生超调,甚至积分饱和,取小了又不能短时间内消除静差。因此,根据系统的偏差大小改变积分速度是有必要的。

       变积分PID的基本思想是设法改变积分项的累加速度,使其与偏差大小相对应:偏差越大,积分越慢; 偏差越小,积分越快。

       备注:上面的道理刚一理解会觉得很绕,总觉得误差大的时候,增大Ki不应该是越大会越快达到目标吗?这里面容易疏忽一个道理,“积分”是“持续不断”的累加的,当偏差比较大的时候,如果积分系数Ki也比较大,那么积分效果也就会更明显,那么调控效果,起步就会太快,跳变的也大,跳变一次没什么,问题是,积分是连锁反应,后面的是累加,然后最后的结果,会越来越大,所以才有了“偏差大的时候,积分作用应该减弱,而在偏差小的时候,反而应该加强”,因为只有这个时候,才是“静态误差”出现的开始,而积分的核心作用就是专门消除静态误差的。

    长期从事机器人学相关研究,涉及机械臂、轮式机器人、四足机器人的建模及仿真,可共同探讨机器人相关问题,可指导课程设计及毕业设计,详询:QQ:2963325158
    

    转载自:https://blog.csdn.net/u012351051/article/details/79133775

    展开全文
  • PID参数整定汇总.doc

    2019-11-12 17:20:09
    PID控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据...
  • PID 算法参数及调节

    千次阅读 2019-10-03 12:08:40
    我学习PID参数意义,参考了以下文章: 一文读懂PID控制算法(抛弃公式,从原理上真正理解PID控制) PID算法原理 一图看懂PID的三个参数 PID算法实现及参数整定图解(附代码) ... ...PID控制应该算是应用非常广泛的...

    我学习PID参数意义,参考了以下文章:

    一文读懂PID控制算法(抛弃公式,从原理上真正理解PID控制)

    PID算法原理 一图看懂PID的三个参数

    PID算法实现及参数整定图解(附代码)

    https://www.cnblogs.com/whylinux/p/10960319.html

    公式

    PID控制应该算是应用非常广泛的控制算法了。小到控制一个元件的温度,大到控制无人机的飞行姿态和飞行速度等等,都可以使用PID控制。这里我们从原理上来理解PID控制。
    PID,就是“比例(proportional)、积分(integral)、微分(derivative)”,是一种很常见的控制算法。

    U(t)=Kp*Err(t)+Ki*\sum Err(t)/T +Kd* \frac{dErr(t)}{dt}

    Kp, Ki, Kd 分别是比例P, 积分I, 微分D的参数。

    参数含义:

    PID调节实际上是由比例、积分、微分三种调节方式组成,它们各自的作用如下:

    1.比例系数P是干什么用,其实如果现在你是初中生的话,你一下子就懂了,比例系数就是用在穿过(0,0)这个坐标点直线的放大倍数k,k越大,直线的斜率越大,所以是用在y = k * x中的,其中的k就是比例系数p,大家都简称为kp,所以就变成了y = Kp * x。

    x就是当前值currentValue和目标值totalValue的差值,简称误差err,则err = currentValue - totalValue。y就是执行器对应的输出值U,所以执行器对应的输出值U = Kp * ( currentValue - totalValue ) 。

    所以,如果说是使用比例进行调节。

    则当前第1次调节时执行器对应的输出值为U1 = Kp * ( curentValue1 - totalValue1 )。

    第2次调节时执行器对应的输出值为U2 = Kp * ( currentValue2 - totalValue2 )。

    这就是比例系数P的应用,也就是大家说的比例调节。比例调节就是根据当前的值与目标值的差值,乘以了一个Kp的系数,来得到一个输出值,这输出值直接影响了下次当前值的变化。如果只有比例调节的话,系统会震荡的比较厉害。比如你的汽车现在运行的速度是60km/h,现在你想通过你的执行器去控制这个汽车达到恒定的50km/h,如果你只用kp进行比例调节话。U = Kp * ( 60 - 50 ),假设Kp取值为1,此时得到U执行器的输出值是10,结果当你执行器输出后,发现汽车一下变成了35Km/h,此时U2 = Kp * (35 - 50),此时得到U执行器的输出值是-15,结果当你执行器输出后,发现汽车变成了55Km/h,由于惯性和不可预知的误差因素,你的汽车始终无法达到恒定的50km/h。始终在晃动,相信如果你在车上,你一定吐的很厉害。所以光有比例系数进行调节,在有些场合是没有办法将系统调稳定的。所以可以为了减缓震荡的厉害,则会结合使用比例P和微分D。

     

    2.微分系数D

    微分,实际上是对误差进行微分。加入误差1是err(1)。误差2是err(2)。则误差err的微分是 (err2 - err1)。乘上微分系数D,大家叫做KD,则当执行器第1次调节后有了第1次的误差,第2次调节后有了第2次的误差,则结合P系数。就有了PD结合,根据每次调节时,误差的值的经验推算,你就能选取出D的系数。假如误差是越来越小的,那么微分后肯定是一个负值。负值在乘以了一个D系数 加上了比例调节的值后肯定值要比单纯使用比例调节的值要小,所以就启到了阻尼的作用。有了阻尼的作用就会使得系统区域稳定。PD结合的公式经过上面的分析后为

    U(t) = Kp * err(t) + Kd * derr(t)/dt

     

    3.积分系数I

    积分,实际上是对误差的积分,也就是误差的无限和。如何理解积分系数I,这里引用网上的例子

    以热水为例。假如有个人把我们的加热装置带到了非常冷的地方,开始烧水了。需要烧到50℃。

    在P的作用下,水温慢慢升高。直到升高到45℃时,他发现了一个不好的事情:天气太冷,水散热的速度,和P控制的加热的速度相等了。 
    这可怎么办?

    P兄这样想:我和目标已经很近了,只需要轻轻加热就可以了。 
    D兄这样想:加热和散热相等,温度没有波动,我好像不用调整什么。

    于是,水温永远地停留在45℃,永远到不了50℃。

    作为一个人,根据常识,我们知道,应该进一步增加加热的功率。可是增加多少该如何计算呢? 
    前辈科学家们想到的方法是真的巧妙。

    设置一个积分量。只要偏差存在,就不断地对偏差进行积分(累加),并反应在调节力度上。

    这样一来,即使45℃和50℃相差不太大,但是随着时间的推移,只要没达到目标温度,这个积分量就不断增加。系统就会慢慢意识到:还没有到达目标温度,该增加功率啦! 
    到了目标温度后,假设温度没有波动,积分值就不会再变动。这时,加热功率仍然等于散热功率。但是,温度是稳稳的50℃。 
    kI的值越大,积分时乘的系数就越大,积分效果越明显。

    所以,I的作用就是,减小静态情况下的误差,让受控物理量尽可能接近目标值。

    I在使用时还有个问题:需要设定积分限制。防止在刚开始加热时,就把积分量积得太大,难以控制。

     

    调节方法:

    这个内容来自:https://zhidao.baidu.com/question/810684225308065412.html

    这个内容没有提供公式,我猜测是:

    U(t)=Kp*(Err(t)+\frac{1}{Ti}*\int Err(t)dt+\frac{Td*dErr(t)}{dt})

    PID调试一般原则 :
    a.在输出不振荡时,增大比例增益P。
    b.在输出不振荡时,减小积分时间常数Ti。
    c.在输出不振荡时,增大微分时间常数Td。

    PID参数设置及调节方法
    方法一:
    PID参数的设定:是靠经验及工艺的熟悉,参考测量值跟踪与设定值曲线,从而调整P\I\D的大小。
    PID控制器参数的工程整定,各种调节系统中P.I.D参数经验数据以下可参照:
    温度T: P=20~60%,T=180~600s,D=3-180s
    压力P: P=30~70%,T=24~180s,
    液位L: P=20~80%,T=60~300s,
    流量L: P=40~100%,T=6~60s。

    方法二:
    1.PID调试一般原则
    a.在输出不振荡时,增大比例增益P。
    b.在输出不振荡时,减小积分时间常数Ti。
    c.在输出不振荡时,增大微分时间常数Td。
    2.一般步骤
    a.确定比例增益P 确定比例增益P 时,首先去掉PID的积分项和微分项,一般是令Ti=0、Td=0(具体见PID的参数设定说明),使PID为纯比例调节。输入设定为系统允许的最大值的60%~70%,由0逐渐加大比例增益P,直至系统出现振荡;再反过来,从此时的比例增益P逐渐减小,直至系统振荡消失,记录此时的比例增益P,设定PID的比例增益P为当前值的60%~70%。比例增益P调试完成。 b.确定积分时间常数Ti
    比例增益P确定后,设定一个较大的积分时间常数Ti的初值,然后逐渐减小Ti,直至系统出现振荡,之后在反过来,逐渐加大Ti,直至系统振荡消失。记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。积分时间常数Ti调试完成。
    c.确定积分时间常数Td
    积分时间常数Td一般不用设定,为0即可。若要设定,与确定 P和Ti的方法相同,取不振荡时的30%。
    d.系统空载、带载联调,再对PID参数进行微调,直至满足要求

    展开全文
  • PID算法原理 一图看懂PID的三个参数

    万次阅读 多人点赞 2018-12-06 16:51:33
    前段时间做一个比赛项目的过程中,对经典、实用的PID算法有了一点点自己的理解,就写了这些,与大家分享因为LZ想尽办法,试着用最易于理解的语言说清楚原理,不做太多的理论分析。(LZ文学功底不行),所以...

    文章推荐

    Qt开发一款免费且功能完整的串口调试、Tcp、Udp调试工具

    https://blog.csdn.net/qq_41673920/article/details/117783291

     

    找了好久这一篇算是很容易看懂的了  推荐给大家   写的十分清楚   原文作者DF创客社区virtualwiz

     

    LZ以前有个小小的理想,就是让手边的MCU自己“思考”起来,写出真正带算法的程序。
    前段时间做一个比赛项目的过程中,对经典、实用的PID算法有了一点点自己的理解,就写了这些,与大家分享
    因为LZ想尽办法,试着用最易于理解的语言说清楚原理,不做太多的理论分析。(LZ文学功底不行),
    所以下面的内容会有不严谨的地方,或者有解释错误的地方。大神们发现了,一定要帮我补充,或者给予批评~~~谢谢你们

    好啦,正文开始



    啥是PID?   PID可以吃吗?
    PID,就是“比例(proportional)、积分(integral)、微分(derivative)”,是一种很常见的控制算法。算法是不可以吃的。
    到LZ发帖的这一天,PID已经有105年的历史了

    它并不是什么很神圣的东西,大家一定都见过PID的实际应用

    ——比如四轴飞行器,再比如平衡小车......还有汽车的定速巡航、3D打印机上的温度控制器....
    再比如动物园里的海狮,将一根杆子直立着顶在头上(OOPS,这个也算..)

    就是类似于这种:需要将某一个物理量“保持稳定”的场合(比如维持平衡,稳定温度、转速等),PID都会派上大用场。



    那么问题来了:
      比如,我想控制一个“热得快”,让一锅水的温度保持在50℃  
    这么简单的任务,为啥要用到微积分的理论呢你一定在想:
    这不是so easy嘛~  小于50度就让它加热,大于50度就断电,不就行了?几行代码用Arduino分分钟写出来

    没错~在要求不高的情况下,确实可以这么干~  But!  如果LZ换一种说法,你就知道问题出在哪里了:

    如果我的控制对象是一辆汽车呢?
    要是希望汽车的车速保持在50km/h不动,你还敢这样干么

    设想一下,假如汽车的定速巡航电脑在某一时间测到车速是45km/h。它立刻命令发动机:加速!
    结果,发动机那边突然来了个100%全油门,嗡的一下,汽车急加速到了60km/h。这时电脑又发出命令:刹车!
    结果,吱...............哇............(乘客吐)

    所以,在大多数场合中,用“开关量”来控制一个物理量,就显得比较简单粗暴了。有时候,是无法保持稳定的。因为单片机、传感器不是无限快的,采集、控制需要时间。
    而且,控制对象具有惯性。比如你将一个加热器拔掉,它的“余热”(即热惯性)可能还会使水温继续升高一小会。

    这时,就需要一种『算法』:
     

    • 它可以将需要控制的物理量带到目标附近
    • 它可以“预见”这个量的变化趋势
    • 它也可以消除因为散热、阻力等因素造成的静态误差
    • ....


    于是,当时的数学家们发明了这一历久不衰的算法——这就是PID。

    你应该已经知道了,P,I,D是三种不同的调节作用,既可以单独使用(P,I,D),也可以两个两个用(PI,PD),也可以三个一起用(PID)。
    这三种作用有什么区别呢?客官别急,听我慢慢道来


     
    我们先只说PID控制器的三个最基本的参数:kP,kI,kD。

    kP
    P就是比例的意思。它的作用最明显,原理也最简单。我们先说这个:

    需要控制的量,比如水温,有它现在的『当前值』,也有我们期望的『目标值』。
     

    • 当两者差距不大时,就让加热器“轻轻地”加热一下。
    • 要是因为某些原因,温度降低了很多,就让加热器“稍稍用力”加热一下。
    • 要是当前温度比目标温度低得多,就让加热器“开足马力”加热,尽快让水温到达目标附近。


    这就是P的作用,跟开关控制方法相比,是不是“温文尔雅”了很多

    实际写程序时,就让偏差(目标减去当前)与调节装置的“调节力度”,建立一个一次函数的关系,就可以实现最基本的“比例”控制了~
    kP越大,调节作用越激进,kP调小会让调节作用更保守。

    要是你正在制作一个平衡车,有了P的作用,你会发现,平衡车在平衡角度附近来回“狂抖”,比较难稳住。
    如果已经到了这一步——恭喜你!离成功只差一小步了~

    kD
    D的作用更好理解一些,所以先说说D,最后说I。

    刚才我们有了P的作用。你不难发现,只有P好像不能让平衡车站起来,水温也控制得晃晃悠悠,好像整个系统不是特别稳定,总是在“抖动”。
     
    你心里设想一个弹簧:现在在平衡位置上。拉它一下,然后松手。这时它会震荡起来。因为阻力很小,它可能会震荡很长时间,才会重新停在平衡位置。
    请想象一下:要是把上图所示的系统浸没在水里,同样拉它一下 :这种情况下,重新停在平衡位置的时间就短得多。

    我们需要一个控制作用,让被控制的物理量的“变化速度”趋于0,即类似于“阻尼”的作用。

    因为当比较接近目标时,P的控制作用就比较小了。越接近目标,P的作用越温柔。有很多内在的或者外部的因素,使控制量发生小范围的摆动。D的作用就是让物理量的速度趋于0,
    只要什么时候,这个量具有了速度,D就向相反的方向用力,尽力刹住这个变化。

    kD参数越大,向速度相反方向刹车的力道就越强。

    如果是平衡小车,加上P和D两种控制作用,如果参数调节合适,它应该可以站起来了~欢呼吧


    等等,PID三兄弟好想还有一位。看起来PD就可以让物理量保持稳定,那还要I干嘛?
    因为我们忽视了一种重要的情况:

    kI
    还是以热水为例。假如有个人把我们的加热装置带到了非常冷的地方,开始烧水了。需要烧到50℃。

    在P的作用下,水温慢慢升高。直到升高到45℃时,他发现了一个不好的事情:天气太冷,水散热的速度,和P控制的加热的速度相等了。
    这可怎么办?
     

    • P兄这样想:我和目标已经很近了,只需要轻轻加热就可以了。
    • D兄这样想:加热和散热相等,温度没有波动,我好像不用调整什么。


    于是,水温永远地停留在45℃,永远到不了50℃。


    作为一个人,根据常识,我们知道,应该进一步增加加热的功率。可是增加多少该如何计算呢?
    前辈科学家们想到的方法是真的巧妙。

    设置一个积分量。只要偏差存在,就不断地对偏差进行积分(累加),并反应在调节力度上。

    这样一来,即使45℃和50℃相差不太大,但是随着时间的推移,只要没达到目标温度,这个积分量就不断增加。系统就会慢慢意识到:还没有到达目标温度,该增加功率啦!
    到了目标温度后,假设温度没有波动,积分值就不会再变动。这时,加热功率仍然等于散热功率。但是,温度是稳稳的50℃。
    kI的值越大,积分时乘的系数就越大,积分效果越明显。

    所以,I的作用就是,减小静态情况下的误差,让受控物理量尽可能接近目标值。

    I在使用时还有个问题:需要设定积分限制。防止在刚开始加热时,就把积分量积得太大,难以控制。




    这篇就写到这里。要想直观地体验PID的控制作用,需要一个具体的东西来调试。

    展开全文
  • PID参数整定计算器

    热门讨论 2011-06-08 18:57:43
    PID参数整定计算器,内有使用说明,基于excel,是工程项目不可多得的工具!
  • 动态调节PID参数

    千次阅读 2019-10-09 20:09:28
    本文根据https://blog.csdn.net/AdamShan/article/details/78458325中提到的的动态调节PID参数的方法使用Matlab simulink进行了一次仿真,值得申明的是这个方法不是上述博文作者的原创,有知道原创出处的朋友评论...

    本文根据https://blog.csdn.net/AdamShan/article/details/78458325中提到的的动态调节PID参数的方法使用Matlab simulink进行了一次仿真,值得申明的是这个方法不是上述博文作者的原创,有知道原创出处的朋友评论一下,我好感谢。

    下面看simulink模型:
    在这里插入图片描述
    整个结构很简单:
    在这里插入图片描述
    这里我随便设置了一个二阶延迟系统

    中间部分就是PID

    在这里插入图片描述
    在这里插入图片描述
    这个function里面就是在不断计算和更新PID的参数

    具体如下:

    
    ```bash
    function [dp,k,flag,p]  = fcn(error,error_delay)
    error = abs(error);
    error_delay = abs(error_delay);
    
    tol = 0.2;
    k =0;
    condi = 1;
    flag =0;
    dp = [0.5 ;0.2 ;0.2];
    p = [8 ;5 ;5];
    
     while condi ==1
    
         for i = 1:3
             p(i)= p(i)+ dp(i);
             if error < error_delay
                 flag = 1;
                 error_delay = error;
                 dp(i) = dp(i)*1.1;
                
             else
                 p(i) = p(i) - 2*dp(i);
                 if error < error_delay
                     flag =2;
                 error_delay = error;
                 dp(i) = 1.1* dp(i);
                 else
                     p(i) = p(i)+dp(i);
                     flag =3;
                     dp(i) = dp(i)*0.9;
                 end
             
             end
         end
         k = k+1;
         if k ==10
    %      if sum(dp)<=0.1;
             condi = 2;
            
         end
         
     end
            
    end
             
    

    然后仿真运行一下:
    可以看得出,选择不同精度要求的动态调节会影响到最后的system performance,我这里直接拿循环次数来作为影响最后参数的因素
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • PID参数自动整定 matlab

    2017-12-01 16:41:54
    利用MATLAB语言实现PID参数的自动整定,并设计了GUI界面,操作简单,可用于实验室环境下的PID参数自整定,整定原则是使得系统的衰减比接近4:1 文件说明: (1)PID_GUI.m:项目主程序 (2)PID_GUI.fig:GUI界面文件 ...
  • Pixhawk PID参数整定

    千次阅读 2017-10-01 23:01:17
    PID 含义APM 之PID参数调整详解Mission Play Pixhawk参数调整Mission 单个参数在线调试写一篇betaflight调整pid的教程,新手老手都可以参考一下How should I tune my Copter ?[组装调试] apm pid调参数简单易懂个人...
  • pid参数整定

    千次阅读 2014-03-29 12:44:23
    PID控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据...
  • ZN法整定PID参数

    2011-12-22 22:46:43
    ZN法整定PID参数,自动化专业的学生能有所帮助!
  • PID参数通俗解释

    万次阅读 多人点赞 2018-01-22 22:22:34
    参考知乎作者“奔三水博.科研菜鸟”的通俗解释,网址:... 我们在学习接触PID时,多数人对所谓的传递函数不感兴
  • 并发展成多种不同的IP D 算法, 如非线性PID、选择性PID等, 但其缺点是现场的PID 参数整定麻烦, 被控对象模型参数难以确定及外界干扰会使控制漂离最佳工况.针对这一问题, 我们在金属表面处理化学反应槽的温度控制中...
  • 1.实验一 已知如图1所示的控制系统:其中系统开环传递函数Go(s)为: ...通过调整PID控制器中的P值(控制I和D均为0,不起作用),观察示波器的输出响应曲线,达到临界稳定时,即可确定参数δ_k和T_
  • pid参数整定计算

    万次阅读 2017-06-25 12:31:32
    之前推送过一篇关于PID的知识,感觉意犹未尽,今天再给大家奉上一篇关于PID算法及参数整定的知识! 传送门:单片机的PID控制!关于PID控制这篇说得很明白! 1.位置表达式 位置式表达式是指任一时刻PID控制器...
  • PID参数的调整方法

    万次阅读 多人点赞 2018-03-28 23:45:41
    1.PID算法演示软件1 (1)P太小,实际值和设定值时间有很大的偏差,实际值偏小或偏大。长时间回不到设定值附近,或者实际值小于设定值,实际值一直到不了设定值。 (2)P太大,初始时刻有抖动,或出现波浪曲线。 (3...
  • 动态调PID参数

    千次阅读 2018-10-15 11:18:55
    ssh rikirobot@robot.local ...2rosrun riki_pid pid_configure 3ubuntu端打开动态参数配置 rosrun rqt_reconfigure rqt_reconfigure ,要把小车架空来调。 4启动rosrun teleop_twist_keybo...
  • PID参数的设定调节

    万次阅读 2019-10-24 16:02:13
    PID参数的设定调节如下: 1、PID就是通过系统误差利用比例、积分、微分计算出控制量进行控制的。不同厂家的公式稍有不同,但是基本上都离不开三个参数:比例、积分时间、微分时间。 2、采样周期。在进行PID调节...
  • PID参数理解及调参方法(附典型PID算法程序)

    万次阅读 多人点赞 2019-04-05 22:51:36
    PID参数的意义 Kp是加快系统响应速度,提高系统的调节精度; Ki用于消除稳态误差; Kd改善系统的稳态性能 调PID步骤 (1) 确定比例系数Kp 确定比例系数Kp 时,首先去掉PID 的积分项和微分项,可以令Ti=0、Td=0...
  • PID参数起什么作用

    千次阅读 2020-07-14 17:58:20
    PID控制中有P、I、D三个参数,只有明白这三个参数的含义和作用才能完成控制器PID参数整定,让控制器到达最佳控制效果。昌晖仪表在本文给大家介绍PID控制中P、I、D参数的作用。 比例作用 比例控制器实际上就是个放大...
  • 最好是matlab的程序啊,只看得懂一点通用tsp问题的程序,PID参数的完全不会啊,谢谢大神们
  • PID参数整定时,我先将积分,微分设为0,只加比例系数,参数有振荡。 在升温过程中PID返回参数值逐步减小,但加入积分值后,PID返回参数值一直为最大值,不会随着温度上升或下降而减小。 我试过不同的积分参数值,...
  • PID参数整定方法

    万次阅读 2018-06-07 16:17:49
    介绍一种临界比例度法调节PID参数,也称为Ziegler-Nichols工程整定法。 1.临界比例度法的定义 适用于已知对象传递函数场合。 在闭环的控制系统中,激励为阶跃信号,将调节器置于纯比例作用下,从小到大逐渐改变...
  • PID参数整定——Z-N方法

    万次阅读 多人点赞 2017-03-08 11:36:28
    PID参数整定的Z-N法,在经验法的基础上更快对参数进行整定
  • 利用PSO粒子群算法实现PID参数的自整定,找出最优的PID参数
  • 回路整定的本质就是确定对控制器作用产生的过程反作用的积极程度和PID算法对消除误差可以提供多大的帮助。 经过多年的发展,Ziegler-Nichols方法已经发展成为一种在参数设定中,处于经验和计算法之间的中间方法。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 362,566
精华内容 145,026
关键字:

如何确定pid的参数