一个基于模糊逻辑的简单控制器。 创建和定制

模糊逻辑控制


文本基于V. Gostev的著作。 “自动建模系统中的模糊调节器。” 像所有有关该主题的严肃出版物一样,这本书充斥着数学计算,对没有准备的读者来说很难。 同时,自身创建和使用模糊逻辑的原理非常简单明了。 本文试图将一本书中的示例从数学语言转换为工程语言。
通过顺序复杂化逻辑规则并使用优化方法选择参数,显示了基于模糊逻辑设计控制器的可能顺序。

问题陈述


考虑通过攻角综合用于导弹控制系统的数字PID控制器和模糊控制器。 使用数学建模,我们确定系统中的过程,并使用综合控制器对系统质量进行比较评估。

以迎角作为导弹的出口坐标: 对于输入坐标,转向角 以以下形式定义火箭的传递函数:
其中:
-火箭转换系数,
-阻尼系数,
-时间常数。

在下文中,“传递函数”不是严格的经典定义,而是用作拉普拉斯变换的比率。

在控制系统的研究中,假设确定火箭参数对飞行时间的依赖性如下:



为了简化计算,我们通过积分链接的传递函数来描述转向机构 在这种情况下,系统输入 -给定迎角,系统输出 是火箭计算出的迎角, m(t)是控制器输出端的控制信号,控制对象由通用传递函数描述:

(模拟转向器和火箭都包含在控制对象中)。

输入动作的变化规律由多项式给出:



有必要开发一种使用PID控制器和基于模糊逻辑的控制器来确保输入效果的发展的控制器。

选择调节器的系数。

将瞬态与PID控制器以及基于模糊逻辑的控制器进行比较。

动态对象模型


在结构建模环境中创建动态模型。
模型电路本身如图1所示。

指定的动作以常量块的形式设置,脚本中的变量设置为参数。 转换函数的参数以变量的形式设置。


图1.火箭动力学模型图。

调节器设定


PID块是一个子模型(图2),它使用标准块“离散PID控制器”。 选择的采样率等于0.001秒。


图2.带调节电路的PID控制器。

控制器参数以项目Kp,Ki,Kd的全局信号名称的形式设置 这使您可以在仿真过程中更改参数,并调节调节器。

“ Optimization”块用于调节调节器;优化标准是最小标准偏差。

优化单元在整个过渡过程中进行优化。 优化结果是具有三个系数的向量,该向量被发送到“写入信号列表”块,在该块中,将计算出的值传输到信号,因此PID系数的值发生变化。 要配置控制器,我们设置以下优化参数:

所有系数的初始值1。
选择范围从-50+50
选择精度0.001
优化后的最大标准偏差0.01

在这种情况下,优化单元计算出以下系数的最佳值:

Kp = -1.7498597; Ki = 17.891995; Kd = 11.606602

使用这些系数,给定瞬态的标准偏差为0.008738090

图3.瞬态。

图4.管理。

模糊逻辑控制器


基于模糊逻辑的控制器的主要优点是控制对象规则形成的简单性和清晰度。

例如,在“自动建模系统中的模糊调节器”一书中,以数学表达式的形式描述了通过迎角控制火箭的模糊控制规则:
在哪里 -系统误差,速度变化(一阶导数)误差,加速度(二阶导数)误差;
m-对对象的控制动作;
-错误的语言估计,错误的错误变化率(一阶导数)和错误的二阶导数,被视为在通用集上定义的模糊集 ;
-从变量m的术语集中选择的对对象的控制动作的语言估计

读者可能会问:怎么样,您的母亲,对不起,明白了吗?

有时我心中怀疑数学家们自己理解他们写的东西。 在深刻的数学转折的背后,隐藏了模糊调节规则的重大秘密。 这是:

减少很多
规范-请勿触摸
小增加

如果您将鸟的数学语言翻译成俄语,则该表达式

字面意思是:

如果它大于正常值并且偏差增加并且增长率增加 ,则我们减小
如果规范 不改变并且速度恒定 ,那么我们就不改变
如果小于正常下降并且下降率增加 ,则增加

如果您了解数学模糊背后真正隐藏的内容,则可以更自觉地进行调节器的创建并获得更多有趣的结果。

一点理论


为了解决调整迎角的问题,我们必须从连续偏差值中获得三个项-较小,标准,较大。 必须对偏差的一阶导数和偏差的二阶导数执行相同的操作。 这是模糊推理的第一阶段。

要获得这些项,我们需要为每个项设置参数的数值。 例如:“ Little” = -1; “标准” = 0; “许多” =1。对于定相,我们将使用三角函数。 当您接近设定值时功能会增加,而当您远离设定值时功能会减少。 三角函数的两个选项如图5所示:

图5.三角隶属函数。

知道了偏差(x1),我们可以找到更多(红线),范数(绿线),更少(蓝线)项的隶属函数值。 值的范围是0到1。

请注意,在左图上,极限功能不是很“三角形”。 如果从抽象数学的角度考虑它,那么右图上的函数会更“美丽”。 但是,如果您回想起“模糊推理规则的主要秘密”,则左侧图表更为正确。 实际上:

考虑规则“ Add-small” ,如果我们的值为-1,则两个图的“ little” = 1(红线)都是正确的。 如果我们的值为-2? 从逻辑上讲,我们还应该添加 。 在左图的-2处是: “ little = 1” ,但在右图上的“ little” = 0,显然是不正确的。 “减少很多”规则也是如此。

按“诚实的”三角函数的定相可能导致以下事实:当值超出函数定义的范围时,所有项都为0,这又可能导致对对象的影响不大。

反问题是去相。 要计算影响,您需要执行逆变换-我们具有隶属函数的值,以减少,不改变,增加范围( 0 ... 1 )(三角函数)和我们可以拥有的效果范围,并且我们必须获得三个项之一数字是一个特定的影响。

您可以通过多种方式获得影响,例如,在图形的重心处。 图6显示了控制器的状态,其中术语值减少0.3不会改变0.6,而增加0.8则具有一定的法规影响-30..30,从而产生的影响= 4.1。


图6.控制行为的脱硝

进行消硝化的另一种选择是在这些点的重心上。 图7显示了一个选项,对于相同的项和控制范围值,我们得到另一个答案8.82


图7.通过点质心进行的消气化。

应该理解,除了推论方法之外,隶属函数的形状也影响结果。 例如,您可以选择三角形的底边相同,只有顶点不同的三角形函数。 (见图8)。


图8.具有一个基数的三角隶属函数。

在这种情况下,要减少具有相同术语0.3值的分相的结果,请不要更改0.6并在监管影响范围-30时增加-0.8,30产生的影响= 5.27


图9.按面积计算的消气化。

掌握了模糊逻辑的秘密知识,我们将创建一个控制器模型。 我们将火箭模型与PID控制器的模型相同(见图1),但是在控制器的子模型中,我们组装了图10所示的电路。


图10.基于模糊逻辑的控制器电路。

在调节器的入口处,施加了给定的迎角和实际(实测)角之间的不匹配。 输入后,有一个外推器模块,该模块可将连续信号转换为具有给定采样周期(0.001 s与离散PID控制器的信号周期相同)的离散信号。

此后,计算一阶和二阶导数偏差。 为此,我们计算当前值与带有量化周期延迟的值之间的差,将其除以延迟时间(比较块中的系数)。 因此,我们得到三个输入:系统误差,误差的变化率(一阶导数),误差的加速度(二阶导数)。

输入变量的值通过相位块转换为三角函数。 对于每个变量,我们得到三个语言变量(总共9个)。

多路分解器将品种矢量块化为语言变量以形成规则。 在图中,变量的名称在向量中按其顺序签名。
在我们的情况下,偏差是设备与测量值之差,如果为负值,则表示迎角大于设备的角度,则必须减小它。 因此,相反,如果偏差为正,则测得的角度小于指定的角度,则必须增大该角度。

(多点减少,少点增加,规范-不要碰)

输出还具有三个语言变量“减少”,“不变”,“增加”。 多路复用器将这些值收集到一个向量中,并将其发送到模糊输出块。 现在我们有了所有变量,我们可以以图的形式编写模糊推理规则。

  • 如果大于正常值 并且 偏差增加 并且 增长率增加 => 减小。
  • 如果规范 不变 不变 =>,我们 就不会改变。
  • 如果它小于正常值 并且 下降 并且 下降 速度增加 => 增加。

规则中的所有语言变量都通过逻辑块“和”连接,并连接到输出。 从图10可以看出,逻辑模糊推理电路实际上与通常的逻辑电路没有什么不同,只使用了模糊逻辑块。
与调整PID控制器类似,我们使用优化块。

问题仍然与块的参数有关。

基于模糊逻辑的控制器综合


一生一事无成,因此,调节规则的简单性由描述隶属函数的参数数量所补偿。 实际上,如果您需要为PID控制器选择三个系数,那么在模糊逻辑的情况下,只有一个三角函数的顶点需要3个数字。 如果对于每个输入变量,我们需要3个隶属函数+ 3个输出,那么我们需要设置3 x 3 x 3 + 3 x 3 = 36个参数!

