Académique Documents
Professionnel Documents
Culture Documents
[A,B,C,D] = tf2ss(num,den)
estados
[A,B,C,D] = zp2ss(z,p,k)
[num,den] = ss2tf(A,B,C,D)
transferencia
[z,p,k] = ss2zp(A,B,C,D)
step (A,B,C,D,1,t);
impulse (A,B,C,D,1,t);
[Abc,Bbc,Cbc,Dbc] = cloop (A,B,C,D,-1);
[A12,B12,C12,D12] = series (A1,B1,C1,D1,A2,B2,C2,D2);
evalues = eig (A) ; devuelve un vector con los valores propios de A.
Co = ctrb(A,B): Devuelve la matriz de controlabilidad del sistema
Ob = obsv(A,C): Devuelve la matriz de observabilidad.
[Ac,Bc,Cc,T,K] = ctrbf(A,B,C): Devuelve una descripcin en espacio de estados
en
forma cannica de control, separando los subespacios controlables y no
controlables.
[Ao,Bo,Co,T,K] = obsvf(A,B,C): Devuelve una descripcin en espacio de estados
en
forma cannica de observacin, separando los subespacios observables y no
observables.
REALIMENTACIN DE ESTADO
UBICACIN DE POLOS
u1
0.5
0
0
y1
x1
0
x2
0
x3
1
d =
y1
u1
0
rlocus(gs)
glc=feedback(gs,1);
step(glc)
Por tratarse de un sistema SISO, la comprobacin del rango la hacemos verificando que el
el sistema sea no singular o lo que es lo mismo, que el determinante de M sea diferente de
cero.
M = ctrb(gs.A,gs.B)
M =
0.5000
0
0
rank(M)
0
1.0000
0
1.0000
0
1.0000
ans =
3
det(M)
ans =
0.5000
P=
-1.0000 + 1.0000i -1.0000 - 1.0000i -7.0000
[num,den] = tfdata(gs,'v')
num =
0
den =
1.0000
0.0000
-2.0000
4.0000
dens = fliplr(den(2:length(den)-1));
id= eye(length(den)-1);
W = fliplr(id);
W =
0
0
1
0
1
0
1
0
0
for k = 1:length(dens)
W(k,1:length(dens)+1-k)=dens(k:length(dens))
end
W
W=
-2.0000 0.0000
0.0000 1.0000
1.0000
0
1.0000
0
0
T = M*W
T =
0
0.0000
1.0000
0.0000
1.0000
0
0.5000
0
0
0.0000
-0.0000
-4.0000
1.0000
0
2.0000
0
1.0000
-0.0000
inv(T)*gs.B
ans =
0
0
1
Creamos el polinomio deseado a partir de los polos definidos
[denhat,ans] = tfdata((s+1-i)*(s+1+i)*(s+7),'v')
denhat =
1
16
14
ans =
0
Para realizar el clculo de K, primero encontramos la diferencia entre los coeficientes del
polinomio caracterstico deseado y el original y los ordenamos adecuadamente
delta=denhat-den
delta =
0
9.0000
18.0000
10.0000
9.0000
delta = fliplr(delta)
delta =
10.0000
18.0000
Solo por confirmacin, calculamos la matriz A ~ del nuevo sistema y verificamos que
tiene los valores propios en los valores definidos.
Ahat=gs.A-gs.B*K
Ahat =
-9.0000 -8.0000 -7.0000
2.0000
0
0
0 1.0000
eig(Ahat)
ans =
-7.0000
-1.0000 + 1.0000i
-1.0000 - 1.0000i
Creamos un nuevo sistema, en variables de estado, con la nueva matriz A ~ .
gscomp=ss(Ahat,gs.B,gs.C,0)
a=
x1 x2 x3
x1 -9 -8 -7
x2 2 0 0
x3 0 1 0
b=
u1
x1 0.5
x2 0
x3 0
c=
x1 x2 x3
y1 0 0 1
d=
u1
y1 0
step(gscomp)
rlocus(gscomp)