0% encontró este documento útil (0 votos)
20 vistas111 páginas

Ejercicios T2

El documento presenta un índice detallado de ejercicios y prácticas sobre control electrónico, modelado de sistemas, y pruebas de evaluación. Incluye temas como la introducción al control, respuesta temporal, error en estado estacionario, diseño de controladores, y control de motores de DC. Además, se abordan pruebas de evaluación de diferentes cursos y ejercicios prácticos relacionados con el control y modelado de sistemas.

Cargado por

Esther
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
20 vistas111 páginas

Ejercicios T2

El documento presenta un índice detallado de ejercicios y prácticas sobre control electrónico, modelado de sistemas, y pruebas de evaluación. Incluye temas como la introducción al control, respuesta temporal, error en estado estacionario, diseño de controladores, y control de motores de DC. Además, se abordan pruebas de evaluación de diferentes cursos y ejercicios prácticos relacionados con el control y modelado de sistemas.

Cargado por

Esther
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

EPSG-GTI

CONTROL:
ejercicios
y
prácticas

Javier Valls
Pau Salvador
Índice general

***

I Ejercicios por temas 3


1 Introducción al Control Electrónico 5

2 Modelado de sistemas 7
A Sistemas continuos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
B Sistemas discretos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
C Modelado de sistemas físicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
D Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 Respuesta temporal 19
A Sistemas continuos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
B Sistemas discretos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
C Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4 Error en estado estacionario 31


A Sistemas continuos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
B Sistemas discretos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
C Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5 Diseño de controladores 39
A Sistemas continuos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
B Sistemas discretos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
C Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

II Prácticas 49
1 Implementación de un controlador 51

1
A Decodificación del “encoder” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
B Excitación del motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
C Medida de ángulo y velocidad de giro . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
D El controlador: control directo vs. realimentado . . . . . . . . . . . . . . . . . . . . . 60

2 Modelado del motor de DC 67


A Puesta a punto del banco de pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
B Modelo lineal del motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
C Motor de DC: sistema no lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
D Modelo no lineal del motor I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
E Modelo no lineal del motor II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

3 Control P y PI 71
A Puesta a punto del banco de pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
B Controlador Proporcional (P) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
C Controlador Proporcional-Integral (PI) . . . . . . . . . . . . . . . . . . . . . . . . . . 73

4 Control PID 75
A Puesta a punto del banco de pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
B Control P y PI vs. PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
C Implementación del controlador PID . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

5 Control de velocidad y posición de un motor de DC: implementación de contro-


ladores 81
A Tareas a realizar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
B Evaluación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
C Memoria de prácticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
D Fechas de entrega . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

III Pruebas de evaluación 85


1 Pruebas curso 2019-2020 87
A Prueba 1 (test) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
B Prueba 2 (test) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
C Prueba 2 (ejercicios) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
D Prueba de recuperación (test) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
E Prueba de recuperación (ejercicios) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

2 Pruebas curso 2020-2021 99


A Prueba 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
B Prueba 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
C Prueba de recuperación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

3 Pruebas curso 2021-2022 105


A Prueba 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
B Prueba 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Parte I

Ejercicios por temas

3
1

Tema
Introducción al Control
Electrónico

***

Ejercicio 1-1
El sistema “G” representa un control de velocidad de rotación
de un motor, donde la entrada, r(t), es la velocidad deseada y la
r(t) c(t)
salida, c(t), la velocidad de rotación alcanzada por dicho motor. G
Si el sistema se excita con la señal r(t) = 2u(t) rps, su respuesta
es c(t) = 2 − 2e−t/τ rps, donde τ = 1 s.
Represente gráficamente la entrada, r(t), y la salida, c(t) del sistema y conteste a las
siguientes preguntas:

(a) ¿Qué duración tiene la respuesta transitoria?


(b) ¿Alcanza el sistema la velocidad deseada?

(c) ¿Es “G” un sistema estable?


(d) Si fuese τ = 0.5 s ¿el sistema alcanzará la velocidad deseada antes que con τ = 1?

5
TEMA 1. INTRODUCCIÓN AL CONTROL ELECTRÓNICO

2.25
2
1.75
1.5
1.25
1
0.75
0.5
.25
0
0 .5 1 1.5 2 2.5 3 3.5 4 4.5 5 t (s)

Ejercicio 1-2
A continuación se presentan las respuestas, c(t), de diferentes sistemas cuando se excitan
con una entrada escalón unitario r(t) = u(t). Indique cuales de ellas corresponden a sistemas
estables o inestables. Justifique su respuesta.

(a) c1 (t) = 1 − e−4t

(b) c2 (t) = 1 − e0.1t


(c) c3 (t) = 1 − e−4t cos(2πt)
(d) c4 (t) = 1 − et sin(4πt)

6
2

Tema
Modelado de sistemas

***

A. Sistemas continuos

Ejercicio 2A-1
Utilice las tablas de las transformadas de Laplace y sus teoremas (disponibles en el Tema 2)
para obtener la transformada de las siguientes funciones en el dominio del tiempo, definidas
para t≥0:
1. x1 (t) = 3t 7. y2 (t) = 4te−3t + 5
2. x2 (t) = 7t2 ∂x2 (t)
−3t
8. y3 (t) = 2 +2
3. x3 (t) = 5e ∂t

4. x4 (t) = 4 sin(5t) t
9. y4 (t) = 2x3 (t)dt
5. x5 (t) = 6e−4t cos(10t) 0

6. y1 (t) = 3 + 3t − 4e−5t sin(4t) 10. y5 (t) = u(t) − u(t − T )

Ir a la solución 2A-1

Ejercicio 2A-2
Realice la transformada inversa de Laplace de las siguientes funciones, utilizando las tablas
y sus teoremas (disponibles en el Tema 2).

7
TEMA 2. MODELADO DE SISTEMAS

5 6
1. X1 (s) = 5. X5 (s) =
s2 s2 +4
8 2s + 4
2. X2 (s) = 6. X6 (s) =
s3 s2 + 4s + 13
5 6s + 6
3. X3 (s) = 7. X7 (s) =
s+3 s2 + 2s + 5
5s 4 4
4. X4 (s) = 8. X8 (s) = −
s2 + 4 s s+3

Ir a la solución 2A-2

Ejercicio 2A-3
Para cada una de las siguientes ecuaciones diferenciales, que definen el comportamiento de
diferentes sistemas,
Y (s)
(a) obtenga la función de transferencia en el dominio transformado de Laplace, H(s)= X(s) ;

(b) escriba la función de la salida el el dominio transformado Y (s), cuando el sistema se


excita con la entrada escalón unitario x(t)=u(t);
(c) exprese Y (s) como una suma de fracciones simples (no calcule los residuos de las
fracciones sino que suponga que tienen cierto valor ki );

(d) y escriba la expresión de la salida y(t) con la entrada escalón unitario en función de los
valores ki asignado a los residuos.

∂y(t) ∂ 2 y(t)
1. + 2y(t) = x(t) 3. + 9y(t) = x(t)
∂t ∂t2
∂ 2 y(t) ∂y(t) ∂ 2 y(t) ∂y(t)
2. 2
+4 = x(t) 4. 2
+4 + 13y(t) = x(t)
∂t ∂t ∂t ∂t

Ir a la solución 2A-3

Ejercicio 2A-4
Dadas las funciones X(s) indicadas a continuación, expréselas como suma de fracciones
simples (utilice para ello la función de Matlab residue) y obtenga su transformada inversa
de Laplace utilizando las tablas de transformadas de las señales básicas y teoremas.
40s + 120 6s3 + 70s2 + 738s + 730
1. X1 (s)= 4 3 2 3. X3 (s)= 4
s + 15s + 74s + 120s s + 16s3 + 133s2 + 730s
32s + 96 −3s2 + 12s + 15
2. X2 (s)= 4. X4 (s)=
s4 + 14s3 + 64s2 + 96s s4 + 5s3 + 11s2 + 15s

Ir a la solución 2A-4

8
A. SISTEMAS CONTINUOS

Ejercicio 2A-5
Obtenga la función de transferencia y los valores de los polos y ceros del sistema con reali-
mentación unitaria que se muestra a continuación:
Controlador Planta
R(s) E(s) C(s)
+ Gc (s) Gp (s)

s2 + 2s + 4 10
donde Gc (s)= y Gp (s)= .
s s(s + 4)
1. Analice el sistema y escriba la función de transferencia Gf b (s)=C(s)/R(s) en función
de Gc (s) y Gp (s).
2. Utilice la función tf para escribir Gc (s) y Gp (s) y opere de forma directa con las
funciones de transferencias para calcular Gf b (s). Puede que requiera usar la función
minreal para cancelar polos y ceros iguales. Posteriormente, utilice la función zpkdata
para obtener los polos y ceros.
3. Utilice la función tf para escribir Gc (s) y conviértala a objeto ‘zpk’ mediante la función
zpk. Escriba directamente Gp (s) como función ‘zpk’. Opere de forma directa con las
funciones de transferencias para calcular Gf b (s). Puede que requiera usar la función
minreal para cancelar polos y ceros iguales. Posteriormente, utilice la función zpkdata
para obtener los polos y ceros.

Ir a la solución 2A-5

Ejercicio 2A-6
Dado el siguiente sistema realimentado:
Transductor Controlador Planta
R(s) Tr (s) E(s) C(s)
T (s) + Gc (s) Gp (s)

Sc (s) Sensor

S(s)

s2 + 2s + 4 10
donde Gc (s)= , Gp (s) = , T (s)=5 y S(s)=2.
s s(s + 4)
1. Escriba la función de transferencia Gf b (s)=C(s)/R(s) en función de Gc (s), Gp (s), T (s)
y S(s).

2. Obtenga mediante Matlab la función de transferencia y los valores de los polos y ceros
del sistema.

Ir a la solución 2A-6
9
TEMA 2. MODELADO DE SISTEMAS

B. Sistemas discretos
Ejercicio 2B-1
Utilice las tablas de las transformadas Z y sus teoremas (disponibles en el Tema 2) para
obtener la transformada de las siguientes funciones en el dominio discreto, definidas para
n≥0:
1. x1 [n] = 4 6. x6 [n] = 1 − 9−n + 2−n sin( π6 n)
2. x2 [n] = 3·n
7. x7 [n] = 4·u[n − 2]
3. x3 [n] = 2·4−n
8. x8 [n] = 5·n·2−n
4. x4 [n] = 2· cos( π5 n)
5. x5 [n] = 2·4−n · cos( π5 n) 9. y1 [n] = x1 [n − 3] + x3 [n − 3]

Ir a la solución 2B-1
Ejercicio 2B-2
Realice la transformada Z inversa de las siguientes funciones, utilizando las tablas y sus
teoremas (disponibles en el Tema 2).
5z z(z − 1/8)
1. X1 (z) = 6. X6 (z) = 2
z−1 z − z/4 + 1/16
4z 3z 3z
2. X2 (z) = 7. X7 (z) = −
(z − 1)2 z − 1 z − 1/3
4z
3. X3 (z) = 3 3
z − 1/4 8. X8 (z) = −
z − 1 z − 1/3
8z
4. X4 (z) = 4
(z − 1/4)2 9. X9 (z) =
(z − 1/5)2
z(z − 1/2)
5. X5 (z) =
z2 − z + 1 10. Y1 (z) = X1 (z)z −2 + X3 (z)z −2

Ir a la solución 2B-2
Ejercicio 2B-3
Dadas las funciones X(z) indicadas a continuación, expréselas como suma de fracciones
simples (utilice para ello la función residuez) y obtenga su transformada Z inversa utilizando
las tablas de transformadas de las señales básicas y teoremas.
384 − 232z −1 + 38z −2
1. X1 (z)=
64 − 56z −1 + 14z −2 − z −3
160 − 108z −1 + 24z −2
2. X2 (z)=
16 − 20z −1 + 8z −2 − z −3
384 + 56z −1 + 4z −2
3. X3 (z)=
192 − 88z −1 + 11z −2 − z −3

Ir a la solución 2B-3
10
B. SISTEMAS DISCRETOS

Ejercicio 2B-4
Obtenga la función de transferencia y los valores de los polos y ceros del sistema con reali-
mentación unitaria que se muestra a continuación:
Controlador Planta
R(z) C(z)
+ Gc (z) D/A Gp (s) A/D

1 + 2z −1 − z −2 10
donde Gc (z)= y Gp (s)= .
z −1 (1 − z −1 ) s(s + 4)
1. Obtenga la función de transferencia de la planta, Gp (z), mediante el uso de la función
c2d y periodo de muestreo de Tm =1s.
2. Analice el sistema y escriba la función de transferencia Gf b (z)=C(z)/R(z) en función
de Gc (z) y Gp (z).
3. Utilice la función tf para escribir Gc (z) y opere de forma directa con las funciones de
transferencias para calcular Gf b (z). Puede que requiera usar la función minreal para
cancelar polos y ceros iguales. Posteriormente, utilice la función zpkdata para obtener
los polos y ceros.
4. Utilice la función tf para escribir Gc (z) y conviértala a objeto ‘zpk’ mediante la función
zpk. Escriba directamente Gp (z) como función ‘zpk’. Opere de forma directa con las
funciones de transferencias para calcular Gf b (z). Puede que requiera usar la función
minreal para cancelar polos y ceros iguales. Posteriormente, utilice la función zpkdata
para obtener los polos y ceros.

Ir a la solución 2B-4

Ejercicio 2B-5
Escriba las ecuaciones en diferencia que corresponden a las funciones de transferencia, G(z),
indicadas a continuación.
Y (z) 3 − z −1
1. G(z)= =
X(z) 1 − z −1
Y (z) 3z − 1
2. G(z)= =
X(z) z − 1
Y (z) 2 + z
3. G(z)= =
X(z) z
Y (z) z 2 + 2z − 1
4. G(z)= =
X(z) z(z − 1)

Ir a la solución 2B-5

11
TEMA 2. MODELADO DE SISTEMAS

Ejercicio 2B-6
Escriba las funciones de transferencia, Y (z)/X(z), de las siguientes ecuaciones en diferencia.
x[n] − x[n − 1]
1. y[n]=
T
2. y[n]=T x[n] + y[n − 1]
3. y[n]=x[n] + 4x[n − 1] + 3x[n − 2] − 5y[n − 1] + 3y[n − 2]

Ir a la solución 2B-6

C. Modelado de sistemas físicos


Ejercicio 2C-1

K x
Obtenga la función de transferencia que rela-
ciona el desplazamiento, x, con la fuerza apli-
F
cada, F , en el siguiente sistema mecánico com-
puesto por una masa M , con rozamiento b y
M
un resorte con constante K.
b
Datos: M =10 Kg; b=4 N ·s/m; K=5 N/m.
Ir a la solución 2C-1
Ejercicio 2C-2
Dado el siguiente sistema mecánico compuesto
por una masa M , con rozamiento b y un resorte
con constante K.
K b
1. Calcule la posición de equilibrio l0 .
x0 =l0
2. Obtenga la función de transferencia que M x=x0 +∆x
relaciona el desplazamiento, x, con la
fuerza aplicada, F . F

Datos: M =30 Kg; b=5 N ·s/m; K=6 N/m.


Ir a la solución 2C-2
Ejercicio 2C-3

Dado el siguiente sistema mecánico de rota- τ θ,ω


ción compuesto por una masa con inercia J,
con rozamiento D y un resorte con constante
K. K J D
1. Obtenga la función de transferencia que relaciona el ángulo de giro, θ, con el par fuerza
(torque), τ .
2. Obtenga la función de transferencia que relaciona la velocidad angular de giro, ω, con
el torque.

12
D. SOLUCIONES

Datos: K=6 N ·m/rad; D=1 N ·m·s/rad; J=0.25 Kg·m2 .


Ir a la solución 2C-3

Ejercicio 2C-4
Obtenga la función de transferencia linealizada
que relaciona el par fuerza (torque), τ , aplica-
da y el ángulo de desplazamiento, θ, partiendo
del punto de equilibrio θ0 =0◦ . Se supone que
el cable tiene una masa despreciable y longitud
l, la bola tiene una masa m y que el coeficiente θ l
de fricción de la masa con el aire es D.
Datos: l=1.5 m; m=5 Kg; D=3 N ·m·s/rad. m
Ir a la solución 2C-4

Ejercicio 2C-5
Obtenga la función de transferencia linealizada que relaciona el ángulo, θ, con la fuerza
aplicada, Fh , a un brazo pivotante en los puntos de equilibrio indicados en la figura. Suponga
que el brazo tiene una masa despreciable frente a la del motor, que el momento de inercia
del sistema es J = m·r2 , siendo m y r la masa y longitud del brazo, y que el coeficiente de
fricción del motor con el aire es D.
Datos: r=0.3 m; m=200 g; D=0.05 N ·m·s/rad.

(a) θ= − 30◦ (b) θ=30◦

Fh

θ
Fh

Ir a la solución 2C-5

D. Soluciones

13
TEMA 2. MODELADO DE SISTEMAS

Solución 2A-1

1. X1 (s) = 3/s2 4 5
7. Y2 (s) = 2
+
(s + 3) s
2. X2 (s) = 14/s3
3. X3 (s) = 5/(s + 3) 28 2
8. Y3 (s) = +
s2 s
4. X4 (s) = 20/(s2 + 25)
10
6(s + 4) 9. Y4 (s) =
5. X5 (s) = s(s + 3)
(s + 4)2 + 100

6. Y1 (s) =
3 3
+ 2−
16 1 − e−sT
s s (s + 5)2 + 16 10. Y5 (s) =
s

Ir a la solución 2A-1
Solución 2A-2

1. x1 (t) = 5tu(t) 5. x5 (t) = 3sin(2t)u(t)


2. x2 (t) = 4t2 u(t) 6. x6 (t) = 2e−2t cos(3t)u(t)
3. x3 (t) = 5e−3t u(t) 7. x7 (t) = 6e−t cos(2t)u(t)

4. x4 (t) = 5cos(2t)u(t) 8. x8 (t) = 4(1 − e−3t )u(t)

Ir a la solución 2A-2
Solución 2A-3
Y (s) 1 k0 k1
1.a) H(s) = = 1.c) Y (s) = +
X(s) s+2 s s+2
1
1.b) Y (s) = 1.d) y(t) = (k0 + k1 e−2t )u(t)
s(s + 2)

2.d) y(t) = (k0 + k1 t + k2 e−4t )u(t)

3.d) y(t) = (k0 + k1 sin(3t + ϕ1 ))u(t)


4.d) y(t) = (k0 + k1 e−2t sin(3t + ϕ1 ))u(t)

Ir a la solución 2A-3
Solución 2A-4
x1 (t) = [1 + 5e−4t − 16e−5t + 10e−6t ]u(t)

x2 (t) = [1 − 5e−4t + 4te−4t + 4e−6t ]u(t)


x3 (t) = [1 + 5e−10t + 3e−3t sin(8t)]u(t)
x4 (t) = [1 + 2e−3t − 3e−t cos(2t)]u(t)

Ir a la solución 2A-4
14
D. SOLUCIONES

Solución 2A-5

C(s) Gc (s)Gp (s)


1. Gf b (s) = =
R(s) 1 + Gc (s)Gp (s)
2-3. Ceros: z1,2 = −1 ± 1.73; Polos: p1 = −12.67 y p2,3 = −0.66 ± j1.65

Ir a la solución 2A-5
Solución 2A-6

Gc (s)Gp (s)T (s)


1. Hf b (s) =
1 + Gc (s)Gp (s)S(s)

10(s2 + 2s + 4)
2. Hf b (s) =
(s + 12.67)(s2 + 1.329s + 3.157)
Ceros: z1,2 = −1 ± j1.7321
Polos: p1 = −22.37 y p2,3 = −0.81 ± j1.71

Ir a la solución 2A-6
Solución 2B-1
4z z z z
1. X1 (z) = 6. X6 (z) = + +
z−1 z−1 z−1/9 4z−3.5z+1
3z
2. X2 (z) = 4
(z−1)2 7. X7 (z) =
z(z−1)
2z
3. X3 (z) =
z−1/4
5z
2z(z−0.81) 8. X8 (z) =
4. X4 (z) = 2 2(z−1/2)2
z −1.6z+1
8z(4z−0.81) 4 2
5. X5 (z) = 9. X9 (z) = +
16z 2 −6.5z+1 z 2 (z−1) z 2 (z−1/4)

Ir a la solución 2B-1
Solución 2B-2

1. x1 [n] = 5·u[n] 6. x6 [n] = 4−n · cos( π3 n)·u[n]


2. x2 [n] = 4·n·u[n] 7. x7 [n] = (3−3·3−n )·u[n]

3. x3 [n] = 4·4−n ·u[n] 8. x8 [n] = (3−9·3−n )·u[n − 1]


4. x4 [n] = 32·n·4−n ·u[n] 9. x9 [n] = 20·(n − 1)·5−(n−1) ·u[n − 1]
5. x5 [n] = cos( π3 n)·u[n] 10. x10 [n] = (5 + 64·4−n )·u[n−2]

Ir a la solución 2B-2

15
TEMA 2. MODELADO DE SISTEMAS

Solución 2B-3

1. x1 (n) = 3·2−n −2·4−n +5·8−n


2. x2 (n) = 3·2−n +5·n·2−n + 7·4−n
π
3. x3 (n) = 4·3−n −2·8−n ·cos( n)
3

Ir a la solución 2B-3

Solución 2B-4
Ceros: z1 = −2.41, z2 = −0.3 y z3 = 0.41
Polos: p1,2 = −0.58 ± j0.44 y p3 = 0.37

Ir a la solución 2B-4

Solución 2B-5

1. y[n] = y[n − 1] + 3x[n] − x[n − 1]