但是,并非所有事情都如此悲伤。 对于初次近似和初始设置,可以简化所有操作。

为控制器的初始调整做出了一些假设:

  • 我们将函数的对称性设置为零,然后可以指定一个-Max来代替最大值和最小值的两个数字,并因此将其定义为范围[ -Max ... Max ]。
  • 我们设置函数的均匀分布,然后可以根据给定范围计算三角形所有顶点的位置。
  • 对于三个函数,顶点的坐标定义为–Max,0,Max。
  • 我们设置所有隶属函数的三角形的底是相同的。

因此,我们应该只指定4,而不是36个独立参数,三个输入变量和一个输出的最大偏差为0,即:

uMax-控制动作的幅度(-uMax ... uMax)
deltaMax-最大偏差(-deltaMax ... deltaMax) ;
divMax-偏差的最大导数(-divMax ... divMax) ;
div2Max-偏差的最大二阶导数(-div2Max ... div2Max)

在相位和模糊推理的功能中,我们使用这些信号来考虑已接受的假设来计算参数。

V.V. Gostev在书中建议的控制器设置 对于“自动建模系统中的模糊调节器”,对于通过三个隶属函数进行分相的情况,建议使用以下参数:

uMax = 30-控制动作的幅度;
deltaMax = 0.01-最大偏差;
divMax = 0.07-偏差的最大导数;
div2Max = 1是偏差的最大二阶导数。

暂态比较


在瞬变图上,给定效果和获得的结果的重合几乎是完整的:

图11.a瞬态 PID控制器

图11.b瞬态 模糊逻辑

在获得的偏差和控制作用的图表上可以看到明显的差异:

图12.a. 管理。 PID控制器

图12.b. 管理。 模糊逻辑

从图的比较可以看出,模糊控制器的误差较小,瞬态更好。

如果我们设置逐步控制动作,让我们比较系统中的瞬变。 结果如图13所示:

图13.a. 阶梯效应。 PID控制器。

图13.b. 阶梯效应。 模糊逻辑。

对于逐步动作,基于模糊逻辑的控制器可提供最佳的瞬态质量。 PID控制器会自动设置为平滑过程,从而导致振荡,其超调量是设置步长的两倍。

优化方法基于模糊逻辑的控制器调节


让我们尝试通过优化方法选择模糊控制器的参数,就像我们为PID控制器选择它们一样。 作为标准,我们将标准偏差设置为小于0.001。

应当指出的是,这种方法并不完全正确,因为对于专业人士而言,很清楚每个音乐会乐曲的哪个角度和哪个速度是最大和最小,这使您可以更自觉地设置优化参数的限制,我们设置默认参数并查看会发生什么情况。

默认设置的优化方法计算出以下优化参数范围的值:

uMax = 19.377-控制动作的幅度;
deltaMax = 1.095-最大偏差;
divMax = 0.01-偏差的最大导数;
div2Max = 2.497是偏差的最大二阶导数。

在简单优化偏差的情况下,获得的参数可提供指定的精度,但是,这会引起控制动作的高频振荡。

过渡功能和控制动作如图14.a所示。

图14.a. 模糊逻辑。 偏差设置。
图14.b. 模糊逻辑。 通过偏差和响应次数进行设置。

为了改善过渡过程,可以将调节效果从负值到正值的调节器切换次数添加到优化标准中(图15中的方案)。


图15.通过两个标准进行优化的方案。

根据两个标准通过优化方法进行的计算得出以下参数值:

uMax = 19.714-控制动作的幅度;
deltaMax = 1.0496-最大偏差;
divMax = 0.01-偏差的最大导数;
div2Max = 1.7931是偏差的最大二阶导数。

可以看出,当将跳闸次数添加到优化标准时,可以降低调节器的开关频率(见图14.b)。 因此,可以说,即使我们对物体的物理状态一无所知,最优化方法仍然有效,而只是在不考虑其物理含义的情况下选择数字参数即可。

基于模糊逻辑创建自己的控制器


上面,我们根据已经准备好并且相当简单的方案创建了控制器,所有语言变量的项都由逻辑运算符I连接。由于我们在输入和输出处具有相同数量的项,因此这是最简单,最明显的解决方案。

让我们尝试制作一个控制器,其输出不包含3个项,例如5个: 快速减少,减少,不改变,增加,快速增加 。 和在入口处一样。
让我们为起动器更改调节器的逻辑,尽可能简化控制算法。

我们写下规则:

1)如果它更大 并且 增长 t => 迅速下降。
2)如果更多 => 减少。
3)如果规范 => 不变。
4)如果 => 增加。
5)如以下 具有menshaetsya => 迅速增加。

