Discretización de ecuaciones en espacio de estado
Considere el sistema en tiempo continuo,
x˙(t)y(t)=Ax(t)+Bu(t)=Cx(t)(1)

La solución del sistema (1) está dada por,
x(t)=L−1{(sI−A)−1}x(0)+L−1{(sI−A)−1Bu(s)}(2)
x(t)=eAtx(0)+∫0teA(t−τ)Bu(τ)dτ(3)
Se busca llevar el sistema (1) a un sistema en tiempo discreto de la siguiente forma:
x˙((k+1)T)y(kT)=Ax(kT)+Bu(kT)=Cx(kT)
Para hacer la sustitución t=kT en la solución del sistema, se utiliza la ecuación (3):
x(kT)=eAkTx(0)+eAkT∫0kTe−AτBu(τ)dτ(4)
Haciendo t=(k+1)T
x((k+1)T)=eA(k+1)Tx(0)+eA(k+1)T∫0(k+1)Te−AτBu(τ)dτ(5)
Multiplicando (4) por eAt:n×n
eATx(kT)=eA(k+1)Tx(0)+eA(k+1)T∫0kTe−AτBu(τ)dτ(6)
Restando (5)−(6):
x((k+1)T)−eATx(kT)x((k+1)T)=eA(k+1)T∫kT(k+1)Te−AτBu(τ)dτ=AeATx(kT)+eA(k+1)T∫kT(k+1)Te−AτBu(τ)dτ
Para u(kT)=cte. para kT≤t≤(k+1)T

entonces:
x((k+1)T)=AeATx(kT)+B(eA(k+1)T∫kT(k+1)Te−Aτdτ)Bu(kT)(7)
El sistema se aproxima escalonadamente:

Como se puede observar, depende de T el error que se tenga, a menor T, mejor error.
Ahora bien, asumiendo que A es invertible:
eA(k+1)T∫kT(k+1)Te−Aτdτ=eA(k+1)T∫kT(k+1)Te−AτIA−1A dτ=eA(k+1)T[−e−AτA−1]kT(k+1)T==[−I+eAT]A−1(8)
Haciendo k=0 en (8)
eAT∫0Te−Aτdτ=eAT[−e−AτA−1]0T=eAT[−e−AτA−1+e0A−1]0T=[−I+eAT]A−1
Se puede ver que si A es invertible, no depende del instante de muestreo k.
De (7),
x((k+1)T)=AeATx(kT)+∫0Te−A(T−τ)dτ(eA(k+1)T∫kT(k+1)Te−Aτdτ)Bu(kT)
Se define
{λ=T−τdλ=−dτ⇒siτ=0⇒λ=Tτ=T⇒λ=0
Así
∫0Te−A(T−τ)dτ=−∫T0e−Aλdλ=∫0Te−Aλdλ
De forma que
A(T)B(T)=eAT=(∫0Te−Aλdλ)B
x˙((k+1)T)y(kT)=Ax(kT)+Bu(kT)=Cx(kT)
Ejercicio
-
Sea el sistema SISO
,
{x˙(t)=−2x(t)+3u(t)y(t)=x(t)(1)
Discretizar el sistema (1) para:
- u(t)=1
- u(t)=sin(t)
A(T)=eAT=e−2T
B(T)=(∫0TeAλdλ)B=(∫0Te−2λdλ)3=−23e−2λ∣0T=−23e−2T+23
Por lo tanto:
{x((k+1)T)=e−2Tx(kT)+23(1−e−2T)u(kT)y(kT)=x(kT)(2)
Simulando los sistemas (1) y (2) para u(t)=1,T=0.2 y u(t)=sin(t),T=0.02 respectivamente, se obtiene el siguiente resultado:


-
Discretizar el sistema
⎩⎪⎨⎪⎧x˙(t)=[0−251−4]x(t)+[01]u(t)y(t)=[1−1]x(t)(1)
Discretizar el sistema (1) para:
- u(t)=10
- u(t)=t
- u(t)=sin(t)
Los valores de A y B se estiman con el comando de matlab [Ab,Bb] = c2d(A,B,T)
:
A = [0 1
-25 -4];
B = [0
1];
T = 0.1; % este valor cambia por cada entrada
[Ab,Bb] = c2d(A,B,T)
Simulando los sistemas (1) y (2) para u(t)=10,T=0.1 y u(t)=sin(t),u(t)=t,T=0.01 , se obtiene el siguiente resultado:


