FRP 中的无扰动传输

问题描述 投票:0回答:1

我可以使用为 loops 提供的 ArrowLoop 实例中的

Wire
在 Haskell FRP 库
netwire
中构建
PID 控制器

我还可以使用

switch
实现控制器之间或控制器与手动输入之间的切换。

如何实现无扰动传输,例如使用此处(或任意数量的控制工程文章/书籍中解释的“跟踪”策略)?如果性能良好,另一种策略可能是可以接受的,但跟踪方法对我的应用程序很有吸引力,因为它还解决了抗饱和问题。

我很难眯着眼睛看框图,以至于它看起来像是两个(或一个?)

loop
应用程序的类型。

haskell frp control-theory arrow-abstraction netwire
1个回答
2
投票

每个图中有两个

loop
。当找到循环来重新绘制图表时,这会很有帮助,以便所有输入进入所有元素的同一侧,所有输出离开相同的其他侧,并且如果可能的话,尽量减少线交叉。在这些图中,输入进入元素的底部、左侧或顶部,输出离开右侧。

整个系统有一个

loop
,将过程的输出送入减法进行误差比较:

Overall PID process

控制系统有一个

loop
,将选择控制器(PID控制器或手动控制)后的最终控制输出送入跟踪PID控制器。整体输出是最右侧的输出。

Manually overridden PID Controller

跟踪 PID 控制器有两个

loop
。一是导数的反馈回路。导数的
loop
可能会在另一个组件中消失。另一个
loop
将PID控制器的输出反馈到PID控制器的输出与实际控制过程的控制输出之间进行比较。请注意,该图中 P、D 和 I 分支的顺序不同,以消除线交叉

Tracking PID controller

请注意,如果跟踪 PID 控制器有自己的输出连接到 Track,则与第一次减法的差将为 0,并且积分分支将通过添加 0 保持不变。

© www.soinside.com 2019 - 2024. All rights reserved.