2. y[n] = y[n − 1] + 3x[n] − x[n − 1]

3. y[n] = x[n] + 2x[n − 1]


4. y[n] = y[n − 1] + x[n] + 2x[n − 1] − x[n − 2]

Ir a la solución 2B-5

Solución 2B-6

Y (z) z − 1
1. G(z)= =
X(z) Tz
Y (z) Tz
2. G(z)= =
X(z) z − 1
Y (z) z 2 + 4z + 3
3. G(z)= =
X(z) z 2 + 5z − 3

Ir a la solución 2B-6

Solución 2C-1

X(s) 0.1
1. G(s) = = 2
F (s) s + 0.4s + 0.5

Ir a la solución 2C-1

16
D. SOLUCIONES

Solución 2C-2

X(s) 0.033
1. G(s) = = 2
F (s) s + 0.167s + 0.2

Ir a la solución 2C-2
Solución 2C-3

Θ(s) 4
1. G(s) = = 2
T (s) s + 4s + 24
Ω(s) 4s
2. G(s) = = 2
T (s) s + 4s + 24

Ir a la solución 2C-3
Solución 2C-4

Θ(s) 0.089
1. G(s) = = 2
T (s) s + 0.267s + 1.3

Ir a la solución 2C-4
Solución 2C-5

Θ(s) 16.67
1. G1 (s) = = 2
F (s) s + 2.778s + 16.33
Θ(s) 16.67
2. G2 (s) = = 2
F (s) s + 2.778s − 16.33

Ir a la solución 2C-5

17
TEMA 2. MODELADO DE SISTEMAS

18
3

Tema
Respuesta temporal

***
A. Sistemas continuos
Ejercicio 3A-1
Dados los sistemas de 1er orden con función de transferencia:

C(s) 10 C(s) 20
(a) Ga (s)= = (b) Gb (s)= =
R(s) s + 10 R(s) s + 10

1. Obtenga la expresión, en el dominio de Laplace, de la respuesta, C(s), a la entrada


escalón unitario, R(s) = 1s .
2. Obtenga la expresión, en el dominio temporal, de la respuesta, c(t), a la entrada escalón
unitario, r(t) = u(t) .
3. Calcule los parámetros temporales: constante de tiempo (τ ), tiempo de subida (Tr ) y
tiempo de establecimiento (Ts ).
4. Calcule la ganancia utilizando el teorema del valor final de la Transformada de Laplace.
5. Utilice los datos obtenidos anteriormente para dibujar la respuesta temporal al escalón.

Ir a la solución 3A-1
Ejercicio 3A-2
Dadas las siguientes especificaciones de sistemas de 1er orden:
(a) Ganancia unitaria y Ts = 0.25s
(b) Ganancia 5 y Tr = 0.5s

19
TEMA 3. RESPUESTA TEMPORAL

1. Escriba las funciones transferencia.


2. Calcule el Tr para el caso (a) y el Ts para el (b).
3. Utilice la función de Matlab tf para escribir la función de transferencia del sistema y
step para representar gráficamente su respuesta al escalón. Compruebe gráficamente
que se cumplen los parámetros temporales especificados y los calculados anteriormente.

Ir a la solución 3A-2

Ejercicio 3A-3
Dadas las siguientes funciones de transferencia de sistemas de 2◦ orden:

8 400
(a) Ga (s)= (c) Gc (s)=
s2 + 6s + 8 s2 + 20s + 400
100 25
(b) Gb (s)= (d) Gd (s)=
s2 + 20s + 100 s2 + 25
1. Calcule los polos.

2. Escriba la respuesta temporal genérica al escalón unitario.


3. Obtenga los valores de su frecuencia natural (ωn ) y del ratio de amortiguamiento (ζ).
4. Identifique de qué tipo de sistema de 2◦ orden se trata.

Ir a la solución 3A-3

Ejercicio 3A-4
Dadas las siguientes funciones de transferencia de sistemas de 2◦ orden sub-amortiguados:

25 64
(a) Ga (s)= (b) Gb (s)=
s2 + 7s + 25 s2 + 8s + 64
1. Calcule los valores de su frecuencia natural (ωn ) y del ratio de amortiguamiento (ζ).
2. Calcule los valores de la frecuencia de amortiguamiento exponencial (σd ) y la frecuencia
de oscilación amortiguada (ωd ).
3. Calcule los valores de los parámetros temporales de su respuesta, tiempo de pico (Tp )
y tiempo de establecimiento (Ts ) y el porcentaje de sobreamortiguamiento ( %OS).

4. Utilice la función de Matlab tf para escribir la función de transferencia del sistema y


step para representar gráficamente su respuesta al escalón. Compruebe gráficamente
los parámetros calculados anteriormente y mida el tiempo de subida (Tr ).

Ir a la solución 3A-4

20
A. SISTEMAS CONTINUOS

Ejercicio 3A-5
Dados los siguientes polos correspondientes a funciones de transferencia de sistemas de 2◦
orden sub-amortiguados:

(a) p1,2 = −2 ± j5 (b) p1,2 = −3 ± j3

1. Calcule los valores de la frecuencia natural (ωn ) y del ratio de amortiguamiento (ζ) del
sistema.

2. Obtenga los valores de la frecuencia de amortiguamiento exponencial (σd ) y la frecuen-


cia de oscilación amortiguada (ωd ).
3. Calcule los valores de los parámetros temporales de su respuesta, tiempo de pico (Tp )
y tiempo de establecimiento (Ts ) y el porcentaje de sobreamortiguamiento ( %OS).

4. Escriba la función de transferencia con ganancia unitaria que corresponde a dichos


polos.
5. Utilice la función de Matlab tf para escribir la función de transferencia del sistema y
step para representar gráficamente su respuesta al escalón. Compruebe gráficamente
los parámetros calculados anteriormente y mida el tiempo de subida (Tr ) .

Ir a la solución 3A-5
Ejercicio 3A-6
Escriba las funciones de transferencia de sistemas de 2◦ orden sub-amortiguados con las
siguientes características:
1. Ganancia g = 1, frecuencia natural ωn = 3rad/s−1 y ratio de amortiguamiento ζ = 0.6.
Compruebe el resultado escribiendo en Matlab la función de transferencia con la función
tf y después utilice la función damp.
2. Ganancia g = 2, frecuencia de amortiguamiento exponencial σd = 2s−1 y frecuencia de
oscilación amortiguada ωd = 3rad/s−1 . Compruebe el resultado calculando la frecuen-
cia natural (ωn ) y ratio de amortiguamiento (ζ) y, posteriormente, usando la función
tf y damp de Matlab, como en el caso anterior.

3. Ganancia g = 1, tiempo de pico Tp = 0.4534s y tiempo de establecimiento Ts = 1s.


Compruebe el resultado utilizando la función de Matlab tf para escribir la función de
transferencia del sistema y step para representar gráficamente su respuesta al escalón.

Ir a la solución 3A-6
Ejercicio 3A-7
Calcule los valores de los polos y obtenga la función de transferencia de un sistema de 2◦
orden sub-amortiguado cuya respuesta al escalón tenga un tiempo de establecimiento (Ts )
de 0.5 segundos y su ratio de amortiguamiento ( %OS) del 4.5 %. Posteriormente, utilice
Matlab para representar gráficamente la respuesta al escalón y compruebe que se consiguen
las especificaciones.
Ir a la solución 3A-7
21
TEMA 3. RESPUESTA TEMPORAL

Ejercicio 3A-8
Dadas las siguientes funciones de transferencia de sistemas de 2◦ orden:

28 8
(a) Ga (s)= (b) Gb (s)=
s2 + 16s + 28 s2 + 6s + 8
1. Calcule sus polos e indique si se pueden aproximar por un sistema de 1er orden con un
polo dominante.
2. Obtenga la expresión, en el dominio del tiempo, de la respuesta de cada sistema al
escalón unitario. Obtenga primero la respuesta al escalón en el dominio de Laplace y,
posteriormente, use la función de Matlab residue y las tablas de la transformada de
Laplace.

3. Utilice Matlab para representar gráficamente la respuesta al escalón del sistema y de la


contribución individual de cada polo. Esto le permitirá comprobar si la aproximación
de polo dominante es correcta o no.

Ir a la solución 3A-8
Ejercicio 3A-9
Dadas las siguientes funciones de transferencia de sistemas:

119
(a) Ga (s)=
s3 + 9s2 + 31s + 119
1000
(b) Gb (s)=
s3 + 22s2 + 540s + 1000
160
(c) Gc (s)=
s3 + 8s2 + 56s + 160
848
(d) Gd (s)=
s5 + 24s4 + 211s3 + 798s2 + 1178s + 848
1. Indique de qué orden es el sistema.
2. Utilice la función de Matlab pzmap para representar gráficamente los polos e indique
si se puede aproximar por un sistema de polo dominante. En ese caso indique el tipo
de sistema por el que puede aproximarse.
3. Obtenga la expresión genérica, en el dominio del tiempo, de la respuesta de cada sistema
al escalón unitario y de la respuesta aproximada de polo dominante (en los casos en
que se pueda realizar dicha aproximación).
4. Utilice Matlab para representar gráficamente la respuesta al escalón del sistema y de la
contribución individual de cada polo o polos complejos conjugados. Esto le permitirá
comprobar si la aproximación de polo dominante es correcta o no. Necesitará utilizar
la función de Matlab residue y las tablas de la transformada de Laplace.

Ir a la solución 3A-9
22
B. SISTEMAS DISCRETOS

Ejercicio 3A-10
Dados los sistemas físicos modelados en los ejercicios 2C-1, 2C-2, 2C-3(1), 2C-4 y 2C-5:
1. Indique qué tipo de respuesta genera cada sistema.
2. Calcule el tiempo que tarda en desaparecer la respuesta natural del sistema.
3. Si el sistema tiene una respuesta de orden 2 subamortiguada, calcule la frecuencia de
oscilación amortiguada.

Ir a la solución 3A-10
Ejercicio 3A-11
A un coche de masa m=1000 Kg se le aplica
en t = 0s una fuerza constante de u=500 N . m
u
Teniendo en cuenta que el coeficiente de roza-
miento de la carretera es de b=20 N ·s/m: x

1. Obtenga la función de transferencia que relaciona la velocidad adquirida por el coche


con la fuerza aplicada.

2. Obtenga la expresión temporal de la velocidad del coche en función de t.


3. Calcule la máxima velocidad alcanzada por el coche y el tiempo que tarda en alcanzar
dicha velocidad.
4. Compruebe el resultado utilizando la función de Matlab tf para escribir la función de
transferencia del sistema y step para representar gráficamente su respuesta al escalón.

Ir a la solución 3A-11

B. Sistemas discretos
Ejercicio 3B-1
Dados los sistemas de 1er orden discretos muestreados con un periodo de Tm =0.1s y con
función de transferencia:

0.25 2.6
(a) Ga (z)= (b) Gb (s)=
z − 0.75 z − 0.35
1. Obtenga la expresión, en el dominio discreto Z, de la respuesta, C(z), a la entrada
z
escalón unitario, R(z)= z−1 .
2. Obtenga la expresión, en el dominio temporal, de la respuesta, c(n), a la entrada escalón
unitario, r(n)=u(n) .
3. Calcule los parámetros temporales: constante de tiempo (τ ), tiempo de subida (Tr ) y
tiempo de establecimiento (Ts ).
4. Calcule la ganancia utilizando el teorema del valor final de la Transformada Z.

23
TEMA 3. RESPUESTA TEMPORAL

5. Utilice los datos obtenidos anteriormente para dibujar la respuesta temporal al escalón.

Ir a la solución 3B-1
Ejercicio 3B-2
Se quiere diseñar sistemas de 1er orden discretos muestreados con un periodo Tm =0.1s con
las siguientes características:
(a) Ganancia unitaria y Ts =1s
(b) Ganancia 5 y Tr =0.25s

1. Calcule el valor del polo de la función de transferencia discreta.


2. Escriba la función transferencia discreta.
3. Calcule el Tr para el caso (a) y el Ts para el (b).

4. Utilice la función de Matlab tf para escribir la función de transferencia del sistema y


step para representar gráficamente su respuesta al escalón. Compruebe gráficamente
que se cumplen los parámetros temporales especificados y los calculados anteriormente.

Ir a la solución 3B-2
Ejercicio 3B-3
Dadas las siguientes funciones de transferencia de sistemas discretos de 2◦ con periodo de
muestreo de Tm =0.1s:

0.6z 2 − 0.225z (c) Gc (z)=


0.98z
(a) Ga (z)=
z 2 − 0.75z + 0.125 z2 − 1.6z + 0.67
0.45z 2 − 0.09z 0.98z
(b) Gb (z)= (d) Gd (z)=
z 2 − 0.8z + 0.16 z2 − 1.96z + 1
1. Calcule los polos en el plano z.
2. Calcule los polos del plano s, equivalentes a los calculados anteriormente.
3. Escriba la respuesta temporal genérica al escalón unitario.

4. Obtenga los valores de su frecuencia natural (ωn ) y del ratio de amortiguamiento (ζ).
5. Identifique de qué tipo de sistema de 2◦ orden se trata.

Ir a la solución 3B-3
Ejercicio 3B-4
Dadas las siguientes funciones de transferencia de sistemas discretos de 2◦ orden sub-amortiguados
muestreados con un periodo Tm =0.1s:

24
C. SOLUCIONES

0.66z 0.83z
(a) Ga (z)= (b) Gb (z)=
z2 − 1.32z + 0.49 z2 − 1.66z + 0.74
1. Calcule los valores de su frecuencia natural (ωn ) y del ratio de amortiguamiento (ζ).
2. Calcule los valores de la frecuencia de amortiguamiento exponencial (σd ) y la frecuencia
de oscilación amortiguada (ωd ).
3. Calcule los valores de los parámetros temporales de su respuesta, tiempo de pico (Tp )
y tiempo de establecimiento (Ts ) y el porcentaje de sobreamortiguamiento ( %OS).
4. Utilice la función de Matlab tf para escribir la función de transferencia del sistema y
step para representar gráficamente su respuesta al escalón. Compruebe gráficamente
los parámetros calculados anteriormente y mida el tiempo de subida (Tr ).

Ir a la solución 3B-4
Ejercicio 3B-5
Escriba las funciones de transferencia de sistemas discretos de 2◦ orden sub-amortiguados
con periodo de muestreo Tm =0.1s y que cumplan las siguientes características:
1. Ganancia g = 1, frecuencia natural ωn =4rad/s−1 y ratio de amortiguamiento ζ = 0.8.
Compruebe el resultado escribiendo en Matlab la función de transferencia con la función
tf y después utilice la función damp.
2. Ganancia g = 2, frecuencia de amortiguamiento exponencial σd =3s−1 y frecuencia de
oscilación amortiguada ωd =3rad/s−1 . Compruebe el resultado calculando la frecuencia
natural (ωn ) y ratio de amortiguamiento (ζ) y, posteriormente, usando la función tf y
damp de Matlab, como en el caso anterior.
3. Ganancia g=1, tiempo de pico Tp =0.9s y tiempo de establecimiento Ts =2s. Compruebe
el resultado utilizando la función de Matlab tf para escribir la función de transferencia
del sistema y step para representar gráficamente su respuesta al escalón.

Ir a la solución 3B-5

C. Soluciones
Solución 3A-1

(a) (b)

10 20
1. C(s)= 1. C(s)=
s(s + 10) s(s + 10)
2. c(t)=1 − e−10t 2. c(t)=2 − 2e−10t
3. τ = 0.1, Tr = 0.22 y Ts = 0.4 3. τ = 0.1, Tr = 0.22 y Ts = 0.4

4. g = 1 4. g = 2

Ir a la solución 3A-1
25
TEMA 3. RESPUESTA TEMPORAL

Solución 3A-2

(a) (b)

16 22
1. C(s)= 1. C(s)=
s + 16 s + 4.4
2. Tr = 0.1375 s 2. Ts = 0.9 s

Ir a la solución 3A-2

Solución 3A-3

(a) (b)

1. p1 = −2s−1 , p2 = −4s−1 1. p1 = −10s−1 , p2 = −10s−1


2. x(t) = k0 + k1 e−4t − k2 e−2t 2. x(t) = k0 + k1 e−10t − k2 te−10t

3. ωn = 2.82, ζ = 1.06 3. ωn = 10, ζ = 1


4. Sobre-amortiguado 4. Amortiguado críticamente

(c) (d)

1. p1,2 = −10 ± j17.32s−1 1. p1,2 = ±5s−1

2. x(t) = k0 + k1 e−10t cos(17.32t + ϕ1 ) 2. x(t) = k0 + k1 cos(5t + ϕ1 )


3. ωn = 20, ζ = 0.5 3. ωn = 5, ζ = 0
4. Sub-amortiguado 4. No amortiguado

Ir a la solución 3A-3

Solución 3A-4

(a) (b)

1. ωn = 5 rad/s; ζ = 0.7 1. ωn = 8 rad/s; ζ = 0.5


2. σd = 3.5 s−1 ; ωd = 3.57 rad/s 2. σd = 4 s−1 ; ωd = 6.9 rad/s
3. Tp = 0.88s; Ts = 1.14s; %OS = 4.6 % 3. Tp = 0.45s; Ts = 1s; %OS = 16.3 %

Ir a la solución 3A-4

Solución 3A-5

(a) (b)

26
C. SOLUCIONES

1. ωn = 5.39 rad/s; ζ = 0.37 1. ωn = 4.24 rad/s; ζ = 0.7


2. σd = 2 s−1 ; ωd = 5 rad/s 2. σd = 3 s−1 ; ωd = 3 rad/s
3. Tp = 0.63 s; Ts = 2; %OS = 28.46 % 3. Tp = 1.05 s; Ts = 1.33; %OS = 4.32 %

Ir a la solución 3A-5
Solución 3A-6
9 26 64
1. G(s)= 2. G(s)= 3. G(s)=
s2 + 3.6s + 9 s2 + 4s + 13 s2 + 8s + 64

Ir a la solución 3A-6
Solución 3A-7
Polos: p1,2 = −8 ± j8.1
129.7
FT: G(s)=
s2 + 16s + 129.7

Ir a la solución 3A-7
Solución 3A-8

1. p1 = −2; p2 = −14; Sistema con polo dominante p1 .


x(t)=1 − 1.16e−2t + 0.16e−14t ≈1 − 1.16e−2t

2. p1 = −2; p2 = −4; Sistema sin polo dominante.


x(t)=1 − 2e−2t + 16e−4t

Ir a la solución 3A-8
Solución 3A-9
(a) Sist. 3er orden. x(t) = K0 + K1 e−7t + K2 e−t sin(4t + ϕ2 )

Aproximable por un sist. de 2º orden sub-amortiguado. x(t) ≈ K0 + K2 e−t sin(4t + ϕ2 )


(b) Sist. 3er orden. x(t) = K0 + K1 e−2t + K2 e−10t sin(20t + ϕ2 )
Aproximable por un sist. de 1er orden. x(t) ≈ K0 + K1 e−2t
(c) Sist. 3er orden. x(t) = K0 + K1 e−4t + K2 e−2t sin(6t + ϕ2 )

No se puede aproximar por un sist. de 1er o 2º orden.


(d) Sist. 5º orden. x(t) = K0 + K1 e−8t + K2 e−7t sin(2t + ϕ2 ) + K3 e−t sin(t + ϕ3 )
Aproximable por un sist. de 2º orden sub-amortiguado. x(t) ≈ K0 + K3 e−t sin(t + ϕ3 )

Ir a la solución 3A-9

27
TEMA 3. RESPUESTA TEMPORAL

Solución 3A-10
(2C-1) Sist. 2º-orden sub-amortiguado. Ts = 20 s. ωd = 0.68 rad/s

(2C-2) Sist. 2º-orden sub-amortiguado. Ts = 48 s. ωd = 0.44 rad/s


(2C-3) Sist. 2º-orden sub-amortiguado. Ts = 2 s. ωd = 4.47 rad/s
(2C-4) Sist. 2º-orden sub-amortiguado. Ts = 30 s. ωd = 1.13 rad/s
(2C-5.a) Sist. 2º-orden sub-amortiguado. Ts = 2.8 s. ωd = 3.79 rad/s

Ir a la solución 3A-10
Solución 3A-11

V (s) 1
1. H(s) = =
U (s) 1000s + 20
2. v(t) = (25 − 25e−0.02t )u(t)

3. vmax = 25 m/s; Ts = 200 s

Ir a la solución 3A-11
Solución 3B-1
(a) τ = 0.34s, Ts = 1.39s, T r = 0.76s, y g = 1

(b) τ = 0.095s, Ts = 0.38s, T r = 0.2s, y g = 4

Ir a la solución 3B-1
Solución 3B-2
0.32
(a) pz = 0.67s−1 , Ga (z) = y Tr = 0.55s
z − 0.67z −1
2.92
(b) pz = 0.41s−1 , Gb (z) = y Ts = 0.45s
z − 0.41z −1

Ir a la solución 3B-2
Solución 3B-3

(a) (b)

1. pz1 = 0.5, pz2 = 0.25 1. pz1 = 0.4, pz2 = 0.4


2. ps1 = −6.9s−1 , ps2 = −13.8s−1 2. ps1 = −9.1s−1 , ps2 = −9.1s−1
3. x(t) = k0 + k1 e−6.9t − k2 e−13.8t 3. x(t) = k0 + k1 e−9.1t − k2 te−9.1t

4. ωn = 9.8, ζ = 1.06 4. ωn = 9.1, ζ = 1


5. Sobre-amortiguado 5. Amortiguado críticamente

28
C. SOLUCIONES

(c) (d)

1. pz1,2 = 0.8 ± j0.17 1. pz1,2 = ±j0.2


2. ps1,2 = −2 ± j2.13s−1 2. ps1,2 = ±2s−1

3. x(t) = k0 + k1 e−2t cos(2.1t + ϕ1 ) 3. x(t) = k0 + k1 cos(2t + ϕ1 )


4. ωn = 2.92, ζ = 0.68 4. ωn = 2, ζ = 0
5. Sub-amortiguado 5. No amortiguado

Ir a la solución 3B-3
Solución 3B-4

(a) (b)

1. ωn = 4.9 rad/s, ζ = 0.72 1. ωn = 3.05 rad/s, ζ = 0.49


2. σd = 3.56 s−1 , ωd = 3.39 rad/s 2. σd = 1.50 s−1 , ωd = 2.65 rad/s
3. Tp = 0.92 s, Ts = 1.12 s, OS %= 3.69 % 3. Tp = 1.18 s, Ts = 2.65 s, OS %= 16.88 %

Ir a la solución 3B-4
Solución 3B-5
0.11z 0.26z 0.13z
1. G(z)= 2. G(z)= 3. G(z)=
z2 − 1.41z + 0.52 z2 − 1.41z + 0.54 z2 − 1.54s + 0.67

Ir a la solución 3B-5

29
TEMA 3. RESPUESTA TEMPORAL

30
4

Tema
Error en estado estacionario

***

A. Sistemas continuos

Ejercicio 4A-1
Dado el siguiente sistema realimentado, calcule, utilizando los métodos que se enumeran, el
error en estado estacionario debido a las entradas escalón (r(t)=u(t)), rampa (r(t)=tu(t)) y
parábola (r(t)= 21 t2 u(t)) para las funciones de transferencia de G(s) indicadas e identifique
de qué tipo de sistema se trata.

R(s) E(s) C(s)


+ G(s)

10 5(s + 2) 0.5(s + 0.25)


(a) G(s)= (b) G(s)= (c) G(s)=
s + 10 s(s + 10) s2 (s + 1)

1. Realice analíticamente el cálculo utilizando la expresión general del error en estado


s·R(s)
estacionario: es (∞)= lı́ms→0 1+G(s) .

2. Realice analíticamente el cálculo de las constantes de posición, Kp , velocidad, Kv , y


aceleración, Ka , y aplique las fórmulas del error en estado estacionario en función de
dichas constantes.
3. Use Matlab para obtener la expresión de la función de transferencia del sistema reali-
mentado, Gf b (s)= C(s)
R(s) , represente gráficamente la respuesta temporal y mida el error
en estado estacionario.

Ir a la solución 4A-1
31
TEMA 4. ERROR EN ESTADO ESTACIONARIO

Ejercicio 4A-2
Dado el sistema realimentado del Ejercicio 4A-1, calcule, utilizando los métodos que se enu-
meran, el error en estado estacionario debido a las entradas escalón (r(t)=10u(t)), rampa
(r(t)=10tu(t)) y parábola (r(t)=5t2 u(t)) para las funciones de transferencia de G(s) indica-
das.
1. Realice analíticamente el cálculo utilizando la expresión general del error en estado
s·R(s)
estacionario: es (∞)= lı́ms→0 1+G(s) .

2. Deduzca cómo se han de modificar las fórmulas del error en estado estacionario en
función de las constantes de posición, Kp , velocidad, Kv , y aceleración, Ka , para el
caso de entradas escalón, rampa y aceleración no normalizadas. Realice analíticamente
el cálculo de las constantes Kp , Kv y Ka , y aplique las fórmulas del error en estado
estacionario en función de dichas constantes obtenida con anterioridad.
3. Use Matlab para obtener la expresión de la función de transferencia del sistema reali-
mentado, Gf b (s)= C(s)
R(s) , represente gráficamente la respuesta temporal y mida el error
en estado estacionario.

Ir a la solución 4A-2

Ejercicio 4A-3
Dado el siguiente sistema realimentado que contiene un controlador, Gc (s), y una planta,
24(s+1)
Gp (s) = (s+4)(s+2) , indique cual será la función de transferencia del controlador para que el
sistema realimentado cumpla las especificaciones enumeradas a continuación. Posteriormente,
compruebe el resultado modelando el sistema con Matlab y midiendo el error en estado
estacionario.

Controlador Planta
R(s) E(s) C(s)
+ Gc (s) Gp (s)

1. Sistema de tipo 0 con error en estado estacionario del 10 %.


2. Sistema de tipo 1 con error en estado estacionario del 10 %.

Ir a la solución 4A-3

Ejercicio 4A-4
Dado el siguiente modelo de sistema realimentado con perturbación que contiene un contro-
lador, Gc (s), y una planta, Gp (s),

32
A. SISTEMAS CONTINUOS

Controlador D(s) Planta


R(s) E(s) C(s)
+ Gc (s) + Gp (s)

10(s + 1) 10
en el que Gc (s)= y Gp (s)= .
s s + 10
1. Escriba la expresión del error E(s)=R(s)−C(s) en función de Gc (s), Gp (s), R(s) y
D(s). Para ello, 1◦ ) obtenga la función de transferencia Gf b (s)= C(s)
R(s) en función de Gc
y Gp suponiendo que D(s)=0; 2◦ ) obtenga la función de transferencia Gf d (s)= D(s)
C(s)
en

función de Gc (s) y Gp (s) suponiendo que R(s)=0; y 3 ) escriba la expresión de C(s)
en función de Gc (s), Gp (s), R(s) y D(s) aplicando el principio de superposición.
2. Calcule el error en estado estacionario con entrada escalón unidad, r(t)=u(t).
3. Calcule el error en estado estacionario debido al escalón unidad en la perturbación,
d(t)=u(t).

4. Calcule el error en estado estacionario con entrada rampa, r(t)=tu(t).


5. Calcule el error en estado estacionario debido a una rampa en la perturbación, d(t)=tu(t).

Ejercicio 4A-5
Dado el siguiente modelo de sistema realimentado:

Transductor Controlador Planta


R(s) Tr (s) E(s) C(s)
T (s) + Gc (s) Gp (s)

Cs (s) Sensor

H(s)

s+1 1 40
donde Gc (s) = , Gp (s) = , T (s) = 4 y H(s) = .
s s+4 s + 10
1. Obtenga el modelo equivalente con realimentación unitaria.
2. Indique de qué tipo es el sistema y calcule su error en estado estacionario.

Ir a la solución 4A-5
33
TEMA 4. ERROR EN ESTADO ESTACIONARIO

B. Sistemas discretos
Ejercicio 4B-1
Dado el siguiente sistema discreto realimentado cuyo periodo de muestreo es Tm =0.1s, cal-
cule, utilizando los métodos que se enumeran, el error en estado estacionario debido a las
entradas escalón (r(t)=u(t)), rampa (r(t)=tu(t)) y parábola (r(t)= 12 t2 u(t)) para las funcio-
nes de transferencia de G(z) indicadas e identifique de qué tipo de sistema se trata.

R(z) E(z) C(z)


+ G(z)

2z 0.5(z−0.8) (z−0.7)2
(a) G(z)= (b) G(z)= (c) G(z)=
(z−0.5)(z−0.75) (z−0.25)(z−1) (z−1)2 (z−0.5)

1. Realice analíticamente el cálculo utilizando la expresión general del error en estado


−1
estacionario: es (∞)= lı́mz→1 (1−z )·R(z)
1+G(z) .

2. Realice analíticamente el cálculo de las constantes de posición, Kp , velocidad, Kv , y


aceleración, Ka , y aplique las fórmulas del error en estado estacionario en función de
dichas constantes.

3. Use Matlab para obtener la expresión de la función de transferencia del sistema reali-
mentado, T (s)= C(s)
R(s) , represente gráficamente la respuesta temporal y mida el error en
estado estacionario.

Ir a la solución 4B-1
Ejercicio 4B-2
Dado el sistema discreto realimentado del Ejercicio 4B-1 cuyo periodo de muestreo es Tm =0.1s,
calcule, utilizando los métodos que se enumeran, el error en estado estacionario debido a las
entradas escalón (r(t)=10u(t)), rampa (r(t)=10tu(t)) y parábola (r(t)=5t2 u(t)) para las
funciones de transferencia de G(z) indicadas.
1. Realice analíticamente el cálculo utilizando la expresión general del error en estado
−1
estacionario: es (∞)= lı́mz→1 (1−z )·R(z)
1+G(z) .

2. Deduzca cómo se han de modificar las fórmulas del error en estado estacionario en
función de las constantes de posición, Kp , velocidad, Kv , y aceleración, Ka , para el
caso de entradas escalón, rampa y aceleración no normalizadas. Realice analíticamente
el cálculo de las constantes Kp , Kv y Ka , y aplique las fórmulas del error en estado
estacionario en función de dichas constantes obtenida con anterioridad.

3. Use Matlab para obtener la expresión de la función de transferencia del sistema reali-
mentado, Gf b (z)= C(z)
R(z) , represente gráficamente la respuesta temporal y mida el error
en estado estacionario.

Ir a la solución 4B-2
34
B. SISTEMAS DISCRETOS

Ejercicio 4B-3
Dado el siguiente sistema discreto realimentado unitariamente como el del Ejercicio 4B-1,
cuyo periodo de muestreo es Tm =0.1s y con las siguientes funciones de transferencia G(z)
en la línea directa.

(a) G(z)=
0.1z 5(z−0.8) z 2 −1.2z+0.36
(b) G(z)= (c) G(z)=
z 2 −1.5z+0.5 z 2 −1.25z+0.25 z 3 −2.5z 2 +2z−0.5
1. Obtenga los polos de G(z) y del sistema realimentado, Gf b (z)= C(z) R(z) , indique si el
sistema es estable o inestable y si es estable deduzca el tipo de sistema.
2. Calcule la constante correspondiente al tipo de sistema y obtenga el error en estacio-
nario relacionado con dicha constante.
3. Use Matlab para representar gráficamente la respuesta temporal y medir el error en
estado estacionario.

Ir a la solución 4B-3

Ejercicio 4B-4
Dado el siguiente sistema discreto realimentado muestrado a Tm =0.1s, que contiene un con-
0.4z
trolador, Gc (z), y una planta, Gp (z) = z−0.8 , indique cual será la función de transferencia
del controlador para que el sistema realimentado cumpla las especificaciones enumeradas a
continuación. Posteriormente, compruebe el resultado modelando el sistema con Matlab y
midiendo el error en estado estacionario.

Controlador Planta
R(z) E(z) C(z)
+ Gc (z) Gp (z)

1. Sistema de tipo 0 con error en estado estacionario del 10 %.


2. Sistema de tipo 1 con error en estado estacionario del 10 %.

Ir a la solución 4B-4

Ejercicio 4B-5

El siguiente sistema realimentado contiene un controlador discreto, Gc (z)= K(z−0.9)


z−1 , y una
10
planta, cuya función de transferencia en el dominio continuo es Gp (s)= s(s+4) . El periodo de
muestreo del sistema es de Tm =0.1s.

Controlador Planta
R(z) C(z)
+ Gc (z) D/A Gp (s) A/D

35
TEMA 4. ERROR EN ESTADO ESTACIONARIO

1. Calcule el valor de la constante K del controlador para que el sistema sea de tipo 2
con un error en estado estacionario del 10 %.
2. Modele el sistema con Matlab y compruebe el resultado mediante simulación.

Ir a la solución 4B-5

C. Soluciones

Solución 4A-1

(a) Sistema tipo 0 (b) Sistema tipo 1 (c) Sistema tipo 2

Kp =1; es (∞)=0.5 Kp =∞; es (∞)=0 Kp =∞; es (∞)=0


Kv =0; es (∞)=∞ Kv =1; es (∞)=1 Kv =∞; es (∞)=0

Ka =0; es (∞)=∞ Ka =0; es (∞)=∞ Ka =0.125; es (∞)=8

Ir a la solución 4A-1
Solución 4A-2

(a) Sistema tipo 0 (b) Sistema tipo 1 (c) Sistema tipo 2

Kp =1; es (∞)=5 Kp =∞; es (∞)=0 Kp =∞; es (∞)=0


Kv =0; es (∞)=∞ Kv =1; es (∞)=10 Kv =∞; es (∞)=0
Ka =0; es (∞)=∞ Ka =0; es (∞)=∞ Ka =0.125; es (∞)=80

Ir a la solución 4A-2
Solución 4A-3

1. Gc (s) = 3 10
2. Gc (s) =
3s

Ir a la solución 4A-3
Solución 4A-5
C(s) 4s2 +44s+40 2. Sistema tipo 1. erampa (∞)=0.9
1. =
R(s) s3 +10s2 +36s

Ir a la solución 4A-5
Solución 4B-1

(a) Sistema tipo 0 (b) Sistema tipo 1 (c) Sistema tipo 2

36
C. SOLUCIONES

Kp =16; es (∞)=0.059 Kp =∞; es (∞)=0 Kp =∞; es (∞)=0


Kv =0; es (∞)=∞ Kv =1.13; es (∞)=0.75 Kv =∞; es (∞)=0
Ka =0; es (∞)=∞ Ka =0; es (∞)=∞ Ka =18; es (∞)=0.056

Ir a la solución 4B-1
Solución 4B-2

(a) Sistema tipo 0 (b) Sistema tipo 1 (c) Sistema tipo 2

Kp =16; es (∞)=0.59 Kp =∞; es (∞)=0 Kp =∞; es (∞)=0


Kv =0; es (∞)=∞ Kv =1.13; es (∞)=7.5 Kv =∞; es (∞)=0

Ka =0; es (∞)=∞ Ka =0; es (∞)=∞ Ka =18; es (∞)=0.56

Ir a la solución 4B-2
Solución 4B-3

(a) Sist. tipo 1 estable (b) Sist. inestable (c) Sist. tipo 2 estable

Polos G: p′1 =1, p′2 =0.5 p′1 =1, p′2 =0.25 p′1 =1, p′2 =1, p′3 =0.5

Polos Gf b : p1,2 =0.75 ± j0.1 p1 = − 4.57, p2 =0.82 p1,2 =0.57±j0.25,


p3 =0.35

Kv =2; es (∞)=0.5 — Ka =31.99; es (∞)=0.031

Ir a la solución 4B-3
Solución 4B-4

1. Gz=4.5
0.5z
2. Gz=
z−1

Ir a la solución 4B-4
Solución 4B-5

1. K=4

Ir a la solución 4B-5

37
TEMA 4. ERROR EN ESTADO ESTACIONARIO

38
5

Tema
Diseño de controladores

***

A. Sistemas continuos

Ejercicio 5A-1
Dadas las siguientes funciones en el dominio de Laplace:

(s+1)(s+3) 5(s+1)(s+3) 5s2 +5s


(a) G(s)= (b) G(s)= (c) G(s)=
s(s+2)(s+4) s2 (s+4) s3 +4s2 +6s+4

1. Obtenga el módulo y fase en el punto s=−2+j3 utilizando el método de representación


vectorial explicado en el Tema 5, en el que se evalúa la contribución de cada cero y
cada polo en el módulo y la fase de la función.
2. Compruebe el resultado obtenido utilizando las funciones de Matlab abs y angle para
obtener directamente el módulo y el ángulo de la función en el punto indicado.

Ir a la solución 5A-1

Ejercicio 5A-2
Dadas las funciones de transferencia indicadas en el Ejercicio 5A-1.
1. Esboce el lugar de las raíces aplicando las reglas de dibujo explicadas en el Tema 5.
2. Utilice la función de Matlab rlocus para comprobar si ha aplicado correctamente las
reglas.

39
TEMA 5. DISEÑO DE CONTROLADORES

Ejercicio 5A-3
Dado el siguiente sistema realimentado que incluye un controlador proporcional y una planta,
cuya función de transferencia se indica a continuación.

Control P Planta
R(s) E(s) C(s)
+ K G(s)

2 10 1000
(a) G(s)= (b) G(s)= (c) G(s)=
s+2 (s+1)(s+10) (s+10)(s+20)(s+22)

1. Utilice la función de Matlab rlocus para dibujar el lugar de las raíces del sistema.
2. Analice el resultado e indique las expresiones generales de las respuestas temporales
que se obtendrían en función del valor de la ganancia, K, aplicada.

3. Represente con Matlab el diagrama de polos y ceros y la respuesta al escalón de dichos


sistemas para un valor de K en cada zona del lugar de las raíces que genera una
respuesta diferente. Compruebe que los polos pertenecen al lugar de las raíces.

Ejercicio 5A-4
Se desea diseñar el control de la velocidad de un motor de continua utilizando un controlador
proporcional. A continuación se muestra el esquema del sistema y la función de transferencia
del motor, Gω (s) = VΩ(s)
(s) , que relaciona la velocidad angular obtenida con el voltaje aplicado
al motor.

Control P Motor DC
Vr (s) E(s) 1 Ω(s)
+ K Gω (s)=
− (s + 2)(s + 10)

Para cada una de las siguientes especificaciones sobre la respuesta del sistema:

(a) Sobreimpulso del 3 %. (d) Tiempo de establecimiento de 0.5s.


(b) Tiempo de pico de 0.3s.
(e) Sobreimpulso del 3 % y error en estado
(c) Error en estado estacionario del 5 %. estacionario del 5 %.

1. Obtenga el valor de la constante de proporcionalidad, K, para que el controlador cum-


pla la especificación.
2. Estime el valor del tiempo de establecimiento, tiempo de pico, del porcentaje de sobre-
impulso y el error en estado estacionario.
3. Represente la respuesta al escalón, mida los parámetros anteriores y el tiempo de subida
y analice si son similares a los valores estimados.

Ir a la solución 5A-4
40
A. SISTEMAS CONTINUOS

Ejercicio 5A-5
Matlab Se desea diseñar el control de la posición de un motor de continua utilizando un
controlador proporcional. A continuación se muestra el esquema del sistema en el que la
función de transferencia del motor, Gθ (s) = VΘ(s)
(s) , relaciona la posición angular obtenida con
el voltaje aplicado al motor.

Control P Motor DC
Vr (s) E(s) Θ(s)
+ K Gθ (s)

Deduzca, a partir de la función de transferencia Gω (s) = VΩ(s)


(s) del Ejercicio 5A-5, la función
de transferencia Gθ (s). Posteriormente, para cada una de las siguientes especificaciones sobre
la respuesta del sistema:

(a) Sobreimpulso del 3 %. (c) Error en estado estacionario del 20 %.


(b) Tiempo de pico de 2s. (d) Error en estado estacionario del 5 %.

1. Obtenga el valor de la constante de proporcionalidad, K, para que el controlador cum-


pla la especificación. Para las especificaciones de los casos (a) y (b) no lo resuelva
analíticamente, sino que utilice Matlab y ayúdese de la representación gráfica del lugar
de las raíces.
2. Indique si el sistema se puede aproximar por un sistema de 2◦ sub-amortiguado. En
tal caso, estime el valor del tiempo de establecimiento, tiempo de pico, del porcentaje
de sobreimpulso y el error en estado estacionario.
3. Represente la respuesta al escalón, mida los parámetros anteriores y el tiempo de subida
y analice si son similares a los valores estimados.

Ir a la solución 5A-5

Ejercicio 5A-6
Matlab En este ejercicio se va a explorar la aplicación del control proporcional-integral (PI)
al control de velocidad del motor de continua del ejercicio 5A-4, cuya función de transferencia,
Gω (s)= VΩ(s)
(s) , se muestra en el siguiente esquema. El punto de partida para realizar este
estudio será el de un control proporcional con constante de proporcionalidad Kp =180.

Control PI Motor DC
Vr (s) E(s) Kp (s + zc ) 1 Ω(s)
+
− s (s + 2)(s + 10)

1. Modele el sistema con control proporcional, obtenga sus polos, represente la respuesta
al escalón, mida los parámetros que caracterizan la respuesta y rellene la tabla.

41
TEMA 5. DISEÑO DE CONTROLADORES

2. Modele el sistema con control proporcional-integral y para los valores de los ceros
s=−zc ={−0.5 −1 −1.5 −2}, obtenga sus polos y ceros, represente la respuesta al
escalón, mida los parámetros que caracterizan la respuesta y añádalos a la tabla.

3. Analice los resultados obtenidos e indique cuál cree que es el valor óptimo para la
ubicación del cero del control PI.

Control P PI
zc - 0.5 1 1.5 2

Ceros

Polos
es

Ts
Tp

OS %
Tr

Ejercicio 5A-7
Matlab Diseñe el control de la posición angular de un motor de continua, cuya función
de transferencia se muestra en el esquema, utilizando un controlador proporcional-derivativo
(PD), para que el tiempo de establecimiento sea como máximo de 1.5s y el porcentaje de
sobre-impulso no supere el 10 %.

Control PD Motor DC
Vr (s) E(s) 1 Θ(s)
+ Kp (s + zc )
− s(s + 2)(s + 10)

Ejercicio 5A-8
Matlab Diseñe el control de la posición angular de un motor de continua, cuya función de
transferencia se muestra en el esquema, utilizando un controlador PID, para que el tiempo
de establecimiento sea como máximo de 1.5s, el porcentaje de sobre-impulso no supere el
10 % y el error en estado estacionario a la entrada rampa sea nulo.

42
A. SISTEMAS CONTINUOS

Control PID Motor DC


Vr (s) E(s) Ki 1 Θ(s)
+ Kp + +Kd s
− s s(s + 2)(s + 10)

1. Utilice la estrategia de aplicar primero un control PD y, posteriormente, el control PI


y mida los parámetros de la respuesta obtenida.
2. Itere basándose en la estrategia anterior hasta alcanzar las prestaciones. Necesitará
sobredimensionar las especificaciones de partida.
3. Calcule el valor de las constantes Kp , Ki y Kd a partir de los valores de los ceros
del controlador obtenido y utilice la función de Matlab pid para modelar el sistema.
Compruebe que se obtiene el mismo resultado.

Ejercicio 5A-9
Matlab Dado el siguiente sistema realimentado:

Controlador PID Planta


R(s) E(s) Ki 1 C(s)
+ Kp + +Kd s
− s (s + 10)(s2 + s + 4.25)

1. Evalúe las prestaciones que se pueden obtener con un control proporcional.

2. Diseñe el controlador PID para que sus ceros cancelen los polos dominantes de la planta.
3. Obtenga los valores de Kp , Ki y Kd del controlador PID para que la respuesta al
escalón tenga un porcentaje de sobreimpulso máximo del 2 %. Mida los parámetros
temporales alcanzados de la respuesta al escalón.

Ejercicio 5A-10
Matlab Dado el siguiente sistema realimentado, obtenga por prueba y error, mediante
simulación, los parámetros Kp , Ti y Td del controlador PID para que el tiempo de pico
sea T p = 0.2s y el porcentaje de sobreimpulso del 20 %. Se recomienda empezar con cada
acción de control por separado y evaluar el efecto que cada acción de control provoca sobre
la respuesta del sistema.

Controlador PID Planta


R(s) E(s) 1 (s + 8) C(s)
+ Kp (1+ +Td s)
− Ti s (s + 3)(s + 6)(s + 10)

43
TEMA 5. DISEÑO DE CONTROLADORES

B. Sistemas discretos
Ejercicio 5B-1
Dado el siguiente sistema discreto realimentado que incluye un controlador proporcional y
una planta, cuya función de transferencia se indica a continuación y su periodo de muestreo
es Tm =0.1s.

Control P Planta
R(z) E(z) C(z)
+ K G(z)

1 1 z+0.75
(a) G(z)= (b) G(z)= (c) G(z)=
z−0.75 z 2 −z+0.09 z 2 −1.25z+0.375
1. Utilice la función de Matlab rlocus para dibujar el lugar de las raíces del sistema.
2. Analice el resultado e indique las expresiones generales de las respuestas temporales
que se obtendrían en función del valor de la ganancia, K, aplicada.

3. Represente con Matlab el diagrama de polos y ceros y la respuesta al escalón de dichos


sistemas para un valor de K en cada zona del lugar de las raíces que genera una
respuesta diferente. Compruebe que los polos pertenecen al lugar de las raíces.

Ejercicio 5B-2
Matlab Dado el siguiente sistema de control realimentado en tiempo discreto, cuyo periodo
de muestreo es Tm =0.1s, obtenga el valor de la constante de proporcionalidad, K, para que
el controlador cumpla cada una de las siguientes especificaciones. Posteriormente, compruebe
mediante simulación que se han cumplido.

Control P Planta
R(z) E(z) 1 C(z)
+ K
− (z−0.25)(z−0.75)

1. Sobreimpulso del 1 %. 3. Error en estado estacionario del 25 %.


2. Tiempo de pico de 0.5s. 4. Tiempo de establecimiento de 1s.

Ejercicio 5B-3
( )
La función de transferencia de un controlador PI discreto es GP I (z)= Kp 1 + TiT(z−1)
mz
,
donde Kp y Ti son las constantes de proporcionalidad y del tiempo de integración, respec-
tivamente, y Tm el periodo( de muestreo.
) Dicha función de transferencia también se puede
z−a
expresar como GP I (z)= K z−1 , donde K es una contante y a es el cero de la función.

44
B. SISTEMAS DISCRETOS

1. Obtenga la expresión de K y a en función de Kp , Ti y Tm .

2. Dibuje el diagrama de polos/ceros de GP I (z) (de la cuestión anterior). Marque con un


línea las posibles posiciones del cero a e indique con flechas en qué sentido se mueve el
cero al aumentar el parámetro Ti desde 0 a ∞.

Ejercicio 5B-4
Matlab En este ejercicio se pretende evaluar el efecto en la respuesta al escalón de un sistema
discreto realimentado que incluye un controlador proporcional-integral (PI), modificando la
posición del cero del controlador, zc , y evaluando su respuesta al escalón. Suponga que el
periodo de muestreo es Tm =0.1s.

Control PI Planta
R(z) E(z) z−zc 1 C(z)
+ K
− z−1 (z−0.25)(z−0.75)

1. Obtenga el valor de la K para que la respuesta al escalón de un sistema con control


únicamente proporcional tenga un ratio de amortiguamiento de ζ=0.7. Represente el
lugar de las raíces, los polos y la respuesta al escalón.
2. Obtenga el valor de la K para que la respuesta al escalón del sistema con control PI y los
valores de los ceros zc ={0.95 0.85 0.75 0.65} tenga un ratio de amortiguamiento
de ζ=0.7. Represente el lugar de las raíces, los polos y la respuesta al escalón.
3. Repita los apartados anteriores para conseguir que la respuesta tenga un ratio de amor-
tiguamiento de ζ=0.3.
4. Analice los resultados obtenidos e indique cuál cree que es el valor óptimo para la
ubicación del cero del control PI en cada caso.

Ir a la solución 5B-4
Ejercicio 5B-5
Dado el siguiente sistema discreto realimentado que incluye un controlador proporcional-
z2
derivativo, GP D = K z−a
z , y la planta con función de transferencia Gp (z) = (z−0.5)(z−0.7) .
Calcule el valor del cero, a, y la constante, K, del controlador PD para que el sistema
realimentado tenga dos polos complejos conjugados en zCL = 0.39 ± j0.17. El periodo de
muestreo del sistema es Tm =0.1s.

Control PD Planta
R(z) E(z) z−a C(z)
+ K Gp (z)
− z

Ir a la solución 5B-5

45
TEMA 5. DISEÑO DE CONTROLADORES

Ejercicio 5B-6
Matlab Dado el siguiente sistema discreto realimentado que incluye un controlador proporcional-
derivativo (PD) y cuyo periodo de muestreo es Tm =0.1s.

Control PD Planta
R(z) E(z) z−zc 1 C(z)
+ K
− z (z−0.25)(z−0.75)

1. Suponga que el controlador es únicamente proporcional y obtenga el valor de K para


que su respuesta tenga un ratio de amortiguamiento de ζ=0.7. Represente el lugar de
las raíces, los polos y la respuesta al escalón.
2. Calcule el valor del cero, zc , y la constante, K, del controlador PD para que el sistema
tenga dos polos complejos conjugados en el punto con ratio de amortiguamiento ζ=0.7
y frecuencia natural ωn =0.4π rad. Compruebe el resultado representando el lugar de
las raíces, los polos y la respuesta al escalón.

Ir a la solución 5B-6

Ejercicio 5B-7
Matlab Diseñe el controlador en el dominio discreto, Gc (z), para realizar el control de
posición de un motor DC. La función de transferencia que relaciona el voltaje aplicado y la
posición angular se muestra en el esquema. Deberá optimizar el controlador para conseguir
el tiempo de establecimiento posible con un porcentaje de sobre-impulso menor al 2 %.

Controlador Motor DC
R(z) 1 Θ(z)
+ Gc (z) D/A A/D
− s(s+2)(s+10)

1. El periodo de muestreo del sistema es Tm =0.1s.


2. El periodo de muestreo del sistema es Tm =0.01s.

Ejercicio 5B-8
Matlab Utilizando los métodos que se enumeran posteriormente, diseñe el controlador
proporcional, integral y derivativo (PID) en el dominio discreto, Gc (z), para realizar el control
de velocidad de un motor DC. La función de transferencia que relaciona el voltaje aplicado y
la velocidad angular se muestra en el esquema. El controlador debe conseguir que la respuesta
al escalón tenga un error en estado estacionario nulo, un tiempo de establecimiento menor
o igual a 0.5s y un ratio de amortiguamiento mínimo de ζ=0.7. El periodo de muestreo del
sistema es de Tm =0.1s.

46
C. SOLUCIONES

Controlador Motor DC
R(z) 1 Ω(z)
+ Gc (z) D/A A/D
− (s+2)(s+10)

1. Método del diseño independiente de las acciones de control, empezando por la acción
PI y después la PD.
2. Método del diseño independiente de las acciones de control, empezando por la acción
PD y después la PI.
3. Método de diseño empírico.

C. Soluciones

Solución 5A-1

(a) 0.26̸ −90◦ (b) 1.07̸ −123.7◦ (c) 2.06̸ −78.5◦

Ir a la solución 5A-1

Solución 5A-4

(a) K=45, Ts =0.67s, Tp =0.58s, OS %=3 % y es (∞)=0.31


(b) K=125.5, Ts =0.67s, Tp =0.30s, OS %=16.5 % y es (∞)=0.14
(c) K=380, Ts =0.67s, Tp =0.16s, OS %=37.1 % y es (∞)=0.05
(d) No se puede alcanzar esta especificación

(e) No se puede alcanzar esta especificación

Ir a la solución 5A-4

Solución 5A-5

(a) K=14.5, Ts =4.3s, Tp =4s, OS %=2.3 % y es (∞)=1.3


(b) K=30.5, Ts =4.8s, Tp =2s, OS %=17.6 % y es (∞)=10.7

(c) K=100, Ts =8s, Tp =1s, OS %=59.2 % y es (∞)=0.2


(d) No se puede alcanzar esta especificación

Ir a la solución 5A-5

47
TEMA 5. DISEÑO DE CONTROLADORES

Solución 5B-3

1. K=0.16 para ζ=0.7; K=0.40 para ζ=0.3;


2. K={0.16 0.20 0.22 0.11}
3. K={0.40 0.40 0.40 0.33}

Ir a la solución 5B-3
Solución 5B-4

1. K=0.158
2. zc =0.35; K=0.23

Ir a la solución 5B-4
Solución 5B-5
a=0.32; K=0.92; Ver solución en la presentación del Tema 5 p. 45.
Ir a la solución 5B-5
Solución 5B-6

1. K=0.158;
2. zc =0.35; K=0.23

Ir a la solución 5B-6

48
Parte II

Prácticas

49
Práctica
1
Implementación de un
controlador

***
El objetivo de esta práctica es implementar un controlador digital en un microcontrolador ESP32
para realizar el control de la velocidad de rotación de un motor de DC. La practica se realizará en
en un máximo de 4 sesiones. Por otro lado, el programa que se desarrolle en esta práctica servirá
como base para realizar algunas de las prácticas posteriores.

En cada sesión se irán implementando diferentes partes del controlador. Concretamente, la prác-
tica se divide en 4 partes:

Decodificación del encoder.

51
Práctica 1. Implementación de un controlador

Excitación del motor con PWM.

Medida del ángulo y velocidad de giro.

Implementación de 2 controladores básicos: control directo y realimentado.

Para comenzar la práctica hay que descargarse el fichero [Link] (disponible en PoliformaT en
\Recursos\Prácticas) y extraerlo en un directorio del PC en el que realizará la práctica. Dicho fichero
se utilizará para escribir el programa que se realizará a lo largo de las 4 sesiones. Se ejecutará con
el entorno de Arduino.
En cada sección se describirán las acciones que hay que programar. Además, se han añadido
unos cuadros en los que se concretarán dichas acciones separados por la ubicación en la que se deben
programar dentro del programa: tareas, funciones, en el setup o fuera del setup.
En la cabecera del programa están definidos parámetros para posibilitar la activación de sus
diferentes partes. Por ejemplo, si no está comentado “#define ACTIVA_P1X” esto permitirá que
el compilador compile el código que está escrito entre las directivas #ifdef ACTIVA_P1X...#endif.
En el cuadro mostrado a continuación se ilustra su funcionamiento.

Directivas del compilador: #ifdef y #endif

// Declaración de parámetro
#define ACTIVA_P1X

...

// Programa
#ifdef ACTIVA_P1X

// Código a compilar si ACTIVA_P1X está definida

#endif

A. Decodificación del “encoder”


En la figura 1.1 se muestra el esquema del encoder y las formas de onda que genera. Este encoder
está ubicado en el eje del motor y nos permitirá medir su velocidad de giro o el ángulo girado relativo
a su posición (ángulo) inicial. Para realizar dichas medidas es necesario decodificar las formas de
onda de las salidas A y B, que nos darán la información del número y sentido de giros realizados.
Las salidas A y B del “encoder” están conectadas a los pines 35 y 34 del ESP32, respectivamente.
En esta tarea se tiene que realizar un programa que detecte los giros del encoder y su sentido:
incrementará un contador indicando el número de giros realizados; si se cambia el sentido de giro
el contador decrementará. El valor de dicho contador se mostrará a través del monitor serie y nos
permitirá verificar si el programa funciona correctamente: el incremento/decremento del contador
siempre debe ser de una unidad, de esa forma sabremos que el decodificador detecta correctamente
todos los cambios de fase.

A.1. Programa para la decodificación del encoder


Para realizar esta tarea hay que descomentar los parámetros ACT IV A_P 1A y DEBU G_P 1A.

52
A. DECODIFICACIÓN DEL “ENCODER”

B
A B
A
Fase 0 1 2 3 0 1 2 3 0

Figura 1.1: “Quadrature Encoder”.

El esquema del software que hay que implementar se muestra en la figura 1.2. Está formado por
la rutina de atención a las interrupciones procedentes de los pines A y B (ISR_enc), una tarea
(task_enc) y una cola (cola_enc). La rutina ISR_enc detecta los cambios en las entradas A y B
y le asigna un valor numérico al código detectado y lo envía a la tarea task_enc a través de la cola.
La tarea task_enc se activa cuando detecta un dato nuevo en la cola, realiza la decodificación del
encoder e incrementa/decrementa un contador que indica el número de giros realizados y, finalmente,
envía dicho valor al puerto serie para visualizarlo mediante el monitor serie. Para que el código quede
más estructurado, las instrucciones de configuración del encoder se programarán en una función y,
posteriormente, dicha función se ejecutará en el setup. Las acciones concretas que hay que programar
se detallan a continuación.

Pin B
ISR_enc cola_enc task_enc
Pin A

Figura 1.2: Esquema SW de decodificador del “encoder”.

Fuera del setup:

Descomentar #define ACTIVA_P1A y #define DEBUG_P1A.


Declarar el objeto cola_enc (tipo xQueueHandle).
Declarar la variable global “ang_enc” de tipo int32_t.

Declarar la función config_enc.


Escribir la función config_enc.

53
Práctica 1. Implementación de un controlador

Configuración setup:

Crear cola cola_enc (función xQueueCreate). Configurarla con un tamaño de 1024


mensajes.

Crear tarea task_enc (función xTaskCreate). Configurarla con un tamaño de la pila


de 2048 words.
Llamar a la función config_enc .

Función config_enc:

Configurar pines A y B como entrada (función pinMode)


Configurar interrupciones para los pines A y B (función attachInterrupt).

Rutina ISR_enc:

Leer los valores de los pines A y B (usar la función digitalRead).


Combinar los valores leídos para obtener el valor decimal correspondiente a los valores
binarios A-B (utilice el tipo uint8_t).
Envíar el valor obtenido a la cola.

Tarea task_enc:

Se activa al recibir datos de la cola cola_enc.


Codificar la fase del encoder a partir del valor recibido desde la cola.
Calcular el incremento o decremento de fase y actualizar la variable global “ang_cnt”
(de tipo int32_t) en la que se acumule el número de incrementos o decrementos reali-
zados.

En la zona de compilación de DEBUG_P1A, envíar al monitor serie el valor de dicha


variable.

A.2. Comprobación del funcionamiento del decodificador


Para comprobar el funcionamiento del programa deberá ejecutarlo en el ESP32.
Gire manualmente el panel circular adaptado al eje del motor y compruebe que en el monitor
serie siempre aparece una secuencia de números consecutivos que se incrementan o decrementan
dependiendo de si el giro se produce hacia la derecha o izquierda, sin saltarse ningún valor de
la secuencia.
Fije el apuntador del panel circular en el ángulo 0º y realice un reset del microcontrolador.
Una vez esté operativo de nuevo gire completamente (360º) el panel y vuelva a fijarlo en 0º.

54
B. EXCITACIÓN DEL MOTOR

Compruebe que un giro completo corresponde a 1200 giros del encoder.

NOTA: Número de pasos para que el eje del motor de una vuelta completa

El factor de reducción del engranaje del motor es de 18.75, es decir, para cada vuelta
completa que dé el eje, el motor tiene que dar 18.75 vueltas.
El factor multiplicativo del encoder es de 64, es decir, para cada vuelta del motor el
encoder genera 64 pasos.

El número de pasos por vuelta del eje es 18.75 × 64 = 1200 pasos.

B. Excitación del motor


Para realizar esta tarea hay que descomentar el parámetro ACTIVA_P1B1 y comentar DE-
BUG_P1A.
En esta tarea se va a completar el programa para excitar el motor a partir de valores de tensión
que se introducirán al microcontrolador a través del puerto serie. Para excitar el motor es necesario
configurar el controlador PWM del ESP32.

B.1. Introducción de datos vía puerto serie


Para posibilitar la introducción de los valores del voltaje aplicado al motor se va a realizar una
tarea, denominada task_config, que se actualizará automáticamente cada 0.1 segundos mediante
el uso de la función vTaskDelay.
El procedimiento a seguir para el envío del valor del voltaje será el escribir en el puerto se-
rie, a través del monitor serie, el carácter “V” seguido del valor del voltaje deseado. En la tarea
task_config se programará la detección de dicho carácter y la recepción del valor, que será de tipo
float. Una vez recibido dicho valor se escribirá de nuevo en el puerto serie, con el fin de constatar
que ha sido bien recibido. A continuación se concreta el código que debe realizarse.

Tarea task_config:

Detectar si se ha enviado el carácter “V” por el puerto serie y en ese caso:


• guardar el valor (float) que se envía a continuación en la variable global
“pwm_volt”
• y escribir dicho valor en el puerto serie (con el mensaje “Voltaje motor = ”) para
comprobar que se ha recibido correctamente.
Bloquear la tarea durante 0.1 segundos (función vTaskDelay).

Configuración setup:

Crear tarea task_config (función xTaskCreate). Configurarla con un tamaño de la pila


de 2048 words.

55
Práctica 1. Implementación de un controlador

Fuera del setup:

Descomentar #define ACTIVA_P1B1 y comentar #define DEBUG_P1A.

Declarar la variable global pwm_volt de tipo float.

B.2. Configuración del PWM y controlador TB9051FTG


Para realizar esta tarea hay que descomentar el parámetro ACTIVA_P1B2.
El motor se excita desde el microcontrolador ESP32 a través del chip TB9051FTG, que incluye
un puente en H para suministrar la corriente que requiere el motor. Este dispositivo está conectado
al ESP32 a través de los pines EN, PWM1 y PWM2 (pines 32, 16 y 17, respectivamente). Al pin
EN se le ha de aplicar la señal PWM con la que se controlará la magnitud de la velocidad de giro.
Las entradas PWM1 y PWM2 sirven para controlar el sentido de giro: con PWM1=H y PWM2=L
el motor gira en sentido horario y con PWM1=L y PWM2=H en sentido antihorario.
En esta tarea se tienen que escribir las instrucciones para configurar los pines PWM1 y PWM2 y
el controlador PWM para que use el canal PWM 0, genere una señal PWM de frecuencia a 100 Hz
y la resolución para controlar su ciclo de trabajo sea de 8 bits. Estas acciones se programarán en la
función config_PWM y, después, dicha función se ejecutará en el setup. A continuación se detallan
las acciones a realizar.

Configuración setup:

Llamar a la función config_PWM.

Fuera del setup:

Descomentar #define ACTIVA_P1B2.


