Estratto del documento

Esercizio MATLAB FSDI Parte: BodeNyquist

num = conv([1 -10],[1 +3])

num = conv([-40/3], num);

denom = conv([1 10],[1 0.2 0.01]);

denom = conv(denom, [1 4 400]);

sys = tf(num, denom);

start(sys);

Start.m

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);

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.m

num = [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.m

h = 0:0.5:5

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

function [stab, instab, Astab] = calcStab(A)

autovettori = eig(A);

k = 1;

stable = false;

AsintoticallyStable = true;

Instable = false;

while (k < length(autovettori) & ~Instable)

if (real(autovettori(k)) > 0)

stable = false;

endif

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
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
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.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community