主要内容

使用使能子系统实现控制算法

此示例说明如何使用使能子系统基于二进制逻辑信号实现控制算法。当二进制信号具有正值时,使能子系统执行并实现控制算法。在此示例中,使用超螺旋控制算法来稳定不稳定的动态系统。超螺旋算法是以稳健性能闻名的滑动模式控制方法之一。

打开模型。

mdl = "enablesub.slx";
open_system(mdl)

Enabled subsystem that implements super-twisting algorithm.

动态系统

所考虑的动态系统由以下方程控制:

x˙1=x2x˙2=2x1-3x2+u+d(t)

u 是控制输入,d(t) 是外部扰动。

控制器和控制信号

控制输入 (u) 有两个组件,即 u1u2,它们由超螺旋算法控制。u2 的基于逻辑的设计是使用使能子系统实现的。

u(t)=u1+u2

u˙1=γsign(σ)

u21=-λ|μ|ρsign(σ)for|σ|>μ

u22=-λ|σ|ρsign(σ)for|σ|μ

u=u21+u22

σ=x1+x2γ=2,λ=0.8,μ=0.55,ρ=0.6。这些参数从模型回调参数 PreLoadFcn 加载。

Implement super twisting logic 1.

Implement super twisting logic 2.

运行仿真并可视化结果

运行仿真并使用 Scope 模块和 Simulink 数据检查器可视化结果。

out = sim(mdl);

可视化控制器输入

Simulink 数据检查器显示基于二进制信号的子系统输出。输出 u21u22 是控制器增益 u2 的两个组件。

  • 包含 u21 的子系统在 0 到 1.8 秒之间和 3 到 5 秒之间启用。

  • 包含 u22 的子系统在 1.8 到 3 秒之间和 5 到 15 秒之间启用。

Enabled subsystem output shows the components u21 and u22 of the control signal u2.

状态输出

状态输出显示控制器稳定了系统。

The Scope block shows state outputs.

另请参阅

| | | |

主题

参考

[1] Shtessel, Yuri, Christopher Edwards, Leonid Fridman, and Arie Levant. "Sliding mode control and observation." Vol. 10. New York: Springer New York, 2014. https://link.springer.com/book/10.1007/978-0-8176-4893-0