Declarar variables y constantes necesarias para la configuración del PWM (están in-
cluidas bajo los comentarios “//Configuración PWM” y “//Pines driver motor”) .

Declarar la función config_PWM.


Escribir la función config_PWM.

Función config_PWM:

Configurar pines PWM1 y PWM2 como salidas (función pinMode).

Configurar el canal PWM, su frecuencia y resolución (función ledcSetup).


Asignar el canal 0 del controlador de PWM al pin EN (función ledcAttachPin).

B.3. Función para excitar el motor I


Para realizar esta tarea hay que descomentar el parámetro ACTIVA_P1B3.

56
B. EXCITACIÓN DEL MOTOR

Una vez realizada la configuración del controlador PWM se va a desarrollar una función, deno-
minada task_loopcontr, para excitar el motor y se comprobará su funcionamiento.
La velocidad de giro del motor depende del voltaje que se le aplique. En el caso del motor de
esta práctica el voltaje máximo que se le puede aplicar es de 12 V. Por tanto, a partir del valor del
voltaje pwm_volt, introducido a través del puerto serie, es necesario convertirlo a un valor entero
(pwm_motor) con el que se configure el ciclo de trabajo de la señal PWM. En este caso, debido a
los 8 bits de resolución del controlador PWM, el valor de la variable pwm_volt deberá estar entre
0 y 255, siendo 255 el valor que corresponde con la aplicación de los 12 V.
La función a desarrollar deberá configurar los pines PWM1 y PWM2 del controlador del motor
para que éste gire en el sentido correcto, realizar la conversión al valor entero antes mencionada
y aplicar dicho valor para configurar la señal PWM. Esta función se ejecutará desde una nueva
tarea, denominada task_loopcon, que constituye el lazo principal del controlador: en dicha tarea se
programarán las acciones de control motor.
Para probar el correcto funcionamiento de la función se tendrá que enviar varios valores de
voltajes a través del monitor serie y comprobar que la velocidad del motor aumenta al aumentar el
valor del voltaje y cambia el sentido de giro al cambiar el signo del voltaje.

Función excita_motor:

Argumento de entrada a la función: v_motor de tipo float.

Configurar PWM1 y PWM2 para fijar el sentido de giro del motor.


Calcular el valor entero (entre 0 y 255) a introducir en el controlador PWM (variable
pwm_motor) a partir del argumento de entrada a la función.
Excitar el motor con el nuevo valor del PWM (función ledcWrite).

Tarea task_loopcontr:

Ejecutar función excita_motor para que aplique el voltaje pwm_volt.

Bloquear la tarea durante 0.01 segundos utilizando el parámetro


BLOQUEO_TAREA_LOOPCONTR_MS (de la función vTaskDelay).

Configuración setup:

Crear tarea task_loopcontr (función xTaskCreate). Configurarla con un tamaño de


la pila de 2048 words.

Fuera del setup:

Descomentar #define ACTIVA_P1B3.


Declarar la variable global pwm_motor de tipo int32_t.
Escribir el valor del parámetro BLOQUEO_TAREA_LOOPCONTR_MS para que la
tarea se active cada 0.01 segundo.

57
Práctica 1. Implementación de un controlador

B.4. Función para excitar el motor II


El fabricante del controlador TB9051FTG recomienda que para no dañar el dispositivo cuando en
el motor se requiere cambiar el sentido de giro, éste siempre pase por un estado intermedio en el que
PWM1=PWM2=L. Modifique la función excita_motor para que se incluya ese estado intermedio
y, una vez programado, vuelva a comprobar que funciona correctamente.

C. Medida de ángulo y velocidad de giro


En un sistema de control es necesario disponer de la medida de la respuesta del sistema. En
el caso de un motor las variables que nos interesan medir son el ángulo o la velocidad de giro y
dependiendo del tipo de control que se realice el sistema utilizará una de esas dos variables. En
esta tarea vamos a ampliar el programa para incluir ambas medidas. Utilizaremos el parámetro
ACTIVA_P1C_MED_ANG definido en la cabecera del programa y las directivas del compilador
#ifdef...#else...#endif para programar ambos tipos de medida. En el cuadro mostrado a continua-
ción se ilustra su funcionamiento.

Directivas del compilador: #ifdef, #else y #endif

// Declaración de parámetro
#define ACTIVA_P1C_MED_ANG

...

// Programa
#ifdef ACTIVA_P1C_MED_ANG
// Código a compilar si ACTIVA_P1C_MED_ANG está definida
#else
// Código a compilar si ACTIVA_P1C_MED_ANG no está definida
#endif

C.1. Medida del ángulo


Para realizar esta tarea hay que descomentar el parámetro ACTIVA_P1C, DEBUG_P1C y
ACTIVA_P1C_MED_ANG.
Para calcular el ángulo de giro a partir del valor de la variable ang_cnt, que nos indica el número
de pasos (giros) del encoder, hay que tener en cuenta que el encoder tiene que generar 1200 pasos
para que el eje de una vuelta completa (gire 360º).
El cálculo del ángulo girado se realizará en la tarea del lazo de control (task_loopcontr) y
se almacenará en la variable global “v_medida”. Por otro lado, se va a implementar otra tarea
(task_medidas) cuyo único propósito es el de facilitarnos la depuración, verificación del código de
realización de las medidas y visualizar los resultados del controlador en las siguientes prácticas. La
tarea task_medidas es una tarea que se debe activar cada 1 segundo y, simplemente, mostrará en el
monitor serie un mensaje indicando el valor de la medida en grados. Para configurar el tiempo de
bloqueo de la tarea debe darle el valor adecuado al parámetro BLOQUEO_TAREA_MEDIDA_MS
definido en la cabecera del programa. Recuerde que el código programado que solo es necesario
para calcular o mostrar el ángulo debe incluirse en la zona que se compila cuando está definido
ACTIVA_P1C_MED_ANG.

58
C. MEDIDA DE ÁNGULO Y VELOCIDAD DE GIRO

Para depurar y comprobar el correcto funcionamiento fije el panel giratorio apuntando a 0º y


gírelo hasta cualquier ángulo, por ejemplo hasta 90º. En el monitor serie deberá visualizar dicho
valor o un valor muy cercano.
Tenga en cuenta que en posteriores prácticas podrá no compilar la tarea task_medidas simple-
mente comentando la definición del parámetro “DEBUG_P1C”.

Tarea task_loopcontr:

Calcular y guardar en v_medida el valor de la medida en radianes.

Tarea task_medidas:

Calcular el valor de v_medida en grados.

Escribir en el puerto serie el mensaje “Med: X”, donde X es el valor de la medida en


grados.
Bloquear la tarea durante 1 segundos modificando el parámetro BLO-
QUEO_TAREA_MEDIDA_MS (función vTaskDelay).

Configuración setup:

Crear tarea task_medidas (función xTaskCreate). Configurarla con un tamaño de la


pila de 2048 words.

Fuera del setup:

Descomentar #define ACTIVA_P1C, #define DEBUG_P1C y #define ACTI-


VA_P1C_MED_ANG.
Escribir el valor del parámetro BLOQUEO_TAREA_MEDIDA_MS para que la tarea
se active cada 1 segundo.
Declarar la variable global v_medida de tipo float.

C.2. Medida de la velocidad de giro


Para realizar esta tarea hay que comentar el parámetro ACTIVA_P1C_MED_ANG.
Para calcular la velocidad de giro del motor en revoluciones por segundos (rps) no solo es necesario
saber que 1200 pasos del encoder corresponden a un giro de 360º, sino que la tarea task_loopcontr,
en la cual se va a realizar la medida, se activa cada 10 ms. Ese tiempo de actualización es el periodo
de muestreo (Tm ) del controlador, que corresponde a una frecuencia de muestreo de fm = 100 Hz.
Al igual que en la subsección anterior, el cálculo de la velocidad de giro del motor se realizará
en la tarea task_loopcontr y se utilizará la tarea task_medidas para mostrar los resultados. En
este caso el código programado debe incluirse en la zona que se compila cuando no está definido
ACTIVA_P1C_MED_ANG.
Para depurar y verificar el funcionamiento, por prueba y error encuentre el voltaje que se tiene
que aplicar al motor para que gire aproximadamente a 1 rps. Utilice el cronómetro de su móvil para

59
Práctica 1. Implementación de un controlador

contar las vueltas completas que da por ejemplo en 10 segundos.

Tarea task_loopcontr:

Calcular el valor de la medida en radianes.


Convertir dicho valor a revoluciones por segundo (rps).

Guardar en v_medida el valor de la medida en rps.

Tarea task_medidas:

Escribir en el puerto serie el mensaje “Med: X”, donde X es el valor de v_medida.

Fuera del setup:

Comentar #define ACTIVA_P1C_MED_ANG.

D. El controlador: control directo vs. realimentado


En esta sección vamos a incluir 2 comandos nuevos en el sistema: uno para introducir un valor
de referencia que se utilizará como la velocidad que queremos que gire el motor (podrá ser el ángulo
que queremos que gire en futuras prácticas); y otro para iniciar el sistema una vez hemos introducido
el valor de referencia o parar el sistema. Además, capturaremos la variable medida para visualizar
la señal transitoria. Posteriormente, se implementarán los primeros algoritmos de control siguiendo
2 estrategias de control diferente: control directo y control realimentado.

D.1. Señal de referencia e inicio del control


En la sección B.1 se creó la tarea task_config para introducir el valor del voltaje del motor.
Ahora vamos aprovechar dicha función para introducir el valor de referencia para realizar el control.
Dicho valor será un ángulo en grados, si se realiza el control de posición, o una velocidad en rps, si
se realiza el control de velocidad. En ambos casos se utilizará el carácter “R” seguido del valor para
introducirlo desde el monitor serie. En el microprocesador, dicho valor se almacenará en la variable
global ref_val.
Por otro lado, para iniciar o parar el sistema se introducirá por el monitor serie el carácter
“S” seguido de un 1 (START) o cualquier otro valor (STOP). Dicho valor se almacenará en la
variable global start_stop y se utilizará para que se ejecuten las acciones programadas en la tarea
principal del control task_loopcontr y en la de medida task_medida. En el caso de que start_stop
esté configurado como STOP en la tarea task_loopcontr se parará el motor y se pondrán a cero las
variables globales ang_cnt, pwm_motor y v_medida. En la tarea task_config dependiendo del valor
recibido se escribirá en el monitor serie un mensaje indicando la acción realizada por el sistema.
Compruebe el correcto funcionamiento de los comandos introducidos.

60
D. EL CONTROLADOR: CONTROL DIRECTO VS. REALIMENTADO

Tarea task_config:

Detectar si se ha enviado el carácter “R” por el puerto serie y en ese caso:


• guardar el valor (float) que se envía a continuación en la variable global “ref_val”
• y escribir dicho valor en el puerto serie (con el mensaje “Valor de referencia =
Xº o X rps”) para comprobar que se ha recibido correctamente. Utilice la compi-
lación dependiente del parámetro ACTIVA_P1C_MED_ANG para mostrar las
unidades adecuadas.
Detectar si se ha enviado el carácter “S” por el puerto serie y en ese caso:

• Guardar el valor (int8_t) que se envía a continuación en la variable global


“start_stop”
• Escribir el mensaje “- - START - -” si se ha recibido un 1 y si no “- - STOP - -”.

Tarea task_loopcontr:

Si start_stop=1 ejecutar las instrucciones programadas.

Si start_stop=0 parar el motor y resetear variables globales ang_cnt, pwm_motor y


v_medida.

Tarea task_medidas:

Ejecutar instrucciones solo si start_stop=1.

Fuera del setup:

Declarar la variable global ref_val de tipo float.


Declarar la variable global start_stop de tipo int8_t.

D.2. Control directo


Para realizar esta tarea hay que descomentar el parámetro ACTIVA_P1D2.
El control directo se basa en conocer y caracterizar la respuesta natural del sistema. Si excitamos
el motor con un barrido de voltajes y anotamos las velocidades que se alcanzan con cada valor del
voltaje aplicado, podemos utilizar dicha información para calcular qué voltaje se debe aplicar si se
quiere alcanzar una velocidad de rotación dada.
En la figura mostrada a continuación se ilustra el esquema general del sistema con control directo.
El sistema dispone de los siguientes bloques, en los que además de enumerarlos y describirlos, vamos
a relacionarlos con el sistema implementado en esta práctica:
La planta, en nuestro caso el motor, es el sistema a controlar. La variable que deseamos
controlar es su velocidad angular (ω).
El bloque conversor digital analógico (D/A) convierte a una magnitud analógica el valor digital
con el que se desea excitar la planta. En el sistema de la práctica lo constituye el conjunto

61
Práctica 1. Implementación de un controlador

formado por el controlador PWM y el driver del motor (el chip TB9051FTG).

El bloque sensor es el que nos permite realizar la medida de la magnitud a controlar. En el


caso que nos ocupa el sensor es el encoder.

El bloque conversor analógico digital (A/D) convierte a un valor digital la señal que devuelve
el sensor. Lo forman la tarea de decodificación del encoder junto con el algoritmo de medida
de la velocidad.

El bloque controlador es el que implementa el algoritmo de control a aplicar (y que vamos a


desarrollar en esta práctica). En el sistema de control directo la entrada de dicho bloque es la
señal de referencia que en el caso de un sistema de control de velocidad es la velocidad a la que
se desea que gire el motor (ωref ). En nuestro sistema esta señal se implementa con la variable
ref_val.

MICROPROCESADOR (ESP32)

Planta
ωref volt. ω
Controlador D/A Motor DC

Sensor
ωmedida
A/D Encoder

Tarea task_loopcontr, se activa cada Tm seg.

Caracterización del motor (planta):


Excite el motor con diferentes voltajes y anote en la siguiente tabla las velocidades alcanzadas.
Para rellenar la tabla tenga en cuenta lo siguiente:

Con la realización de 10 medidas es suficiente.

Para valores pequeños del voltaje aplicado el motor no logra girar (está en lo que se denomina
zona muerta). Por ello, para rellenar la posición 2 de la tabla busque el mayor voltaje que no
consiga mover el motor.

Para rellenar la posición 3 elija un valor de voltaje que esté a la mitad del encontrado para la
posición 2 y 2 voltios.

No mida con voltaje 100, rellene dicha medida con el mismo valor medido al excitar el motor con
9 voltios. Si observa las medidas anotadas comprobará que el motor ha llegado a su velocidad
de saturación.

62
D. EL CONTROLADOR: CONTROL DIRECTO VS. REALIMENTADO

1 2 3 4 5 6 7 8 9 10 11 12
Voltaje (V) 0 2 3 4 5 6 7 8 9 100
Velocidad (rps) 0 0

Implementación del controlador directo:


Use los datos anotados en la tabla para implementar el controlador en la tarea task_loopcontr,
dentro de la zona de compilación del parámetro ACTIVA_P1D2. Dichos datos se tendrán que escribir
en las constantes Vol_LUT y Vel_LUT. Posteriormente, utilizará la función “interpola_lut_vel_vol”
(incluida en el código). Esta función realiza la interpolación lineal del dato introducido como ar-
gumento utilizando los datos de Vol_LUT y Vel_LUT. El controlador tendrá como entrada la
velocidad de referencia (ref_val) y generará como salida el voltaje a aplicar al motor (pwm_volt).

Tarea task_loopcontr:

Implementar el controlador (usando la función interpola_lut_vel_vol) en la zona de


compilación del parámetro ACTIVA_P1D2.

Fuera del setup:

Descomentar #define ACTIVA_P1D2


Rellenar la tabla (variables Vol_LUT y Vel_LUT).

Comprobación del controlador:


Depure el código y compruebe su funcionamiento realizando varias pruebas. Anote los resultados
en la siguiente tabla. Repita algunas medidas introduciendo la misma velocidad de referencia.

Velocidad Velocidad
referencia medida

63
Práctica 1. Implementación de un controlador

Responda a las siguientes preguntas:


1. ¿Se consigue alcanzar la velocidad de referencia?
2. ¿Ante la misma velocidad de referencia el motor gira siempre a la misma velocidad?
3. ¿La tabla de valores de voltajes y velocidades medida es igual a la que han medido otros
compañeros con otro motor? ¿Su controlador servirá para controlar otro motor distinto del
mismo modelo?
4. Si la contestación de la pregunta anterior es negativa discuta con su compañero cómo se podría
resolver este problema.

Comprobación de la respuesta transitoria del motor:


Cierre el monitor serie y abra el “Serial Plotter”. Con este visor podrá visualizar la respuesta
transitoria del sistema. Para ello deberá modificar la velocidad de bloqueo de la tarea task_medida
a 10 ms, configurando el parámetro BLOQUEO_TAREA_MEDIDA_MS. Además, en dicha tarea
debe añadir el código para escribir en el puerto serie el valor de la variable de referencia ref_val, de
esa forma se visualizará a la vez la medida y la referencia.
Realice varias pruebas introduciendo diferentes velocidades de referencia y visualice la respuesta
transitoria. La respuesta que visualiza es la respuesta natural del motor. Conteste a las siguientes
preguntas:

1. ¿Tiene la misma forma la respuesta transitoria independientemente de la velocidad de referen-


cia?
2. ¿De qué orden parece que es la respuesta obtenida?

Tarea task_medidas:

Escribir en el puerto serie el mensaje “,Ref: X”, donde X es el valor de la señal de


referencia ref_val. Dicho mensaje debe aparecer después de “Med: X” sin incluir el
cambio de linea.

Fuera del setup:

Escribir el valor del parámetro BLOQUEO_TAREA_MEDIDA_MS para que la tarea


se active cada 10 ms.

D.3. Control realimentado


Para realizar esta tarea hay que descomentar el parámetro ACTIVA_P1D3 y comentar el AC-
TIVA_P1D2.
El control realimentado se basa en utilizar la medida realizada de la variable de control para
modificar la acción de control. A continuación se presenta el esquema general del sistema con control
realimentado. La señal medida por el sensor se resta a la de referencia obteniendo una señal que
indica el error cometido en el proceso de control. Esa señal de error es la que ahora se introduce al
controlador, cuya salida, al igual que en el sistema de control directo, generará el valor de voltaje a
aplicar al motor.

64
D. EL CONTROLADOR: CONTROL DIRECTO VS. REALIMENTADO

MICROPROCESADOR (ESP32)

Planta
ωref error volt. ω
+ Controlador D/A Motor DC

ωmedida Sensor

A/D Encoder

Tarea task_loopcontr, se activa cada Tm seg.

Implementación del controlador realimentado:

El controlador se implementará en la tarea task_loopcontr, dentro de la zona de compilación


del parámetro ACTIVA_P1D3. Primero se tendrá que generar la señal de error y posteriormente
la acción del controlador. El algoritmo de control consistirá en incrementar o decrementar un valor
constante el voltaje aplicado al motor (pwm_volt) dependiendo del signo de la señal error.

Tarea task_loopcontr:

Declarar y calcular la señal error (tipo float).

Implementar el controlador en la zona de compilación del parámetro ACTIVA_P1D3.

Fuera del setup:

Comentar #define ACTIVA_P1D2.


Descomentar #define ACTIVA_P1D3.

Comprobación del controlador:

Depure el código y compruebe su funcionamiento realizando varias pruebas. Tendrá que buscar
el valor constante de incremento o decremento del voltaje aplicado al motor que crea que funcione
mejor. Puede programarse la introducción de un nuevo valor desde el puerto serie (en tal caso utilice
la letra “P” y almacene su valor en una variable global denominada “K_p”). Anote los resultados
en la siguiente tabla. Repita algunas medidas introduciendo la misma velocidad de referencia.

65
Práctica 1. Implementación de un controlador

Velocidad Velocidad
referencia medida

Responda a las siguientes preguntas:


1. ¿Se consigue alcanzar la velocidad de referencia?

2. ¿Ante la misma velocidad de referencia el motor gira siempre a la misma velocidad?


3. ¿Su controlador servirá para controlar otro motor distinto del mismo modelo?

Comprobación de la respuesta transitoria del motor:


Use el “Serial Plotter” para visualizar la respuesta transitoria del sistema. Realice varias pruebas
introduciendo diferentes velocidades de referencia. La respuesta que visualiza es la respuesta del
motor, modificada por el control realimentado. Conteste a las siguientes preguntas:

1. ¿Tiene la misma forma la respuesta transitoria independientemente de la velocidad de referen-


cia?

2. ¿Cuál cree que es el orden de la respuesta obtenida?


3. ¿Qué efecto tiene el valor de la constante de incremento/decremento del voltaje aplicado al
motor sobre la respuesta transitoria?

66
Práctica
2
Modelado del motor de DC

***
El objetivo de esta práctica es realizar un modelo del motor de DC que nos facilite el diseño
de los controladores que se realizarán en las siguientes prácticas. Primero se realizará un modelo
lineal a partir de un punto de operación en el que el motor esté rotando a una velocidad de 5 rps.
Posteriormente, se comprobará que el sistema es no lineal, comparando la respuesta del modelo y del
motor al excitarlo con diferentes voltajes. Finalmente, se completará el modelo añadiendo algunos
de los comportamientos no lineales del motor.
Tenga en cuenta que el motor que se utiliza en las prácticas solo alcanza una velocidad de unos
8 rps y que los voltajes que se le pueden aplicar no deben superar los 9 V.

A. Puesta a punto del banco de pruebas


Para comenzar la práctica hay que descargarse el fichero [Link] (disponible en PoliformaT en
\Recursos\Prácticas) y extraerlo en un directorio del PC en el que realizará la práctica.

Configuración del HW y SW:

1. Conectar la tarjeta controladora del motor de DC a la fuente de alimentación configurada para


que genere 18V.

2. Conectar el cable USB al PC y, posteriormente, buscar en el “Administrador de dispositivos”


del PC a qué puerto serie (COM) se ha conectado.

3. Abra la ventana de comandos “Windows PowerShell” y sitúese en el directorio “Carga_SW”


que está en el directorio de trabajo. Para cargar el programa en el microcontrolador ejecute
el siguiente comando, en el que debe cambiar COMx por el puerto al que está conectado el
microcontrolador en su PC:

.\esptool - -chip esp32 - -port COMx write_flash -z 0xe000 [Link] 0x1000 [Link]
0x10000 [Link]

67
Práctica 2. Modelado del motor de DC

Este comando lo tiene escrito en el fichero “Comando_carga_SW.txt”, disponible en el direc-


torio “Carga_SW”. Puede que necesite pulsar el botón de “Boot” del módulo ESP32 DEVKIT
para realizar la carga del fichero.

Comprobación del funcionamiento del sistema:


1. Abra el script de Matlab “lanza_P2.m” y configure el puerto serie al que está conectado el
microcontrolador.
2. Ejecute “lanza_P2.m” y compruebe que el motor ha funcionado. El script configura el sistema
para excitar el motor con un escalón de magnitud “Volt_in”=1 V y permite recuperar la
respuesta transitoria del motor, que es en este caso la velocidad de rotación del motor (velocidad
angular, ω).

B. Modelo lineal del motor


En esta tarea se va a realizar un modelo lineal del motor de DC que relacione la velocidad del
motor, ω(t), con el voltaje aplicado a su entrada, v(t).
1. Encuentre el voltaje con el que hay que excitar el motor para que gire a una velocidad angu-
lar ω=5 rps. Para ello, utilizará el script “lanza_P2.m” en el que debe modificar la variable
“Volt_in” (voltaje aplicado). Mediante la observación de la respuesta transitoria podrá verificar
si se ha conseguido la velocidad deseada.
2. La respuesta temporal obtenida claramente se puede identificar como una respuesta de un
sistema de 1er orden. Por tanto, la función de transferencia que relaciona la velocidad del
motor con el voltaje de entrada se puede modelar como

Ω(s) a
G(s) = =k· ,
V (s) s+a

donde
a=1/τ , siendo τ la constante de tiempo del sistema de 1er orden
y k es la ganancia del sistema.
Utilice la gráfica de la respuesta del sistema para estimar los valores de a y k del modelo.
3. Escriba en el script de Matlab la función de transferencia G(s) y, posteriormente, obtenga
su versión discretizada, Gz (z), utilizando la función de Matlab c2d (Gz =c2d(G, Tm )). Tenga
en cuenta que el microcontrolador está capturando las muestras a una tasa de muestreo de
Tm = 0.01 seg.
4. Abra el modelo de Simulink “Modelo_motor_P2.slx”. Este modelo permite evaluar el sistema
lineal Gz (z). Contiene un bloque denominado “LTI system” al que le pasaremos la variable
Gz (z). Este sistema se excita con la misma señal de referencia con la que se está excitando el
motor y nos permitirá visualizar las respuestas transitorias tanto del motor como la del modelo
lineal. Compruebe que el modelo lineal Gz se comporta como el motor cuando se le aplica el
voltaje encontrado en la sección (a). Realice, ahora, un ajuste fino de los parámetros a y k,
hasta que ambas respuestas estén bien ajustadas.

68
C. MOTOR DE DC: SISTEMA NO LINEAL

C. Motor de DC: sistema no lineal


En la tarea anterior se ha realizado un modelo lineal del motor que es válido cuando el motor
está girando a la velocidad de 5 rps o muy cercanas. Sin embargo, el motor es un sistema no lineal.
En esta tarea se comprobará el comportamiento no lineal del motor.

1. Compruebe el comportamiento del modelo cuando se le aplican voltajes cercanos al necesario


para que gire a 5 rps.

2. Realice un barrido de voltajes (0.25 V, 0.5 V, 0.75 V, 1 V, 2 V, ..., 9 V) y anote en la siguiente


tabla las velocidades y los tiempos de establecimiento (Ts ) que se obtienen en la respuesta del
motor y en el modelo lineal con cada voltaje aplicado.

Voltaje Velocidad Velocidad Ts Ts


motor modelo motor modelo
(Volt) (rps) (rps) (seg.) (seg.)

0.25

0.5

0.75

1
2
3

4
5

7
8
9

3. Conteste a las siguientes preguntas:

¿Qué ocurre cuando se aplican voltajes pequeños?


¿Qué ocurre cuando se aplican voltajes grandes?
¿Se mantienen los tiempos de establecimiento al aplicar los distintos voltajes?
k·a
¿Se puede modelar el motor con G(s) = s+a con valores de k y a constantes?
¿Es el motor un sistema es lineal?
¿En qué condiciones es válido el modelo lineal?

69
Práctica 2. Modelado del motor de DC

D. Modelo no lineal del motor I


En esta tarea se utilizará la información sobre el comportamiento del motor obtenida en la tarea
anterior para completar el modelo lineal incluyendo los efectos no lineales de la zona muerta (dead
zone) y saturación. El modelo de Simulink “Modelo_motor_P2.slx” dispone de un bloque adicional
denominado “Modelo no lineal” que incluye el modelo lineal conectado a los bloques que modelan
los efectos no lineales.
1. Configure los bloques “Dead Zone” y “Saturation” con los valores adecuados (revise la tabla
o gráfica realizada en la tarea anterior). Utilice, para ello, las variables “Vel_sat” (velocidad
de saturación) y “Volt_dead” (voltaje máximo en la zona muerta) declaradas en el script de
Matlab.

2. Excite el modelo con el voltaje requerido para que el motor gire a 5 rps y compruebe que
el sistema ya no responde de la misma forma, no alcanzando dicha velocidad. Dentro del
bloque “LTI System” multiplique la función de transferencia por un factor de escalado knl
para modificar su ganancia. Encuentre el valor de dicho factor para que el sistema consiga las
5 rps.
3. Compare las respuestas del nuevo modelo con las del motor cuando se le aplican voltajes bajos
y voltajes altos.

E. Modelo no lineal del motor II


En esta tarea también se utilizará la información sobre el comportamiento del motor obtenida en
la tarea C para completar el modelo lineal incluyendo una tabla de lectura (LUT, Look-Up Table).
El modelo Simulink “Modelo_motor_P2_LUT.slx” dispone de un bloque adicional denominado
“Modelo no lineal LUT” que incluye el modelo lineal conectado al bloque “1-D Lookup Table”.
1. Configure el bloque “1-D Lookup Table” con los valores adecuados. Para ello, introduzca los
valores de la tabla realizada en la tarea C en los vectores “Volt” (tensión de entrada) y “Vel”
(velocidad obtenida) declaradas en el script de Matlab.

1-D T(u)

1 Gz/k 1

LTI System
1-D Lookup
Table

2. Compare las respuestas del nuevo modelo con las respuestas del modelo lineal y el modelo no
lineal.
3. Conteste a las siguientes preguntas:
¿El nuevo modelo es válido para obtener el transitorio del motor?
¿Qué beneficios ofrece el nuevo modelo respecta al anterior no lineal?

70
Práctica
3
Control P y PI

***
El objetivo de esta práctica es comprobar el efecto del control P y PI para controlar la velo-
cidad del motor de DC. El motor se incluirá en un lazo cerrado y se explorarán los efectos de los
distintos controladores. Además, se utilizarán los modelos del motor desarrollados en la práctica 2
y se comprobará en qué medida el comportamiento de los modelos se desvían de la realidad.

A. Puesta a punto del banco de pruebas


Para comenzar la práctica debe descargarse el fichero [Link] (disponible en PoliformaT en
\Recursos\Prácticas) y extraerlo en un directorio del PC en el que realizará la práctica. También
debe recuperar el script de matlab con los modelos realizados en la práctica anterior. Recuerde que
para configurar el microcontrolador debe seguir los pasos indicados en la sección A de la práctica 2.

B. Controlador Proporcional (P)


En esta tarea se va a comprobar el efecto del control proporcional para controlar la velocidad de
giro del motor. En este caso, la entrada de referencia al sistema no es el voltaje (V ), como ocurría en
la práctica 2, sino que es la velocidad angular que se desea alcanzar (Ωref ). El diagrama de bloques
del sistema realimentado con control proporcional se muestra en la siguiente figura.

Control P Motor DC
Ωref V Ω(z)
+ Cz (z)=K Gz (z)

1. Abra el script de Matlab “lanza_P3.m”, busque la sección en la que se encuentra el modelo


lineal del motor y escriba los valores de los parámetros a y k del modelo lineal obtenidos en

71
Práctica 3. Control P y PI

la práctica 2. En esta práctica se va a utilizar un modelo que refleja mejor el comportamiento


del motor. Se trata de un modelo de 2o orden con un polo dominante en s1 = − a. La función
de transferencia del motor es:
Ω a b
G(s)= (s) = k · · ,
V s+a s+b
en la que el segundo polo (el no dominante) se fija a s2 = −b = − 80·a.
Ejecute la sección del script en la que se encuentra el modelo lineal y obtenga la función de
transferencia discretizada de dicho modelo (Gz (z)). Conteste a las siguientes preguntas:
Atendiendo al error estacionario que se producirá al incluir el motor en un lazo con
realimentación unitaria con control proporcional, ¿de qué tipo de sistema se trata?
¿Cuál es el error que se producirá al excitarlo con un escalón y qué dependencia tiene con
el valor de K, la constante de proporcionalidad del sistema?
¿Cuál es el error que se comete si se excita el sistema con una entrada tipo rampa?
2. Rellene la sección “Control Proporcional” del script “lanza_P3.m” para declarar la función
de transferencia del controlador Cz =K. Cuando ejecute dicho script se configurará la fun-
ción de transferencia del controlador y el modelo del motor en el modelo de Simulink “Mode-
lo_motor_P3.slx”. Este modelo debe tenerlo abierto antes de lanzar el script y lo utilizará para
comparar el resultado de la respuesta transitoria del motor con la de los modelos realizados.
En la figura se muestra el sistema realimentado modelado en “Modelo_motor_P3.slx”.

Para finalizar esta tarea ejecute la sección “Control Proporcional” del script “lanza_P3.m”.
3. En la sección “Modelo lineal” del script:
a) obtenga la función de transferencia en lazo cerrado Gf b (use la función de matlab minreal
para simplificar dicha función);
b) obtenga sus polos en la variable p_Gf b utilizando la función de Matlab pole;
c) obtenga la función de transferencia de la rama directa, Gtot , formada por el controlador
y la planta (el motor);
d) dibuje el lugar de las raíces mediante la función rlocus y los contornos del plano “z”
mediante la función zgrid.
e) y, finalmente, dibuje en la misma figura los polos de la función de transferencia en lazo
cerrado con plot(real(pGf b ),imag(pGf b ),‘xm’). Dichos polos quedarán representados como
cruces de color magenta sobre el lugar de las raíces.
4. Configure el sistema para que el motor gire a ωref =5 rps y realice un barrido con valores de
K desde 1 hasta 8. Para cada caso:

