亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? autopilot.m

?? 四軸飛行器Matlab仿真分析,涉及四軸飛行器主要部件如Motor,camera,電池等
?? M
字號:
function y = autopilot(uu,Ts,C)
% autopilot
% 
% autopilot function for quadrotor restricted to cage
% 
% Modification History:
%   10/16/07 - RWB
%   11/30/07 - RWB
%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% inputs
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% input commands
NN = 0;
eps_x = uu(1+NN);              % pixel location along camera x-axis
eps_y = uu(2+NN);              % pixel location along camera y-axis
eps_s = uu(3+NN);              % sizer of target in pixels
eps_psi = uu(4+NN);            % orientation of target in image

% estimated states
NN = NN+4;
phi   = uu(1+NN);   % roll angle
theta = uu(2+NN);   % pitch angle
p     = uu(3+NN);   % roll rate
q     = uu(4+NN);   % pitch rate
r     = uu(5+NN);   % yaw rate

% time
NN = NN+5;
t     = uu(1+NN);   % time

 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% implement autopilot modes

%---------------------------------------------------------------
% regulate pitch angle to drive x-axis error to zero
  error_x = -C.h*tan(theta - (eps_y/C.cam_pix*C.cam_fov));
  theta_c  = longitudinal_position_hold(eps_y, theta, C.h, Ts, t, C);
  Tq = pitch_attitude_hold(theta, theta_c, q, Ts, t, C);


%---------------------------------------------------------------
% regulate roll angle to drive y-axis error to zero
  error_y = C.h*tan(phi - (eps_x/C.cam_pix*C.cam_fov));
  phi_c  = lateral_position_hold(eps_x, phi, C.h, Ts, t, C);
  Tp = roll_attitude_hold(phi, phi_c, p, Ts, t, C);


%---------------------------------------------------------------
% regulate altitude based on size of object in image
  % desired pixel size of object in image
  eps_s_d = 36;

  F = C.m/cos(phi)/cos(theta)*(C.g + altitude_hold(eps_s, eps_s_d, Ts, t, C));


%---------------------------------------------------------------
% regulate heading to align with orientation of object in image
  Tr    = heading_hold(eps_psi, r, Ts, t, C);

% control output
pwm = [...
    1/4/C.kmotor_lift, 0, 1/2/C.l/C.kmotor_lift, 1/4/C.kmotor_drag;...
    1/4/C.kmotor_lift, -1/2/C.l/C.kmotor_lift, 0, -1/4/C.kmotor_drag;...
    1/4/C.kmotor_lift, 0, -1/2/C.l/C.kmotor_lift, 1/4/C.kmotor_drag;...
    1/4/C.kmotor_lift, 1/2/C.l/C.kmotor_lift, 0, -1/4/C.kmotor_drag;...
    ]*[F; Tp; Tq; Tr];

% desired states (for visulation and debugging)
xd = [...
        error_x;...          % xerror: position error along body x-axis
        error_y;...          % yerror: position error along body y-axis
        eps_s-eps_s_d;...    % zrror:  position error along body z-axis (in pixels)
        0;...                % u: desired velocity along body x-axis
        0;...                % v: desired velocity along body v-axis
        0;...                % w: desired velocity along body z-axis
        phi_c;...            % phi:   desired roll angle
        theta_c;...          % theta: desired pitch angle
        -pi/2-eps_psi;...     % psi:   desired heading
        0;...                % desired roll rate  
        0;...                % desired pitch rate
        0;...                % desired yaw rate
    ];

% output
y = [pwm; xd];



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Autopilot functions
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% roll_attitude_hold
%  - regulate roll_attitude
%  - produces desired roll rate
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function torque = roll_attitude_hold(phi, phi_c, p, Ts, t, C);
  persistent uik1;
  persistent udk1;
  persistent errork1;
  persistent phik1;
  % initialize persistent variables at beginning of simulation
  if t<0.1, 
      uik1    = 0; 
      errork1 = 0;
  end
 
  % error equation
  error = phi_c - phi;

  % proportional term
  up = C.roll_kp * error;
  
  % integral term
  ui = uik1 + C.roll_ki * Ts/2 * (error + errork1);
  
  % dirty derivative term
  ud = -C.roll_kd*p;
  
  
  % implement PID control
  torque = up + ui + ud;

  % update stored variables
  uik1    = ui; 
  errork1 = error;
  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% lateral_position_hold
%  - regulate lateral position
%  - produces desired roll command
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function phi_c  = lateral_position_hold(eps_y, phi, h, Ts, t, C)
  persistent uik1;
  persistent errork1;
  persistent vhatk1;
  % initialize persistent variables at beginning of simulation
  if t<0.1, 
      uik1    = 0; 
      errork1 = 0;
      pek1    = 0;
      vhatk1 = 0;
  end
 
  % error equation
%  error = pe_c - pe;
  error = -h*tan(phi - (eps_y/C.cam_pix*C.cam_fov));

  % proportional term
  up = C.y_kp * error;
  
  % integral term
  ui = uik1 + C.y_ki * Ts/2 * (error + errork1);
  
  % dirty derivative of pe to get vhat
  vhat = (2*C.tau-Ts)/(2*C.tau+Ts)*vhatk1 + (2/(2*C.tau+Ts))*(error - errork1);
  ud = C.y_kd*vhat;

  
  % implement PID control
  phi_c = up + ui + ud;
  
  % saturate the roll command
  phi_c = sat(phi_c, 20*pi/180, -20*pi/180);

  % update stored variables
  uik1    = ui; 
  errork1 = error;
  vhatk1  = vhat;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% pitch_attitude_hold
%  - regulate pitch attitude
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function torque = pitch_attitude_hold(theta, theta_c, q, Ts, t, C);
  persistent uik1;
  persistent udk1;
  persistent errork1;
  persistent thetak1;
  % initialize persistent variables at beginning of simulation
  if t<0.1, 
      uik1    = 0; 
      errork1 = 0;
  end
 
  % error equation
  error = theta_c - theta;

  % proportional term
  up = C.pitch_kp * error;
  
  % integral term
  ui = uik1 + C.pitch_ki * Ts/2 * (error + errork1);
  
  % dirty derivative term
  ud = -C.pitch_kd*q;
  
  
  % implement PID control
  torque = up + ui + ud;

  % update stored variables
  uik1    = ui; 
  errork1 = error;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% longitudinal_position_hold
%  - regulate longitudinal position
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function theta_c  = longitudinal_position_hold(eps_x, theta, h, Ts, t, C)
  persistent uik1;
  persistent errork1;
  persistent vhatk1;
  % initialize persistent variables at beginning of simulation
  if t<0.1, 
      uik1    = 0; 
      errork1 = 0;
      vhatk1 = 0;
  end
 
  % error equation
%  error = pe_c - pe;
  error = h*tan(theta - (eps_x/C.cam_pix*C.cam_fov));

  % proportional term1
  up = C.x_kp * error;
  
  % integral term
  ui = uik1 + C.x_ki * Ts/2 * (error + errork1);
  
  % dirty derivative of pe to get vhat
  vhat = (2*C.tau-Ts)/(2*C.tau+Ts)*vhatk1 + (2/(2*C.tau+Ts))*(error - errork1);
  ud = C.x_kd*vhat;

  
  % implement PID control
  theta_c = up + ui + ud;
  
  % saturate the roll command
  theta_c = sat(theta_c, 20*pi/180, -20*pi/180);

  % update stored variables
  uik1    = ui; 
  errork1 = error;
  vhatk1  = vhat;

  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% altitude hold
%  - regulate altitude 
%  - produces force command
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function F = altitude_hold(pixel_size, desired_pixel_size, Ts, t, C)
  persistent uik1;
  persistent pixel_size_k1;
  persistent pixel_size_dot_k1;
  persistent error_k1;
  % initialize persistent variables at beginning of simulation
  if t<0.1, 
      uik1       = 0; 
      pixel_size_k1    = pixel_size;
      pixel_size_dot_k1 = 0;
      error_k1 = 0;
  end
  
  % error equation
  error = pixel_size - desired_pixel_size;

  % proportional term
  up = C.h_kp * error;
  
  % integral term
  ui = uik1 + C.h_ki * Ts/2 * (error + error_k1);
  
  % dirty derivative of error
  pixel_size_dot = (2*C.tau-Ts)/(2*C.tau+Ts)*pixel_size_dot_k1...
      + (2/(2*C.tau+Ts))*(pixel_size - pixel_size_k1);
  error_dot = (2*C.tau-Ts)/(2*C.tau+Ts)*pixel_size_dot_k1...
      + (2/(2*C.tau+Ts))*(error - error_k1);
  ud = C.h_kd * pixel_size_dot;
  ud = C.h_kd * error_dot;
  
  % implement PID control
  F = up + ui + ud;
  
  % saturate the force command
%  F = sat(F, 20*pi/180, -20*pi/180);

  % update stored variables
  uik1       = ui; 
  pixel_size_k1    = pixel_size;
  pixel_size_dot_k1 = pixel_size_dot;
  error_k1 = error;
  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% heading_hold
%  - regulate heading
%  - produces torque about the yaw axis
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function torque = heading_hold(eps_psi, r, Ts, t, C);
  persistent uik1;
  persistent errork1;
  % initialize persistent variables at beginning of simulation
  if t<0.1, 
      uik1    = 0; 
      errork1 = 0;
  end
 
  error = + pi/2 + eps_psi ;

  % proportional term
  up = C.yaw_kp * error;
  
  % integral term
  ui = uik1 + C.yaw_ki * Ts/2 * (error + errork1);
  
  % dirty derivative term
  ud = -C.yaw_kd*r;
  
  
  % implement PID control
  torque = up + ui + ud;

  % update stored variables
  uik1    = ui; 
  errork1 = error;
  
  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% sat
%   - saturation function
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function out = sat(in, up_limit, low_limit);
  if in > up_limit,
      out = up_limit;
  elseif in < low_limit;
      out = low_limit;
  else
      out = in;
  end
  

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
gogogo免费视频观看亚洲一| 五月天婷婷综合| 综合网在线视频| 亚洲国产精品嫩草影院| 日韩av高清在线观看| 国产精品亚洲成人| 色94色欧美sute亚洲线路二| 正在播放一区二区| 欧美激情一区二区在线| 亚洲一区二区三区在线看| 久久精品国产澳门| 91猫先生在线| 2020国产精品久久精品美国| 亚洲欧美在线视频观看| 日韩精品乱码av一区二区| 成人三级伦理片| 4hu四虎永久在线影院成人| 中文字幕av一区二区三区高| 午夜视频一区二区| 国产成人综合自拍| 7799精品视频| 国产精品久久久久久久岛一牛影视 | 日韩一区和二区| 国产精品欧美久久久久无广告| 午夜视频一区在线观看| 成人不卡免费av| 日韩欧美在线1卡| 亚洲免费在线播放| 久久99国产精品久久| 欧美在线视频全部完| 国产亚洲短视频| 日本sm残虐另类| 欧洲一区二区av| 国产精品污网站| 激情综合色播激情啊| 欧美三级电影在线看| 国产精品视频看| 久久99精品一区二区三区三区| 91福利在线免费观看| 国产清纯白嫩初高生在线观看91 | 亚洲国产美女搞黄色| 国产aⅴ综合色| 欧美电视剧在线观看完整版| 亚洲视频免费在线观看| 国产老女人精品毛片久久| 欧美精品久久99| 一区二区三国产精华液| 成人美女视频在线看| 精品国产免费人成在线观看| 亚洲成a天堂v人片| 色老汉av一区二区三区| 中文字幕高清不卡| 国产一区二区毛片| 欧美va天堂va视频va在线| 午夜伦欧美伦电影理论片| 91免费看视频| 中文乱码免费一区二区| 国产精品123| 26uuu精品一区二区在线观看| 日韩精品电影在线观看| 欧美日韩精品一区视频| 一区二区激情视频| 99久久精品费精品国产一区二区| 国产欧美一区二区精品久导航| 激情综合色综合久久综合| 欧美成va人片在线观看| 免费一区二区视频| 欧美一二三区精品| 久久精品国产免费| 欧美r级电影在线观看| 久久超碰97中文字幕| 日韩精品一区二区三区在线| 男女视频一区二区| 日韩女优av电影在线观看| 六月婷婷色综合| 精品黑人一区二区三区久久| 狠狠色丁香婷婷综合久久片| 精品国产精品一区二区夜夜嗨| 久久av中文字幕片| 久久免费美女视频| 国产不卡视频在线播放| 国产精品嫩草影院av蜜臀| 99久久伊人网影院| 亚洲欧美成人一区二区三区| 91国模大尺度私拍在线视频| 亚洲午夜一区二区三区| 在线观看91av| 精品一区二区三区视频| 国产欧美一区二区精品婷婷| 成人av在线资源网| 亚洲欧美经典视频| 8v天堂国产在线一区二区| 久久国产精品72免费观看| 久久看人人爽人人| 99麻豆久久久国产精品免费 | av一区二区不卡| 亚洲精品ww久久久久久p站| 欧美三级电影精品| 久久99久久久欧美国产| 国产日产精品1区| 91麻豆高清视频| 天堂久久一区二区三区| 久久网站最新地址| 91免费视频观看| 日韩精品国产精品| 久久精品人人做| 在线观看亚洲精品| 奇米精品一区二区三区四区 | 麻豆传媒一区二区三区| 久久久久久久久99精品| 99在线视频精品| 日韩精品一级中文字幕精品视频免费观看| 日韩久久精品一区| 成人激情图片网| 天天操天天干天天综合网| xfplay精品久久| 一本色道**综合亚洲精品蜜桃冫 | 中文字幕一区二区三区乱码在线| 在线视频欧美精品| 精品亚洲成av人在线观看| 中文字幕一区二区三区四区| 91精品国产高清一区二区三区| 国产精品乡下勾搭老头1| 亚洲欧美日本在线| 精品乱人伦一区二区三区| 99精品视频在线观看| 免费观看91视频大全| 中文字幕一区二区三区在线播放 | 国产91在线|亚洲| 亚洲成a人片在线观看中文| 亚洲mv在线观看| 91美女蜜桃在线| 黄色小说综合网站| 亚洲曰韩产成在线| 国产日产亚洲精品系列| 欧美人妖巨大在线| 成人av电影在线播放| 蜜桃久久精品一区二区| 亚洲精品你懂的| 久久综合色播五月| 欧美精品xxxxbbbb| 色综合色综合色综合色综合色综合| 毛片一区二区三区| 亚洲一区二区三区激情| 国产精品伦理在线| 精品成人佐山爱一区二区| 欧美私模裸体表演在线观看| 成人免费不卡视频| 激情av综合网| 青青草原综合久久大伊人精品| 亚洲免费毛片网站| 亚洲国产精品国自产拍av| 欧美岛国在线观看| 欧美电影在哪看比较好| 91久久人澡人人添人人爽欧美| 国产91丝袜在线18| 九九热在线视频观看这里只有精品| 亚洲成人免费观看| 亚洲精品视频在线观看免费| 日本一区二区三区在线不卡| 精品少妇一区二区三区免费观看| 欧美男生操女生| 欧美视频一区二区在线观看| av不卡一区二区三区| 国产精品一区二区果冻传媒| 久久国产尿小便嘘嘘| 日韩1区2区日韩1区2区| 亚洲国产欧美另类丝袜| 亚洲在线观看免费视频| 一区二区三区四区视频精品免费| 中文字幕乱码日本亚洲一区二区| 欧美mv日韩mv亚洲| 精品福利av导航| 日韩一二在线观看| 日韩视频不卡中文| 欧美一级片免费看| 欧美一级专区免费大片| 91精品国产日韩91久久久久久| 欧美日韩三级一区| 欧美日韩不卡视频| 4438成人网| 日韩午夜av电影| 精品免费99久久| 26uuu精品一区二区| 久久综合av免费| 久久久综合网站| 亚洲国产成人在线| ...xxx性欧美| 洋洋av久久久久久久一区| 一二三四社区欧美黄| 亚洲国产欧美在线人成| 调教+趴+乳夹+国产+精品| 日韩电影在线一区| 精品午夜久久福利影院| 激情综合网av| 成人小视频在线| 色婷婷综合久色| 欧美年轻男男videosbes| 日韩视频一区二区| 久久综合狠狠综合久久综合88|