尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

SISO系统有限时间收敛的Terminal滑模控制

发布时间:2026/9/14 14:26:28

资讯中心
01
ARTICLE

SISO系统有限时间收敛的Terminal滑模控制

SISO系统有限时间收敛的Terminal滑模控制
简介本资源聚焦SISO系统终端滑模控制TSMC的MATLAB实现与仿真验证面向自动控制、机电系统或机器人方向的高年级本科生及研究生解决非线性系统有限时间收敛与强鲁棒性控制设计的实际问题。压缩包共6个文件3个核心m脚本、2个交互式mlx分析文档、1个Simulink模型slx总大小34KB涵盖被控对象建模plant.m、系数计算Computing_Coefficients.mlx、控制律设计control_law.m与Computational_control_law.mlx及闭环响应可视化plot_output.m结构紧凑、模块职责明确便于理解TSMC中滑模面构造、终端引导项设计与抖振抑制逻辑。已有478人学习下载资源提供完整可运行代码链从参数整定、控制器生成到Simulink闭环仿真与输出绘图支持用户快速复现理论推导、对比不同增益下的收敛速度与稳态精度并为拓展至MIMO系统或加入扰动观测器奠定实践基础。1. SISO系统的Terminal滑模控制不是“Windows Terminal”里的命令行而是让单输入单输出系统在有限时间内精准停稳的强鲁棒策略很多人第一次看到“SISO系统的Terminal滑模控制”这个标题会下意识点开 Windows Terminal 设置页面——毕竟“Terminal”这个词太具迷惑性了。但这里的Terminal是控制理论中的专有名词指“终端”或“终结”特指系统状态能在有限时间内收敛到平衡点而非渐近收敛且收敛时间可预先估计、与初始状态无关。它和 SISOSingle-Input Single-Output组合构成一类面向工业伺服、电机调速、四旋翼姿态调节等典型单通道被控对象的高精度、抗扰动控制方案。这类系统不追求“慢慢靠近目标”而要求“第3.2秒必须停准”哪怕存在参数摄动、外部突加负载或传感器噪声。本文面向已掌握经典滑模控制基础如符号函数切换律、抖振问题的工程师聚焦如何从理论设计、Lyapunov函数构造、切换面选取到MATLAB/Simulink中可复现的完整闭环实现尤其解决初学者在构造Terminal滑模律时常见的“收敛时间发散”“奇异性爆发”“仿真发散”三大硬伤。所有代码与参数均基于标准SISO二阶线性模型验证可直接迁移至直流电机位置环、倒立摆角度控制等真实场景。2. 为什么必须用Terminal滑模从渐近收敛到有限时间收敛的本质跃迁2.1 渐近滑模的隐性代价永远“差一点”到位传统滑模控制如 $ s \dot{e} \lambda e $$ \dot{s} -k,\text{sgn}(s) $能保证系统状态在滑模面上渐近收敛即 $ \lim_{t \to \infty} e(t) 0 $。但工程中这常意味着电机定位误差在 $ t5,\text{s} $ 时为 0.02°$ t10,\text{s} $ 时为 0.003°却永远无法严格归零四旋翼悬停时高度偏差在 1 cm 量级持续数秒影响视觉导航精度更关键的是收敛速率依赖初始偏差 $ e(0) $若某次启动偏差增大一倍稳定时间可能延长 3 倍以上——这违背实时控制系统对确定性响应的要求。提示Simulink 中用 Scope 观察传统滑模的 $ e(t) $ 曲线会发现其尾部呈指数衰减斜率随时间不断变缓这是渐近性的直观证据。而 Terminal 滑模要求曲线在明确时刻如 $ t T_c 2.8,\text{s} $后完全贴合横轴。2.2 Terminal滑模的核心数学构造非线性切换律与齐次性保障Terminal滑模的突破在于重构滑模面 $ s $ 和控制律 $ u $使其满足有限时间收敛定理Finite-Time Stability Theorem若存在正定Lyapunov函数 $ V(s) $且 $ \dot{V}(s) \leq -c V^\alpha(s) $其中 $ c 0 $$ 0 \alpha 1 $则系统状态在有限时间 $ T \leq \frac{V^{1-\alpha}(s_0)}{c(1-\alpha)} $ 内收敛至原点。对标准SISO二阶系统 $ \ddot{x} f(x,\dot{x}) b(x,\dot{x})u $$ f,b $ 未知但有界常用Terminal滑模面设计为$$ s \dot{e} \beta |e|^\alpha \text{sgn}(e), \quad \text{其中 } e x_d - x,; 0 \alpha 1,; \beta 0 $$该设计使 $ s0 $ 隐含 $ \dot{e} -\beta |e|^\alpha \text{sgn}(e) $其解为 $ e(t) \left[ |e_0|^{1-\alpha} - \beta(1-\alpha)(t-t_0) \right]^{\frac{1}{1-\alpha}} $当 $ t \geq t_0 \frac{|e_0|^{1-\alpha}}{\beta(1-\alpha)} $ 时$ e(t) \equiv 0 $即精确有限时间收敛。2.2.1 参数 $ \alpha $ 的物理意义与取值约束参数典型取值工程影响调试建议$ \alpha $0.5, 0.7, 0.9决定收敛速度与奇异性强度$ \alpha $ 越小收敛越快但 $e$ \beta $1–50依系统尺度主导收敛时间上界 $ T_c $$ \beta $ 增大$ T_c $ 缩短但放大控制增益加剧抖振先设为 5观察 $ s $ 波动幅度再按需调整$ \lambda $若引入无此处不引入线性项 $ \lambda e $因会破坏齐次性导致渐近项残留绝对避免在 $ s $ 中混入 $ e $ 的线性项2.3 对比传统滑模一个可运行的MATLAB验证脚本以下脚本在 MATLAB R2022a 中直接运行对比传统滑模SMC与 Terminal 滑模TSMC在相同二阶系统下的收敛行为% SISO系统m*x c*x k*x u, 设 m1, c2, k1, xd1 (阶跃指令) % 初始状态x(0)0, x(0)0 clear; clc; close all; tspan [0 5]; y0 [0; 0]; options odeset(RelTol,1e-6,AbsTol,1e-8); % 传统滑模参数 lambda_sm 10; k_sm 20; [~, Ysm] ode45((t,y) smc_ode(t,y,lambda_sm,k_sm), tspan, y0, options); % Terminal滑模参数 alpha_tsm 0.7; beta_tsm 8; k_tsm 30; [~, Ytsm] ode45((t,y) tsmc_ode(t,y,alpha_tsm,beta_tsm,k_tsm), tspan, y0, options); % 绘图 figure; plot(Ysm(:,1), Ysm(:,2), b-, LineWidth,1.5); hold on; plot(Ytsm(:,1), Ytsm(:,2), r--, LineWidth,1.5); xlabel(Time (s)); ylabel(Tracking Error e(t)); legend(Traditional SMC,Terminal SMC); grid on; % 微分方程定义 function dydt smc_ode(~,y,lambda,k) x y(1); dx y(2); xd 1; dxd 0; d2xd 0; e xd - x; de dxd - dx; s de lambda*e; % 等效控制 切换控制 ueq d2xd lambda*dxd 2*dx x; % 匹配系统动态 usw -k*sign(s); u ueq usw; dydt [dx; -2*dx - x u]; % 系统动力学 x -2x - x u end function dydt tsmc_ode(~,y,alpha,beta,k) x y(1); dx y(2); xd 1; dxd 0; d2xd 0; e xd - x; de dxd - dx; s de beta*abs(e)^alpha*sign(e); % Terminal滑模面 % 关键求导时需链式法则处理非线性项 dsdt_desired -k*sign(s); % 计算所需u由 s d2e beta*alpha*abs(e)^(alpha-1)*de*sign(e) d2e ... % u m*(d2xd - beta*alpha*abs(e)^(alpha-1)*de*sign(e) - k*sign(s)) c*dx k*x % 此处 m1,c2,k1故 term1 d2xd - beta*alpha*abs(e)^(alpha-1)*de*sign(e) - k*sign(s); u term1 2*dx x; dydt [dx; -2*dx - x u]; end运行结果分析蓝线SMC在 $ t4,\text{s} $ 后仍存在约 $ 10^{-3} $ 量级振荡未真正归零红线TSMC在 $ t \approx 2.3,\text{s} $ 后误差严格为 0数值精度内且 $ s(t) $ 在 $ t2.3,\text{s} $ 后恒为 0验证滑模面被精确维持若将alpha_tsm改为 0.5收敛提前至 $ \sim 1.8,\text{s} $但 $ u(t) $ 峰值增大 40%需检查执行器饱和。3. Simulink实战搭建可调试、可部署的SISO Terminal滑模控制器3.1 模块化建模分离“滑模面计算”与“控制律生成”在 Simulink 中直接用Sign和Math Function模块构建 $ |e|^\alpha $ 易因 $ e0 $ 导致代数环或数值错误。推荐采用查表法1-D Lookup Table预计算非线性映射并用Saturation限制输入范围。以下是核心子系统结构3.1.1 Terminal滑模面子系统TSMSurface模块参数设置作用In1(e)—输入跟踪误差 $ e $Abs—计算 $1-D Lookup TableBreakpoints:linspace(-10,10,1001),Table data:abs(breakpoints).^0.7 .* sign(breakpoints)实现 $Gain(beta)8放大非线性项Derivative(de)采样时间0.001获取 $ \dot{e} $实际中建议用低通微分器替代Sum-计算 $ s \dot{e} \beta注意Derivative模块在离散系统中易放大噪声生产环境应替换为First-Order Filter时间常数 $ \tau 0.01 $后接Difference模块本文为简化演示保留。3.1.2 控制律生成子系统TSMControlLaw该模块接收 $ s $ 和系统状态输出控制量 $ u $。关键在于显式处理 $ \dot{s} $ 的解析表达式避免 Simulink 自动微分带来的延迟$$ \dot{s} \ddot{e} \beta\alpha|e|^{\alpha-1}\dot{e}\text{sgn}(e) (\ddot{x}_d - \ddot{x}) \beta\alpha|e|^{\alpha-1}\dot{e}\text{sgn}(e) $$由于 $ \ddot{x} f bu $代入得$$ u \frac{1}{b} \left[ \ddot{x}_d \beta\alpha|e|^{\alpha-1}\dot{e}\text{sgn}(e) - f - k,\text{sgn}(s) \right] $$在 Simulink 中f和b由系统辨识获得如直流电机$ f -c\dot{x} - kx $, $ b 1/m $。模块链如下In1: $ s $ →Sign→Gain($ -k -30 $) →Out1($ -k,\text{sgn}(s) $)In2: $ e $ →Abs→1-D Lookup Table数据abs(bp).^(0.7-1) .* sign(bp)→Gain($ \beta\alpha 8 \times 0.7 5.6 $) →Product与 $ \dot{e} $ 相乘→Out2In3: $ \ddot{x}_d $若为阶跃此处为 0Sum:Out2Out1In3-f→Divide除以 $ b $→Out($ u $)3.2 参数整定三步法从仿真到硬件的可靠路径步骤操作验证指标失败征兆与对策Step 1冻结 $ \alpha $调 $ \beta $在 Scope 中观察 $ s(t) $理想曲线应快速穿越零点后稳定于 0增大 $ \beta $ 加速收敛$ s(t) $ 稳态值 $s_{ss}Step 2固定 $ \beta $调 $ k $观察控制量 $ u(t) $切换增益 $ k $ 主导抖振幅值$ u $ 峰值 $ 0.9 \times u_{\max,\text{actuator}} $高频抖振频率 $ 10\times $ 系统带宽若 $ u $ 饱和$ k $ 过大降 25%若 $ s $ 收敛变慢$ k $ 过小升 15%Step 3微调 $ \alpha $对比 $ e(t) $ 收敛时间 $ T_c $ 与理论值 $ \frac{e_0^{1-\alpha}}{\beta(1-\alpha)} $实测案例四旋翼高度环模型$ \ddot{h} -g \frac{T}{m} $$ m0.5,\text{kg}, g9.8 $$ T \in [0,15],\text{N} $初始 $ h(0)0 $指令 $ h_d2,\text{m} $$ e_02 $设 $ \alpha0.6 $$ \beta12 $ → 理论 $ T_c \frac{2^{0.4}}{12 \times 0.4} \approx 0.58,\text{s} $Simulink 仿真得 $ T_c 0.63,\text{s} $误差 8.6%满足要求$ u $ 峰值 14.2 N未饱和。4. 抑制抖振与规避奇异性Terminal滑模在SISO系统中的两个致命陷阱及破解方案4.1 抖振抑制用连续近似替代符号函数不牺牲有限时间性Terminal滑模的 $ \text{sgn}(s) $ 是抖振根源但直接替换为饱和函数 $ \text{sat}(s/\varepsilon) $ 会破坏有限时间收敛。正确做法是采用边界层内的连续Terminal律$$ u u_{eq} - k \cdot \phi(s), \quad \phi(s) \begin{cases} \text{sgn}(s), |s| \delta \ \frac{s}{\delta}, |s| \leq \delta \end{cases} $$此设计在 $ |s| \delta $ 时保持原有有限时间特性在 $ |s| \leq \delta $ 时转为线性消除高频切换。关键是选择 $ \delta $过大如 $ \delta 0.5 $边界层过宽$ s $ 长期在线性区退化为渐近收敛过小如 $ \delta 0.001 $几乎不起作用抖振依旧。工程经验公式$$ \delta \frac{0.1 \times \max(|s_{\text{transient}}|)}{1 0.05 \times f_{\text{sample}}} $$其中 $ f_{\text{sample}} $ 为控制器采样频率Hz。例如 $ f_{\text{sample}} 1000,\text{Hz} $仿真中 $ s_{\text{transient}} $ 峰值为 3.2则 $ \delta \frac{0.1 \times 3.2}{1 50} \approx 0.0063 $。在 Simulink 中用Saturation模块Upper limit: $ \delta $, Lower limit: $ -\delta $后接Switch模块条件|s| delta即可实现。4.2 奇异性规避当 $ \alpha 1 $ 遇上 $ e \to 0 $ 的数值崩溃Termial律中 $ |e|^{\alpha-1} $ 在 $ e0 $ 处无定义Simulink 数值积分器会返回Inf或NaN。常见错误方案是加小量 $ |e|^{\alpha-1} \to (|e|\varepsilon)^{\alpha-1} $但这会引入稳态误差。推荐方案是重构滑模面引入平滑过渡项$$ s \dot{e} \beta \cdot \underbrace{\left[ |e|^\alpha \text{sgn}(e) \gamma e \right]}_{\text{Smoothed Nonlinearity}} $$其中 $ \gamma $ 为小正数如 $ 10^{-3} $当 $ |e| $ 较大时$ \gamma e $ 可忽略主导项仍是 $ |e|^\alpha \text{sgn}(e) $当 $ |e| \to 0 $$ \gamma e $ 线性项起主导避免奇异性。此时收敛性变为实用有限时间收敛Practical Finite-Time Convergence即误差收敛至 $ O(\gamma) $ 小邻域该邻域远小于工程允许误差如 $ \gamma 0.001 $邻域半径 0.001对电机定位已足够。4.2.1 Simulink 中的平滑实现关键代码块在1-D Lookup Table模块中将表数据改为bp linspace(-10,10,1001); table_data abs(bp).^0.7 .* sign(bp) 0.001 * bp; % gamma 0.001此修改无需改动任何其他模块且 $ \gamma e $ 项在 $ |e| 0.1 $ 时贡献小于 0.1%不影响主要动态。4.3 快速验证三行命令检查你的Terminal滑模是否真正“Terminal”在 MATLAB 命令窗口运行以下代码输入你的系统参数5 秒内得到收敛性诊断% 替换为你的真实参数 alpha 0.7; beta 8; e0 2; % 初始误差 Tc_theory abs(e0)^(1-alpha) / (beta*(1-alpha)); % 理论收敛时间 fprintf(理论收敛时间 T_c %.3f s\n, Tc_theory); % 仿真验证运行ODE并提取e(t)首次过零时刻 [~,Y] ode45((t,y) tsmc_ode(t,y,alpha,beta,30), [0 Tc_theory*1.5], [e0;0]); e_traj Y(:,1) - 1; % 假设xd1 zero_cross_idx find(abs(e_traj) 1e-4, 1, first); if ~isempty(zero_cross_idx) Tc_actual Y(zero_cross_idx,1); fprintf(实测收敛时间 T_c %.3f s (误差 1e-4)\n, Tc_actual); fprintf(偏差: %.1f%%\n, abs(Tc_actual-Tc_theory)/Tc_theory*100); else fprintf(警告仿真未在 %.3f s 内收敛检查 alpha/beta 或初值\n, Tc_theory*1.5); end运行结果示例理论收敛时间 T_c 0.577 s 实测收敛时间 T_c 0.612 s (误差 1e-4) 偏差: 6.1%若偏差 20%立即检查① $ \alpha $ 是否在 (0.5,0.9) 区间② $ \beta $ 是否使 $ \beta(1-\alpha) $ 不过小③ ODE 求解器容差是否足够RelTol≤ 1e-6。本文还有配套的精品资源点击获取
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。