diff options
Diffstat (limited to 'uav.m')
-rw-r--r-- | uav.m | 36 |
1 files changed, 28 insertions, 8 deletions
@@ -8,16 +8,36 @@ clear; clc; close all; s = tf('s'); -fprintf('Generating system parameters...\n') -params = uav_params(); -ctrl = struct(); - % Flags to speed up running for debugging do_plots = true; do_lqr = false; % unused -do_hinf = false; % midterm +do_hinf = true; % midterm do_musyn = true; % endterm +fprintf('Controller synthesis for ducted fan VTOL micro-UAV\n') +fprintf('Will do:\n') +if do_plots + fprintf(' - Produce plots\n') +end +if do_lqr + fprintf(' - LQR synthesis\n') +end +if do_hinf + fprintf(' - H-infinity synthesis\n') +end +if do_musyn + fprintf(' - Mu synthesis\n') +end + +% Synthesized controllers will be stored here +ctrl = struct(); + +% ------------------------------------------------------------------------ +%% Define system parameters + +fprintf('Generating system parameters...\n') +params = uav_params(); + % ------------------------------------------------------------------------ %% Define performance requirements @@ -59,10 +79,10 @@ if do_hinf % Get nominal system without uncertainty (for lower LFT) P_nom = minreal(P([idx.OutputError; idx.OutputNominal], ... - [idx.InputExogenous; idx.InputNominal])); + [idx.InputExogenous; idx.InputNominal]), [], false); - nmeas = max(size(idx.OutputNominal)); % size of y - nctrl = max(size(idx.InputNominal)); % size of u + nmeas = model.uncertain.Ny; + nctrl = model.uncertain.Nu; hinfopt = hinfsynOptions('Display', 'on', 'Method', 'RIC', ... 'AutoScale', 'off', 'RelTol', 1e-3); |