Ecco uno script per verificare l’osservabilità di sistema target-chaser, ovvero il problema del docking tra due navette.
Si hanno a disposizione le misure di posizione sul velivolo inseguitore.
t_c_sys2.m
function t_c_sys2()
m=input(‘inserire il valore della massa: \n’); % chiede in input il valore della massa
%zdot= A*z+Bu
% z=[x; xdot; y; ydot; utx; uty]
% u= [ucx; ucy]
% u è il vettore controllo, t=target, c=chaserA=[0 1 0 0 0 0 ;
0 0 0 0 1/m 0;
0 0 0 1 0 0;
0 0 0 0 0 1/m;
0 0 0 0 0 0 ;
0 0 0 0 0 0 ];C = [1 0 0 0 0 0;
0 0 1 0 0 0]; % misure su x e yn=length(A); % n=numero di colonne di A. Qui indica il numero di variabili dello stato (xdot=Ax+Bu)
oss=obsv(A,C); % oservabilitàdisp(sprintf(‘\n la massa vale %d’ , m))
% calcola il ranghi e stampa il risultato.
if rank(oss)== n
disp(sprintf(‘\n il sistema è osservabile: n=%d, rank(obsv(A,C))=%d’,n,rank(oss)))
else
disp(sprintf(‘\n il sistema non è osservabile: n=%d, rank(obsv(A,C))=%d’,n,rank(oss)))
end