当前位置: 首页 > article >正文

构建一个基于快速非奇异终端滑模控制(FNTSMC)的仿真模型,运用不同趋近律与设计的趋近律开展对比,进而探究系统收敛时间和抖振幅值

下面将为你构建一个基于快速非奇异终端滑模控制(FNTSMC)的仿真模型,运用不同趋近律与设计的趋近律开展对比,进而探究系统收敛时间和抖振幅值。

快速非奇异终端滑模控制基础

快速非奇异终端滑模控制是一种先进的滑模控制策略,它能在有限时间内实现系统状态的收敛,同时避免传统滑模控制的奇异问题。

趋近律设计

  • 等速趋近律 s ˙ = − ε sgn ( s ) \dot{s}=-\varepsilon \text{sgn}(s) s˙=εsgn(s)
  • 指数趋近律 s ˙ = − ε sgn ( s ) − k s \dot{s}=-\varepsilon \text{sgn}(s)-k s s˙=εsgn(s)ks
  • 设计的趋近律 s ˙ = − ε sgn ( s ) − k s − η tanh ⁡ ( s ) \dot{s}=-\varepsilon \text{sgn}(s)-k s - \eta \tanh(s) s˙=εsgn(s)ksηtanh(s)

Matlab/Simulink仿真实现

1. 定义系统模型

假定要控制的系统是一个二阶系统:
x ¨ = f ( x , x ˙ ) + u \ddot{x}=f(x,\dot{x})+u x¨=f(x,x˙)+u

2. 滑模面设计

快速非奇异终端滑模面设计为:
s = e + α e p q s = e+\alpha e^{\frac{p}{q}} s=e+αeqp

这里, e e e 是跟踪误差, α > 0 \alpha>0 α>0 p p p q q q 为正奇数,且 p < q p<q p<q

3. 控制器设计

依据滑模面和趋近律设计控制器 u u u

以下是实现该仿真的Matlab代码:

% 仿真参数设置
tspan = [0 10];
x0 = [0; 0]; % 初始状态

% 系统参数
alpha = 1;
p = 3;
q = 5;
epsilon = 1;
k = 1;
eta = 0.5;

% 定义系统函数
sys = @(t,x,u) [x(2); -2*x(2) - 3*x(1) + u];

% 定义滑模面
s = @(e) e + alpha * sign(e) * abs(e)^(p/q);

% 定义不同趋近律
% 等速趋近律
reaching_law1 = @(s) -epsilon * sign(s);
% 指数趋近律
reaching_law2 = @(s) -epsilon * sign(s) - k * s;
% 设计的趋近律
reaching_law3 = @(s) -epsilon * sign(s) - k * s - eta * tanh(s);

% 仿真循环
options = odeset('RelTol',1e-6,'AbsTol',1e-6);
figure;
hold on;

% 等速趋近律仿真
[t1,x1] = ode45(@(t,x) sys(t,x,control_law(x,reaching_law1,s)), tspan, x0, options);
plot(t1,x1(:,1),'b', 'DisplayName', '等速趋近律');

% 指数趋近律仿真
[t2,x2] = ode45(@(t,x) sys(t,x,control_law(x,reaching_law2,s)), tspan, x0, options);
plot(t2,x2(:,1),'r', 'DisplayName', '指数趋近律');

% 设计的趋近律仿真
[t3,x3] = ode45(@(t,x) sys(t,x,control_law(x,reaching_law3,s)), tspan, x0, options);
plot(t3,x3(:,1),'g', 'DisplayName', '设计的趋近律');

% 绘图设置
xlabel('时间 (s)');
ylabel('系统状态');
title('不同趋近律下的系统响应');
legend;
grid on;

% 控制律函数
function u = control_law(x,reaching_law,s)
    % 跟踪误差
    e = 1 - x(1); % 假设参考输入为1
    % 滑模面
    s_val = s(e);
    % 滑模面导数
    s_dot = reaching_law(s_val);
    % 控制器设计
    u = 2*x(2) + 3*x(1) + s_dot;
end    

代码解释

  1. 参数设置:设定仿真时间范围、初始状态、系统参数以及滑模面参数。
  2. 系统函数:定义二阶系统的动力学方程。
  3. 滑模面设计:给出快速非奇异终端滑模面的表达式。
  4. 趋近律定义:定义三种不同的趋近律。
  5. 仿真循环:分别对三种趋近律进行仿真,并绘制系统状态响应曲线。
  6. 控制律函数:依据滑模面和趋近律设计控制器。

结果分析

通过对比不同趋近律下的系统状态响应曲线,能够分析系统的收敛时间和抖振幅值。收敛时间可从曲线达到稳态值的时间来判断,抖振幅值则可从曲线的波动幅度来估计。


http://www.kler.cn/a/591408.html

相关文章:

  • 有哪些开源的智慧园区项目?
  • 产品战略之科学定价策略与模型(104页PPT)(文末有下载方式)
  • 网页复印机:只需一个网址,一键克隆任何网站!(可根据需求生成/优化相关代码)
  • Socket 、WebSocket、Socket.IO详细对比
  • uniapp报错 Right-hand side of ‘instanceof‘ is not an object
  • 在线JSON格式校验工具站
  • 基于SpringBoot+Vue3实现的宠物领养管理平台功能一
  • 应用层之网络应用模型,HTTP/HTTPS协议
  • 深度解析manus:技术原理剖析、开源平替方案架构分析
  • 搜广推校招面经五十四
  • linux 命令 vim
  • 【认知框架重构】
  • ubuntu 没有网卡的解决方案
  • 信贷系统的业务流程
  • HTML 专栏总结:回顾与展望
  • Java Stream API 之 flatMap
  • 学习使用 Git 和 GitHub 开发项目的教程推荐
  • Etcd 服务搭建
  • Word 小黑第29套
  • 【k8s】containerd兼容docker镜像