【无人机】使用LPV方法的无人机模型预测控制器(Matlab实现)

  💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

使用线性参数可变(LPV)方法的无人机模型预测控制器是一种先进的控制技术,旨在实现对无人机动态系统的高性能控制。LPV控制器基于对系统动态特性的精确建模,并考虑到系统参数随时间或操作条件变化而变化的情况。该控制器首先利用准确的动态模型来描述无人机的行为,包括其动力学和惯性特性。然后,通过使用LPV方法,将系统的动态特性表示为系统参数的函数,这些参数可以随时间或工作条件而变化。这样,LPV控制器能够在不同工作条件下有效地调整控制策略,以适应系统参数的变化,从而提高控制性能和稳定性。模型预测控制(MPC)是LPV方法的一种实现方式,它允许控制器预测未来一段时间内系统的行为,并基于这些预测来生成最优控制输入。对于无人机,MPC可以预测未来几个时刻内的姿态、位置和速度,并生成使无人机沿预期轨迹飞行的最优控制指令。使用LPV方法的无人机模型预测控制器结合了精确的动态模型、考虑系统参数变化的能力以及模型预测控制的优势,为无人机提供了高性能、鲁棒性和适应性的控制方案,适用于各种飞行任务和环境条件。

📚2 运行结果

 

主函数部分代码:

%% Main file for controllering the drone
clear
close all
clc

%% Load the cons tant values
constants = initial_constants();
Ts = constants{7};
controlled_states = constants{14}; % Number of controlled states
innerDyn_length = constants{18}; % Number of inner control loop iterations

%% Generate the reference signals
t = 0 : Ts * innerDyn_length : 100;
t_angles = (0 : Ts : t(end))';
r = 2;
f = 0.025;
height_i = 5;
height_f = 25;
[X_ref, X_dot_ref, X_dot_dot_ref, Y_ref, Y_dot_ref, Y_dot_dot_ref, Z_ref, Z_dot_ref, Z_dot_dot_ref, psi_ref] = trajectory_generator(t, r, f, height_i, height_f);

plotl = length(t); % Number of outer control loop iterations

%% Load the initial state vector
ut     = 0;
vt     = 0;
wt     = 0;
pt     = 0;
qt     = 0;
rt     = 0;
xt     = 0;             % X_ref(1, 2) Initial translational position
yt     = -1;            % Y_ref(1, 2) Initial translational position
zt     = 0;             % Z_ref(1, 2) Initial translational position
phit   = 0;             % Initial angular position
thetat = 0;             % Initial angular position
psit   = psi_ref(1, 2); % Initial angular position

states = [ut, vt, wt, pt, qt, rt, xt, yt, zt, phit, thetat, psit];
states_total = states;

% Assume that first Phi_ref, Theta_ref, Psi_ref are equal to the first
% phit, thetat, psit
ref_angles_total  = [phit, thetat, psit];
velocityXYZ_total = [X_dot_ref(1, 2), Y_dot_ref(1, 2), Z_dot_ref(1, 2)];

% Initial Drone state
% omega1 = 3000; % rad/s at t = -1s
% omega2 = 3000; % rad/s at t = -1s
% omega3 = 3000; % rad/s at t = -1s
% omega4 = 3000; % rad/s at t = -1s

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]郑潇,何德峰,王巧灵,等.具有输入约束和扰动补偿的四旋翼无人机姿态稳定模型预测控制[J/OL].计算机测量与控制:1-11[2024-04-27].http://kns.cnki.net/kcms/detail/11.4762.TP.20231012.1113.034.html.

[2]潘昱达. 四旋翼无人机姿态控制算法研究[D].东北石油大学,2024.DOI:10.26995/d.cnki.gdqsc.2023.000843.

🌈4 Matlab代码实现

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LPV模型是一种非线性动态系统模型,它可以表示为一个线性时变系统的加权和。在Matlab中,可以使用System Identification Toolbox中的函数来建立LPV模型。 以下是一些建立LPV模型的步骤: 步骤1:数据采集 首先,需要收集实验数据来建立LPV模型。实验数据应该覆盖LPV模型的全部操作范围,并且应该包含各种输入和输出信号。 步骤2:数据预处理 在建立LPV模型之前,需要对数据进行预处理。这包括去除噪声,平滑数据,处理离群值等。 步骤3:选择LPV模型结构 选择LPV模型结构是LPV模型建模的关键步骤之一。需要考虑以下因素: - 选择合适的LPV模型类别(例如,线性加权和模型,线性分段模型,非线性加权和模型等)。 - 选择适当的加权函数(例如,线性函数,多项式函数,指数函数等)。 - 确定每个加权函数的区域(例如,输入变量,输出变量等)。 步骤4:估计LPV模型参数 使用系统识别工具箱中的函数来估计LPV模型的参数。这可以通过最小二乘法或最大似然估计等方法实现。 步骤5:检验LPV模型 完成LPV模型的估计后,需要对其进行检验。这可以通过使用实验数据集的未使用部分来进行模型验证,或者通过使用交叉验证技术来进行模型验证。 步骤6:使用LPV模型 完成LPV模型的检验后,可以将其用于控制和预测应用中。在Matlab中,可以使用Control System Toolbox中的函数来设计和实现LPV控制

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值