72
C. CONTROLADOR PROPORCIONAL-INTEGRAL (PI)

obtenga el error en estado estacionario del sistema (lo puede medir sobre la gráfica y se
calcula automáticamente y su resultado se muestra en % en la consola de Matlab);
compruebe cómo cambian de posición en el diagrama de polos/ceros;
e indique de qué tipo es el sistema atendiendo a la forma de la respuesta transitoria.
¿Es coherente el tipo de respuesta obtenido con los polos del sistema?
5. Quédese con un valor de K en el que no se produzca sobre-amoriguación en la respuesta
transitoria y compruebe cómo se comporta el sistema si se configura para que gire a oras
velocidades.
6. Configure de nuevo el sistema con la velocidad de referencia de ωref =5 rps y pruebe a excitarlo
con una rampa.
¿Cuál es el error en estado estacionario ante la entrada rampa?
¿es coherente el comportamiento del sistema con el de los sistemas del mismo tipo estu-
diados en la teoría?
7. Valore si en los experimentos que ha realizado anteriormente el sistema real y los modelos se
comportan de forma similar.

C. Controlador Proporcional-Integral (PI)


En esta tarea se va a comprobar el efecto del control Proporcional-Integral para controlar la velo-
cidad de giro del motor. En este caso el controlador introduce dos acciones de control: la proporcional
(vista en la sección anterior) y la integral, que integra el error hasta anularlo. La función de transfe-
rencia del controlador PI es Cz (z)= K(1 + CI (z)), donde la componente integral es CI (z)= TiT(z−1)mz
,
siendo Ti la constante de tiempo de integración y Tm el periodo de muestreo del sistema. El diagrama
de bloques del sistema realimentado con control PI se muestra en la siguiente figura.

Control PI Motor DC
Ωref V Ω(z)
+ Cz (z)=K(1 + CI (z)) Gz (z)

1. Comente en el script la sección “Control Proporcional” y en la sección “Control Proporcional-


Integral” escriba la función de transferencia, Cz , del control PI. Parta del mismo valor de K
que ha seleccionado en la sección anterior y del valor del parámetro Ti =200·Tm . Compare la
respuesta al escalón con ωref =5 rps del control P I con la del control P con el mismo valor de
K. ¿En qué se diferencian las respuestas transitorias?
2. Obtenga la respuesta al escalón disminuyendo el valor de Ti ¿Cómo afecta la disminución del
valor del cero en la respuesta transitoria?
3. Quédese con el valor de Ti con el que se consigue mejor respuesta y experimente con diferentes
velocidades de referencia. ¿Se mantiene el comportamiento?
4. Compruebe cual es el funcionamiento del sistema con entrada de tipo rampa. ¿Es coherente
con el estudiado en la teoría?

73
Práctica 3. Control P y PI

74
Práctica
4
Control PID

***
El objetivo de esta práctica es comprobar el efecto del control derivativo (D) y aplicar las 3
acciones de control a la vez (controlador PID) para controlar la velocidad del motor de DC. Además,
se va a realizar un modelo de Simulink del controlador PID que facilitará su posterior implementación
en un microcontrolador.

A. Puesta a punto del banco de pruebas


Para comenzar la práctica debe descargarse el fichero [Link] (disponible en PoliformaT en
\Recursos\Prácticas) y extraerlo en un directorio del PC en el que realizará la práctica. También
debe recuperar el script de matlab con los modelos realizados en la práctica 3.

B. Control P y PI vs. PID


En esta tarea se va a comprobar el efecto que supone el añadir la componente derivativa en la
acción de control PI. En este caso el controlador introduce tres acciones de control: la proporcional
e integral (vista en la práctica 3) y la derivativa, que introduce una acción de control proporcional a
la velocidad de cambio del error. La función de transferencia del controlador PID es Cz (z)= K(1 +
CI (z) + CD (z)), donde la componente integral es CI (z)= TiT(z−1)
mz
, siendo Ti la constante de tiempo
de integración y Tm el periodo de muestreo del sistema, y la derivativa es CD (z)= TdT(z−1)
mz
, siendo
Td la constante de tiempo derivativa. El diagrama de bloques del sistema realimentado con control
PID se muestra en la siguiente figura.

Control PID Motor DC


Ωref E V Ω(z)
+ Cz (z)=K(1 + CI (z) + CD (z)) Gz (z)

75
Práctica 4. Control PID

El objetivo de este ejercicio es el obtener la respuesta más rápida posible del sistema sin que
dicha respuesta presente sobreimpulso. Se intentará conseguir este objetivo aplicando el control P,
PI y PID. A modo de referencia, en la figura siguiente se muestra el resultado de las respuestas que
se deben obtener con cada controlador.

1.2

0.8
Amplitud

0.6

0.4
ref
Control P
0.2 Control PI
Control PID
0
0 0.05 0.1 0.15 0.2 0.25 0.3
t (s)

1. Abra el script de Matlab “lanza_P4_1.m”, busque la sección en la que se encuentra el modelo


lineal del motor y escriba los valores de los parámetros del modelo lineal de la práctica 3.

2. Abra el modelo de Simulink “modelo_motor_P4_1.slx”. Compruebe que hay tres sistemas


realimentados modelados, tal y como se muestra en la siguiente figura. En los tres la planta es
la misma (el motor de DC), el primero implementará el controlador P, el segundo el PI y el
último el controlador PID. Compruebe, abriendo los bloques “Controlador P”, “Controlador
PI” y “Controlador PID”, que dichos bloques se configuran a través de las constantes Kp1 ,
Kp2 , Ti2 , Kp3 , Ti3 y Td3 , a través del script “lanza_P4_1.m”.

76
C. IMPLEMENTACIÓN DEL CONTROLADOR PID

3. Respuesta con control P: configure en la sección “Control P” del script “lanza_P4_1.m” el


valor Kp1 para que la respuesta sea lo más rápida posible sin que presente sobreimpulso.

4. Respuesta con control PI: configure en la sección “Control PI” del script el valor Kp2 y Ti2 .
Se recomienda partir del valor Kp1 de la sección anterior.

5. Respuesta con control PID: configure en la sección “Control PID” el valor Kp3 , Ti3 y Td3 . Se
recomienda partir de los valores Kp2 y Ti2 de la sección anterior y modifíquelos si lo considera
necesario.

6. A la vista de los resultados, describa cuál es el efecto de introducir la acción derivativa en el


controlador.

C. Implementación del controlador PID


En esta sección se va a plantear la implementación del controlador PID. Se comprobará que el
modelo de controlador PID utilizado en la sección anterior se comporta como las funciones pid y
pidstd de Matlab y se realizará un modelo de Simulink con componentes básicos discretos. Finalmen-
te, se extraerán las ecuaciones en diferencias del controlador (como paso previo a su implementación
en un microcontrolador).

1. Abra el modelo de Simulink “modelo_motor_P4_2.slx”. Compruebe que contiene, tal y como


se muestra en la figura, los modelos de cuatro sistemas realimentados.

En los cuatro sistemas la planta es la misma (el motor de DC) y el controlador es el mismo,
un controlador PID, implementado de forma diferente:

el 1er sistema usa el bloque controlador PID de Simulink del modelo de la sección anterior;

77
Práctica 4. Control PID

en el 2o sistema se utiliza la función pidstd de Matlab para implementar el controlador;


en el 3er sistema se utiliza la función pid de Matlab para implementar el controlador;
por último, en el 4o sistema se utilizarán los bloques básicos de Simulink (sumadores,
retardos y ganancias) para implementar el controlador.

2. Abra el script de Matlab “lanza_P4_2.m”, busque la sección en la que se encuentra el modelo


lineal del motor y escriba los valores de los parámetros del modelo lineal de la práctica 3.
3. Busque en el script de matlab la sección “Controlador PIDstd”. Copie en las variables Kp , Ti y
Td los valores obtenidos en Kp3 , Ti3 y Td3 en la sección anterior. Ejecute el script y compruebe
que se visualiza en bloque “Comparación de respuestas” el estímulo y la respuesta del 1er
sistema, que es la que se utilizará como referencia para comprobar las demás.
4. Configure la función de Matlab pidstd, tal y como se indica a continuación:

Cpidstd = pidstd(Kp,T i,T d,‘Ts’,T m,‘IFormula’,‘BackwardEuler’,‘DFormula’,‘BackwardEuler’),


la cual implementa la siguiente función de transferencia:
( )
1 Tm ·z z−1
Cpidstd (z) = Kp 1 + · + Td · .
Ti z−1 Tm ·z

Ejecute de nuevo el script y compruebe primero, visualizando la consola de Matlab, que la


función de transferencia Cpidstd (z) está bien generada y, segundo, que la respuesta del 2o
sistema (denominada PIDstd Matlab) es idéntica a la anterior (sale superpuesta y solo se
visualiza una, la última dibujada).
5. Busque en el script de Matlab la sección “Controlador PID”. Escriba las ecuaciones para obtener
Ki y Kd a partir de Kp , Ti y Td . Posteriormente, escriba la función de Matlab pid, tal y como
se indica posteriormente,

Cpid = pid(Kp,Ki,Kd,‘Ts’,T m,‘IFormula’,‘BackwardEuler’,‘DFormula’,‘BackwardEuler’).


Esta función implementa la siguiente función de transferencia:

V (z) Tm ·z z−1
Cpid (z) = = Kp + Ki · + Kd · .
E(z) z−1 Tm ·z

Ejecute el script, compruebe que la función de transferencia Cpid (z) está bien generada y que
la respuesta del 3er sistema es idéntica a la de los anteriores.
6. La función de Matlab pid genera una función de transferencia que facilita la implementación
del controlador PID en paralelo, separando las funciones de transferencia de las componentes
proporcional, integral y derivativa. Por ello, la salida del controlador PID, V (z), se puede
expresar como:

V (z) = CP ID (z)·E(z) = [CP (z) + CI (z) + CD (z)]·E(z) = VP (z) + VI (z) + VD (z),

donde
VP (z) VI (z) Tm ·z VD (z) z−1
CP (z)= =Kp , CI (z)= =Ki · y CD (z)= =Kd · .
E(z) E(z) z−1 E(z) Tm ·z

78
C. IMPLEMENTACIÓN DEL CONTROLADOR PID

Escriba las expresiones de VP (z), VI (z) y VD (z) en función del error de entrada E(z) utilizando
únicamente sumas/restas, retados (z −1 ) y ganancias, con el fin de dibujar, posteriormente, su
diagrama de bloques.
7. A partir de las expresiones anteriores modele el controlador PID del 4o sistema utilizando los
operadores básicos de Simnulink (sumas/restas, retados y ganancias). Debe seguir el esquema
de implementación en paralelo representado en la siguiente figura. En cada rama se debe
modelar, siguiendo su diagrama de bloques, cada una de las acciones de control CP (z), CI (z)
y CD (z). Los operadores básicos de Simulink se encuentran en el “Library browser” que está
en el panel superior de Simulink y puede buscarlos por su nombre “Add”, “Gain” y “Delay”.

8. Ejecute de nuevo el script de Matlab y compruebe que las respuesta del nuevo modelo imple-
mentado es exactamente igual que las anteriores. Si no lo es depure el modelo hasta que se
comporte como los anteriores.
9. A partir de las expresiones de VP (z), VI (z) y VD (z) en función del error de entrada E(z)
escriba las ecuaciones en diferencias finitas de cada una de las componentes del controlador y
la ecuación del controlador PID (completo).

10. Escriba el código en lenguaje C para programar la salida del controlador vpid en función de la
entrada de error e.

79
Práctica 4. Control PID

80
Práctica
5
Control de velocidad y posición
de un motor de DC:
implementación de controladores

***
Esta práctica tiene como objetivo el implementar diferentes algoritmos de control en el micro-
controlador ESP32 para realizar el control de la velocidad de rotación y ángulo de giro de un motor
de DC.

A diferencia de las anteriores, esta práctica no tiene un guión detallado de las acciones a realizar,
sino que el alumno debe demostrar que ha aprendido y sabe aplicar los conceptos introducidos en

81
Práctica 5. Control de velocidad y posición de un motor de DC: implementación de controladores

la asignatura.

