当前位置:首页 > 工业用地 >模糊控制 神经网络(模糊控制 pid控制)

模糊控制 神经网络(模糊控制 pid控制)

控制系统设计者始终追求的是找到适合应用的最佳控制方法。除了经典的PID控制外,本文还讨论了最优控制、模糊控制和人工神经网络控制。

每个控制系统用户/设计者经常被问到同样的问题:哪种控制方法最好。现在的选择比几十年前更多了,控制方法的问题就显得尤为重要。很久以前,“黄金”解决方案(实际上是唯一的解决方案)是比例积分微分(PID) 控制器。虽然PID 控制本身并没有什么问题,但实际限制使得其他控制方法在许多应用中更受欢迎。那么,还有哪些其他控制方法可用呢?

模糊控制 神经网络(模糊控制 pid控制)

除了经典的PID控制之外,本文还研究了最优控制、模糊控制和人工神经网络(或基于神经网络的控制)。经典PID 控制器的局限性可以从工厂应用中的受控系统分析中看出。虽然有许多可能的应用领域,但本分析重点关注位置伺服系统,它广泛应用于工业机器人、自动驾驶车辆和许多其他应用(不仅仅是工业领域)。

01

位置伺服识别

如果受控系统是基于恒励磁的直流电机(例如永磁体)的伺服机构,则可以用简化的传递函数来描述。 s域电压的角位移为:

其中:K表示电机扭矩常数; T表示电机的机械参数:J/B,其中J为包括负载在内的总惯量,B表示电机阻尼; Ti表示积分常数(由电机转速和传动比决定)。

上面的传递函数表示与积分器相结合的一阶系统。理论上,还有一个一阶低通滤波器,其时间常数等于电机绕组电感与电阻之比;该时间常数明显小于主时间常数T,因此无需考虑。

如果您是电机用户而不是电机设计者,通过实验测量开环响应来找到(主)时间常数可能会更简单。为此,将某个驱动变量(电压,VIN)应用于伺服系统,例如,相当于最大伺服速度的50%。伺服系统负载在正常工作条件下必须满载。扫描伺服系统的位置响应并在其到达最大位置之前将其关闭。可能的测量值如图1所示。

图1:控制系统设计图显示了开环伺服系统的响应特性。

根据上述特性,利用输入值(例如最大伺服速度的50%对应的阶跃函数VIN),确定一阶非静态(积分器结合一阶滞后)的T和Ti )典型伺服系统常数的传递函数。伺服电机和伺服驱动器运动控制系统可以使用以下各种闭环控制,包括方程、案例、图形和表格。

02

如何应用PID控制器?

PID 补偿是闭环控制最常见的形式之一。为什么它如此受欢迎?在大多数应用中,受控过程可以通过一阶或二阶传递函数进行建模。 PID 控制器可以消除或至少显着补偿传递函数的两个极点。 PID控制器在s域的传递函数(U(s))/(E(s))可表示为:

现在,让我们假设一个受控系统,它可以用一阶非静态传递函数来近似:

控制系统的开环传递函数(Y(s))/(E(s)) 等于

为什么用PD而不是PID?首先,请注意,在完整的PID 控制器中,缺少积分部分。为什么?因为积分器已经存在于受控伺服系统中。在优化调节的控制系统中,KD/KP 比率必须与1 时间常数匹配,因此开环传递函数将减小为:(KPK)/(s2)。理想调谐PD 控制系统的闭环传递函数(Y(s))/(R(s)) 等于:

这对应于时间常数为 的单极传递函数,相当于2/(KP K),其中2 是积分时间常数,KP 是控制器的比例常数,K 是受控系统的增益。然而,如果使用如图1 所示的响应特性求出时间常数,则增益(即常数K)值将变为1.0。则闭环传递函数时间常数等于2/KP。这非常好,因为通过使P 足够大,您可以从闭环控制系统获得更快的时间响应。事实上,“足够大”可以提供5 到10 倍的响应速度。 KP值越高,反应越不稳定。请记住,在近似系统参数时,实际值肯定会有所不同。

然而,这种经过优化调整的P(I)D 控制器也有其缺点。观察P(I)D控制器的输出(驱动)变量:起初几乎达到极限值,然后迅速下降,但在相当长的一段时间内仍然远高于该受控系统(伺服机构)可接受的值等级。想象一下伺服电机在24V 下运行。获得的初始电压将高达数千伏,然后稳定在数百伏。没有控制器可以驱动如此高的电压,即使可以,电机也无法承受如此高的应力。因此,在控制器中添加限制器可确保驱动变量不会超过受控系统(在本例中为直流电机)的最大可接受值。伺服机构最终的PID控制配置如图2所示。

图2:控制系统设计图,展示了位置伺服系统的PID控制。

在本文的最后,PID控制器的性能将与其他控制器进行比较。具有无限驱动变量的最优调谐PD控制器(即理想控制器)的输出特性如图8中的黄线所示;实际输出(驱动变量被限制在最大可接受值)由红线表示。

03

应用时间优化控制

几十年来,最优控制一直是广泛研究的主题。关于最优控制的一些基本思想值得回顾,我们可以用一个例子来更好地理解时间最优控制。

考虑带有直流电机的常见电动伺服系统。当前的任务是控制舵机,使其在尽可能短的时间内到达新的参考点。如果必须应用实际驾驶变量,优化的PID 控制器将无法实现这一目标。直观的反应是向直流电机施加最大可接受的电压并让电机全速运转。

然后,在某个时间点,改变电压极性,使电机开始以最大可能速度减速。随后,当电机速度为零时,电压被关闭。如果在正确的时间改变电压极性,伺服电机将在电机停止运行时准确地停止在需要的位置。这称为最优控制。在这种情况下,由于时间是这种最优控制的标准,所以这种控制被称为时间最优控制。

04

找出开关曲线的形状

图3 显示了状态空间中的时间最优控制过程。此时状态空间是一个二维空间(区域);一维是输出变量,另一维是其(时间)导数。当应用新的参考值时,输出变量沿水平轴移动,因此它代表调节误差(err),即参考值与实际输出值之间的差值。同时,在时间t0 处,向直流电机施加最大电压。舵机离开初始位置P0 并开始加速。在时间点t1,控制器改变电压极性,电机速度迅速开始下降。在时间点t2,电机速度变为零并到达期望位置P2,并且驱动可变电压被关闭。虽然这看起来很简单,但获得开关曲线的形状并不那么简单。

图3:状态空间中时间最优控制的控制系统设计图。

如果受控系统是具有简化传递函数的伺服机构,则电压在s域的角位移为:

然后,一个完整的、时间最优的控制系统可以用图4 所示的框图来表示。

这种控制方案与PID控制完全不同。这是一种非线性控制,因为第二非线性部分N2代表继电器:提供驱动变量U值,所以这种控制称为开关控制。 N1 是开关曲线的第一个非线性部分,调节误差E 的“sqrt”平方根函数,提供相当合理的结果。在实践中,总是很难找到准确的切换曲线,因此控制器可能总是在其最大值和最小值之间切换驱动电压。为了避免这种情况,需要在继电器中添加死区。

在本文的最后,让我们看看这种时间最优控制器与其他类型的控制器相比的表现如何。其输出变量函数由图8中的亮蓝线表示。

05

如何应用模糊控制?

模糊控制是另一种非线性控制方法,对于难以分析或设计时动态行为未知的受控系统来说,它是一个非常好的解决方案。模糊控制可以与“次优”时间最优控制(其提供的结果比最优结果更差)进行比较,尽管它们仍然可以非常好。在这种位置伺服控制的特殊情况下,图5(图5)中的控制方案可用于模糊控制。

图4:控制系统设计图,展示了伺服机构的时间最优控制系统。

图5:伺服机构模糊控制系统控制系统设计图。

模糊控制可以看作是模糊逻辑的扩展或修改。在第一阶段,模糊逻辑(在称为模糊化的过程中)将“清晰”的输入变量转换为“模糊”集。在第二阶段,它处理这些模糊集。最后,在一个称为去模糊化的过程中,处理后的模糊集被转换为清晰的输出变量。

例如,对于输入变量的模糊化,选择一组5 个lambda 形状_/_ 的成员函数。为了使控制过程更好(更精细),本例使用了7个成员函数。它们涵盖调节误差、误差及其导数以及值在-1000和+1000之间的状态变量。它们可以被称为:高阴性(HN)、中阴性(MN)、低阴性(LN)、小(S)、低阳性(LP)、中阳性(MP)和高阳性(LP)。对于输出(驱动)变量模糊化,使用7 个类似的级别:全负(FN)、中负(MN)、低负(LN)、零(Z)、低正(LP)、中正(MP) 和Quan郑(FP).

图6:在控制系统设计中,参考模糊控制知识库是有帮助的。

处理模糊集是模糊控制最关键的阶段。它由模糊控制知识库“控制”。图6 显示了适用的知识库。请注意err 和der 输入变量是如何量化的。它们的分布函数不等距; err 成员函数被“推”向中心(S),而der 成员函数被“推向”最高值。为什么这样的安排比较好呢?检查知识库中的输出变量分布可以提供答案。检查零级(Z)。它们被配置为紧密跟踪误差平方根函数err 的输出,这可能是时间最优控制中使用的开关曲线的最佳模拟。接下来,让我们看看模糊控制器与其他控制器相比的表现如何。其输出变量的形状由图8 中的橙色线表示。

06

应用基于神经网络的控制

在控制系统中使用人工神经网络(ANN) 有无数种可能性。他们中的许多人使用基于神经网络的受控系统(工厂)模型,或对其逆动态进行建模,并将它们与经典的PID 控制器相结合,以帮助创建自适应和其他更复杂的控制系统。

