根据V. Gostev的著作“自动控制系统中的模糊控制器”,我们继续研究模糊逻辑。在欣赏了响应面的美丽景色之后,我们直接着手解决V. Gostev的书“自动控制系统中的模糊调节器”中的下一个问题。
本文是先前出版物的延续:
- 一个基于模糊逻辑的简单控制器。创建和定制。
- 漂亮图片中的模糊逻辑。不同隶属函数的响应面。
- 基于具有多通道设置的模糊逻辑创建控制器。
- 简单的模糊逻辑是从燃气轮机的“原形”中塑造出来的。
- 针对PID的模糊逻辑。我们越过刺猬和蛇。飞机发动机和NPP控制算法。
![](https://habrastorage.org/webt/fv/gs/yv/fvgsyvltpmdtips6-ybrzqaky9i.png)
对于那些不熟悉模糊逻辑的人,我建议您首先阅读第一篇文章,然后,下面描述的所有内容将变得简单明了。
, - . , . , Fuzzy. , , . , , , , .
, , , .
– -, (). , , « . »
, , , 1 ( ).
![](https://habrastorage.org/webt/uu/tt/b_/uuttb_gtfxkwuamfozeibboedn4.png)
1. .
.
. 1 . , . – , .
: – , – . , 0.009 .
, -.
, 2. – 20, (- «as is» .. ).
![](https://habrastorage.org/webt/ge/re/a1/gerea1vljgnm0kf1wq5nls3xv98.png)
2. .
- 0.001 0.001.
- 1,1,1 . 3.
, , 1 1000, 0,001. , . , -1 1 , 0 7 .
看这张图你能说什么?没关系。所有这些都是因为我们的模型已经表示为偏差的传递函数,所以我们不能说它是否快速。关于引擎,我们无话可说。正如我在“获取TAU动力学方程的技术”一文中已经展示的那样。以及为什么系统识别很烂,并且“诚实的物理学”规则:将参数物理系统转换为一种传递函数会破坏模型的整个工程“可理解性”。例如,在寿命中可能会对PID值达到1000的模型产生影响吗?未知如果这是燃料供应,那么很明显,供应系统将无法装载比怠速模式下多1000倍的燃料。, 10, -10. . , . :
![](https://habrastorage.org/webt/uf/eu/bk/ufeubkhfmvodsofcuh2dnqidate.png)
4. .
, , ( 5). 1000, , 10.
![](https://habrastorage.org/webt/_q/kq/zy/_qkqzyxi5g27fsji5pnelwne0ki.png)
5. .
.
C . 0
![](https://habrastorage.org/webt/0g/m6/vl/0gm6vlbfyg3hcg4ktfuo0n0ebr8.png)
6. .
7.
7. ... :
— – , 0.009.
— .
«-3» . , , , — .
« » .
, , . , .
, « » , , .. .
, , . , .
, . , , , .
8.
![](https://habrastorage.org/webt/hm/ku/rr/hmkurrzrtwptwvgngva0bpqzxxi.png)
8. .
. , , . p, Ki, Kd (. . 7 . 8). -. (. 10.)
![](https://habrastorage.org/webt/d7/go/bo/d7gobo_y4wmvv_z83uy_sdnm7vs.png)
9. .
![](https://habrastorage.org/webt/l8/l5/vc/l8l5vcg1xzlw6lu1ifphbywj5k8.png)
10. -.
:
Kp = 13.142
Ki = 0.313
Kd = 1.779
0.72 . 11.
![](https://habrastorage.org/webt/nm/w4/ci/nmw4cii5wrab9tn7bybxwtrtg0k.png)
11. -.
, .
1 , . .
通过定相单元的输入偏差信号和偏差变化率分别分解为三个项。使用高斯隶属函数。
偏差 - 更多,规范,更少。变化的速度是越来越多,不改变,下降。当出现偏差以及调节器的变化率表明偏差会增加时(即使此刻是正常的),调节器也会起作用。监管机构的基本规则:
- ( (0) ), .
- , 0.
- ( (0) ), .
, , 12.
![](https://habrastorage.org/webt/dw/bt/eu/dwbteu_hbgji6hhjycac9k2su28.png)
12. Fuzzy Logic.
. , 0, . :
- uMax_1 – ;
- deltaMax_1 – ;
- divMax_1 – .
– . 13.
![](https://habrastorage.org/webt/de/tn/s-/detns-hdcn7sck68gefojiq9s00.png)
13. .
(–uMax_1… uMax_1) [–uMax_1 ,0, uMax_1], , 2. (. , ).
, :
14. ..
, :
其中:Y t是当前值;Y t-1是上一步的值;Δt= 0.001-时间步长与对离散PID控制器进行采样时相同。该电路如图15所示。在比较模块中考虑了Δt的除法,在该模块中可以设置每个输入的系数。
![](https://habrastorage.org/webt/fm/cm/ny/fmcmnyt4jngdc4wibqjniizbkwq.png)
图16.计算变化率的方案。
由于整个电路已经为我们准备好了,因此仍然有必要用FL控制器替换PID控制器(参见图17),然后看看会发生什么。
![](https://habrastorage.org/webt/vc/os/iy/vcosiyknl5tyw1typfrfcskrnke.png)
图17.具有一个模糊控制器的模型图。
同样,令我惊讶的是,在初始单个设置中,模糊控制器的性能优于PID。获得了某种模糊逻辑的连续广告。
此外,如果在以前的情况下可以归因于在模糊控制器中使用了二阶导数,那么在这种情况下,该模糊控制器使用相同的导数,而PID也使用积分分量。
这样一来,倡导性别多样性的人就不会指责我压迫传统的PID调节器,将积分部分的系数作零,并获得PD调节器。结果已显着改善,但FL仍然更好。![](https://habrastorage.org/webt/uu/ie/vm/uuievmfhaijy2cwwn42az0dk34u.png)
图19.具有单个设置的PD控制器。
, 0.009. :
– 11.25 .
— 5.25 .
FL – 4.74 .
FL
, - (. 6). :
— uMax_1 – ;
— deltaMax_1 – ;
— divMax_1 – .
1. .
, .
![](https://habrastorage.org/webt/yh/ew/sg/yhewsgynsmajomtpuvs8lgfzlf4.png)
20. .
, , .
. .
21. .0.24
[]: « = [31.10359, 1.0219553, 2.165446], = [1.24, 0.09879439]» Macro4.OptimizeBlock6
0.23 .
[]: « = [34.954824, 1.0114662, 0.058949452], = [1.23, 0.098544697]» Macro4.OptimizeBlock6
FL 22. , .
, .
, . . , , , .
, , , .
. – SimInTech, - , .
. . – FL1, — FL2. , 23:
![](https://habrastorage.org/webt/d3/cp/no/d3cpnob8nnglscva8cx-g94fgho.png)
23. .
, , – , .
, .
, , , , . .
, , , «1 », , 0.001 ( ). . — .
, , , (), . , , 1000 , 1 000 000 . . . 24.
![](https://habrastorage.org/webt/6f/az/pq/6fazpqqexbbqj_tx-upx9pxrlnk.png)
24. .
: , 0.009. , , .
FL1, . , u_FL. , , .
![](https://habrastorage.org/webt/eh/vz/hj/ehvzhjfxoargnszvobozurcg5f8.png)
25. 1.
– , 1 , 0.009.
26. 2.( .. ). 24.
, , u_FL FL1, FL2 .
. , . , . , , .
– , , .
– , , .
— , , .
, :
1)如果 偏差 更大 并且 变化率 增加 并且 变化的 加速度加快,则效果会 降低。2)如果 偏差 是正常的, 并且 变化率是 恒定的, 并且变化的加速度不变,则效果 不变。3)如果 偏差 较小 并且 变化率 降低 并且 变化加速度减慢,则 影响 增加。![](https://habrastorage.org/webt/xv/hy/k8/xvhyk8y_8mhkipk4hbvrk-shzai.png)
27. FL2.
N , , 0, .
:
— uMax_2 – ;
— deltaMax_2 – ;
— divMax_2 – ;
— div2Max_2 – .
1 (. . 28)
1 , - , , 1 (. . 18 — 19) – , . . (. . 28)
![](https://habrastorage.org/webt/ku/8t/tc/ku8ttcorop5mypniniu6j0gcemw.png)
28. .
: , . 29, – 30.
![](https://habrastorage.org/webt/qz/6j/yk/qz6jykce9s_fss7txkkj60py0yc.png)
29. .
![](https://habrastorage.org/webt/j1/i-/1r/j1i-1rhlkjx4wgtnf7zwzgpzwvk.png)
30. .
, . , . , .
, . .
:
sign, -1,0,1 , « », 1 . , , .
, .
, , 1.2 , .
![](https://habrastorage.org/webt/t0/xu/vo/t0xuvo27kb7gq3c7hhxri8dyg8w.png)
31. ee.
:
[]: « = [16.564415, 0.0027674129, 0.19085771, 50], = [0.0047956855, 11]» Macro5.OptimizeBlock6
, :
— uMax_2 – = 16.564;
— deltaMax_2 – = 0.00277;
— divMax_2 – = 0.191;
— div2Max_2 – = 50.
32.
, , , . 1, 2 , .
33. , , .
33. 1 2.
, , , . . 34.
![](https://habrastorage.org/webt/i4/4q/yq/i44qyqae_s4hx8xivx8av2fviis.png)
34. -.
2, , . - :
![](https://habrastorage.org/webt/br/2g/8x/br2g8xdqtns_re5dnpkrvzj3uc8.png)
35. -.
:
, , .
...