⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 initthis.m

📁 multi uav(多无人机matlab下的仿真)
💻 M
字号:
function out = initthis(str,num_ac)
% OUT = INITTHIS(STR,NUMAC)
%
% INITTHIS will initialize a given input parameter that is
% defined by STR.  NUMAC represents the number of aircraft
% in a particular formation

global tau_t tau_b tau_n minimum_ac_dist minimum_obs_dist desired_vel
global target_cone vel_ic state_ic
global rho S Cd0 k W


strlist = {'tau','minimum_ac_dist','minimum_obs_dist', 'desired_vel',...
           'targetcone_limit','state_ic'};

if nargin ~= 2
    error('Must have 2 input arguments');
elseif ~ischar(str)
    error('First input must be a string')
elseif ~ismember(str,strlist)
    error('This is not one of the variables that can be initialized')
    strlist
end

switch str
case 'tau' % will initialize time constant array
           % [tau_t tau_b tau_n] x number of aircraft
    out = ones(num_ac,1)*[tau_t tau_b tau_n];
case 'minimum_ac_dist'
    out = ones(num_ac,1)*[minimum_ac_dist];
case 'minimum_obs_dist'
    out = ones(num_ac,1)*[minimum_obs_dist];
case 'desired_vel'
    out = ones(num_ac,1)*[desired_vel];
case 'targetcone_limit'
    out = ones(num_ac,1)*[target_cone];
case 'state_ic'
    % state vector [V gam chi thrust mu loadfactor x y h]
    out = zeros(9,num_ac);
    % initial thrust will offset drag for each aircraft
    Cl = 2*W/(rho*vel_ic^2*S);
    Cd = Cd0+k*Cl^2;
    thrust_ic = 0.5*rho*vel_ic^2*S*Cd;
    % lead aircraft index
    lead_index = ceil(num_ac/2);
    % lead aircraft
    out(:,lead_index) = [vel_ic 0 0 thrust_ic 0 1 0 state_ic.biasy_ic state_ic.h_ic]';
    % to the left of lead
    for i=1:lead_index-1
        out(:,lead_index-i) = ...
              [vel_ic 0 0 thrust_ic 0 1 -i*state_ic.deltax_ic -i*state_ic.deltay_ic+state_ic.biasy_ic state_ic.h_ic-i*state_ic.deltah_ic]';
    end
    % to the right of lead
    for i=1:num_ac-lead_index
        out(:,lead_index+i) = ...
              [vel_ic 0 0 thrust_ic 0 1 -i*state_ic.deltax_ic i*state_ic.deltay_ic+state_ic.biasy_ic state_ic.h_ic-i*state_ic.deltah_ic]';
    end
otherwise
    disp('Not initializing anything, outputing empty matrix');
    out=[];
end

    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -