%% Initialisation clc clear all close all %load expe1.mat simout %load expe2_multisine.mat %load expe3_multisine.mat %load expe4_multisine.mat load expe5_multisine.mat %% Variables N = 2^9; % Nombre Te = 5e-2; % Temps d'échantillonage fdeb = 0; % fréquence de début d'échantillonage ffin = 4; % fréquence de fin d'éch. BP = [fdeb, ffin]; % Bande passante REV = false; % Si on passe de fdeb à ffin ou l'inverse (booléen) SHOW = true; % Montre les résultats (graphes) du MLBS (booléen) %[u, t] = insapack.mlbs(N, Te, BP, REV, SHOW); [u, t] = insapack.multisine(N, Te, BP, false,'all',REV, SHOW); u = 4*u; % var.time = t.'; % var.signals.values=u.'; % var.signals.dimensions= 1 ; %% % Muligens litt for hoey frekvens, den maa kanskje skrus litt ned. Deretter % finner vi modell ved bruk av div. verktoey. % figure() % hold on; % plot(simout.time, simout.signals.values) % plot(var.time, var.signals.values) %%% N4SID tn = simout.time; % On enlève les dix primières valeurs un = var.signals.values; % On enlève les dix primières valeurs yn = simout.signals.values; % On enlève les dix primières valeurs data = iddata(yn,un,Te); ordre = 2; sys = n4sid(data, ordre, 'Ts',Te); y = lsim(ss(sys), un, tn); H = tf(sys); G = (H)/(1-H); numG = G.Numerator; denumG = G.Denominator; %%% Freq [f0,U0,Y0,G0,sigU2,sigY2,sigUY2,sigG2,b,rho] = insapack.non_param_freq(un,yn,Te); w0 = 2*pi*f0; %%% Identification via N4SID in frequency-domain data = iddata(Y0,U0,Te,'Frequency',w0); %Ici peut-etre changer avec f0, comme ça il marche très mieux avec Loewner Hn4sid_fd = n4sid(data,ordre); y2 = lsim(ss(Hn4sid_fd), un, tn); %% Fonction de transfert [num, den] = ss2tf(Hn4sid_fd.a, Hn4sid_fd.b, Hn4sid_fd.c, Hn4sid_fd.d) system_tf = tf(num, den) %%% Identification via Loewner wid = 2*pi*f0(f0