主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

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

此示例显示如何使用启用的子系统来实现基于二进制逻辑信号的控制算法。当二进制信号具有值时,启用的子系统执行并实现控制算法。在这个示例中,超扭转控制算法用于稳定不稳定的动态系统。超扭转算法是一种众所周知的滑模控制技术,具有鲁棒性好的特点。

打开模型。

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