Vous êtes sur la page 1sur 3

IDENTIFICACIÓN DE SISTEMAS MIMO

Una masa sobre la que no actúa fuerza se mueve sobre un plano, partiendo de la
posición inicial [-0.2 1.5]’ y con una velocidad inicial de valor [1 0.5]’.
Las ecuaciones ideales del modelo ya se habían encontrado en otro ejercicio y pueden
expresarse en variables de estado como:
 x   1 − 0.2 k 
 y  = 0.5 1.5  1 
    
es decir:
x(k+1)=Ax(k) + Bu(k)
y(k)=Cx(k)

0 0  1 0.2 1 0 0 0
con A =   B=  C=  y D= 
0 0 0.5 1.5  0 1 0 0

Cuando se realizan las medidas de las posiciones en el plano [x y]’ se cometen errores
por lo que la estructura del modelo es del tipo:
x(k+1)=Ax(k) + Bu(k) + F e(k)
y(k)=Cx(k) + e(k)
Los parámetros que se quieren identificar son las matrices A, B, C, y F. En nuestro caso
particular solo la matriz B ya que las demás son: A=F=D=0 y C=I , con condiciones
iniciales xo=0.
Esta estructura se define en la orden de Matlab:
E = modstruc(A,Be,C,D,F,xo)
 NaN NaN 
con Be =   que determina los parámetros que quieren ser identificados.
 NaN NaN 
La orden:
TH = ms2th(E)
devuelve una matriz TH en formato theta que pueda ser utilizada para identificar los
parámetros que buscamos.
La orden:
T = pem([salidas, entradas], TH)
devuelve una matriz T con los parámetros del modelo y la matriz de covarianza de los
parámetros estimados en formato theta.
Para hacerlas más explícitas se utiliza la orden:
[M, P]=th2par(T)
que devuelve por separado la matriz M del modelo buscado y la matriz P de covarianza
de los parámetros estimados, que da una medida de la seguridad con la que han sido
obtenidos.
Aplicando todo esto a nuestro caso particular:
La entrada que se ha introducido es u(k)=[k 1]’ que ha sido generada con un bloque
1 1
de variables de estado con: AREF =   y condiciones iniciales [0 1]’.
0 1
Se ha simulado durante 1000 periodos de muestreo para tomar 1000 datos. En estas
condiciones los resultados son los que siguen.
E=modstruc(A,Be,C,D,F)
E=
0 0 NaN NaN 1 0 0 0 0 0 0 2
0 0 NaN NaN 0 1 0 0 0 0 0 2

TH=ms2th(E)
TH =
1 1 2 2 4 2 12 0 0 0 0 0
1 2 1 13 12 5 21 2 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 NaN NaN 1 0 0 0 0 0 0 2
0 0 NaN NaN 0 1 0 0 0 0 0 2
1 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0

T = pem([y u],TH)
T=
1.1563 1.0000 2.0000 2.0000 4 2 12 0 0 0 0 0
1.1656 20.0200 1.0000 13.000 12 5 23 2 0 0 0 0
1.0000 -0.1745 0.4999 1.5952 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 0.0000 0 0 0 0 0 0 0 0
0.0000 0.0040 0.0000 0.0001 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 0.0000 0 0 0 0 0 0 0 0
0.0000 0.0001 0.0000 0.0046 0 0 0 0 0 0 0 0
0 0 NaN NaN 1 0 0 0 0 0 0 2
0 0 NaN NaN 0 1 0 0 0 0 0 2
1.0027 0.0214 0 0 0 0 0 0 0 0 0 0
0.0214 1.1537 0 0 0 0 0 0 0 0 0 0
[M,P] = th2par(T)

M=
1.0 -0.1745
0.4999 1.5952

P=
0.0000 0.0000 0.0000 0.0000
0.0000 0.0040 0.0000 0.0001
0.0000 0.0000 0.0000 0.0000
0.0000 0.0001 0.0000 0.0046