A. Tareas a realizar
La práctica tiene diferentes partes y el alumno las abordará en el orden indicado y no podrá
pasar a la siguiente parte si no ha completado la anterior y tiene el visto bueno del profesor:
(1) Implementación del algoritmo básico de control PID para el control de velocidad del motor. Los
valores de los parámetros Kp , Ki y Kd se configurarán dinámicamente. Se deberá demostrar
el correcto funcionamiento, por separado, de las acciones de control P, PI y PID.
(2) Modificación del sistema para realice el control de posición angular del motor. Se deberá
demostrar el correcto funcionamiento, por separado, de las acciones de control P, PI y PID.
Debe incluir la configuración dinámica para que el sistema se comporte como control de posición
angular en vez de control de velocidad.
(3) Implementación del algoritmo de anti “windup” condicional. Se deberá demostrar su funciona-
miento para el control de velocidad y posición angular del motor. Debe incluir la configuración
dinámica para activar este algoritmo y para modificar el valor de saturación.
(4) Implementación del algoritmo de anti “windup” con recálculo. Se deberá demostrar su funciona-
miento para el control de velocidad y posición angular del motor. Debe incluir la configuración
dinámica para activar este algoritmo y para modificar el valor del parámetro de configuración.
(5) Implementación del algoritmo de anti zona muerta. Se deberá demostrar su funcionamiento
para el control de posición angular del motor. Debe incluir la configuración dinámica para
activar este algoritmo y para modificar el valor de los parámetros de configuración.
(6) Implementación del filtro derivativo. Se deberá demostrar su funcionamiento para el control de
posición angular del motor. Debe incluir la configuración dinámica para activar este algoritmo
y para modificar el valor de los parámetros de configuración.
La activación o no del algoritmo y la configuración dinámica de parámetros se realizará introdu-
ciendo sus valores a través del monitor serie de Arduino.

B. Evaluación
Para evaluar la práctica se tendrá en cuenta:
el correcto funcionamiento de las partes realizadas: una vez finalizada una parte se debe mostrar
al profesor y este dará el visto bueno para darla por cerrada o le dará indicaciones para su
mejora o corrección;
realización de una memoria documentado el algoritmo implementado y mostrando la respuesta
conseguida ante diferentes estímulos;
y, finalmente, código C del microcontrolador bien estructurado y documentado.
Como referencia se podrá alcanzar hasta una nota de 5 si se realiza correctamente la parte 1. La
correcta realización supone que se demuestre el correcto funcionamiento del algoritmo en la sesión
de prácticas, que el código esté bien estructurado y documentado y la memoria bien presentada
siguiendo las pautas indiadas. La correcta resolución de las siguientes partes incrementará en 1
punto la nota obtenida.

82
C. MEMORIA DE PRÁCTICAS

C. Memoria de prácticas
La memoria de prácticas deberá contener las siguientes secciones:
(1) Introducción: se incluirá una breve explicación del trabajo realizado indicando qué algoritmos
se han implementado y han funcionado correctamente.

(2) Implementación de algoritmo i: Para cada algoritmo de control implementado se tendrá


que:
explicar brevemente el algoritmo, su función y parámetros y expresarlo a través de su
ecuación en diferencias finitas;
incluir el código C de su implementación;
presentar la representación de las respuestas del sistema implementado al aplicar el al-
goritmo con diferentes valores de sus parámetros, con el fin de demostrar su correcto
funcionamiento;
e indicar cuál es la mejor opción de diseño y con qué valores de los parámetros se consigue.
(3) Conclusiones: se escribirán las conclusiones de la práctica y se añadirá un breve comentario
de la opinión que el grupo de alumnos tiene de la asignatura Control y de lo que ha aprendido
al cursar la asignatura y con la realización de las prácticas.

D. Fechas de entrega
Se dispone de 5 sesiones para realizar la práctica y solo se podrá mostrar al profesor las partes
completadas en dichas sesiones. Por tanto, la fecha límite para mostrar las prácticas funcionando al
profesor es el 6 de junio (fecha de la última sesión de prácticas).
La memoria (fichero .pdf) y el código C (fichero .ino) se podrán entregar, a través de PoliformaT,
hasta el día 13 de junio.

83
Práctica 5. Control de velocidad y posición de un motor de DC: implementación de controladores

84
Parte III

Pruebas de evaluación

85
Anexo
1
Pruebas curso 2019-2020

***

A. Prueba 1 (test)

Ejercicio 1A-1
Al ejecutar en Matlab la función [r,p,k]=residue(N,D), siendo N y D el numerador y denomi-
nador, respectivamente, de una función en el dominio de Laplace, X(s), se obtiene que r=[1
5 j −j], p=[0 −8 −4+j2 −4−j2] y k=[]. Indique cuál es la transformada inversa de Laplace
de dicha función.
(a) x(t)=1+5e−8t −2.0e−4t sin(2t) (c) x(t)=5e−8t −2.0e−4t sin(2t)
(b) x(t)=1+5e−8t −1.0e−4t sin(2t) (d) x(t)=5e−8t −1.0e−4t sin(2t)

Ejercicio 1A-2
C(s)
Obtenga la función de trasferencia, Gf b = , del sistema realimentado de la figura, donde
R(s)
2(s + 1) 1 6(s + 4)
Gc (s) = , Gp (s) = y H(s) = .
s (s + 4) s(s + 5)

R(s) E(s) C(s)


+ Gc (s) Gp (s)

Cr (s)
H(s)

87
Anexo 1. Pruebas curso 2019-2020

2s3 +12s2 +10s 2s+2


(a) Gf b (s)= (c) Gf b (s)=
s4 +9s3 +32s2 +60s+48 s2 +6s+2
2s3 +12s2 +10s 2s+2
(b) Gf b (s)= (d) Gf b (s)=
s4 +9s3 +8s2 −60s−48 s2 +2s−2

Ejercicio 1A-3
2.00z 2 −1.15z
Indique cuál es la transformada inversa Z de la función X(z) = .
z 3 −2.20z 2 +1.57z−0.37
(a) x(n)=5−5·0.61n cos(0.17n) (c) x(n)=5−2·0.61n cos(0.10n)
(b) x(n)=5−2.50·0.61n cos(0.17n) (d) x(n)=5·e−n −2·0.61n cos(0.17n)

Ejercicio 1A-4
Indique cuál es ecuación en diferencias de la siguiente función de transferencia: G(z) =
Y (z) 0.30z−0.40
= .
X(z) z 2 −0.10z+0.10
(a) y[n] = 0.1y[n−1]−0.1y[n−2]+0.3x[n−1]−0.4x[n−2]
(b) y[n] = −0.1y[n−1]+0.1y[n−2]−0.3x[n−1]+0.4x[n−2]

(c) y[n] = 0.1x[n−1]−0.1x[n−2]+0.3y[n−1]−0.4y[n−2]


(d) Ninguna de las otras es correcta

Ejercicio 1A-5
Indique qué función de transferencia no da lugar a una respuesta al escalón con tiempo de
establecimiento Ts =1.06s:
29.06 29.06
(a) G(s)= 2 (c) G(s)= 2
s +3.77s+29.06 s +7.54s+29.06
s+29.06 3.77
(b) G(s)= (d) G(s)=
s2 +7.54s+29.06 s+3.77

Ejercicio 1A-6
157.40
Dado el sistema con función de transferencia G(s)= , indique cuál
s3 +10.40s2 +40.46s+157.40
de las siguientes afirmaciones es correcta.
(a) El sistema se puede aproximar por un sistema de 2◦ orden sub-amortiguado.
(b) El sistema se puede aproximar por un sistema de 1er orden.

88
A. PRUEBA 1 (TEST)

(c) El sistema no se puede aproximar por un sistema de 1er o 2◦ orden sub-amortiguado,


pero es estable.

(d) El sistema es inestable.

Ejercicio 1A-7
Indique qué polos debe tener un sistema discreto para que su respuesta sea de 2◦ or-
den subamortiguada con tiempo de establecimiento Ts =1.12s y porcentaje de sobreimpulso
OS=12.2 %. Suponga que el periodo de muestreo del sistema es Tm = 0.1s.
(a) p1,2 = 0.60 ± 0.36i (c) p1,2 = −0.60 ± 0.36i

(b) p1,2 = −3.57 ± 5.33i (d) p1,2 = 3.57 ± 5.33i

Ejercicio 1A-8
8(s + 5) 1
Dado el sistema realimentado de la figura, donde Gc (s) = y Gp (s) = ,
s s(s + 4)
indique cuál de las siguientes afirmaciones es correcta.

R(s) E(s) C(s)


+ Gc (s) Gp (s)

(a) El error en estado estacionario con cualquier entrada es infinito.


(b) El error en estado estacionario con la entrada escalón es constante.
(c) El error en estado estacionario con la entrada rampa es constante.

(d) El error en estado estacionario con la entrada parábola es constante.

Ejercicio 1A-9
El siguiente sistema realimentado contiene un controlador discreto, Gc (z), cuyo periodo de
muestreo es Tm = 0.1s, y una planta, cuya función de transferencia en el dominio conti-
0.40z−0.20 8
nuo es Gp (s), siendo Gc (z)= 2 y Gp (s)= . Indique cuál de las siguientes
z −0.70z+0.12 s+5
afirmaciones es correcta.

Controlador Planta
R(z) C(z)
+ Gc (z) D/A Gp (s) A/D

89
Anexo 1. Pruebas curso 2019-2020

(a) El sistema es de tipo 0 y su error en estado estacionario es 0.57.


(b) El sistema es de tipo 0 y su error en estado estacionario es 0.77.

(c) El sistema es de tipo 1 y su error en estado estacionario es 0.57.


(d) Ninguna de las otras afirmaciones es correcta.

Ejercicio 1A-10
Dado el sistema mecánico de la figura com-
K x
puesto por una masa M , con rozamiento b y un
resorte con constante K, donde M =70.8 Kg,
b=17.2 N ·s/m y K=8.4 N/m. Indique cuál de
F
las siguientes afirmaciones sobre el desplaza-
miento provocado (x) al aplicarle una fuerza M
(F ) es correcta.
b

(a) La respuesta natural del sistema es oscilatoria con envolvente exponencial decreciente.
(b) La respuesta natural del sistema es una oscilación mantenida.
(c) La respuesta natural del sistema es una exponencial decreciente.
(d) La respuesta natural del sistema es la suma de dos exponenciales decrecientes.

B. Prueba 2 (test)
Ejercicio 1B-1
La planta con función de transferencia Gp (s) tiene un polo en s=pp y el sistema realimentado
KGp (s)
Gf b (s)= 1+KG p (s)
tiene un polo en s=pf b . Indique cuál de las siguientes afirmaciones es
correcta.
(a) ̸ (Gp (pf b ))=π (c) ̸ (Gp (pp ))=π
(b) ̸ (Gf b (pf b ))=π (d) Ninguna de las otras.

Ejercicio 1B-2
La planta con función de transferencia Gp (s) tiene dos polos reales negativos diferentes y
no tiene ceros. Indique cuál de las siguientes afirmaciones sobre el sistema realimentado
KGp (s)
Gf b (s)= 1+KG p (s)
es correcta.

(a) El sistema siempre será estable independientemente del valor de K.

90
B. PRUEBA 2 (TEST)

(b) El sistema será inestable a partir de cierto valor de K.


(c) La respuesta del sistema siempre es de 2◦ orden sub-amortiguada.

(d) Ninguna de las otras.

Ejercicio 1B-3
En la figura se muestra representado el lugar de las raíces de G(s) con la función rlocus de
Matlab. Indique cuál de las siguientes afirmaciones sobre el sistema realimentado con control
proporcional, con constante de proporcionalidad K, es correcta.

(a) Con K=K2 la respuesta del sistema tendrá el mayor sobre-impulso.

(b) Si K>K4 el sistema es inestable.


(c) Con K=K3 la respuesta del sistema tendrá el menor tiempo de establecimiento.
(d) Ninguna de las otras.

Root Locus

0.89 0.8 0.68 0.54 0.38 0.18


6

0.95
4

K3 K2
Imaginary Axis (seconds -1 )

0.986
2

14 12 10 8 6 4 2
0

-2
0.986
K4 K1
-4
0.95

-6
0.89 0.8 0.68 0.54 0.38 0.18
-15 -10 -5 0
Real Axis (seconds -1 )

Ejercicio 1B-4
Indique cuál de las siguientes afirmaciones sobre los controladores proporcional-integral en
un sistema continuo no es correcta.

(a) Cuanto más cerca esté el cero del controlador del polo en el origen menos se tardará
en alcanzar el estado estacionario.
(b) Cuanto más cerca esté el cero del controlador del polo en el origen menos variará la
posición de los polos obtenidos con el control proporcional.

91
Anexo 1. Pruebas curso 2019-2020

(c) El cero del controlador siempre debe ser negativo.


(d) Ninguna de las otras.

Ejercicio 1B-5
El diagrama polos-ceros de la función de transferencia de la planta Gp (s) y su representación
vectorial en el punto scl se muestra en la figura. ¿Qué ángulo debe tener la representación
vectorial del cero, sz , de un controlador proporcional-derivativo (PD), GP D (s)=K(s − sz ),
para que la función de transferencia del sistema realimentado unitariamente con control PD
aplicado a la planta, Gp (s), pueda tener un polo en scl ?
(a) θsz =π−θc1 +θp1 +θp2 (c) θsz =π−θc1 −θp1 −θp2

(b) θsz =π+θc1 −θp1 −θp2 (d) Ninguna de las otras.


scl

mp2 mp1 mc1

θp2 θp1 θc1

p2 p1 c1 σ

Ejercicio 1B-6
(z+z1 )
En la figura se muestra representado el lugar de las raíces de G(z)= (z−p 1 )(z−p2 )
. Indique cuál
de las siguientes afirmaciones es correcta.
(a) Si K<1.8 la respuesta propia del sistema en lazo cerrado siempre tiende a desaparecer.
(b) Si K<4.7 el sistema en lazo cerrado siempre será estable.

(c) Si K=0.05 el sistema en lazo cerrado solo tiene un polo.


(d) Ninguna de las otras.

92
C. PRUEBA 2 (EJERCICIOS)

Root Locus

0.8

0.6 K=1.8
0.4

Imaginary Axis
0.2

-0.2

-0.4
K=4.7 K=0.05
-0.6

-0.8

-1

-1 -0.5 0 0.5 1
Real Axis

C. Prueba 2 (ejercicios)
Diseñe el controlador, Gc (z), para la planta, cuya función de transferencia en el dominio continuo
0.1
es Gp (s)= s2 +4s+5 , siguiendo el esquema de sistema con realimentación unitaria que se muestra, que
operará con un periodo de muestreo de Tm =0.1s. La respuesta al escalón del sistema realimentado
deberá cumplir las siguientes especificaciones:
Tiempo de establecimiento Ts ≤1s.
Porcentaje de sobre-impulso OS≤10 %.
Error en estado estacionario nulo.

Controlador Planta
R(z) C(z)
+ Gc (z) D/A Gp (s) A/D

Ejercicio 1C-1
Suponga que Gc (z) es un controlador proporcional-derivativo (PD):
(a) Indique qué especificaciones de las indicadas se pueden conseguir con un control PD.
Justifique su respuesta.

(b) Diseñe el controlador PD para que se cumplan las especificaciones indicadas en el


apartado anterior e intente mejorar las que no se puedan cumplir. Indique el valor de
la constante de proporcionalidad y el valor de los ceros del controlador y demuestre el
cumplimiento de las especificaciones representando la respuesta al escalón y dando los
valores numéricos de los valores obtenidos para las tres especificaciones.

93
Anexo 1. Pruebas curso 2019-2020

Ejercicio 1C-2
Suponga que Gc (z) es un controlador proporcional-integral-derivativo (PID):
(a) Partiendo del controlador PD del ejercicio 1 diseñe el controlador PID para que se
cumplan las especificaciones. Indique el valor de la constante de proporcionalidad y el
valor de los ceros del controlador y demuestre el cumplimiento de las especificaciones
representando la respuesta al escalón y dando los valores numéricos de los valores
obtenidos para las tres especificaciones.
(b) Obtenga los valores de las contantes Kp , Ki y Kd del controlador PID diseñado en el
apartado anterior.

Ejercicio 1C-3
Suponga que Gc (z) es un controlador proporcional-integral-derivativo (PID):
(a) Diseñe el controlador PID para que se cumplan las especificaciones utilizando el método
de diseño empírico. Indique el valor de las constantes Kp , Ti y Td del controlador PID y
demuestre el cumplimiento de las especificaciones representando la respuesta al escalón
y dando los valores numéricos de los valores obtenidos para las tres especificaciones.

D. Prueba de recuperación (test)


Ejercicio 1D-1
Indique cuál es la expresión en el dominio del tiempo de la respuesta al escalón del sistema
C(z) 0.8z−0.08z
discreto cuya función de transferencia es G(z)= = .
R(z) z 2 −0.2z+0.1
(a) c(n)=0.8+0.84·0.32n cos(1.25n + ϕ) (c) c(n)=0.8·0.32n cos(1.25n + ϕ)
(b) c(n)=1+0.84·0.32n cos(1.25n + ϕ) (d) c(n)=0.8+0.84·0.1n cos(0.3n + ϕ)

Ejercicio 1D-2
C(s) 3(s + 5)
Dado el sistema realimentado de la figura, Gf b = , donde Gc (s) = , Gp (s) =
R(s) s
1 6(s + 5)
y H(s) = . Indique cuál de las siguientes afirmaciones es correcta.
(s + 7) s(s + 6)

R(s) E(s) C(s)


+ Gc (s) Gp (s)

Cr (s)
H(s)

(a) Ninguna de las otras.

94
D. PRUEBA DE RECUPERACIÓN (TEST)

3s3 +33s2 +90s


(b) La función de transferencia es Gf b (s)=
s4 +13s3 +24s2 −180s−450
(c) El sistema tiene polos complejos en p1=−0.65±j6.05.
(d) El error en estado estacionario del sistema debido a la entrada escalón es nulo.

Ejercicio 1D-3
C(s)
Indique cuál es ecuación en diferencias del controlador proporcional integral: GP I (z)= =
E(z)
27(z−0.91)
.
z−1
(a) c[n]=c[n−1]+27e[n]+24.57e[n−1] (c) c[n]=c[n−1]−27e[n]−24.57e[n−1]
(b) c[n]=c[n−1]+27e[n]+0.91e[n−1] (d) Ninguna de las otras es correcta

Ejercicio 1D-4
Dado el sistema discreto muestreado a Tm =0.1s y con función de transferencia G(z) =
0.7z 2
, indique cuál de las siguientes afirmaciones es correcta.
z 3 −2.53z 2 +2.25z−0.7
(a) El sistema se puede aproximar por un sistema de 2◦ orden sub-amortiguado.
(b) El sistema se puede aproximar por un sistema de 1er orden.
(c) El sistema no se puede aproximar por un sistema de 1er o 2◦ orden sub-amortiguado,
pero es estable.
(d) El sistema es inestable.

Ejercicio 1D-5
La función de transferencia de un modor DC que relaciona la velocidad angular obtenida con
el voltaje aplicado al motor es Gω (s) = VΩ(s) 39
(s) = (s+5)(s+15) . Si se desea realizar un control de la
posición angular del motor con un sistema realimentado unitariamente en el que se requiere
que el error en estado estacionario debido a la entrada escalón sea nulo, indique cuál de las
siguientes afirmaciones es correcta.

(a) El controlador puede ser P o PD.


(b) El controlador solo puede ser PI o PID..
(c) El controlador solo puede ser PID.
(d) Ninguna de las otras afirmaciones es correcta.

95
Anexo 1. Pruebas curso 2019-2020

Ejercicio 1D-6
Dado el sistema mecánico de la figura com-
K x
puesto por una masa M , con rozamiento b y un
resorte con constante K, donde M =70.8 Kg,
b=17.2 N ·s/m y K=8.4 N/m. Indique cuál de
F
las siguientes afirmaciones sobre el desplaza-
miento provocado (x) al aplicarle una fuerza M
(F ) es correcta.
b

(a) La respuesta natural del sistema es oscilatoria con envolvente exponencial decreciente.
(b) La respuesta natural del sistema es una oscilación mantenida.

(c) La respuesta natural del sistema es una exponencial decreciente.


(d) La respuesta natural del sistema es la suma de dos exponenciales decrecientes.

Ejercicio 1D-7
Indique cuál de las siguientes afirmaciones es correcta sobre la ecuación en diferencias de un
controlador: c[n]=10(e[n] − 0.7e[n − 1]).

(a) El controlador es PD.

(b) El controlador es PI.


(c) El controlador no es implementable.
(d) Ninguna de las otras afirmaciones es correcta.

Ejercicio 1D-8
Dado un sistema realimentado unitariamente que contiene un controlador proporcional, con
constante de proporcionalidad K, y una planta, cuya representación del lugar de las raíces
se muestra en la figura, indique cuál de las siguientes afirmaciones no es correcta.
(a) Si K=K1 o K=K2 las respuestas de los sistemas resultantes tienen similar porcentaje
de sobre-impulso.
(b) El sistema será inestable a partir de cierto valor de K.

(c) El cero no se desplaza hacia la izquierda por el eje real si K>0.


(d) Alguna de las otras afirmaciones es incorrecta.

96
D. PRUEBA DE RECUPERACIÓN (TEST)

Root Locus
1
0.5 /T
0.6 /T 0.4 /T
0.8 0.1 /T
0.7 /T 0.3
0.2
0.6
K2 0.3 K1
0.8 /T 0.4 0.2 /T
0.5
0.4 0.6
0.7
0.9 /T 0.8 0.1 /T

Imaginary Axis
0.2 0.9
1 /T
0
1 /T
-0.2
0.9 /T 0.1 /T
-0.4
0.8 /T 0.2 /T
-0.6

0.7 /T 0.3 /T
-0.8
0.6 /T 0.4 /T
0.5 /T
-1
-1 -0.5 0 0.5 1
Real Axis

Ejercicio 1D-9
El diagrama polos-ceros de la función de transferencia de la planta Gp (s) y su representación
vectorial en el punto scl se muestra en la figura. ¿Qué condición se debe cumplir para que al
incluir la planta, Gp (s), en un sistema realimentado unitariamente con control proporcional-
derivativo (PD), GP D (s)=K(s − sz ), el sistema pueda tener un polo en scl ?

mp1 mp2 mp1 mp2


(a) |GP D (scl )|= (c) |GP D (scl )|=
mc1 Kmc1
Kmc1
(b) |GP D (scl )|= (d) Ninguna de las otras
mp1 mp2

scl

mp2 mp1 mc1

θp2 θp1 θc1

p2 p1 c1 σ

Ejercicio 1D-10
Un controlador PID diseñado por el método de diseño independiente de las acciones de
control PI y PD, en el que se obtiene GP D (s)=8(s + cP D ) y GP I (s)= 4(s+0.2)
s , se desea
modelar utilizando la función pid de Matlab. Indique cuál de los valores de las constantes

97
Anexo 1. Pruebas curso 2019-2020

necesarias para utilizar dicha función es correcto.


(a) Kp=294.4. (c) Kp =32.
(b) Kd =8. (d) Ninguna de las otras es correcta.

E. Prueba de recuperación (ejercicios)


Diseñe el controlador PID discreto, Gc (z), para la planta, cuya función de transferencia en el
0.1
dominio continuo es Gp (s)= s2 +40s+500 , siguiendo el esquema de sistema con realimentación unitaria
que se muestra, para que opere con una frecuencia de muestreo de fm =100Hz. La respuesta al escalón
del sistema realimentado deberá cumplir las siguientes especificaciones:
Tiempo de establecimiento Ts ≤0.1s.

Porcentaje de sobre-impulso OS≤10 %.


Error en estado estacionario nulo.

Controlador Planta
R(z) C(z)
+ Gc (z) D/A Gp (s) A/D

Ejercicio 1E-1
Utilice el método de diseño independiente de las acciones de control PD y PI y justifique
todas las decisiones que tome en el proceso de diseño. Demuestre el cumplimiento de las
especificaciones representando la respuesta al escalón y dando los valores numéricos de los
valores obtenidos para las tres especificaciones.

Ejercicio 1E-2
Calcule analíticamente, utilizando Matlab, el error en estado estacionario del sistema debido
a la entrada rampa r(t)=t·u(t).

98
Anexo
2
Pruebas curso 2020-2021

***
A. Prueba 1
Ejercicio 2A-1
Al calcular con Matlab los residuos y los polos de la
R(s) C(s)
respuesta al escalón unitario del sistema G(s) se obtiene G(s)
r=[−1 −10 1] y p=[−10 −10 0].

(a) Escriba la expresión en el dominio temporal de la salida del sistema c(t).

(b) ¿Qué tipo de sistema es G(s)?

Ejercicio 2A-2
R(s) E(s) C(s)
Obtenga la función de trasferencia, + Gc (s) Gp (s)
Gf b = C(s)
R(s) , del sistema realimenta-

do de la figura en función de Gc (s), Cr (s)


Gp (s) y H(s). H(s)

Ejercicio 2A-3
10(s2 +2.5s+10) R(s) C(s)
Dado el sistema G(s) = : G(s)
(s+10)(s2 +2s+5)

(a) Indique el tipo de sistema y enumere las características que conozca de G(s).
(b) Calcule la duración de la respuesta transitoria de G(s).

99
Anexo 2. Pruebas curso 2020-2021

(c) Calcule la ganancia de G(s).

Ejercicio 2A-4
z −0.2z+0.42
Obtenga la ecuación en diferencias de la función de transferencia G(z)= C(z)
R(z) = z 2 −0.2z+0.3 .

Ejercicio 2A-5
Indique qué polos debe tener un sistema discreto para que su respuesta sea de 2◦ orden
subamortiguada con tiempo de establecimiento Ts =1s y tiempo de pico Tp =0.5s. Suponga
que el periodo de muestreo del sistema es Tm = 0.01s.

Ejercicio 2A-6
El siguiente sistema realimentado, cuyo periodo de muestreo es Tm = 0.1s, contiene un
0.4z−0.2
controlador discreto, Gc (z)= z2 −0.6z+0.12 , y una planta, cuya función de transferencia discre-
0.5
tizada es Gp (z)= z−0.67 , dando lugar a la siguiente función de transferencia en lazo cerrado
Gf b = C(z) 0.19(z−0.5)
R(z) = (z−0.55)(z 2 −0.71z+0.32) .

Controlador Planta
R(z) C(z)
+ Gc (z) D/A Gp (s) A/D

(a) Justifique si el sistema es o no estable.

(b) Si el sistema es estable indique de qué tipo de sistema se trata según el tipo de error
en estado estacionario y calcule dicho error.

Ejercicio 2A-7

Dado el sistema mecánico de la figura com-


puesto por una masa M y un resorte con cons-
tante K, donde M =2 Kg y K=0.01 N/m.
K
(a) Obtenga la función de transferencia del
sistema , G(s)= ∆X(s)
F (s) , que relaciona el
x0

incremento de desplazamiento realizado M x=x0 +∆x


respecto al punto de equilibrio x0 con la
fuerza aplicada. F

B. Escriba la expresión de la respuesta temporal del sistema cuando se le aplica una fuerza
f (t)=u(t) (no calcule los residuos de las fracciones simples, sino que asuma que tienen

100
B. PRUEBA 2

cierto valor ki ).
C. Indique de qué tipo de sistema se trata.

D. Razone si el comportamiento del sistema es el esperado en un sistema similar real. Si


no lo es, indique cómo habría que modificar el modelo mecánico para que refleje mejor
el comportamiento del sistema.

B. Prueba 2
Ejercicio 2B-1
Controlador Planta
a
A la planta con función de transferencia G(s)= s+a R(s)
+ G(s)
C(s)
K
se le aplica control proporcional. −

Indique cuales de los parámetros de la respuesta transitoria, Ts , Tr , Tp , %OS y es (∞),


se pueden mejorar modificando el valor de la constante de proporcionalidad, K. Justifique
la respuesta.

Ejercicio 2B-2
A la planta con función de transferencia
8 Controlador Planta
G(s)= (s+5)(s+10) se le aplica un control R(s) C(s)
+ GP I (s) G(s)
proporcional-integral (PI), donde GP I (s)= K(s+4)
s , −

siguiendo el diagrama de bloques de la figura.

(a) Dibuje el lugar de las raíces del sistema realimentado.


(b) Indique el rango de valores de la constante de proporcionalidad K en el que el sistema
es estable. Justifique su respuesta.
(c) Dibuje los polos del sistema realimentado cuando K tome un valor muy grande y
justifique si para ese valor de K el sistema se puede aproximar por uno de 2º orden
sub-amortiguado.

Ejercicio 2B-3
A la planta con función de transferencia
4(z+0.75)
G(z)= (z−0.5)((z−0.75) se le aplica un con- Controlador Planta
R(z) C(z)
trol proporcional-derivativo (PD), donde −
+ GP D (z) G(z)

GP D (z)=K (z−zz
c)
, siguiendo el diagrama de
bloques de la figura.

(a) Dibuje en el plano Z el punto en el que el sistema realimentado (Gf b (z) = C(z)
R(z) ) debe
disponer de un polo para que si fuese de 2º orden sub-amortiguado su respuesta tenga

101
Anexo 2. Pruebas curso 2020-2021

un tiempo de establecimiento Ts =0.8 segundos y OS %=10 % (ζ=0.6). Tenga en cuenta


que el tiempo de muestreo del sistema es de Tm =0.1 segundos.

(b) Obtenga el valor del cero del controlador PD, zc , para que Gf b (z) pueda disponer de
un polo en zp =0.4 + 0.3i. Tenga en cuenta que ̸ G(zp )=2, 21rad (126, 7o ).
(c) Obtenga el valor de K para que Gf b (z) disponga de un polo en zp . Tenga en cuenta
que |G(zp )|=32, 6.

1
0.5 /T
0.6 /T 0.4 /T
0.8 0.7 /T 0.1
0.3 /T
0.2
0.6 0.3
0.8 /T 0.4 0.2 /T
0.5
0.4 0.6
0.7
0.9 /T 0.8 0.1 /T
0.2 0.9
1 /T
0
1 /T

-0.2
0.9 /T 0.1 /T
-0.4

0.8 /T 0.2 /T
-0.6

-0.8 0.7 /T 0.3 /T


0.6 /T 0.4 /T
0.5 /T
-1
-1 -0.5 0 0.5 1

Ejercicio 2B-4
En la figura se muestra el esquema de implementación mediante un microcontrolador de un
lazo de control digital. La señal de referencia y la del sensor se digitalizan con un conversor
A/D y la acción de control se aplica mediante un conversor D/A. La parte del control digital
se implementa en una tarea (denominada Lazo_control) que se ejecuta cada vez que un
Timer genera una interrupción a la frecuencia de muestreo fm =1/Tm .
Escriba el pseudo-código que habría que programar en la tarea Lazo_control para imple-
mentar el lazo de control, teniendo en cuenta que se va a aplicar un control PD siguiendo
la función de transferencia Gc (z)= VE(z)
(z)
=Kp + Kd · Tz−1
m ·z
, donde Kp y Kd son las constantes
del control proporcional y derivativo, respectivamente. Asuma que puede leer el valor del
conversor A/D con la función Read_ADC(ch_x) y escribir el conversor D/A con la función
Write_DAC(ch_x,valor). La entrada de referencia está conectada al A/D del ch_0 y la del
sensor al ch_1. El D/A está conectado al ch_0.

MICROPROCESADOR
Controlador Planta
R(s) R(z) E(z) V (z) C(s)
A/D + Gc (z) D/A Gp (s)

Sensor
Cr (z)
A/D Gs (s)
Lazo_control

Interrupción Tm seg.

102
C. PRUEBA DE RECUPERACIÓN

C. Prueba de recuperación

Ejercicio 2C-1
A la planta con función de transferencia
150
G(s)= (s+3)(s+5)(s+10) se le aplica un control Controlador Planta
R(s) C(s)
proporcional-integral-derivativo (PID), donde + GP ID (s) G(s)

GP ID (s)=K (s+6)(s+2)
s , siguiendo el diagrama de
bloques de la figura.

(a) Dibuje el lugar de las raíces del sistema realimentado Gf b (s)= C(s)
R(s) .

(b) Razone si en el sistema Gf b (s) hay que aumentar o disminuir el valor de K para que
se produzcan cada uno de los siguientes efectos:
a) Disminución del tiempo de establecimiento.
b) Disminución del tiempo de pico.
c) Reducción del factor de sobre-amortiguamiento.

Ejercicio 2C-2

Dada la representación del lugar de las raíces mostrada


en la figura:
Root Locus

0.8

(a) Deduzca la expresión de la función de transferen- 0.6

cia del sistema en lazo abierto GOL (z). 0.4


K2
Imaginary Axis

0.2
−0.5 0.2 0.7 0.8
(b) Dibuje el diagrama de bloques del sistema cuyo lu- 0

-0.2

gar de las raíces se representa en la figura. Asuma -0.4


K3 K1
que la realimentación es unitaria. -0.6

-0.8

(c) Indique el número de polos y ceros que tiene la -1

-1.5 -1 -0.5 0 0.5 1

función de transferencia del sistema realimentado.


Real Axis

(d) Indique para qué rango de valores de K el sistema es estable.


(e) Indique para qué rango de valores de K la respuesta al escalón del sistema se puede
representar con esta expresión genérica c[n]=(1 + g1 ·an1 + g2 ·an2 + g3 ·an3 )·u[n], siendo ai
y gi valores constantes y cumpliéndose que 0<ai <1. Justifique la respuesta.
(f) Indique cuál es el error en estado estacionario del sistema a la entrada escalón para los
distintos valores de la constante K del controlador.

103
Anexo 2. Pruebas curso 2020-2021

Ejercicio 2C-3
A la planta con función de transferencia
z
G(z)= z−0.75 se le aplica un control propor-
cional (P) siguiendo el diagrama de bloques de Controlador Planta
R(z) C(z)
la figura para que el tiempo de establecimiento + K G(z)

del sistema sea Ts =0.05seg. Tenga en cuenta
que el periodo de muestreo del controlador es
Tm =0.01seg.

(a) Dibuje el lugar de las raíces del sistema realimentado e indique de qué tipo de sistema
se trata.
(b) Obtenga el valor de K para que la respuesta del sistema realimentado con control
proporcional cumpla el tiempo de establecimiento indicado.
(c) Calcule el error en estado estacionario es (∞) del sistema al aplicarle la K calculada.

(d) Escriba la expresión de la respuesta temporal al escalón unitario del sistema reali-
mentado al aplicarle la K calculada (si desconoce el valor del residuo al hacer las
descomposición en fracciones simples, déjelo como una constante).
(e) Dibuje el escalón unitario y la respuesta del sistema a dicho escalón. Dimensiónela
adecuadamente e indique en el dibujo dónde se mide el tiempo de establecimiento y el
error en estado estacionario.
(f) Escriba la función de transferencia (en el dominio z) del controlador que debería apli-
carse a la planta G(z) para que el error en estado estacionario (calculado en C) sea
nulo.

104
Anexo
3
Pruebas curso 2021-2022

***
A. Prueba 1
Ejercicio 3A-1
La respuesta al impulso (r[n] = δ[n]) de un sistema nos
permite obtener la respuesta natural de dicho sistema. R(z) C(z)
Al calcular con Matlab los residuos y los polos de la res- G(z)
puesta al impulso del sistema G(z) se obtiene r=[4 −3]
y p=[1 0.75].
C(z)
(a) Escriba la expresión en el dominio Z de la función de transferencia G(z) = R(z) .

(b) Escriba la expresión en el dominio temporal de la salida del sistema c[n].

Ejercicio 3A-2
Obtenga la función de trasferencia,
Transductor Controlador Planta
Gf b = C(z)
R(z) , del sistema realimentado R(z) Tr (z) E(z) C(z)
3 + Gc (z) Gp (z)
de la figura en función de Gc (z) y −
Sensor
Gp (z). Utilice las variables mostra- Sc (z)

das en la figura para realizar el aná- 4·z −1

lisis.

Ejercicio 3A-3
La respuesta genérica al escalón unitario de un sistema de 2◦ orden sub-amortiguado es
c(t) = k0 + k1 e−4t sin(6t + ϕ1 ). Obtenga el tiempo de establecimiento y tiempo de pico de la

105
Anexo 3. Pruebas curso 2021-2022

respuesta temporal del sistema.

Ejercicio 3A-4

Dado el sistema G cuya ecuación en diferencias es: R(z) C(z)


G(z)
c[n]= 0.75·c[n−1]+ r[n]− r[n−1]

C(z)
(a) Escriba la expresión en el dominio Z de la función de transferencia G(z) = R(z) .

(b) Indique si el sistema es estable. Justifique su respuesta.

Ejercicio 3A-5
10
Dado el sistema G(s) = . Calcule la dura- R(s) C(s)
s2 +11s+10 G(s)
ción de la respuesta transitoria de G(s).

Ejercicio 3A-6
El siguiente sistema realimentado contiene un controlador, Gc (s)= s+1 10
s , y una planta, Gp (s)= s+5 ,
dando lugar a la siguiente función de transferencia en lazo cerrado Gf b (s)= C(s) 10(s+1)
R(s) = (s+0.7)(s+14.3) .

R(s) E(s) C(s)


+ Gc (s) Gp (s)

(a) Indique de qué tipo de sistema se trata según el tipo de error en estado estacionario.
Justifique su respuesta.
(b) Calcule el error en estado estacionario del sistema.
(c) Calcule la ganancia del sistema.

Ejercicio 3A-7

Una masa (M ) colgada de un muelle (con constante K) se puede


modelar como el sistema mecánico de la figura, donde b es el
rozamiento del aire. En dicho sistema la función de transferencia K b
que relaciona el incremento de desplazamiento realizado respecto
al punto de equilibrio x0 con la fuerza aplicada es: x0 =l0

∆X(s) 1 M x=x0 +∆x


M
G(s)= = 2 b K
.
F (s) s +M s+ M F
Datos: M =2 Kg; b=0.1 N ·s/m; K=1 N/m.

106
B. PRUEBA 2

(a) Describa cómo responde el sistema si se le aplica una fuerza en un instante temporal
(ej. f (t) = kf · δ(t), siendo kf una constante).

(b) ¿Depende la frecuencia de oscilación de la masa del valor kf ? Justifique su respuesta.

B. Prueba 2

Ejercicio 3B-1
A continuación se muestra el diagrama del lugar de
las raíces de un sistema de control de la posición Controlador Planta
R(s) C(s)
de un motor (cuyo diagrama de bloques se presenta + GI (s) G(s)

en la figura adjunta), formado por un controlador
integral (I), GI (s), y el motor, G(s).

(a) Escriba la función de transferencia en lazo abierto del sistema, GOL (s).

(b) Escriba las funciones de transferencia GI (s) y G(s).


(c) ¿Puede diseñarse el sistema realimentado para que su respuesta tenga un tiempo de
establecimiento máximo de 5 s y un factor de sobreamortiguemiento entre 5 y el 10 %?
Justifique la respuesta.
(d) ¿Puede diseñarse el sistema realimentado para que su respuesta tenga un tiempo de
establecimiento de 1 s. Justifique la respuesta.
(e) Calcule el valor de K para que el sistema disponga de un polo en sp = − 1.5±j2.

107
Anexo 3. Pruebas curso 2021-2022

Plano s
6 0.6
0.5 0.4 0.3 0.2 0.1
0.7

0.8
4 sp
0.9

j (seconds -1 )
7 6 5 4 3 2 1
0

-2

0.9
-4
0.8

0.7
0.5 0.4 0.3 0.2 0.1
-6 0.6
-6 -4 -2 0
(seconds -1 )

Ejercicio 3B-2
Un sistema discreto, cuya frecuencia de mues-
treo es fm =10 Hz, dispone de una plan-
Controlador Planta
0.12z 2
ta, G(z)= (z−0.6)(z−0.7) , y un controlador R(z) C(z)
+ GP I (z) G(z)
proporcional-integral (PI), GP I (z)=K z−0.8
z−1 ,

que están conectados siguiendo el diagrama de


bloques de la figura.
(a) Exprese matemáticamente la condición que debe cumplir el punto zp =0.5+j0.3 para
que pertenezca al lugar de las raíces del sistema Gf b (z)= C(z)
R(z) y explique cómo realizar
el cálculo. Puede utilizar el siguiente diagrama del plano Z para realizar la explicación.
(b) Suponga que zp es un posible polo de Gf b (z). Represente el lugar de las raíces del
sistema.
(c) Obtener el valor de K para que el error en estado estacionario ante una entrada que
cambia con velocidad constante sea del 5 %.
(d) Suponga que el sistema dispone de polos en zp , zp∗ (conjugado de zp ) y en 0.81. Obtenga
el tiempo de establecimiento del sistema.

108
Plano z
1
0.5 /T
0.9 0.6 /T 0.4 /T
B. PRUEBA 2
0.8 0.7 /T 0.1
0.3 /T
0.7 0.2
(e) Suponga que el sistema dispone de polos en zp , zp∗ y en
0.30.81. Escriba la respuesta
0.6 genérica del sistema cuando se excita con una entrada
temporal escalón.
0.8 /T 0.4 0.2 /T
0.5 0.5
0.4 0.6 zp
0.3 0.9 /T 0.7
0.8 0.1 /T
0.2 0.9
0.1
1 /T
(z)

0
1 /T
-0.1
-0.2
-0.3 0.9 /T 0.1 /T
-0.4
-0.5
0.8 /T 0.2 /T
-0.6
-0.7
-0.8 0.7 /T 0.3 /T
-0.9 0.6 /T 0.4 /T
0.5 /T
-1
0

1
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
-1
-0.9
-0.8
-0.7
-0.6
-0.5
-0.4
-0.3
-0.2
-0.1

(z)

Ejercicio 3B-3
A la planta con función de transferencia
8
G(s)= (s+5)(s+10) se le aplica un control Controlador Planta
R(s) C(s)
proporcional-integral (PI), donde GP I (s)= K(s+4)
s , −
+ GP I (s) G(s)

siguiendo el diagrama de bloques del sistema


realimentado mostrado en la figura.
Utilizando las funciones de Matlab tf, zpk, minreal, rlocus y pole escriba el código de
Matlab para modelar las siguientes acciones del sistema realimentado:
(a) Representar el lugar de las raíces.
(b) Obtener la función de transferencia del sistema realimentado cuando K = 2.
(c) Calcular los polos del sistema realimentado.

109
Anexo 3. Pruebas curso 2021-2022

Ejercicio 3B-4
Complete el código C de la tarea de Free-RTOS Task_Controller para implementar un lazo
de control que dispone de un controlador PD, cuya función de transferencia es Gc (z) =
V (z) −2
E(z) = 1.5 + 0.1·(1 − z ), tal y como se muestra en la figura. Se dispone de las funciones
lee_ADCr y lee_ADCr, que leen los valores digitalizados por los conversores ADCr y ADCs,
y la función escribe_PWM(float v_pwm), que configura el PWM con el valor de v_pwm.
MICROPROCESADOR

Controlador Planta
R(s) R(z) E(z) V (z) C(s)
ADCr + Gc (z) PWM MOTOR

Cr (z)
ADCs SENSOR
Task_controller

// Declaracion de variables globales

void Task_Controller(void* arg) {


// Declaracion de variables de la tarea
float ref;
float c_r;

while(1) {
// Lee referencia
ref = lee_ADCr();
// Lee sensor
c_r = lee_ADCs();
// Calculo de error
// Accion de control
// Aplicar resultado a la planta
vTaskDelay(100 / portTICK_PERIOD_MS);
}
}

110

También podría gustarte