%file per il progetto del controllo di
%un generico impianto
%funzioni di trasferimento dell'impianto

num=10
den=[1/10 1 0]

figure(1)
bode(num,den)
title(
'Impianto num/den')
grid

%inserisco l'eventuale rete integrativa

%num1=conv(num,[1/0.1 1];
%den1=conv(den,[1/0.1 0]);

 

%metto a posto il guadagno di anello kp, kv, ka
%ricordarsi di modificare num e den nel caso sia stata
%inserita la rete integrativa

kc=10;
num1=num*kc;
den1=den;

%verifica della stabilitą tramite il diagramma di Nyquist

figure(2)
nyquist(num1,den1);
title(
'Impianto con guadagno di velocitą num1/den1')
zoom on
grid

figure(3)
bode(num1,den1);
title(
'Impianto con guadagno di velocitą num1/den1')
zoom on
grid

%scelta del segno della retroazione

%num1=-num1;
%den1=den1;
%progetto della rete anticipatrice

wt=7;
omegatau=1;
tau=omegatau/wt;
ma=1.5;
numc=[tau 1];
denc=[tau/ma 1];

figure(4)
bode(numc,denc)
title(
'Compensatore numc/denc')
grid

[numca,denca]=series(numc,denc,num1,den1);

figure(5)
bode(numca,denca)
title(
'Impianto in catena aperta numca/denca')
grid

wt=7;
[mag,pha]=bode(numca,denca,wt);

%progetto la rete attenuatrice

wt=7;
tau=100/wt;
mi=mag;
numci=[tau/mi 1];
denci=[tau 1];

figure(6)
bode(numci,denci);
title(
'Rete anticipatrice numci/denci')
grid

%vado ora a verificare il nuovo diagramma di Bode

[numca1,denca1]=series(numca,denca,numci,denci);

figure(7)
bode(numca1,denca1)

%margin(numca1,denca1)

title('Impianto in catena aperta numca1/denca1')
zoom on
grid

%chiusura dell'anello e verifica delle specifiche

[numcc,dencc]=cloop(numca1,denca1);

figure(8)
bode(numcc,dencc)
title(
'Impianto in catena chiusa numcc/dencc')
grid

figure(9)
step(numcc,dencc)
title(
'Risposta al gradino del sistema in catena chiusa')
grid

%Risposta ad ingressi sinusoidali

w=1;
t=0:0.01:10;
y=sin(w*t);

figure(10)
lsim(numcc,dencc,y,t)
grid

w=100;
t=0:0.001:1;
y=sin(w*t);

figure(11)
lsim(numcc,dencc,y,t)
grid

%attivitą sul comando

[numcompensatore,dencompensatore]=series(kc*numc,denc,numci,denci);
[numcomando,dencomando]=feedback(num,den,numcompensatore,dencompensatore);

figure(12)
step(numcomando,dencomando);
title(
'attivitą sul comando con ingresso a gradino');
grid

%ingresso sinusoidale ad alta frequenza

w=1000;
t=0:0.001:1;
y=sin(w*t);

figure(13)
lsim(numcomando,dencomando,y,t)
title(
'attivitą sul comando con ingresso sinusoidale')
grid