✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。
更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)
⛄一、快速终端滑模控制方法水面无人船舶镇定控制简介
1 什么是终端滑模
终端滑模控制 (Terminal Silding Mode Contral, TSM),在前面所介绍的滑模控制中,我们是选取了一个线性的滑模面s,使系统达到滑模面后,误差逐渐收敛到0,收敛的速度可以通过调节滑模面的参数来实现。后来人们为了使滑模控制有更好的性能,便想到将滑模面设计成非线性函数,构Terminal滑模面,使得在滑模面上误差可以在指定时间T内收敛到0,于是就产生终端滑模.
2 终端滑模形式
终端滑模面的形式有很多,主要要把握其思想,下面我将以一种比较经典的滑模面介绍Terminal滑模。
根据前面滑模介绍,相信大家都了解了滑模变结构控制有两个阶段:一是到达阶段,这一阶段是指系统从初态到达s=0的滑模面上,当然,如果系统初态处于s=0的切换面上时,则是不存在这一阶段;二是在滑模面上滑动的阶段,即在s=0的切换面上滑动到平衡点。
快速终端滑模控制方法是一种常用的控制方法,可以用于水面无人船舶的镇定控制。该方法的主要思想是通过引入滑模面来实现对系统状态的控制,从而达到控制系统的稳定性和鲁棒性。
具体来说,快速终端滑模控制方法可以分为以下几个步骤:(1)建立系统模型:首先需要建立水面无人船舶的数学模型,包括船舶的运动学和动力学方程等。
(2)设计滑模面:根据系统模型,设计合适的滑模面,使得系统状态能够在滑模面上运动,并且能够实现期望的控制效果。
(3)设计控制律:根据滑模面和系统模型,设计合适的控制律,使得系统状态能够在滑模面上快速收敛到期望状态,并且能够保持稳定。
(4)仿真验证:通过仿真实验验证控制方法的有效性和鲁棒性,对控制参数进行调整和优化。
⛄二、部分源代码
clear all
global T1 T2 T3
global aifa beita gama yislong
global z60 k aifa0 beita0 aifa1 beita1 q0 p0 q1 p1
global aifa0_sub2 beita0_sub2 aifa1_sub2 beita1_sub2 q0_sub2 p0_sub2
global q1_sub2 p1_sub2
%*******************************************here down is Initialilze
%*************Initialize
m11=1.1274;
m22=1.8902;
m33=0.1278;
m23=-0.0744;
m32=-0.0744;
d11=0.0358;
d22=0.1183;
d33=0.0308;
d23=-0.0124;
d32=-0.0041;
aifa=m11/m22;
beita=d22/m22;
yislong=m23/m22;
gama=d22m23/m22^2-d23/m22;
k=0.1;
%subsystem1
aifa0=0.1;
beita0=0.1;
aifa1=0.1;
beita1=0.1;
q0=3;
p0=5;
q1=3;
p1=5;
T3=150;
%subsystem2
aifa0_sub2=0.1;
beita0_sub2=0.1;
aifa1_sub2=0.1;
beita1_sub2=0.1;
q0_sub2=3;
p0_sub2=5;
q1_sub2=3;
p1_sub2=5;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
x0=-2;
y0=2;
fai0=-pi/2;
u0=0;
v0=0;
r0=0.07;
[z10,z20,z30,z40,z50,z60]=TransCoordinate(x0,y0,fai0,u0,v0,r0);
Z2_state=z20/z60;
s0_state=z20/z60;
s1_state=(z40+kZ2_state)+aifa0Z2_state+beita0abs(Z2_state)^(q0/p0)sign(Z2_state);
T1=p1/(aifa1(p1-q1))logm((aifa1abs(s1_state)^(1-q1/p1)+beita1)/beita1);
T2=T1+p0/(aifa0(p0-q0))logm((aifa0abs(s0_state)^(1-q0/p0)+beita0)/beita0);
%Here up is Initialize
%
z0=[z10,z20,z30,z40,z50,z60];
[t1,zz] = ode45(@PlantModel,[0 T2],z0);
t1=t1(1:5:length(t1)😅;
zz=zz(1:5:length(zz)😅;
z1_sub1=zz(:,1);
z2_sub1=zz(:,2);
z3_sub1=zz(:,3);
z4_sub1=zz(:,4);
z5_sub1=zz(:,5);
z6_sub1=zz(:,6);
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%subsystem1feedback control
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Z2=z2_sub1./z6_sub1;
s0=Z2;
Z4=z4_sub1+kZ2;
s1=Z4+aifa0s0+beita0sign(s0).abs(s0).^(q0/p0);
u1=-(k+aifa0+beita0sign(s0)(q0/p0).abs(s0).(q0/p0-1)).*Z4-aifa1*s1-beita1*sign(s1).*abs(s1).(q1/p1);
u2=-kz6_sub1;
⛄三、运行结果
⛄四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 门云阁.MATLAB物理计算与可视化[M].清华大学出版社,2013.
[2]李晓峰, 王志强, 王磊, 等. 自适应反步非奇异快速终端滑模控制在水面无人船舶镇定中的应用[J]. 中国舰船研究, 2018, 13(2): 1-9.
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
🍅 仿真咨询
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化
2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化
5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配
6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化
7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化
8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置
9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长
10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合