飞行器基于matlab蒙特卡洛和控制算法四旋翼无人机路径规划含Matlab源码 1988期

Posted 海神之光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了飞行器基于matlab蒙特卡洛和控制算法四旋翼无人机路径规划含Matlab源码 1988期相关的知识,希望对你有一定的参考价值。

一、蒙特卡洛算法简介

1 蒙特卡洛算法定义
蒙特卡洛(Monte Carlo)方法,在渲染中,我们经常听到术语“蒙特卡洛”(通常缩写为MC)。但是这是什么意思?实际上,它所指的是一个非常简单的想法,蒙特卡洛方法指的是一系列统计方法,这些方法本质上用于查找事物的解决方案,例如计算函数的期望值,或者对由于没有封闭形式而无法进行分析积分的函数进行积分。我们可以用该原理来解决不同的问题,并且针对这些问题中都可以关联不同的技术或算法。所有这些算法的共同点是它们使用随机(或随机)采样。

2 蒙特卡洛模拟法的原理
蒙特卡洛法(Monte Carlo)是统计试验计算方法,高斯正太分布的期望值µ决定函数分布位置,标准差σ决定函数分布幅度,其概率密度函数公式如下:

根据中心极限定理,当统计样本足够充足时,各独立同分布随机变量之和的分布趋近于高斯正态分布,且尺寸分布符合伯努利大数定律。因此,蒙特卡洛模拟法计算中所求数学期望即可通过函数f(x)的积分获取。

二、部分源代码

function [Data,Sim,Environment,Fail] = RunSim

% close all
% clearvars -except h GlobalTime Count Run Runs SaveFile
% clc

fprintf('-----------------------------------------------------\\n')
fprintf('Simulation of an autonomous quadrotor vehicle\\n')
fprintf('Murray L Ireland\\n')
fprintf('September 2015\\n')
fprintf('-----------------------------------------------------\\n\\n')

SimTime = tic;

% AGENTS ------------------------------------------------------------------

% Environment
Environment = cEnvironment;

% Quadrotors
Pos = [-1.8795 -2.5936 -0.2000]'; % Initial position (m)
Att = [0 0 0.9305]'; % Initial attitude (rad)
NumQuads = 1;
for i = 1:NumQuads
    Agents.Quad(i) = cQuadrotor(['Quad',num2str(i)],Environment,...
        'Pose',[Pos; Att]);
end

% Targets
NumTargets = 2;
TPos = [-1.6312 -1.3453 -0.05
         1.5878 -2.1132 -0.05
        -1.1280 -1.6814 -0.05]';
TAtt = [0 0 -1.6742
        0 0 -0.8256
        0 0  0.6004]';
Shapes = 'Cube','Ball','Pyramid';
for i = 1:NumTargets
    Agents.Target(i) = cTarget(Shapesi,Environment,'Pose');%,...
%         'Pose',[TPos(:,i); TAtt(:,i)]);
end

% SIMULATION ENGINE -------------------------------------------------------

% Simulation properties
t = 0;          % Initialise time (s)
tfin = 400;      % End time (s)
dt = 0.01;      % Solver increment (s)
tsamp = dt;    % Sample increment (s)
tsamp = 0.1;

% Initialise blackbox
Data = cBlackBox;

% Initialise
Sim = cSimEngine(Data,Environment,Agents,t,tfin,dt,tsamp);

% Simulation loop
fprintf('Running simulation...\\n\\n')
Data = Sim.SimLoop;
fprintf('\\nSimulation complete\\n')
fprintf('Time taken: %.2f s\\n\\n',toc(SimTime))

Fail = 0;
if abs(Data.Time(end) - tfin) < 2
    Fail = 1;
end

% Visualisations
Data.PlotData;

end


三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]王锋.基于蒙特卡洛模拟法的动车组裙板装配优化研究[J].中国设备工程. 2020,(06)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

以上是关于飞行器基于matlab蒙特卡洛和控制算法四旋翼无人机路径规划含Matlab源码 1988期的主要内容,如果未能解决你的问题,请参考以下文章

飞行器基于matlab四旋翼无人机控制仿真含Matlab源码 2238期

飞行器基于matlab四旋翼无人机几何跟踪控制含Matlab源码 2270期

飞行器基于matlab四旋翼飞行器飞行控制系统含Matlab源码 1266期

飞行器基于matlab四旋翼飞行器PID控制仿真含Matlab源码 1277期

飞行器基于matlab GUI四旋翼飞行器PID控制仿真含Matlab源码 1279期

基于串级 PID 控制算法的四旋翼无人机控制系统设计与实现