Descargar

Controlabilidad y observabilidad de sistemas lineales (página 2)


Partes: 1, 2

%  X3]    0  -8  10]  x3]    1]

%

%              [x1

%  y=[7  2  -4] x2

%               x3]

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%vectores

clc

clear all

A=[0   1  -2

   0 -16  21

   0  -8  10]

B=[0

   2

   1]

C=[7 2 -4]

 

%%%%%%%%%%%%%%%%%%Teorema de controlabilidad%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

ContM=[B A*B A^2*B]

R=rank(ContM)%rango es 3, el sistema es controlable

%%%%el sistemas es completamente controlable

if R==3

   disp('como su rango es 3 el sistema es controlable')

else

   disp('sistema no controlable')

end

%%

%%metodo alternativo para la controlabilidad

ContM1=ctrb(A,B)%retorna controlabilidad de la matriz

R1=rank(ContM1) %rango es 3, comprobado

 

%%%%%%%%%%%%%%%%%%teorema de Observabilidad%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

ObsM=[C

      C*A

      C*A^2]%rank calcula el # ecuaciones independientes representadas      

            %por las filas de la matriz

O=rank(ObsM)%rango es 3, el sistema es observable

%%%%el sistema es completamente observable

if O==3

   disp('como su rango es 3 el sistema es controlable')

else

   disp('sistema no controlable')

end

%%

%%metodo alternativo para observabilidad

ObsM1=obsv(A,C) %retorna la observabilidad de la matriz

O1=rank(ObsM1)  %rango es 3, comprobado

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

PROGRAMA DE CONTROL ON/OFF

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%Ejemplo de  controlador ON OFF ante una entrada senoidal%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

x = [0:0.1:8*pi]; %desde 0 hasta 8*pi en incrementos de 0.1 radianes

y = sin(x);       %vector y con los valores del seno del vector x

plot (x, y)       %gráfico del seno

[fil, col] = size(y); %filas y columnas (# de elementos) del vector y

for i=1:col %i toma valores desde 1 hasta el número de elementos de y

  if y(i)>=0

     y(i)=0.5; %cualquier valor positivo de y se convierte en +0.5

  elseif y(i)<0

     y(i)=-0.5; %cualquier valor negativo de y se convierte en -0.5

  end

end

hold

plot(x,y),title('Controlador ON/OFF'),grid %superponemos el gráfico del seno modificado

return

 

 

 

 

 

Autor:

Carlos Aparza Alfaro

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente