飞行器基于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期