在这种情况下,输出变量有5个项(5个三角函数)。我们接受它们在-uMax和+ uMax之间均匀分布。

我们假设三角函数的组成方式是,当该项的隶属函数取最大值时,相邻函数取零值(见图5)。

作为输出参数,仅使用偏差和偏差的变化率。

为了加快计算速度,我们通过点的重心使用该方法的输出定相(参见图7)。

这种情况下的控制器电路如图15


所示。图15.一种基于模糊逻辑的简化控制器。

代替优化器的二阶导数的范围,将采用术语“增加”的值。通过优化方法调整这种调节器的尝试表明,调节器已经过调校,但是系统控制的调节质量还有很多不足之处。

最佳结果如图16


所示。图16.简化控制器的瞬态。

可以看出,监管正在发生,但根本没有我们想要的。事实是,当偏差已经发生时,我们就会发挥作用。让我们尝试在规范出现偏差时开启监管,但速度表明监管将会增加或减少。

1)如果减少 减少 => 迅速增加。
2)如果规范 增加 => 减少。
3)如果规范 => 不变。
4)如果规范 减少 => 增加。
5)如果更大 并在 增长 => 迅速下降。


图17.偏差变化率的控制。

通过优化方法调整的控制器的操作结果如图18a和18b所示。


图18.a. 过渡过程。

图18.b. 管理学

控制偏差的变化率显着改善了瞬态。但是,如果您仔细查看逻辑规则集,我们会发现偏差不涉及管理。如果给出阶跃作用,则控制控制器将不会产生控制动作。图19显示了具有逐步控制作用的过渡过程的示例,可以看出尽管偏差为1,但控制器没有给出控制作用。


图19.a. 过渡过程。步骤

图19.b. 管理。步骤

为了计算出快速偏差,我们为偏差添加了一个控制动作。如果减少,我们将增加,如果增加,我们将减少。由于规则集中已经存在一些规则,我们可以根据这些规则进行减少和增加,因此我们可以使用逻辑运算符或:

1)如果更少 减少 => 快速增加。
2)如果(规范 增加 更多 => 减少。
3)如果规范 => 不变。
4)如(速率 减小 更少 => 增加。
5)如果较大的 不断增长 => 快速地降低。

根据这些规则的控制器电路如图20


所示。图20.通过偏差和变化率进行控制的控制器。

修改的结果是,平滑动作的过渡过程的质量几乎没有改变,但是通过逐步动作,调节器开始计算台阶并将火箭的迎角调整到指定的角度(见图21)。


图21.a. 过渡过程。步骤

图21.b. 管理。步骤

总之,让我们再次“改善”我们的监管机构。

让我们尝试使用偏差的二阶导数,在偏差及其速度改变之前开始冲击。实际上,通过施加力,我们已经可以应对加速度。

让我们尝试将二阶导数添加到规则中,而不是速度的一阶导数中。当我们的二阶导数表明会有偏差时,我们将具有附加的监管作用。一般规则看起来几乎相同,仅在方括号中,我们有三项,偏差和速度是正常的,并且二阶导数有偏差:

1)如果更少 减少 => 迅速增加。
2)如果(正常 恒定 加速 更多 => 减小
3)如果规范 => 不变。
4)如果(正常 持续 缓慢 更少 => 增加。
5)如果更大 并在 增长 => 迅速下降

该调节器的电路如图22所示。为节省电路空间,括号中的规则中写入的逻辑表达式“和”是在标有“ 的子模型中计算的


图22.具有二阶导数控制的模糊逻辑控制器。

通过优化方法选择偏差和夹杂物数量的参数后,获得以下参数:

uMax = 27.4983-控制作用的幅度;
deltaMax = 0.0433-最大偏差;
divMax = 0.0966-偏差的最大导数;
div2Max = 1.0828-偏差的最大二阶导数。

瞬态过程如图23所示。可以看出,所产生的稳压器具有以上所有考虑的最佳性能,但具有给定的效果。偏差和控制措施是本文中考虑的所有事项中的最低限度。


图23.a. 过渡过程。

图23.b. 管理。

结论


与PID控制器相比,基于模糊逻辑的控制器可为火箭控制提供更高质量的瞬变。

可以使用优化工具完成基于模糊逻辑的控制器调整。

基于模糊逻辑的控制器提供了更大的调节灵活性和更好的瞬态质量。但这需要设置更多参数。

在本文中下载用于编写本文的模型档案,以供独立研究...

Source: https://habr.com/ru/post/zh-CN413539/


All Articles