____________________________________________________
Diseño de sistemas de control digital
en el espacio de estados
1. OBJETIVOS
a. Diseñar controladores digitales empleando herramientas de control moderno
b. Evaluar el desempeño del sistema de control diseñado por simulación
2. FUNDAMENTO TEÓRICO
2.1. Modelo espacio de estados en tiempo discreto
Este modelo describe la dinámica de un sistema muestreado en base a un conjunto de
ecuaciones de diferencias de primer orden. Para el caso lineal, se puede expresar como sigue:
xk+1 = Φxk + 𝛤uk
𝑦𝑘 = 𝐶xk + D𝑢𝑘
Para sistemas con n estados, r entradas y m salidas, se tiene que:
Φ: Matriz de estado (nxn)
Γ: Matriz de entrada (nxr)
C: Matriz de salida (mxn)
D: Matriz de transferencia directa (mxr)
2.2. Diseño de sistema de control de seguimiento para planta tipo 1
Se propone el siguiente diagrama de bloques para el sistema de control:
____________________________________________________
Las ganancias se pueden calcular por ubicación de polos verificando previamente que el
sistema sea controlable, tal como se realizó anteriormente con sistemas continuos.
a) Cálculo de ganancias empleando la forma canónica controlable
1. Analiza controlabilidad: rank(S) = n, con S = [Γ, ΦΓ, Φ2Γ, …, Φn-1Γ]
2. Calcula polinomio característico de la planta: Δ(z) = zn + a1zn-1 + … + an-1z + an
Registra los coeficientes del polinomio y construye la siguiente matriz:
𝑎𝑛−1 𝑎𝑛−2 … 𝑎1 1
𝑎𝑛−2 𝑎𝑛−3 … 1 0
𝑀= ⋮ ⋮ ⋮ ⋮
𝑎1 1 … 0 0
[ 1 0 … 0 0]
3. Calcula polinomio característico deseado: Δd(z) = (z-λ1)(z-λ2)…(z-λn)
En su forma expandida: Δd(z) = zn + α1zn-1 + … + αn-1z + αn
4. Calcula Gc con el sistema en su forma canónica controlable:
Gc = [αn - an, αn-1 - an-1, …, α1 - a1]
5. Calcula G con el sistema en su forma original:
G = GcT-1, con T = SM
6. Calcula G0:
G0 = (C(I − (Φ − ΓG))−1 Γ)−1
7. Calcula Gb:
Gb = G-G0C
____________________________________________________
b) Fórmula de Ackermann
1. Analiza controlabilidad: rank(S) = n, con S = [Γ, ΦΓ, Φ2Γ, …, Φn-1 Γ]
2. Calcula polinomio característico deseado: Δd(z) = (z-λ1)(z-λ2)…(z-λn)
En su forma expandida: Δd(z) = zn + α1zn-1 + … + αn-1z + αn
Calcula Δd(Φ) = Φn + α1Φn-1 + … + αn-1Φ + αnI
3. Calcula G = [0 0 … 0 1]S-1Δd(Φ)
4. Calcula G0:
G0 = (C(I − (Φ − ΓG))−1 Γ)−1
5. Calcula Gb:
Gb = G-G0C
c) Con comandos de MATLAB
Los comandos acker y place de MATLAB permiten calcular la ganancia G, con lo cual
se pueden calcular las ganancias del controlador. Revise la ayuda respectiva con el
comando help para mayor detalle de operación.
2.3. Diseño de sistema de control de seguimiento para planta tipo 0
Se propone el siguiente diagrama de bloques para el sistema de control:
En este caso es necesario agregar un integrador discreto en el controlador.
____________________________________________________
Seguir los siguientes pasos para el cálculo de ganancias:
1. Analiza controlabilidad: rank(S) = n, con S = [Γ, ΦΓ, Φ2Γ, …, Φn-1Γ]
̂ =[Φ
2. Calcula las matrices extendidas: Φ
Γ 0
] y Γ̂ = [ 𝑛𝑟 ]
0𝑟𝑛 0𝑟𝑟 𝐼𝑟
3. Calcula 𝐺̂ , tal que Φ
̂ − Γ̂𝐺̂ tenga autovalores deseados
4. Obtener Gb y Gi de:
Φ − 𝐼𝑛 Γ −1
[𝐺𝑏 𝐺𝑖 ] = [𝐺̂ + [0𝑟𝑛 𝐼𝑟 ]] [ ]
𝐶Φ 𝐶Γ
Nota:
Este procedimiento es válido para el caso r = m, esto es, una planta que tenga la misma
cantidad de entradas que de salidas.
3. PARTE PRÁCTICA
3.1. Control de posición de ángulo azimutal de antena
La figura muestra un sistema de control del azimut de una antena:
cuya dinámica queda representada por el siguiente diagrama de bloques:
____________________________________________________
Se desea implementar un controlador digital con período de muestreo T = 0.1 s, capaz de
conseguir las siguientes especificaciones:
Tiempo de establecimiento: ts ≤ 5 s
Máximo sobreimpulso: mP = 10 %
Error estacionario: es = 0
a) Construya un modelo espacio de estados en tiempo continuo sysc, considerando:
x1: Angulo a la salida del reductor
x2: Velocidad angular a la salida del reductor
x3: Voltaje de salida del amplificador de potencia
Ingresarlo a MATLAB con el comando ss.
b) Obtenga la versión discreta del modelo del proceso sysd empleando el siguiente script:
T = 0.1;
sysd = c2d(sysc, T, 'zoh')
c) Grafique la respuesta de la salida y de todas las variables de estado del sistema ante una
entrada tipo escalón y alguna condición inicial establecida. Compare resultados obtenidos
con el sistema continuo y discreto, anote sus observaciones.
Para utilizar el modelo discreto en Simulink puede emplear el bloque Discrete State-
Space de la librería Discrete.
d) Recupere las matrices del modelo discreto haciendo referencia a los campos de sysd o
con el comando ssdata.
e) Dadas las especificaciones deseadas, calcule los polos deseados sd en el plano-s.
f) Calcule los polos deseados zd en el plano-z aplicando el mapeo: z = eTs.
g) Aplique un procedimiento de la sección 2.2 para obtener las ganancias de un controlador
de seguimiento adecuado para este caso.
h) Verifique sus resultados mediante simulación, construyendo el siguiente diagrama:
____________________________________________________
3.2. Sistema calentador tipo tanque agitado
La figura muestra un sistema de control de temperatura en un tanque industrial:
cuya dinámica queda representada por el siguiente diagrama de bloques:
Se desea implementar un controlador digital con período de muestreo T = 1 s, capaz de
conseguir las siguientes especificaciones:
Tiempo de establecimiento: ts ≤ 10 s
Máximo sobreimpulso: mP = 15 %
Error estacionario: es = 0
a) Construya un modelo espacio de estados en tiempo continuo sysc, considerando:
x1: Temperatura dentro del tanque
x2: Derivada de la temperatura dentro del tanque
x3: Flujo de vapor, salida de la válvula motorizada
Ingresarlo a MATLAB con el comando ss.
b) Obtenga la versión discreta del modelo del proceso sysd empleando el siguiente script:
T = 1;
sysd = c2d(sysc, T, 'zoh')
____________________________________________________
c) Grafique la respuesta de la salida y de todas las variables de estado del sistema ante una
entrada tipo escalón y alguna condición inicial establecida. Compare resultados obtenidos
con el sistema continuo y discreto, anote sus observaciones.
d) Recupere las matrices del modelo discreto haciendo referencia a los campos de sysd o
con el comando ssdata.
e) Dadas las especificaciones deseadas, calcule los polos deseados sd en el plano-s.
Considere un polo adicional no dominante.
f) Calcule los polos deseados zd en el plano-z aplicando el mapeo: z = eTs.
g) Aplique el procedimiento de la sección 2.3 para obtener las ganancias de un controlador
de seguimiento adecuado para este caso.
h) Verifique sus resultados mediante simulación, construyendo el siguiente diagrama: