Anteprima
Vedrai una selezione di 3 pagine su 6
Esercizio MATLAB FSD Pag. 1 Esercizio MATLAB FSD Pag. 2
Anteprima di 3 pagg. su 6.
Scarica il documento per vederlo tutto.
Esercizio MATLAB FSD Pag. 6
1 su 6
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Analisi del sistema

```matlab function ex1 = start(sys) plotDiag(sys); %Disegno i diagrammi di Bode e Nyquist isu = calculate_isu(sys); %Calcolo l'isu del sistema stable = ~calcStab(isu); %Controllo se il sistema è stabile if(stable) disp("Il sistema è stabile"); end reach = calcReach(isu); if(reach) disp("Il sistema è raggiungibile"); end obs = calcObs(isu); if(obs) disp("Il sistema è osservabile"); end end function isu = calculate_isu(sys) isu = ss(sys); end function reach = calcReach(sys) matrix_size = size(sys.A); reachabilityMatrix = zeros(matrix_size); reach = true; for k = 1:matrix_size reachabilityMatrix(:,k) = ((sys.A)^(k-1))*sys.B; end if(det(reachabilityMatrix) == 0) reach = false; end end function stability = calcStab(sys) y = eig(sys.A); k = 1; found_positive_real = false; while(k < length(y) && ~found_positive_real) if(real(y(k)) > 0) found_positive_real = true; end k = k + 1; end stability = found_positive_real; end function osservability = calcObs(sys) matrix_size = size(sys.A); ```

I parte
size(sys.A);
osservability_matrix = zeros(matrix_size);
osservability = true;
for k = 1:matrix_size
    osservability_matrix(:,k) = sys.C*((sys.A)^(k-1));
end
if(det(osservability_matrix) == 0)
    osservability = false;
end
end

function plot_diagrams = plotDiag(sys)
    figure(1);
    title "Bode Diagram";
    bode(sys);
    grid;
    figure(2);
    title "Nyquist Diagram";
    nyquist(sys);
    grid;
end

II parte
sysResp.mnum = [1 -1 -11];
denom = conv([1 1],[1 2]);
fdt = tf(num,denom);
t = 0:0.1:10;
u = exp(-5*t) - cos(10*t) - 2;
lsim(fdt,u,t)

III parte
ex_3.mh = 0:0.5:5
h for k=1 : length(h)
    A = [h(k)-2 +1; 0 h(k)-1];
    [isStable,isInstable,isAstable] = calcStab(A);
    disp("Per il valore h = "+h(k));
    if(isStable)
        disp("Il sistema è stabile");
    elseif(isAstable)
        disp("Il sistema è Asintoticamente Stabile");
    else
        disp("Il sistema è instabile");
    end
end

Dettagli
Publisher
A.A. 2021-2022
6 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/04 Automatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher simpronic di informazioni apprese con la frequenza delle lezioni di Fondamenti sistemi dinamici e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Lippiello Vincenzo.