✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信或扫描文章底部QQ二维码。
🍎个人主页:Matlab凤凰涅槃
🏆代码获取方式:扫描文章底部QQ二维码
⛳️座右铭:行百里者,半于九十。
更多Matlab路径规划仿真内容点击👇
①Matlab路径规划(凤凰涅槃版)
⛳️关注微信公众号Matlab王者助手或Matlab海神之光,更多资源等你来!!
⛄一、四旋翼位置控制的滑模控制器
四旋翼飞行器的滑模控制器是一种常见的位置控制策略,它主要用于精确控制飞行器相对于地球的特定位置,如高度、水平位移和平移。其核心原理和流程如下:
1 原理:
滑模控制器利用“硬切换”特性,即当系统接近预设的稳定状态边界(称为滑模面)时,迅速切换控制信号,使系统快速逼近目标状态,而不是逐渐趋近。
在四旋翼系统中,滑模控制器通常将无人机的位置(例如x,y,z坐标)作为控制变量,并设置一个预定的滑模表面,该表面代表理想位置。控制器的目标是在最小时间下让飞行器达到这个表面。
2 流程:
(1)状态空间描述:首先,需要将四旋翼的运动简化为双轴(俯仰和偏航)或三维(包括俯仰、偏航和滚动)的空间模型。
(2)设计滑模面:定义滑模面的表达式,通常是基于位置和速度偏差的形式。
(3)控制器设计:设计一个跟踪误差控制器,使得当位置误差进入一个所谓的“滑模区域”时,误差的斜率变为常数,使得控制器可以直接驱动飞行器到滑模面。
(4)切换规则:一旦达到某个阈值,控制系统立即改变输入(螺旋桨的速度或推力),引导飞机到达滑模面。
(5)稳定性保证:通过适当的参数选择和控制器设计,确保系统的稳定性,防止混沌行为和不稳定振动。
3 优势:
对于不确定性和外部干扰有较强的鲁棒性,能较快地从扰动中恢复。
简单的控制结构,易于理解和实现。
⛄二、部分源代码和运行步骤
1 部分代码
clear;
close all;
clear global;
warning off;
clc;
%% 2021b version
out = sim(‘main_adaptive.slx’)
out_smc = sim(‘main_smc’)
%% x y z
fig1=figure(1)
t = tiledlayout(3,1);
nexttile
% subplot(3,1,1)
h=plot(out_smc.x_real.Time,out_smc.x_real.Data ,‘-xr’,‘LineWidth’,1,‘DisplayName’,‘x_{real smc}’);
h.MarkerIndices = 5:200:length(out_smc.x_real.Time );
hold on
h=plot(out.x_real.Time,out.x_real.Data ,‘-xk’,‘LineWidth’,1,‘DisplayName’,‘x_{real}’);
h.MarkerIndices = 5:2