通过训练这样的神经网络,可以尝试不同的方法来模拟位置伺服系统的切换曲线。如前所述,通过使用时间最优控制可以实现最快的伺服运动。开关曲线最关键的方面之一是使用调节误差的平方根函数。甚至模糊控制器也被“调整”来模拟这个平方根函数。

然而,由于实际的开关曲线仍然可能与sqrt() 函数的近似曲线不同。有没有办法找到位置舵机的实际切换曲线?答案是肯定的。可以找到位置伺服系统的实际切换曲线,人工神经网络经过“训练”来记住它并根据需要生成它。更进一步,可以训练人工神经网络来接管整个开关控制器。

切换曲线是一系列[err,der] 对,伺服电机驱动器极性根据该序列针对可施加到电机的额定(最大)电压进行切换。通过在开环(即无反馈)下运行伺服器,测量并记录其位置(err)和速度(der)来找到相应的值。

首先,准备一系列预期伺服速度(der) 值,从最低到最高。现在,将正最大驱动变量(电压+ U)应用于电机并让它运行,直到伺服达到系列中的第一个预期der 值。重要提示:与P1同时记录舵机位置,同时将执行变量转换为-U值。当der降至零时,电压关闭,当前位置记录为P2。此过程提供第一个开关曲线点的第一对[err, der] 坐标(其中err=P2 P1)。当然,伺服系统必须完全按照预期使用方式满载。

[err,der] 坐标序列表示切换曲线点。为了获得最佳结果,请沿der 轴均匀分布大约50 个坐标(对)。然后训练合适的神经网络以使用这些切换点将执行变量传递给伺服系统。即使是具有一个隐藏层和大约12 个节点的最简单的ANN 也可以实现这一功能。

图7 显示了可用于训练ANN 控制器的输出值表。捕获切换曲线点后,ANN控制器需要进行离线训练,即不是直接在物理控制系统实体上进行训练。从捕获的坐标序列的底部(或顶部)开始,对于每个单独的der 输入,您需要生成多个err 值(从-max 到+max)并提供[err,der] 坐标的每个组合(到ANN 输出)特定的输出值。开关曲线的所有输出值对应负的最大驱动值;开关曲线右侧的所有输出值都对应正最大值。误差坐标距离开关曲线越远,需要提供的U值越少,因为输出曲线保持平坦。

图7:这个简单的人工神经网络训练数据表有助于ANN控制系统的设计。

这个训练数据表与模糊系统的知识库非常相似。最初,仅使用状态空间的上半部分来训练ANN 控制器。仅当舵机必须向相反方向移动时,ANN 控制器才会交换输出值。然而,如果伺服系统在两个运动方向上表现不同,则必须在整个状态空间中对ANN 控制器进行行为训练。基于神经网络的控制系统如何与其他系统竞争?可以查看其输出变量的形状,如图8 中的白线所示。

07

四种控制方法比较

使用Python 的屏幕截图(图8)显示了模拟伺服系统及其控制器的结果。伺服机构的传递函数约为1/((1+s100)s200),其中时间常数以样本数表示。阶跃函数(所需伺服位置)从0 到800 生成(其中1000 是所需位置和驱动变量的最大值),经过1000 个采样后,它从800 下降到400。输入阶跃函数由绿线表示如图8 所示。

图8还显示了每个控制系统的操作。第一个是经过优化调整的PD 控制器,可对阶跃函数立即做出反应。它的KP参数设置为5。但这实际上只是一个理想的PD控制。这些实用的优化调节PD 控制器具有有限的驱动变量,其行为如红色曲线所示。与其他控制器相比,它实际上是性能最差(最慢)的。然而,如果调整得当,它就不会超调,这在某些应用中可能很重要。

图8:该图比较了不同的控制方法,以帮助确定应用的最佳状态。包括最优控制(蓝线)、模糊控制(橙线)、人工神经网络(白线)和PID控制(黄线和红线)。

性能最好(最快)的控制器是基于ANN 的控制器(如白色曲线所示)。这并不奇怪;神经网络经过训练可以模拟精确的开关曲线,因此它表现得像一个完美的、时间最优的控制系统。

通过sqrt(e) 函数模拟开关曲线的经典时间最优控制器(蓝线)表现稍差(较慢)。然而,考虑到它的实现是多么简单,不应该对其性能有太多抱怨。

在这种特殊情况下,模糊控制器(橙色线)表现不佳。然而,它并没有针对最佳性能进行调整(仅进行了初步调整以粗略地模拟开关曲线),因此其性能还有进一步改进的空间。理论上,模糊控制器的性能不应比经典时间最优控制器差。

这个具体案例验证了神经网络在工业控制中的应用。然而,如果系统“即时”改变行为/参数,则需要更能容忍此类改变的控制器。容差是模糊控制器的亮点。最令人惊讶的发现之一:50 多年前在大学学习的经典时间最优控制器(基于sqrt() 函数)仍然运行良好。

审稿人:李茜

最新资讯

推荐资讯