% Controllo Digitale A.A. 2003/2004
% Titolare del corso: Prof. Alberto Bemporad
% Esercitazioni:      Ing. Nicolo' Giorgetti
%
% BREVE GUIDA a CONTROL SYSTEM TOOLBOX

% Il Control System Toolbox (CST) e' un'insieme di funzioni utili per
% l'analisi ed il controllo di sistemi dinamici. Molte delle funzioni
% fornite dal toolbox sono scritte come file-M.
%
% I sistemi dinamici possono essere modellati in diverse forme come
% funzioni di trasferimento (tf), rappresentazioni in spazio di stato
% (ss), e guadagno-poli-zeri (zpk). Il CST consente di modellare i
% sistemi dinamici in una di queste forme e passare automaticamente
% dall'una all'altra. In modo altrettanto semplice si possono trattare i
% sistemi dinamici sia TC che TD.
%
% Il CST e' estendibile nel senso che possono essere sviluppate altre
% funzioni a partire da quelle predefinite.
%
%
% RAPPRESENTAZIONI DEI SISTEMI LINEARI
%
% La rappresentazione in spazio di stato viene fatta con la funzione
% "ss". Sintassi:
%                 sys_ss=ss(A,B,C,D)
%
% il modello descritto come funzione di trasferimento, es:
%
% num=[1/m];
% den=[1 f/m k/m];
% sys_tf=tf(num,den);
%
% puo' essere convertito in forma di stato utilizzando il comando ss:
%                 sys_ss=ss(sys_tf)
%
% E' possibile passare da sys_ss a sys_tf con la funzione tf.
%
% Il CST fornisce supporto completo per sistemi tempo discreto. Si
% possono creare sistemi discreti nello stesso modo dei sistemi TC, la
% sola differenza e' che deve essere specificato il tempo di
% campionamento.
% Per definire un rappresentazione di stato tempo discreta:
%                 sys_td=ss(A,B,C,D,Ts)  con Ts=tempo di campionamento
%
% CST memorizza le informazioni relative ad un sistema lineare in una
% struttura dati detta oggetto LTI. Per avere informazioni sull'oggetto
% LTI del modello utilizzare il comando "get":
%                 get(sys_td); get(sys_ss); get(sys_tf);
%
%
% CONVERSIONI CONTINUE/DISCRETE
%
% Il CST mette a disposizione i seguenti comandi per convertire un
% sistema da continuo a discreto e viceversa:
%
% sysd=c2d(sysc,Td): da continuo a discreto con tempo di campionamento
%                    Ts
% sysc=d2c(sysd):    da discreto a continuo
% sysd2=d2d(sysd,Ts2): campionamento del sistema TD con un altro Ts
%
%
% ANALISI DEI SISTEMI
%
% E' presente un'interfaccia grafica: ltiview
% Con questa interfaccia e' possibile analizzare il comportamento del
% sistema soggetto ad un gradino (step), all'impulso (impulse), vedere
% le risposte in frequenza, la posizione dei poli e degli zeri ecc...
% Si rimanda all'help per maggiori informazioni.
%
% La risposta modale di un sistema TC espresso in rappresentazione di 
% stato e' data da xl(t)=e^(A*t)x(0)
% Per calcolare e^(A*t) si deve utilizzare la funzione expm().
% Utilizzare exp() e' un ERRORE ! Infatti exp(X) calcola l'esponenziale
% di X elemento-per-elemento.
%
% Per simulare la risposta di sistemi LTI ad un determinato ingresso U a
% partire da una condizione iniziale X0, utilizzare il comando lsim:
%        lsim(sys,U,T,X0)
% 
% riferirsi all'help per maggiori informazioni.
%
%
% REALIZZAZIONI IN SPAZIO DI STATO
%
% La matrice di raggiungibilita' di un sistema TC viene calcolata con la
% funzione ctrb. 
% Ad esempio:

A=[0 -1 1;...
   0.1 -0.5 0.5;...
   -0.1 0.5 -0.5];
B=[0 0.1 0]';
C=[0 0 1];
D=[0];
sys=ss(A,B,C,D)

R=ctrb(sys)
rank(R)


pause;

% Se il sistema non e' completamente raggiungibile una decomposizione
% canonica di raggiungibilita' puo' essere ottenuta con il comando ctrbf.
% Con questo comando la parte non raggiungibile si trova nell'angolo in alto a
% sinistra. Ad esempio:

A=[1 1 1;
   1 1 1;
   0 1 1];
B=[1 1;
   1 1;
   1 1]
C=[1 0 0];

[Abar, Bbar, Cbar, T]=ctrbf(A,B,C)
pause;

% POLE PLACEMENT
%
% Il posizionamento dei poli 

%
%
% RIFERIMENTI BIBLIOGRAFICI
%
% Control System Toolbox Getting started
%
% Il comando 'help'



