Nothing Special   »   [go: up one dir, main page]

Manual Practicas Dinamica Julio Ramirez

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 305

TECNOLÓGICO NACIONAL DE MÉXICO

Instituto Tecnológico de Nogales

INSTITUTO TECNOLÓGICO DE NOGALES

DINÁMICA DE SISTEMAS
PROGRAMA 5
MANUAL DE PRÁCTICAS

REPORTE PARCIAL
DE AÑO SABÁTICO

QUE PRESENTA

DR. JULIO CÉSAR RAMÍREZ VALENZUELA

H. NOGALES, SONORA. FEBRERO 2018

Av. Instituto Tecnológico # 911 Col. Granja, C.P. 84065, Nogales, Sonora Tels:
(631) 311-18-70, Fax: (631) 314-56-16, email: direccionitn@itnogales.edu.mx
www.itnogales.edu.mx
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Nogales

DINÁMICA DE SISTEMAS
PROGRAMA 5
MANUAL DE PRÁCTICAS

CLAVE DE LA MATERIA: 3mc5


INGENIERIA MECATRÓNICA: IMCT-2010-229

REPORTE PARCIAL
DE AÑO SABÁTICO

QUE PRESENTA

DR. JULIO CÉSAR RAMÍREZ VALENZUELA

DOCENTE DEL DEPARTAMENTO DE METAL MECÁNICA


R.F.C. : RAVJ620412AR2
CLAVE: E381700.0145499

FECHA DE INICIO AGOSTO DE 2017


FECHA DE TERMINACIÓN FEBRERO DE 2018

H. NOGALES, SONORA. FEBRERO 2018

Av. Instituto Tecnológico # 911 Col. Granja, C.P. 84065, Nogales, Sonora Tels:
(631) 311-18-70, Fax: (631) 314-56-16, email: direccionitn@itnogales.edu.mx
www.itnogales.edu.mx
AGRADECIMIENTOS

Agradezco a las autoridades académicas del Instituto Tecnológico de Nogales,


por la oportunidad que me han dado de desarrollar este manual de prácticas de la
materia de Dinámica de Sistemas. Que ha significado para mi, una oportunidad más
para mejorar mi actividad docente en éste Instituto.

También, agradezco a todos los maestros de la academia de Ingenierı́a Me-


catrónica por haber apoyado la elaboración de este esfuerzo educativo.
ÍNDICE GENERAL

1 INTRODUCCIÓN A MATLAB 2

1.1 Competencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3 Temas y subtemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.4 Medidas de seguridad e higiene . . . . . . . . . . . . . . . . . . . . 3

1.5 Material y equipo necesario . . . . . . . . . . . . . . . . . . . . . . . 3

1.6 Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.6.1 Conocer el entorno de programación . . . . . . . . . . . . . . 5

1.6.2 Uso de la ventana de comando . . . . . . . . . . . . . . . . . 6

1.6.3 Modelado de un fenómeno fı́sico . . . . . . . . . . . . . . . . 7

1.7 Sugerencias didácticas . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.7.1 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.7.2 Solución a ejercicios . . . . . . . . . . . . . . . . . . . . . . . 11

1.7.3 Creación de un programa . . . . . . . . . . . . . . . . . . . . 12

I
ÍNDICE GENERAL

1.7.4 Simulación de un modelo oscilante . . . . . . . . . . . . . . . 14

1.8 Reporte del alumno . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.8.1 Discusión de resultados . . . . . . . . . . . . . . . . . . . . . 14

1.8.2 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2 APLICACIONES DE MATLAB EN DINÁMICA DE SISTEMAS 17

2.1 Competencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.2 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.3 Temas y subtemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.4 Medidas de seguridad e higiene . . . . . . . . . . . . . . . . . . . . 18

2.5 Material y equipo necesario . . . . . . . . . . . . . . . . . . . . . . . 19

2.6 Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.6.1 Funciones orientadas al análisis de datos . . . . . . . . . . . 19

2.6.2 Programando en MATLAB . . . . . . . . . . . . . . . . . . . . 20

2.6.3 MATLAB en el modelado de Sistemas Dinámicos . . . . . . . 22

2.7 Sugerencias didácticas . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.7.1 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.7.2 Solución a ejercicios . . . . . . . . . . . . . . . . . . . . . . . 27

2.7.3 Problema propuesto . . . . . . . . . . . . . . . . . . . . . . . 28

Manual de prácticas: Dinámica de Sistemas II


ÍNDICE GENERAL

2.8 Reporte del alumno . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.8.1 Discusión de resultados . . . . . . . . . . . . . . . . . . . . . 29

2.8.2 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3 INTRODUCCIÓN A SIMULINK 31

3.1 Competencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.2 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.3 Temas y subtemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.4 Medidas de seguridad e higiene . . . . . . . . . . . . . . . . . . . . 32

3.5 Material y equipo necesario . . . . . . . . . . . . . . . . . . . . . . . 33

3.6 Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.6.1 Entorno visual de SIMULINK . . . . . . . . . . . . . . . . . . 33

3.6.2 Bloques más importantes de SIMULINK . . . . . . . . . . . . 35

3.6.3 Simulación de un modelo fı́sico . . . . . . . . . . . . . . . . . 38

3.7 Sugerencias didácticas . . . . . . . . . . . . . . . . . . . . . . . . . . 44

3.7.1 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

3.7.2 Solución a ejercicios . . . . . . . . . . . . . . . . . . . . . . . 45

3.7.3 Problema propuesto . . . . . . . . . . . . . . . . . . . . . . . 46

3.8 Reporte del alumno . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Manual de prácticas: Dinámica de Sistemas III


ÍNDICE GENERAL

3.8.1 Discusión de resultados . . . . . . . . . . . . . . . . . . . . . 47

3.8.2 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4 SOLUCIÓN DE ECUACIONES DIFERENCIALES EN MATLAB 50

4.1 Competencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.2 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.3 Temas y subtemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4.4 Medidas de seguridad e higiene . . . . . . . . . . . . . . . . . . . . 51

4.5 Material y equipo necesario . . . . . . . . . . . . . . . . . . . . . . . 52

4.6 Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.6.1 Introducción al Symbolic Toolbox de MATLAB . . . . . . . . . 53

4.6.2 Ecuaciones diferenciales en el Simbolic toolbox . . . . . . . . 56

4.6.3 Solución de ecuaciones diferenciales de un sistema fı́sico . . 57

4.7 Sugerencias didácticas . . . . . . . . . . . . . . . . . . . . . . . . . . 60

4.7.1 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

4.7.2 Solución a ejercicios . . . . . . . . . . . . . . . . . . . . . . . 60

4.7.3 Problema propuesto . . . . . . . . . . . . . . . . . . . . . . . 61

4.8 Reporte del alumno . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.8.1 Discusión de resultados . . . . . . . . . . . . . . . . . . . . . 62

4.8.2 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Manual de prácticas: Dinámica de Sistemas IV


ÍNDICE GENERAL

5 SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB 64

5.1 Competencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

5.2 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

5.3 Temas y subtemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

5.4 Medidas de seguridad e higiene . . . . . . . . . . . . . . . . . . . . 65

5.5 Material y equipo necesario . . . . . . . . . . . . . . . . . . . . . . . 66

5.6 Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

5.6.1 Definición de ecuaciones en diferencias . . . . . . . . . . . . 67

5.6.2 Solución en forma simbólica de ecuaciones en diferencias . . 68

5.6.3 Solución en forma numérica de ecuaciones en diferencias . . 71

5.6.4 Modelado discreto de un sistema fı́sico . . . . . . . . . . . . 74

5.7 Sugerencias didácticas . . . . . . . . . . . . . . . . . . . . . . . . . . 78

5.7.1 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.7.2 Solución a ejercicios . . . . . . . . . . . . . . . . . . . . . . . 80

5.7.3 Problema propuesto . . . . . . . . . . . . . . . . . . . . . . . 82

5.8 Reporte del alumno . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.8.1 Discusión de resultados . . . . . . . . . . . . . . . . . . . . . 84

5.8.2 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Manual de prácticas: Dinámica de Sistemas V


ÍNDICE GENERAL

6 OBTENCIÓN DE LA TRANSFORMADA DE LAPLACE 86

6.1 Competencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

6.2 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

6.3 Temas y subtemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.4 Medidas de seguridad e higiene . . . . . . . . . . . . . . . . . . . . 87

6.5 Material y equipo necesario . . . . . . . . . . . . . . . . . . . . . . . 88

6.6 Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

6.6.1 Definición de la transformada de Laplace . . . . . . . . . . . 89

6.6.2 Uso de la transformada de Laplace . . . . . . . . . . . . . . . 89

6.6.3 Transformada inversa de Laplace . . . . . . . . . . . . . . . . 91

6.6.4 Solución de ecuaciones diferenciales por Laplace . . . . . . . 94

6.6.5 Representación de un sistema fı́sico por Laplace . . . . . . . 95

6.7 Sugerencias didácticas . . . . . . . . . . . . . . . . . . . . . . . . . . 98

6.7.1 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

6.7.2 Solución a ejercicios . . . . . . . . . . . . . . . . . . . . . . . 99

6.7.3 Problema propuesto . . . . . . . . . . . . . . . . . . . . . . . 100

6.8 Reporte del alumno . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

6.8.1 Discusión de resultados . . . . . . . . . . . . . . . . . . . . . 101

6.8.2 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

Manual de prácticas: Dinámica de Sistemas VI


ÍNDICE GENERAL

7 OBTENCIÓN DE LA TRANSFORMADA Z 103

7.1 Competencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

7.2 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

7.3 Temas y subtemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

7.4 Medidas de seguridad e higiene . . . . . . . . . . . . . . . . . . . . 104

7.5 Material y equipo necesario . . . . . . . . . . . . . . . . . . . . . . . 105

7.6 Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

7.6.1 Definición de la transformada z . . . . . . . . . . . . . . . . . 105

7.6.2 Uso de la transformada z . . . . . . . . . . . . . . . . . . . . 106

7.6.3 Transformada z inversa . . . . . . . . . . . . . . . . . . . . . 108

7.6.4 Muestro y reconstrucción de la señal . . . . . . . . . . . . . . 109

7.6.5 Representación de sistema por la transformada z . . . . . . . 111

7.7 Sugerencias didácticas . . . . . . . . . . . . . . . . . . . . . . . . . . 114

7.7.1 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

7.7.2 Solución a ejercicios . . . . . . . . . . . . . . . . . . . . . . . 116

7.7.3 Problema propuesto . . . . . . . . . . . . . . . . . . . . . . . 117

7.8 Reporte del alumno . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

7.8.1 Discusión de resultados . . . . . . . . . . . . . . . . . . . . . 118

7.8.2 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

Manual de prácticas: Dinámica de Sistemas VII


ÍNDICE GENERAL

8 MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB 120

8.1 Competencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

8.2 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

8.3 Temas y subtemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

8.4 Medidas de seguridad e higiene . . . . . . . . . . . . . . . . . . . . 121

8.5 Material y equipo necesario . . . . . . . . . . . . . . . . . . . . . . . 122

8.6 Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

8.6.1 Definición de función de transferencia . . . . . . . . . . . . . 122

8.6.2 Obtención de funciones de transferencia . . . . . . . . . . . . 123

8.6.3 Respuesta a la señal impulso unitario . . . . . . . . . . . . . 125

8.6.4 Operaciones con funciones de transferencia . . . . . . . . . . 128

8.6.5 Representación de sistema por función de transferencia . . . 131

8.7 Sugerencias didácticas . . . . . . . . . . . . . . . . . . . . . . . . . . 134

8.7.1 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

8.7.2 Solución a ejercicios . . . . . . . . . . . . . . . . . . . . . . . 135

8.7.3 Problema propuesto . . . . . . . . . . . . . . . . . . . . . . . 137

8.8 Reporte del alumno . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

8.8.1 Discusión de resultados . . . . . . . . . . . . . . . . . . . . . 138

8.8.2 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

Manual de prácticas: Dinámica de Sistemas VIII


ÍNDICE GENERAL

9 MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK 140

9.1 Competencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

9.2 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

9.3 Temas y subtemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

9.4 Medidas de seguridad e higiene . . . . . . . . . . . . . . . . . . . . 141

9.5 Material y equipo necesario . . . . . . . . . . . . . . . . . . . . . . . 142

9.6 Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

9.6.1 Funciones de transferencia en SIMULINK . . . . . . . . . . . 142

9.6.2 Funciones de transferencias discretas en SIMULINK . . . . . 143

9.6.3 Funciones en MATLAB a partir de SIMULINK . . . . . . . . . 147

9.6.4 Gráficas de SIMULINK en MATLAB . . . . . . . . . . . . . . . 149

9.6.5 Modelo fı́sico en SIMULINK . . . . . . . . . . . . . . . . . . . 153

9.7 Sugerencias didácticas . . . . . . . . . . . . . . . . . . . . . . . . . . 155

9.7.1 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

9.7.2 Solución a ejercicios . . . . . . . . . . . . . . . . . . . . . . . 156

9.7.3 Problema propuesto . . . . . . . . . . . . . . . . . . . . . . . 158

9.8 Reporte del alumno . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

9.8.1 Discusión de resultados . . . . . . . . . . . . . . . . . . . . . 160

9.8.2 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

Manual de prácticas: Dinámica de Sistemas IX


ÍNDICE GENERAL

10 REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK 162

10.1 Competencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

10.2 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

10.3 Temas y subtemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

10.4 Medidas de seguridad e higiene . . . . . . . . . . . . . . . . . . . . 163

10.5 Material y equipo necesario . . . . . . . . . . . . . . . . . . . . . . . 164

10.6 Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

10.6.1 Álgebra de bloques . . . . . . . . . . . . . . . . . . . . . . . . 165

10.6.2 Álgebra de bloques en SIMULINK . . . . . . . . . . . . . . . 170

10.6.3 Diagramas de flujo de señal . . . . . . . . . . . . . . . . . . . 171

10.6.4 Diagramas de flujo de señal en SIMULINK . . . . . . . . . . . 173

10.6.5 Sistema fı́sico en bloques de SIMULINK . . . . . . . . . . . . 175

10.7 Sugerencias didácticas . . . . . . . . . . . . . . . . . . . . . . . . . . 180

10.7.1 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

10.7.2 Solución a ejercicios . . . . . . . . . . . . . . . . . . . . . . . 181

10.7.3 Problema propuesto . . . . . . . . . . . . . . . . . . . . . . . 185

10.8 Reporte del alumno . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

10.8.1 Discusión de resultados . . . . . . . . . . . . . . . . . . . . . 186

10.8.2 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

Manual de prácticas: Dinámica de Sistemas X


ÍNDICE GENERAL

11 SISTEMA MASA-RESORTE FÍSICO 188

11.1 Competencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

11.2 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

11.3 Temas y subtemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

11.4 Medidas de seguridad e higiene . . . . . . . . . . . . . . . . . . . . 189

11.5 Material y equipo necesario . . . . . . . . . . . . . . . . . . . . . . . 189

11.6 Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

11.6.1 Parámetros de un sistema de segundo orden . . . . . . . . . 190

11.6.2 Cálculo de la constante de elasticidad k . . . . . . . . . . . . 193

11.6.3 Análisis de respuesta de un sistema masa-resorte . . . . . . 199

11.7 Sugerencias didácticas . . . . . . . . . . . . . . . . . . . . . . . . . . 203

11.7.1 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

11.7.2 Solución a ejercicios . . . . . . . . . . . . . . . . . . . . . . . 204

11.8 Reporte del alumno . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

11.8.1 Discusión de resultados . . . . . . . . . . . . . . . . . . . . . 207

11.8.2 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

Manual de prácticas: Dinámica de Sistemas XI


ÍNDICE GENERAL

12 SIMULACIÓN DE UN SISTEMA MASA-RESORTE 209

12.1 Competencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

12.2 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

12.3 Temas y subtemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

12.4 Medidas de seguridad e higiene . . . . . . . . . . . . . . . . . . . . 210

12.5 Material y equipo necesario . . . . . . . . . . . . . . . . . . . . . . . 211

12.6 Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

12.6.1 Parámetros de un sistema discreto de segundo orden . . . . 212

12.6.2 Simulación de un sistema de segundo orden en MATLAB . . 214

12.6.3 Simulación de un sistema de segundo orden en SIMULINK . 219

12.6.4 Lugar geométrico de las raı́ces . . . . . . . . . . . . . . . . . 221

12.6.5 Ejemplo de un sistema discreto de segundo orden . . . . . . 226

12.7 Sugerencias didácticas . . . . . . . . . . . . . . . . . . . . . . . . . . 229

12.7.1 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

12.7.2 Solución a ejercicios . . . . . . . . . . . . . . . . . . . . . . . 230

12.7.3 Problema propuesto . . . . . . . . . . . . . . . . . . . . . . . 233

12.8 Reporte del alumno . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

12.8.1 Discusión de resultados . . . . . . . . . . . . . . . . . . . . . 234

12.8.2 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

Manual de prácticas: Dinámica de Sistemas XII


ÍNDICE GENERAL

13 ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS 236

13.1 Competencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

13.2 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

13.3 Temas y subtemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

13.4 Medidas de seguridad e higiene . . . . . . . . . . . . . . . . . . . . 237

13.5 Material y equipo necesario . . . . . . . . . . . . . . . . . . . . . . . 238

13.6 Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238

13.6.1 Análisis en la frecuencia de sistemas lineales . . . . . . . . . 238

13.6.2 Diagrama de Bode . . . . . . . . . . . . . . . . . . . . . . . . 240

13.6.3 Análisis de estabilidad por el diagrama de Bode . . . . . . . . 245

13.6.4 Análisis de estabilidad de un sistema fı́sico . . . . . . . . . . 247

13.7 Sugerencias didácticas . . . . . . . . . . . . . . . . . . . . . . . . . . 251

13.7.1 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

13.7.2 Solución a ejercicios . . . . . . . . . . . . . . . . . . . . . . . 252

13.7.3 Problema propuesto . . . . . . . . . . . . . . . . . . . . . . . 256

13.8 Reporte del alumno . . . . . . . . . . . . . . . . . . . . . . . . . . . 256

13.8.1 Discusión de resultados . . . . . . . . . . . . . . . . . . . . . 256

13.8.2 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

Manual de prácticas: Dinámica de Sistemas XIII


ÍNDICE GENERAL

14 ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO DISCRETO 258

14.1 Competencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

14.2 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

14.3 Temas y subtemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259

14.4 Medidas de seguridad e higiene . . . . . . . . . . . . . . . . . . . . 259

14.5 Material y equipo necesario . . . . . . . . . . . . . . . . . . . . . . . 260

14.6 Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260

14.6.1 Transformada bilineal . . . . . . . . . . . . . . . . . . . . . . . 260

14.6.2 Análisis de estabilidad de un sistema discreto . . . . . . . . . 263

14.7 Sugerencias didácticas . . . . . . . . . . . . . . . . . . . . . . . . . . 269

14.7.1 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269

14.7.2 Solución a ejercicios . . . . . . . . . . . . . . . . . . . . . . . 270

14.7.3 Problema propuesto . . . . . . . . . . . . . . . . . . . . . . . 273

14.8 Reporte del alumno . . . . . . . . . . . . . . . . . . . . . . . . . . . 273

14.8.1 Discusión de resultados . . . . . . . . . . . . . . . . . . . . . 274

14.8.2 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

Manual de prácticas: Dinámica de Sistemas XIV


ÍNDICE DE FIGURAS

1.1 Entorno de trabajo de MATLAB . . . . . . . . . . . . . . . . . . . . 5

1.2 Objeto en caı́da libre. . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.3 Velocidad de un cuerpo en caı́da libre en un lapso de 10 s. . . . . 10

1.4 Creación de un nuevo programa. . . . . . . . . . . . . . . . . . . . 12

1.5 Cómo guardar programa o Script. . . . . . . . . . . . . . . . . . . . 13

1.6 Ejecución de un programa desde el editor. . . . . . . . . . . . . . . 13

1.7 Simulación de un modelo oscilante: función seno. . . . . . . . . . . 14

2.1 Respuesta a escalón unitario. . . . . . . . . . . . . . . . . . . . . . 24

2.2 Respuesta a una entrada rampa . . . . . . . . . . . . . . . . . . . 26

2.3 Sistema masa-resorte-amortiguador. . . . . . . . . . . . . . . . . . 28

3.1 Icono para acceden al entorno de diseño de SIMULINK. . . . . . . 34

3.2 Librerı́a de SIMULINK. . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.3 Entorno de diseño de SIMULINK. . . . . . . . . . . . . . . . . . . . 34

XV
Índice de figuras

3.4 Bloques para el diseño de sistemas en tiempo continuo. . . . . . . 36

3.5 Parámetros básicos del bloque Transfer Fcn. . . . . . . . . . . . . 36

3.6 Bloques más usados de la librerı́a de sistemas de tiempo continuo. 37

3.7 Bloques más usados en las librerı́as de fuentes y sumideros. . . . 38

3.8 Circuito eléctrico RLC. . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.9 Diagrama de estado que representa al circuito RLC. . . . . . . . . 40

3.10 Diseño inicial del modelo para el circuito RLC. . . . . . . . . . . . . 41

3.11 Diseño final del modelo para simular el circuito RLC. . . . . . . . . 42

3.12 Gráfica de la señal de salida Vc (t). . . . . . . . . . . . . . . . . . . 43

3.13 Solución a los dos primeros ejercicios de la sección 3.7.1. . . . . . 45

3.14 Solución al tercer y cuarto ejercicio de la sección 3.7.1. . . . . . . 45

3.15 Solución al quinto ejercicio de la sección 3.7.1. . . . . . . . . . . . 46

3.16 Sistema masa-resorte-amortiguador. . . . . . . . . . . . . . . . . . 46

4.1 Gráfica de una expresión simbólica por medio de ezplot. . . . . . . 56

4.2 Dibujo de la representación de un módulo lunar. . . . . . . . . . . . 58

4.3 Sistema de nivel de lı́quido. . . . . . . . . . . . . . . . . . . . . . . 61

5.1 Gráfica de una función senoidal muestreada x(k). . . . . . . . . . . 67

5.2 Comparación gráfica de la solución simbólica vs. solución analı́tica. 71

5.3 Comparación gráfica de la solución numérica vs. solución analı́tica. 74

Manual de prácticas: Dinámica de Sistemas XVI


Índice de figuras

5.4 Tanque con fugas. . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.5 Comparación gráfica de la solución simbólica vs. numérica. . . . . 78

5.6 Sistema masa-resorte ideal, (i.e., sin fricción). . . . . . . . . . . . . 83

6.1 Esfera metálica suspendida en un campo magnético. . . . . . . . 96

6.2 Gráfica de x(t) al aplicar un impulso al sistema de suspensión. . . 97

6.3 Circuito RLC del problema propuesto. . . . . . . . . . . . . . . . . 101

7.1 Sistema de muestreo de señales en el control digital. . . . . . . . . 109

7.2 Circuito retenedor de orden cero. . . . . . . . . . . . . . . . . . . . 110

7.3 Reconstrucción de la señal digitalizada. . . . . . . . . . . . . . . . 111

7.4 Sistema térmico a discretizar. . . . . . . . . . . . . . . . . . . . . . 112

7.5 Discretización en bloques de la función (7.12). . . . . . . . . . . . . 112

7.6 Sistema fı́sico del péndulo. . . . . . . . . . . . . . . . . . . . . . . . 118

8.1 Simulación de la respuesta al impulso unitario del ejemplo 8.2. . . 128

8.2 Operaciones de funciones de transferencia: a) multiplicación, b) su-


ma, c) retroalimentación. . . . . . . . . . . . . . . . . . . . . . . . . 129

8.3 Modelo de movimiento de θ en un satélite. . . . . . . . . . . . . . . 132

8.4 Respuesta al impulso de G(z) y Θ(z) en satélite. . . . . . . . . . . . 134

8.5 Péndulo inverso con resortes. . . . . . . . . . . . . . . . . . . . . . 138

Manual de prácticas: Dinámica de Sistemas XVII


Índice de figuras

9.1 Modelos para las funciones de transferencia del ejemplo 9.1. . . . 143

9.2 Parámetros de las funciones de transferencia del ejemplo 9.1. . . . 144

9.3 Parámetros de las funciones de transferencia del ejemplo 9.2. . . . 145

9.4 Modelos para las funciones de transferencia del ejemplo 9.2. . . . 145

9.5 Tiempo de muestreo del retenedor de orden cero del ejemplo 9.3. 146

9.6 Modelos para las funciones de transferencia del ejemplo 9.3. . . . 147

9.7 Modelo de la función de transferencia del ejemplo 9.4. . . . . . . . 148

9.8 Salida del osciloscopio del ejemplo 9.4. . . . . . . . . . . . . . . . 150

9.9 Modelo de la función de transferencia del ejemplo 9.5. . . . . . . . 150

9.10 Parámetros del bloque al espacio de trabajo del ejemplo 9.5. . . . 151

9.11 Gráfica del osciloscopio del modelo, en MATLAB. . . . . . . . . . . 152

9.12 Automóvil y su diagrama de cuerpo libre. . . . . . . . . . . . . . . . 153

9.13 Modelo discreto en SIMULINK del automóvil. . . . . . . . . . . . . 153

9.14 Respuesta al impulso en el entorno de MATLAB vs. SIMULINK. . . 155

9.15 Modelo en SIMULINK que da respuesta al ejercicio 9.1. . . . . . . 157

9.16 Modelo en SIMULINK que da respuesta al ejercicio 9.2. . . . . . . 157

9.17 Modelo en SIMULINK que da respuesta al ejercicio 9.3. . . . . . . 157

9.18 Modelo en SIMULINK que da respuesta al ejercicio 9.4. . . . . . . 158

9.19 Modelo en SIMULINK que da respuesta al ejercicio 9.5. . . . . . . 158

Manual de prácticas: Dinámica de Sistemas XVIII


Índice de figuras

9.20 Sistema masa-resorte-polea del problema propuesto. . . . . . . . . 159

10.1 Diagrama a bloques de un sistema en lazo cerrado. . . . . . . . . . 165

10.2 Diagrama a bloques a simplificar en el ejemplo 10.1. . . . . . . . . 166

10.3 Aplicación de la regla 5 en el ejemplo 10.1. . . . . . . . . . . . . . 168

10.4 Aplicación de la regla No. 3 en el ejemplo 10.1. . . . . . . . . . . . 168

10.5 Bloque equivalente de la regla No. 3 en el ejemplo 10.1. . . . . . . 169

10.6 Simplificación preliminar del diagrama de bloques del ejemplo 10.1. 169

10.7 Simplificación final del diagrama de bloques del ejemplo 10.1. . . . 169

10.8 Modelo en SIMULINK del ejemplo 10.2. . . . . . . . . . . . . . . . 170

10.9 Diagrama de flujo de señal del ejemplo 10.3. . . . . . . . . . . . . 172

10.10 Diagrama a bloques equivalente del ejemplo 10.4. . . . . . . . . . 175

10.11 Representación de los parámetros de un motor de CD. . . . . . . . 176

10.12 Diagrama de flujo genérico para la forma canónica controlable. . . 178

10.13 Diagrama de flujo de señal del motor de CD. . . . . . . . . . . . . . 178

10.14 Diagrama de bloques de SIMULINK del motor de CD. . . . . . . . 179

10.15 Diagrama de bloques del ejercicio 10.1. . . . . . . . . . . . . . . . 180

10.16 Diagrama de bloques del ejercicio 10.3. . . . . . . . . . . . . . . . 181

10.17 Solución al ejercicio 10.1. . . . . . . . . . . . . . . . . . . . . . . . 182

10.18 Solución al ejercicio 10.2. . . . . . . . . . . . . . . . . . . . . . . . 182

Manual de prácticas: Dinámica de Sistemas XIX


Índice de figuras

10.19 Solución al ejercicio 10.3. . . . . . . . . . . . . . . . . . . . . . . . 183

10.20 Solución al ejercicio 10.4. . . . . . . . . . . . . . . . . . . . . . . . 183

10.21 Solución al ejercicio 10.5. . . . . . . . . . . . . . . . . . . . . . . . 184

10.22 Circuito con amplificador operacional del problema propuesto. . . . 185

11.1 Diagrama a bloques de un sistema de segundo orden. . . . . . . . 191

11.2 Efecto de ζ en un sistema de segundo orden. . . . . . . . . . . . . 191

11.3 Especificaciones en la respuesta transitoria de sistema (11.1). . . 192

11.4 Montaje experimental de sistema masa-resorte. . . . . . . . . . . . 194

11.5 Procedimiento ascendente en la toma de medidas xE . . . . . . . . 195

11.6 Lı́nea recta de carga del resorte. . . . . . . . . . . . . . . . . . . . 199

11.7 Estados del sistema masa-resorte al inicio de la prueba. . . . . . . 201

12.1 Respuesta a un escalón unitario. . . . . . . . . . . . . . . . . . . . 217

12.2 Respuesta a un impulso unitario. . . . . . . . . . . . . . . . . . . . 217

12.3 Respuesta al escalón unitario del ejemplo 12.3. . . . . . . . . . . . 219

12.4 Simulación del sistema masa-resorte-amortiguados con x0 = −0.05. 220

12.5 Oscilaciones del sistema masa-resorte-amortiguador. . . . . . . . 221

12.6 Relación entre el plano s y el plano z. . . . . . . . . . . . . . . . . . 222

12.7 Sistema en lazo cerrado continuo considerado en el ejemplo 12.5. 222

12.8 Lugar geométrico de las raı́ces del ejemplo 12.5. . . . . . . . . . . 224

Manual de prácticas: Dinámica de Sistemas XX


Índice de figuras

12.9 Sistema en lazo cerrado discreto considerado en el ejemplo 12.6. . 225

12.10 Lugar geométrico de las raı́ces del ejemplo 12.6. . . . . . . . . . . 226

12.11 Sistema masa-resorte digitalizado . . . . . . . . . . . . . . . . . . 227

12.12 Diferentes respuestas de un sistema masa-resorte discreto. . . . . 229

12.13 Sistema masa-resorte-amortiguador propuesto. . . . . . . . . . . . 233

13.1 Sistema Dinámico con función de transferencia M(s). . . . . . . . . 240

13.2 Respuesta de M(t) a senoidal. . . . . . . . . . . . . . . . . . . . . 240

13.3 Circuito eléctrico RL con entrada de señal senoidal. . . . . . . . . . 242

13.4 Gráficas del diagrama de Bode para el circuito RL. . . . . . . . . . 245

13.5 Margen de ganancia y de fase; diagrama de Bode. . . . . . . . . . 246

13.6 Control de balanceo, cabeceo, y viraje de un avión . . . . . . . . . 247

13.7 Sistema de control de un avión. . . . . . . . . . . . . . . . . . . . . 248

13.8 Diagrama de Bode para el análisis de estabilidad del control de un


avión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250

13.9 Respuesta a una entrada escalón unitario del control de un avión. 250

13.10 Diagrama de Bode para el análisis de estabilidad del ejercicio 13.1. 254

13.11 Diagrama de Bode para el análisis de estabilidad del ejercicio 13.2. 254

13.12 Diagrama de Bode para el análisis de estabilidad del ejercicio 13.3. 255

13.13 Diagrama de Bode para el análisis de estabilidad del ejercicio 13.4. 255

Manual de prácticas: Dinámica de Sistemas XXI


Índice de figuras

13.14 Diagrama a bloques del sistema propuesto. . . . . . . . . . . . . . 256

14.1 Diagrama del mapeo entre los planos-s, z y w. . . . . . . . . . . . . 262

14.2 Cámara de vı́deo móvil de control remoto. . . . . . . . . . . . . . . 263

14.3 Diagrama de Bode del sistema en tiempo continuo “sis s”. . . . . . 266

14.4 Diagrama de Bode del sistema en tiempo discreto “sis z”. . . . . . 267

14.5 Diagrama de Bode del sistema en tiempo continuo bilineal “sis w”. 267

14.6 Gráfica de Bode de los tres sistemas, continuo, discreto, y bilineal. 268

14.7 Respuesta al escalón unitario de los tres sistemas. . . . . . . . . . 269

14.8 Sistema de control de velocidad de un motor de CD. . . . . . . . . 273

Manual de prácticas: Dinámica de Sistemas XXII


ÍNDICE DE TABLAS

10.1 Reglas del álgebra de diagramas de bloques. . . . . . . . . . . . . . 167

10.2 Diagramas de bloques equivalentes a diagramas de flujo. . . . . . . 174

11.1 Tabla de datos modelo, para obtener el valor de k de un resorte. . . 195

11.2 Tabla de datos experimentales para obtener el valor de k de un resorte. 197

11.3 Tabla de datos experimentales y analı́ticos para varios resortes. . . 202

13.1 Datos del margen de ganancia y de fase en respuesta a la frecuencia. 244

XXIII
ÍNDICE DE LISTADOS

1.1 Código para obtener v(t) . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.1 Ejemplo de ciclos for anidados. . . . . . . . . . . . . . . . . . . . . . 21

2.2 Señal de prueba: escalón unitario . . . . . . . . . . . . . . . . . . . 24

2.3 Señal de prueba: rampa . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.4 Entrada rampa al sistema representado por (2.4). . . . . . . . . . . 27

4.1 Ejemplo sobre el uso del comando simplify. . . . . . . . . . . . . . . 53

4.2 Obtención de la altura a descender x(t) del módulo lunar. . . . . . . 59

5.1 Solución simbólica al crecimiento de la población de conejos. . . . . 70

5.2 Solución numérica al crecimiento de la población de conejos. . . . . 73

5.3 Solución simbólica vs. numérica del vaciado del fregadero. . . . . . 76

5.4 Solución al ejercicio 5.1. . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.5 Solución al ejercicio 5.2. . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.6 Solución al ejercicio 5.3. . . . . . . . . . . . . . . . . . . . . . . . . . 81

5.7 Solución al ejercicio 5.4. . . . . . . . . . . . . . . . . . . . . . . . . . 81

XXIV
ÍNDICE DE LISTADOS

5.8 Solución al ejercicio 5.5. . . . . . . . . . . . . . . . . . . . . . . . . . 82

6.1 Solución en MATLAB del ejemplo 6.1 propuesto en esta sección. . . 90

6.2 Cálculo de la transformada inversa de Lapalce de (6.5) en MATLAB. 91

6.3 Cálculo de la transformada inversa de Lapalce de (6.6) en MATLAB. 93

6.4 Solución de (6.14) por medio de Laplace en MATLAB. . . . . . . . . 95

6.5 Solución de la ecuación (6.20) por medio del método de Laplace. . . 96

6.6 Solución al ejercicio 6.1. . . . . . . . . . . . . . . . . . . . . . . . . . 99

6.7 Solución al ejercicio 6.2. . . . . . . . . . . . . . . . . . . . . . . . . . 99

6.8 Solución al ejercicio 6.3. . . . . . . . . . . . . . . . . . . . . . . . . . 99

6.9 Solución al ejercicio 6.4. . . . . . . . . . . . . . . . . . . . . . . . . . 100

6.10 Solución al ejercicio 6.5. . . . . . . . . . . . . . . . . . . . . . . . . . 100

7.1 Solución en MATLAB del ejemplo 7.1 propuesto en esta sección. . . 107

7.2 Cálculo de la transformada z inversa de (7.7) en MATLAB. . . . . . . 108

7.3 Modelado del sistema térmico (7.10) en MATLAB. . . . . . . . . . . 114

7.4 Solución al ejercicio 7.1. . . . . . . . . . . . . . . . . . . . . . . . . . 116

7.5 Solución al ejercicio 7.2. . . . . . . . . . . . . . . . . . . . . . . . . . 116

7.6 Solución al ejercicio 7.3. . . . . . . . . . . . . . . . . . . . . . . . . . 116

7.7 Solución al ejercicio 7.4. . . . . . . . . . . . . . . . . . . . . . . . . . 116

7.8 Solución al ejercicio 7.5. . . . . . . . . . . . . . . . . . . . . . . . . . 117

Manual de prácticas: Dinámica de Sistemas XXV


ÍNDICE DE LISTADOS

8.1 Solución en MATLAB del ejemplo 8.1. . . . . . . . . . . . . . . . . . 124

8.2 Solución en MATLAB del ejemplo 8.2. . . . . . . . . . . . . . . . . . 127

8.3 Solución en MATLAB del ejemplo 8.3. . . . . . . . . . . . . . . . . . 131

8.4 Simulación en MATLAB del comportamiento de Θ(z) en un satélite. . 133

8.5 Solución al ejercicio 8.1. . . . . . . . . . . . . . . . . . . . . . . . . . 135

8.6 Solución al ejercicio 8.2. . . . . . . . . . . . . . . . . . . . . . . . . . 136

8.7 Solución al ejercicio 8.3. . . . . . . . . . . . . . . . . . . . . . . . . . 136

8.8 Solución al ejercicio 8.4. . . . . . . . . . . . . . . . . . . . . . . . . . 136

8.9 Solución al ejercicio 8.5. . . . . . . . . . . . . . . . . . . . . . . . . . 137

9.1 Solución en MATLAB del ejemplo 9.4. . . . . . . . . . . . . . . . . . 149

9.2 Solución en MATLAB del ejemplo 9.5. . . . . . . . . . . . . . . . . . 152

9.3 Solución en MATLAB del modelo fı́sico de SIMULINK. . . . . . . . . 154

9.4 Solución al ejercicio 9.4. . . . . . . . . . . . . . . . . . . . . . . . . . 157

9.5 Solución al ejercicio 9.5. . . . . . . . . . . . . . . . . . . . . . . . . . 157

10.1 Solución en MATLAB del ejemplo 10.2. . . . . . . . . . . . . . . . . 171

10.2 Solución en MATLAB del ejemplo 10.4. . . . . . . . . . . . . . . . . 175

10.3 Obtención en MATLAB de la función de transferencia del motor de CD. 180

10.4 Script que da solución al ejercicio 10.5. . . . . . . . . . . . . . . . . 184

11.1 Solución en MATLAB del ejemplo 11.1. . . . . . . . . . . . . . . . . 198

Manual de prácticas: Dinámica de Sistemas XXVI


ÍNDICE DE LISTADOS

11.2 Solución en MATLAB del ejercicio 11.3. . . . . . . . . . . . . . . . . 205

12.1 Solución en MATLAB del ejemplo 12.2. . . . . . . . . . . . . . . . . 216

12.2 Solución en MATLAB del ejemplo 12.3. . . . . . . . . . . . . . . . . 218

12.3 Solución en MATLAB del ejemplo 12.5. . . . . . . . . . . . . . . . . 223

12.4 Solución en MATLAB del ejemplo 12.6. . . . . . . . . . . . . . . . . 225

12.5 Solución en MATLAB de un sistema discreto de segundo orden. . . 227

12.6 Solución al ejercicio 12.1. . . . . . . . . . . . . . . . . . . . . . . . . 231

12.7 Solución al ejercicio 12.2. . . . . . . . . . . . . . . . . . . . . . . . . 231

12.8 Solución al ejercicio 12.3. . . . . . . . . . . . . . . . . . . . . . . . . 232

12.9 Solución al ejercicio 12.4. . . . . . . . . . . . . . . . . . . . . . . . . 232

13.1 Solución en MATLAB a la estabilidad de un avión. . . . . . . . . . . 248

13.2 Solución al ejercicio 13.1. . . . . . . . . . . . . . . . . . . . . . . . . 252

13.3 Solución al ejercicio 13.2. . . . . . . . . . . . . . . . . . . . . . . . . 252

13.4 Solución al ejercicio 13.3. . . . . . . . . . . . . . . . . . . . . . . . . 252

13.5 Solución al ejercicio 13.4. . . . . . . . . . . . . . . . . . . . . . . . . 253

14.1 Solución en MATLAB que determina estabilidad de cámara móvil. . 264

14.2 Solución al ejercicio 14.1. . . . . . . . . . . . . . . . . . . . . . . . . 271

14.3 Solución al ejercicio 14.2. . . . . . . . . . . . . . . . . . . . . . . . . 271

14.4 Solución al ejercicio 14.3. . . . . . . . . . . . . . . . . . . . . . . . . 272

14.5 Solución al ejercicio 14.4. . . . . . . . . . . . . . . . . . . . . . . . . 272

Manual de prácticas: Dinámica de Sistemas XXVII


PRESENTACIÓN

Este manual de prácticas ha sido desarrollado con el objetivo de facilitar al


alumno, de Dinámica de Sistemas, adquirir las competencias necesarias en esta
materia por medio de prácticas. Para ello, se desarrollan modelos matemáticos de
sistemas fı́sicos. Estos modelos pueden predecir y describir su comportamiento ante
perturbaciones, o distintas señales de entrada en tiempo continuo y tiempo discre-
to. También, se obtienen las funciones de transferencia de los Sistemas Dinámicos,
que luego se representan en diagramas de bloques. Estos diagramas son usados
para simular la respuesta a diferentes señales de prueba.

La justificación principal de este trabajo, es actualizar los manuales de prácti-


cas existentes, ya que recientemente se ha actualizado el temario de la materia de
Dinámica de Sistemas. Otro justificación no menos importante, es incluir los nue-
vos recursos de software de simulación, que como es sabido, siempre se están
actualizando trayendo nuevas y poderos herramientas en el ámbito de Dinámica de
Sistemas. Estos nuevos recursos facilitan el entendimientos de la materia en una
forma más comprensible y didáctica, ya que lo hacen en un entorno visual.

Con el propósito de hacer clara la implementación de las prácticas, este ma-


nual cuenta con 125 Figuras, y con 67 Listados, de código de simulación (pequeños
programas) que ayudan en la visualización y comprensión de las diferentes temáti-
cas abordadas. Aunque la mayorı́a de las prácticas son de modelado y simulación
por medio de software, un par de ellas también utilizan hardware, i.e., equipos de
medición y componentes mecánicos, eléctricos y electrónicos. La temática de las
prácticas que se verán a continuación, se encuentra distribuida en una secuencia
descendente, de acuerdo con las unidades que conforman la materia de Dinámica
de Sistemas del programa actual.
PRÁCTICA 1
INTRODUCCI ÓN A MATLAB

1.1. Competencias

El alumno inicia la comprensión de los conceptos de base para el modelado y


simulación de sistemas de diferente tipo.

El alumno conoce los comandos fundamentales en el uso de MATLAB®.

1.2. Introducción

En los últimos años en la simulación de Sistemas Dinámicos e Ingenierı́a de


Control, uno de los lenguajes más usados ha sido el MATLAB (Sizemore, 2015).
Por esta razón, el propósito principal de esta práctica, es introducir al alumno en el
aprendizaje del MATLAB, como herramienta para el modelado y simulación de Sis-
temas Dinámicos. Para ello en la metodologı́a, a manera de un pequeño tutorial, se
introducen los conceptos fundamentales de MATLAB y se aplican en la simulación
de un sistema fı́sico. En las sugerencias didácticas se proponen ejercicios y se dan
las bases de como programar en MATLAB. Finalmente, se propone al alumno la
simulación de un sistema oscilante, que formará parte del reporte de práctica.

2
PRÁCTICA 1. INTRODUCCIÓN A MATLAB

1.3. Temas y subtemas

Temas: Introducción a la Modelación de Sistemas. Se analizan sistemas fı́si-


cos, que se modelan matemáticamente y se simulan a través de MATLAB.

Subtemas:

Conceptos preliminares. Se introduce al alumno en MATLAB.

Sistemas Fı́sicos. Se modelan los fenómenos fı́sicos.

Modelos matemáticos lineales. Se usan leyes fı́sicas y matemáticas.

1.4. Medidas de seguridad e higiene

Como se trata de un software de simulación, las prácticas se deben desarro-


llar en el laboratorio de computo. La seguridad en un laboratorio de computo tiene
que ver con el equipo de computo. Para evitar daño en los computadores, se debe
evitar introducir bebidas al laboratorio. Los lı́quidos derramados sobre el equipo de
computo seguramente lo dañarán.

Si se va a trabajar en equipos, deben sentarse de tal manera que no se obstruyan


los pasillos. Debe tenerse mucho cuidado al insertar una unidad de memoria flash
USB a un computador; asegúrese que se encuentra libre de virus. Se tiene que
evitar las infecciones en los equipos de computo, para evitar que estos fallen.

1.5. Material y equipo necesario

Es necesario contar con los libros y manuales de consulta que se sugieren en las
referencias bibliográficas de esta práctica (Klee, 2011; Kalechman, 2008; Beucher

Manual de prácticas: Dinámica de Sistemas 3


PRÁCTICA 1. INTRODUCCIÓN A MATLAB

y Weeks, 2008; Lynch, 2004). Se recomienda para la instalación del MATLAB, un


espacio libre de memoria en el disco duro, de al menos 10 GB. Las caracterı́sticas
mı́nimas necesarias del equipo de computo que garanticen una ejecución eficiente
del MATLAB, pueden ser un procesador Intel®, Core™ i3 ó su equivalente, con una
memoria de 2 GB de RAM.

La versiones del MATLAB que se usarán para las prácticas de este manual,
serán las del 2014 y 2015. Esto garantiza que los programas que se muestren en
los ejemplos, podrán ser ejecutados en versiones iguales o posteriores (i.e., 2016 y
2017). No se recomienda usar versiones del MATLAB anteriores al 2014.

1.6. Metodologı́a

En Dinámica de Sistemas, aunque existen caracterı́sticas cualitativas en los sis-


temas, en esta contribución, se tratará sobre todo con caracterı́sticas cuantitativas
de los Sistemas Dinámicos. Esto es, los parámetros de interés en la mayorı́a de los
casos serán medibles.

MATLAB es un acrónimo de los vocablos ingleses MATRIX y LABORATORY.


Debido a su esencia numérica, resulta ser un lenguaje de computo muy adecuado
para el modelado de Sistemas Dinámicos. Por esta razón, la propuesta metodológi-
ca es: primeramente introducir los comandos básicos de MATLAB en la práctica
actual, para después, gradualmente, presentar conceptos más avanzados en las
subsiguientes prácticas.

El primer paso en esta metodologı́a será: conocer el entorno de programación a


usar.

Manual de prácticas: Dinámica de Sistemas 4


PRÁCTICA 1. INTRODUCCIÓN A MATLAB

1.6.1. Conocer el entorno de programación

Al ejecutar el MATLAB, aparecerá un entorno de trabajo como el mostrado en


la Figura 1.1. El diseño muestra varias ventanas que serán muy útiles al interactuar
con el software. En la barra de menú se muestran varias pestañas para seleccionar
diferentes entornos. En este caso se encuentra seleccionado el “editor”.

Figura 1.1: Entorno de trabajo de MATLAB

En la ventana del editor se observan de arriba abajo los iconos que resultan ser
principales a la hora de escribir un script. En el recuadro blanco del editor, se mues-
tra un script o programa que grafica una función seno. Al guardar este programa, al
nombre del mismo le sucederá una extensión .m. Una ventana auxiliar muy útil, es
la ventana en forma de columna que aparece al extremo izquierdo del entorno de
trabajo. Esta ventana es el “espacio de trabajo”, y su función es guardar el conte-
nido numérico de las variables introducidas en la “ventana de comando”, o que se
ejecutan con el script.

La “ventana de comando” (i.e., Command Window) es muy práctica; en ella es


posible ejecutar funciones integradas en MATLAB. Se puede solicitar ayuda en lı́nea
de esas funciones, con el comando help, seguido del nombre de la función que se
quiere consultar. Se puede usar la ventana de comando, como si fuera una calcu-

Manual de prácticas: Dinámica de Sistemas 5


PRÁCTICA 1. INTRODUCCIÓN A MATLAB

ladora. El siguiente paso en la metodologı́a es aprender el uso de la ventana de


comando.

1.6.2. Uso de la ventana de comando

En MATLAB toda variable es de tipo matriz, y no es necesario hacer una decla-


ración explı́cita de la misma. En la ecuación (1.1) x es una matriz de (1 × 1) y su
valor es x = 0.5.
x = sin(pi/6) (1.1)

El valor de x se podrı́a usar en otra expresión, porque queda guardado en el es-


pacio de trabajo. En ocasiones se requiere usar un vector, en MATLAB existe una
expresión que facilita declarar un vector con una progresión discreta controlada. En
la ecuación (1.2) aparece el vector t que inicia en 0 y tiene un paso discreto de 0.1
hasta 5.0.
t = 0 : 0.1 : 5 (1.2)

El resultado es una variable matricial t con una fila y 51 columnas. En operacio-


nes matriciales el “punto y coma” sirve para expresar el fin de una fila e inicio de otra
como se observa en (1.3), donde los paréntesis cuadrados delimitan la matriz y las
columnas se denotan con un espacio en blanco o una coma. En esta misma matriz,
el punto y coma después del paréntesis cuadrado de cierre, es usado para omitir el
despliegue de la matriz en la ventana de comando.

A = [1, 2, 3; 4 5 6; 7 8 9]; (1.3)

Se pueden obtener matrices nuevas a partir de matrices existentes o modificar


las matrices por el uso de los ı́ndices de las matrices. Por ejemplo en (1.4), el 2 es
cambiado por 55.
A(1, 2) = 55; (1.4)

Manual de prácticas: Dinámica de Sistemas 6


PRÁCTICA 1. INTRODUCCIÓN A MATLAB

Para crear una matriz o vector a partir de otra, se puede hacer con el operador
“dos puntos” en los ı́ndices de la matriz origen como en (1.5). Aquı́ f contiene un
vector formado por la primera fila de la matriz A. Los paréntesis al lado derecho de
A, describe sus ı́ndices; el primer número dentro del paréntesis se refiere al número
de fila. Después de la coma, el operador dos puntos significa que se incluyen todas
las columnas A.
f = A(1, :) (1.5)

En el caso de crear una matriz a partir de otra, en (1.6) se obtiene una matriz
con las 3 filas de A pero sólo las 2 últimas columnas. De presentarse errores en las
dimensiones de las matrices, ejecutar el comando size(A), que desplegará primero
el número de filas y luego el número de columnas de la matriz.

f = A(:, 2 : 3) (1.6)

Si se desea borrar el contenido de todas las variable en el espacio de trabajo,


se puede ejecutar el comando clear. Si se quiere borrar el contenido de una sola
variable, e.g. A, entonces se puede escribir clear A.

Para borrar todo lo escrito en la ventana comando se escribe clc. Después de


haber estudiado algunos comandos esenciales de MATLAB, el último paso en esta
metodologı́a, será incluir algunos más, que nos permitan simular el comportamiento
del modelo de un fenómeno fı́sico sencillo.

1.6.3. Modelado de un fenómeno fı́sico

De los fenómenos fı́sicos estudiados desde la antigüedad (Alarcón R. y cols.,


2012) tenemos la caı́da libre de un cuerpo. La segunda ley de Newton (N) auxilia en
el modelado de la caı́da libre de un cuerpo. En la Figura 1.2, se tiene un objeto con

Manual de prácticas: Dinámica de Sistemas 7


PRÁCTICA 1. INTRODUCCIÓN A MATLAB

Figura 1.2: Objeto en caı́da libre.

una masa m = 1 Kg, que se deja caer desde una altura tal, que el objeto tardará 10
segundos (s) en llegar al suelo.

La segunda ley de Newton esta descrita por (1.7) donde la aceleración se sus-
tituye por la derivada de la velocidad (note se, que no se considera la fricción del
aire).
dv(t)
m =F (1.7)
dt
En las ecuaciones (1.8) y (1.9) se muestra la obtención de la transformada de La-
Place de la ecuación diferencial que describe la segunda ley de Newton.
   
dv(t) F
L =L (1.8)
dt m
F/m
sV (s) = (1.9)
s

Haciendo uso de la antitransformada de LaPlace en (1.10) y (1.11) se obtiene la


velocidad de caı́da del objeto con respecto al tiempo.
 
−1 F/m
L [V (s)] = L
−1
(1.10)
s2
v(t) = (F/m)t (1.11)

v(t) = 9.8 × t (1.12)

Si la aceleración gravitacional se considera como g = 9.8 m/s, y si F = mg


entonces F = 9.8 N. Al sustituir en (1.11) la fuerza y la masa tendremos la expresión

Manual de prácticas: Dinámica de Sistemas 8


PRÁCTICA 1. INTRODUCCIÓN A MATLAB

(1.12). Con esta expresión es fácil modelar el comportamiento desde t = 0 hasta


t = 10 s. La solución a la ecuación diferencial que representa a un cuerpo en caı́da
libre, ha sido solucionada a través de la transformada de LaPlace. Sin embargo,
existen otros métodos (Atkinson, Han, y Stewart, 2011; Pietryga, 2005); en el Listado
1.1 se muestra un código de MATLAB donde se soluciona la ecuación (1.7).

Listado 1.1: Código para obtener v(t)

1 syms v(t) % declarando la variable simbólica velocidad


2 Dv = diff(v); %derivando la variable velocidad
3 v_t=dsolve(’Dv(t)==9.8’,v(0)==0) %resolviendo la ecuación
4 time=0:10; %variable numérica que sustituye a la simbólica t
5 v=double(subs(v_t,t,time)); %cambio al ámbito numérico
6 plot(time,v,’--r*’) %gráfica de velocidad
7 title(’Caida libre de un objeto’); %tı́tulo
8 xlabel(’Tiempo (s)’) %etiqueta eje x
9 ylabel(’Velocidad (m/s)’); %etiqueta eje y
10 grid %dibujo de rejilla

En la lı́nea 3 del Listado 1.1 se tiene el comando dsolve que soluciona la ecua-
ción diferencial por el método Runge-Kutta. En el primer término de la primera igual-
dad dentro del paréntesis, se tiene la derivada de la velocidad con respecto al tiempo
y en el segundo término, la fuerza sobre la masa cuyo resultado es 9.8 (i.e., la ma-
sa no tiene efectos en la caı́da). La condición inicial de la velocidad es cero (i.e.,
v(0)==0).

El resto del código en el listado genera la simulación del comportamiento de la


velocidad en el transcurso de 10 s. La Figura 1.3 muestra precisamente el compor-
tamiento lineal de la caı́da de la masa m en 10 s. En donde es posible apreciar una
velocidad final de 98 m/s.

Manual de prácticas: Dinámica de Sistemas 9


PRÁCTICA 1. INTRODUCCIÓN A MATLAB

Caida libre de un objeto


100

90

80

70

Velocidad (m/s)
60

50

40

30

20

10

0
0 2 4 6 8 10
Tiempo (s)

Figura 1.3: Velocidad de un cuerpo en caı́da libre en un lapso de 10 s.

1.7. Sugerencias didácticas

Como sugerencias didácticas se propone la solución de los siguientes ejercicios


tomados de Jalón, Rodrı́guez, y Brazález (1999).

1.7.1. Ejercicios

1.1 Usar la función magic para obtener una matriz A de (4 × 4) cuyas filas y colum-
nas siempre suman 34.

1.2 A partir de la matriz A obtener la matriz B de (2 × 2) que incluya las fila 2 y 4


de A y las columnas 1 y 2 de A.

1.3 Obtener un vector fila C que contenga la fila 3 de A.

1.4 Generar un vector fila D con el operador dos puntos (:) que inicie en 1 tenga
un paso incremental de 2 y termine en 11.

1.5 Generar un vector fila E con el operador dos puntos, que inicie en 10, tenga un
paso decremental de 1 y que termine en 1.

Manual de prácticas: Dinámica de Sistemas 10


PRÁCTICA 1. INTRODUCCIÓN A MATLAB

1.6 Con la función rand generar un vector columna aleatorio F de (5 × 1).

1.7 Obtener un vector G a partir de la diagonal de A.

1.8 Obtener un vector fila H de 5 unos.

1.9 Obtener una matriz unitaria (i.e., identidad) I de (5 × 5).

1.10 Obtener una matriz unitaria J del tamaño de A usando el comando size.

1.7.2. Solución a ejercicios

En esta sección se muestra el código a introducir en el Command Window que


se observa en la Figura 1.1. Esto dará solución a los ejercicios propuestos en la
sección anterior. Se recomienda su ejecución para observar los resultados.

1.1 >> A = magic(4)

1.2 >> f = [2 4]; c = [1 2]; B = A(f,c)

1.3 >> C = A(3,:)

1.4 >> D = 1:2:11

1.5 >> E = 10:-1:1

1.6 >> F = rand(5,1)

1.7 >> G = diag(A)

1.8 >> H = ones(1,5)

1.9 >> I = eye(5,5)

1.10 >> J = eye(size(A))

Manual de prácticas: Dinámica de Sistemas 11


PRÁCTICA 1. INTRODUCCIÓN A MATLAB

1.7.3. Creación de un programa

Hasta aquı́, se ha estudiado como ejecutar comandos por medio del Command
Window, pero también es posible editar un programa o script.

Figura 1.4: Creación de un nuevo programa.

Para crear un nuevo programa, primero se define la ruta de la carpeta donde


se guarda el script (ver Figura 1.4). Después se da clic en el icono New Script que
aparece en la esquina superior izquierda de la Figura 1.4 y de esta forma se abre el
editor.

Una vez en el editor, se puede escribir un programa como el que se muestra


en la Figura 1.5. Ya escrito el programa, se debe guardar; para ello se puede dar
clic al icono guardar (i.e., Save). Entonces aparece una ventana donde se debe
dar nombre al Script. Es importante que los nombres de los Scripts nunca inicien
con número, que no contengan espacios en blanco, ni caracteres especiales (i.e.,
arroba, asterisco, diagonal, coma, etc.).

Después de guardar el Script, es posible ejecutar el programa. Para esto, se da


clic en el icono de ejecutar (i.e., Run) o se oprime la tecla F5. También se puede
escribir el nombre del programa en el Command Window y dar Enter. En la Figura
1.6, se muestra la ejecución de un programa desde el editor.

Manual de prácticas: Dinámica de Sistemas 12


PRÁCTICA 1. INTRODUCCIÓN A MATLAB

Figura 1.5: Cómo guardar programa o Script.

Figura 1.6: Ejecución de un programa desde el editor.

Manual de prácticas: Dinámica de Sistemas 13


PRÁCTICA 1. INTRODUCCIÓN A MATLAB

1.7.4. Simulación de un modelo oscilante

Como parte del reporte el alumno debe simular el comportamiento de un modelo


oscilante haciendo uso de la función seno. El comando para esta función es sin().
La gráfica que el alumno debe lograr desarrollar es como la que se muestra en la
Figura 1.7.

Figura 1.7: Simulación de un modelo oscilante: función seno.

1.8. Reporte del alumno

Se sugiere entregar el programa propuesto en la sección 1.7.4 al instructor. El


nombre del archivo debe tener extensión .m. La discusión de resultados y conclusio-
nes, se debe entregar en un procesador de texto como el Microsoft Word®, el Libre
Office®, u otro similar.

1.8.1. Discusión de resultados

Como ideas de discusión del sistema propuesto en la sección 1.7.4, se sugiere


la respuesta a las siguientes preguntas:

Manual de prácticas: Dinámica de Sistemas 14


PRÁCTICA 1. INTRODUCCIÓN A MATLAB

¿Cómo logró que la función seno cubriera los 3600 ?

¿Cómo lograrı́a graficar 10 ciclos?

¿Qué comando uso para incluir la leyenda seno(x)?

¿Qué otras propiedades se pueden agregar o modificar en el comando plot?

¿Existe algún otro comando para crear vectores en MATLAB?

1.8.2. Conclusiones

El alumno debe explicar en que medida logró adquirir las competencias propues-
tas en esta práctica. Cuales fueron las principales dificultades que enfrentó y como
las solucionó. También puede proponer ideas para mejorar la comprensión de los
temas tratados en la práctica.

Referencias

Alarcón R., M. M., y cols. (2012). Estudio del fenómeno de la caı́da de los objetos
desde la perspectiva de los sistemas dinámicos: una propuesta para el desa-
rrollo de competencias cientı́ficas (Tesis Doctoral no publicada). Universidad
Nacional de Colombia.
Atkinson, K., Han, W., y Stewart, D. E. (2011). Numerical solution of ordinary diffe-
rential equations (Vol. 108). John Wiley & Sons.
Beucher, O., y Weeks, M. (2008). Introduction to matlab & simulink (a project ap-
proach). Laxmi Publications, Ltd.
de Jalón, J. G., Rodrı́guez, J. I., y Brazález, A. (1999). Aprenda matlab 5.3 como si
estuviera en primero. Universidad de Navarra. Escuela Superior de Ingenieros
Industriales.

Manual de prácticas: Dinámica de Sistemas 15


PRÁCTICA 1. INTRODUCCIÓN A MATLAB

Kalechman, M. (2008). Practical matlab basics for engineers. CRC Press.


Klee, H. (2011). Simulation of dynamic systems with matlab and simulink. CRC
Press.
Lynch, S. (2004). Dynamical systems with applications using matlab. Springer.
Pietryga, F. (2005). Solving differential equations using matlab/simulink. En Procee-
dings of the american society for engineering education annual conference &
exposition.
Sizemore, J. (2015). Reasons for matlab’s popularity and “targeted to audience”
textbooks. Bulletin of the American Physical Society, 60.

Manual de prácticas: Dinámica de Sistemas 16


PRÁCTICA 2
APLICACIONES DE MATLAB EN DIN ÁMICA DE
SISTEMAS

2.1. Competencias

El alumno conoce la descripción de los elementos de un sistema fı́sico, las


leyes y las ecuaciones que los rigen para predecir su comportamiento.

Conoce los comandos fundamentales de MATLAB aplicados a Dinámica de


Sistemas.

2.2. Introducción

Esta práctica da seguimiento a los conceptos básicos de MATLAB introducidos


en la práctica anterior. Da a conocer al alumno comandos de MATLAB aplicados a
Sistemas Dinámicos fı́sicos representados por ecuaciones Matemáticas. Se intro-
duce en la simulación por el uso de programas llamados scripts. Se prueban los
modelos matemáticos de sistemas fı́sicos con señales de entrada; para ası́ poder
predecir su comportamiento y determinar su utilidad, a la hora de resolver un proble-
ma de ingenierı́a. Como sugerencia didáctica se propone la solución de ejercicios.

17
PRÁCTICA 2. APLICACIONES DE MATLAB EN DINÁMICA DE SISTEMAS

El producto de esta práctica, será la implementación de un programa que simule el


comportamiento de un sistema fı́sico.

2.3. Temas y subtemas

Temas: Introducción a la Modelación de Sistemas. Se analizan sistemas fı́si-


cos, que se modelan matemáticamente y se simulan a través de MATLAB.

Subtemas:

Conceptos preliminares. Se introduce al alumno en MATLAB.

Sistemas Fı́sicos. Se modelan los fenómenos fı́sicos.

Modelos matemáticos lineales. Se usan leyes fı́sicas y matemáticas.

Simulación. Se codifica un programa con ecuaciones matemáticas para su


simulación.

2.4. Medidas de seguridad e higiene

Como se trata de un software de simulación, las prácticas se deben desarro-


llar en el laboratorio de computo. La seguridad en un laboratorio de computo tiene
que ver con el equipo de computo. Para evitar daño en los computadores, se debe
evitar introducir bebidas al laboratorio. Los lı́quidos derramados sobre el equipo de
computo seguramente lo dañarán.

Si se va a trabajar en equipos, deben sentarse de tal manera que no se obstruyan


los pasillos. Debe tenerse mucho cuidado al insertar una unidad de memoria flash
USB a un computador; asegúrese que se encuentra libre de virus. Se tiene que
evitar las infecciones en los equipos de computo, para evitar que estos fallen.

Manual de prácticas: Dinámica de Sistemas 18


PRÁCTICA 2. APLICACIONES DE MATLAB EN DINÁMICA DE SISTEMAS

2.5. Material y equipo necesario

Es necesario contar con los libros y manuales de consulta que se sugieren en


las referencias bibliográficas de esta práctica (Klee, 2011; Vargas y Berenguel, 2004;
Lynch, 2004). Se requiere la versión 2014 o superior del MATLAB y un computador
con un procesador Intel®, Core™ i3 ó su equivalente, con una memoria de 2 GB de
RAM.

2.6. Metodologı́a

En esta práctica se introducen comandos más avanzados de MATLAB. Es por


eso que la metodologı́a a seguir es: primeramente estudiar comandos referentes a
la programación de MATLAB, para después aplicar comandos que se pueden usar
en la modelación de Sistemas Dinámicos.

2.6.1. Funciones orientadas al análisis de datos

Son funciones que trabajan con vectores; si se aplican a una matriz operan por
columnas. En Dinámica de Sistemas, las funciones de transferencia son usuales
para modelar sistemas fı́sicos. Las funciones de transferencia constan de un nume-
rador y un denominador los cuales se expresan en forma polinomial.

Un ejemplo es el polinomio s3 − 6s2 + 11s − 6 que se representa como:

>> p = [1 -6 11 -6];

Por medio del comando roots se puede encontrar las raı́ces del polinomio.

>> roots(p)

Manual de prácticas: Dinámica de Sistemas 19


PRÁCTICA 2. APLICACIONES DE MATLAB EN DINÁMICA DE SISTEMAS

La respuesta que se observa en la ventana Comand Window es: ans 1; 2; 3; (i.e.,


respuesta: las raı́ces del polinomio son 1, 2, 3). De igual forma, si se quiere revertir
la operación, se aplica el comando poly(ans) y se encontrarán los coeficientes del
polinomio p.

Si la entrada a la función poly es un argumento en forma de matriz, regresa


como respuesta el polinomio caracterı́stico de la matriz (i.e., det(λ I − A)) como un
vector fila. Un polinomio puede ser evaluado en un punto especı́fico por el uso del
comando polyval(p,x) donde p es el polinomio y x es el punto a evaluar, e.g.:

>> p = [1 3 2]; x = [2 3; 4 5]; polyval(p,x)

Según se ve en este caso, cuando se introduce una matriz en x se evalúa ele-


mento a elemento. También, es posible efectuar operaciones de multiplicación y
división de polinomios, con los comandos conv(x,y) y deconv(x,y) respectivamente.

2.6.2. Programando en MATLAB

MATLAB es un lenguaje parecido a otros lenguajes. Se puede escribir un pro-


grama en un script, o usar el Command Window para ejecutar los comandos. Los
operadores relacionales son los siguientes:

< menor que, <= menor igual, == igual


> mayor que, >= mayor igual, ∼= no igual

Estos operadores hacen comparación entre escalares y en caso de matrices


comparan elemento a elemento. Si el resultado de la comparación es verdadero se
regresa un uno, en caso contrario se regresa un cero.

La sintaxis para el ciclo for es como sigue:

Manual de prácticas: Dinámica de Sistemas 20


PRÁCTICA 2. APLICACIONES DE MATLAB EN DINÁMICA DE SISTEMAS

for variable = expresión,


ejecuta algo;
end

En el Listado 2.1 se observa un script tomado de (Vargas y Berenguel, 2004)


donde se ejemplifica el uso de los ciclos for anidados.

Listado 2.1: Ejemplo de ciclos for anidados.

1 x = (0:0.1:pi)’; %vector de 0 a 180 grados


2 y = x; %con un paso de 0.1
3 for f=1:length(x) %inicio del for externo
4 for c=1:length(y) %inicio del for anidado
5 Z(f,c) = sin(x(f)).^2 + cos(y(c)).^2;
6 end %función a graficar
7 end
8 mesh(x,y,Z); %gráfica en 3D

En los comandos de ciclos de MATLAB como el for y el while, se puede hacer uso
del comando break, para salir del ciclo ante una determinada condición. La sintaxis
del comando de control de flujo if, else, elseif es como sigue:

if expresión 1,
ejecuta algo;
elseif expresión 2
ejecuta algo;
else expresión 3
ejecuta algo;
end

Además de los scripts que tienen extensión .m, también existen otros archivos
que tienen extensión .m, estos son los archivos de funciones (i.e., function). A dife-

Manual de prácticas: Dinámica de Sistemas 21


PRÁCTICA 2. APLICACIONES DE MATLAB EN DINÁMICA DE SISTEMAS

rencia de los scripts a las funciones se les puede pasar argumentos y devuelven un
resultado. La sintaxis de las funciones es como sigue:

function [out1,out2,...] = nombre archivo (in1,in2,...)


% Comentarios para el help
comandos de MATLAB
return

Existen otros comandos que resultan de mucha utilidad al programar en un script,


estos son: pause, disp, e input. El pause interrumpe la ejecución del script hasta que
se pulse Enter (i.e., Intro). También se puede pausar el programa por n segundos
con pause(n).

El comando disp, despliega una cadena de caracteres en el Command Window


cuando se ejecuta el script. Por último input despliega un mensaje pidiendo por
datos que se almacenarán en una variable.

2.6.3. MATLAB en el modelado de Sistemas Dinámicos

Lo Sistemas Dinámicos se suelen modelar por medio de funciones de transfe-


rencia. Para ello se usa el comando tf(num,den) donde el parámetro num se refiere
a un vector que representa al numerador y el parámetro den se refiere a un vector
que representa al denominador, e.g.:

>> num = [1 2]; den = [1 2 1];


>> sistema = tf(num,den)

En este ejemplo en su forma polinomial el numerados equivale a: s + 2 y el de-


nominador equivale a: s2 + 2s + 1. En el caso de la ecuación (2.1) se puede expresar
con los siguientes vectores num = [1 2], den1 = [1 2 1], den2 = [1 3].

Manual de prácticas: Dinámica de Sistemas 22


PRÁCTICA 2. APLICACIONES DE MATLAB EN DINÁMICA DE SISTEMAS

(s + 2)
H(s) = (2.1)
(s2 + 2s + 1)(s + 3)

Es posible multiplicar los denominadores con el comando den = conv(den1,


den2); el resultado que se obtiene se muestra en la ecuación (2.2). Lo que se mues-
tra en el Command Window es el vector den = [1 5 7 3].

s+2
H(s) = (2.2)
s3 + 5s2 + 7s + 3

El vector “den” puede expresar los polos del sistema con el comando roots(den)
que se despliegan en el Command Window de la siguiente forma:

>> roots(den)
ans =
-3.0000 + 0.0000i
-1.0000 + 0.0000i
-1.0000 - 0.0000i

Lo anterior también se puede lograr por el uso del comando tf2zp de la siguiente
manera:

>> [ceros, polos, ganancia] = tf2zp (num, den);

En los vectores “cero”, “polos”, se regresan las raı́ces de los ceros y los polos
respectivamente. En el escalar ganancia, se regresa la ganancia estática del sis-
tema. La función complementaria zp2tf regresa el numerador y el denominador en
forma polinomial.

Es usual probar el comportamiento de los Sistemas Dinámicos por el uso de


una señal de entrada al sistema (Ogata, 2010, 2004). Las señales de entrada más
comunes son: el escalón unitario, el impulso y la rampa.

Manual de prácticas: Dinámica de Sistemas 23


PRÁCTICA 2. APLICACIONES DE MATLAB EN DINÁMICA DE SISTEMAS

Sistemas que tengan una descripción en función de transferencia se pueden


probar con una entrada tipo escalón. El comando para generar esta señal es step.
En el Listado 2.2 se muestra el código de la aplicación de la señal escalón unitario
a un sistema representado por una función de transferencia.

Listado 2.2: Señal de prueba: escalón unitario

1 num = 1; %numerador y denominador


2 den = [1 6 3 6]; %de la función de transferencia
3 t = (0:0.2:20)’; %vector tiempo
4 y = step(num,den,t); %función del escalón unitario
5 plot (t,y); %gráfica de la función
6 title (’Respuesta a un escalon unitario’); %tı́tulo
7 xlabel (’tiempo(seg)’); %etiqueta eje x
8 grid; %dibujo de rejilla

En la Figura 2.1 se muestra la respuesta de un escalón unitario aplicado al sis-


tema descrito en el Listado 2.2. Cuando se usa el comando step no es necesario
usar plot (como en este caso); pero para ello se debe evitar el uso de parámetros
de salida (i.e., la variable “y” en el Listado 2.2).
Respuesta a un escalón unitario
0.3

0.25

0.2

0.15

0.1

0.05

0
0 5 10 15 20
tiempo(seg)

Figura 2.1: Respuesta a escalón unitario.

Manual de prácticas: Dinámica de Sistemas 24


PRÁCTICA 2. APLICACIONES DE MATLAB EN DINÁMICA DE SISTEMAS

La sintaxis para la función impulso es muy parecida a la del escalón unitario. El


comando a utilizar es: impulse(num, den, t) donde t es el vector tiempo. Para la señal
de entrada tipo rampa, no existe un comando especı́fico, pero se puede generar por
el uso del comando lsim. En el Listado 2.3 se muestra el código para aplicar una
señal de entrada rampa a un sistema dado. El comando lsim, es usado para simular
la respuesta de un Sistema Dinámico, ante una señal de entrada arbitraria.

Listado 2.3: Señal de prueba: rampa

1 num = 10; %numerador y denominador


2 den = [1 6 2 6]; %de la función de transferencia
3 t = (0:0.2:20)’; %tiempo
4 ramp = t; %entrada rampa
5 y = lsim (num,den,ramp,t); %simulación de un sistema
6 plot (t,y,t,ramp); %para una entrada rampa
7 title (’Respuesta a una rampa’); %tı́tulo
8 xlabel (’tiempo(seg)’); %etiqueta eje x
9 grid; %dibujo de rejilla

En el Listado 2.3, los parámetros del comando lsim comprenden primeramen-


te a la función de transferencia (i.e, num, den); luego “ramp y t”, se corresponden
respectivamente con la señal de entrada y el vector tiempo, que rige la duración de
la simulación. En la Figura 2.2 se muestra la respuesta de un sistema dado a una
entrada rampa. Esta gráfica se obtuvo con el código del Listado 2.3.

2.7. Sugerencias didácticas

Como sugerencias didácticas se propone la solución de los siguientes ejercicios


de MATLAB.

Manual de prácticas: Dinámica de Sistemas 25


PRÁCTICA 2. APLICACIONES DE MATLAB EN DINÁMICA DE SISTEMAS

Respuesta a una rampa


35

30

25

20

15

10

0
0 5 10 15 20
tiempo(seg)

Figura 2.2: Respuesta a una entrada rampa

2.7.1. Ejercicios

2.1 ¿Cómo representarı́a en un vector fila los coeficientes del polinomio: s3 + 9s2 +
26s + 24?

2.2 Escriba el código para obtener las raı́ces del polinomio anterior.

2.3 Escriba el código para obtener la función de transferencia mostrada en la ex-


presión (2.3).
s2 + 2s + 1
H(s) = (2.3)
s4 + 3s3 + 2s + 1

2.4 Escriba el código para obtener la función de transferencia mostrada en la ex-


presión (2.4).
3(s + 0.5)(s + 10)
H(s) = (2.4)
(s + 1)(s + 2)(s + 5.5)

2.5 Codifique un script, donde se aplique una señal de entrada rampa al siste-
ma representado por la expresión (2.4); grafique la respuesta del sistema con
respecto a la entrada rampa.

Manual de prácticas: Dinámica de Sistemas 26


PRÁCTICA 2. APLICACIONES DE MATLAB EN DINÁMICA DE SISTEMAS

2.7.2. Solución a ejercicios

En esta sección se muestra el código a introducir en el Command Window o


en script; que dará solución a los ejercicios propuestos en la sección anterior. Se
recomienda su ejecución para observar los resultados.

2.1 >> p = [1, 9, 26, 24]

2.2 >> r = roots(p)

2.3 >> num = [1, 2, 1]; den = [1, 3, 0, 2, 1]; H s = tf(num, den)

2.4 >> ceros = [-0.5; -10]; polos = [-1; -2; -5.5]; k = 3; H s = zpk(ceros, polos, k)

2.5 Ver solución en el Listado 2.4.

Listado 2.4: Entrada rampa al sistema representado por (2.4).

1 ceros = [-.5; -10]; %ceros de la función


2 polos = [-1; -2; -5.5]; %polos de la función
3 k=3; %ganancia de la función
4 [num,den]=zp2tf(ceros,polos,k); %conversión a función de
5 t = (0:0.2:20)’; %transferencia
6 ramp = t; %entrada rampa
7 y = lsim (num,den,ramp,t); %simulación de un sistema
8 plot (t,y,t,ramp); %a la entrada rampa
9 title (’Respuesta a una rampa’); %tı́tulo
10 xlabel (’tiempo(seg)’); %etiqueta eje x
11 grid; %dibujo de rejilla

Manual de prácticas: Dinámica de Sistemas 27


PRÁCTICA 2. APLICACIONES DE MATLAB EN DINÁMICA DE SISTEMAS

2.7.3. Problema propuesto

Se tiene un sistema masa-resorte-amortiguador (ver Figura 2.3), donde la masa


es m = 1 kg, la constante de amortiguación es b = 3 N/m/s, y la constante elas-
ticidad es k = 2 N/s. La función de transferencia que gobierna el comportamiento
del desplazamiento l(t) de la masa, al aplicar una fuerza f (t) sobre la misma, se
muestra en la expresión (2.5).

f(t)
k

b l(t)

Figura 2.3: Sistema masa-resorte-amortiguador.

F(s)
L(s) = (2.5)
ms2 + bs + k

Codifique un script que grafique el comportamiento de l(t), cuando la fuerza f (t)


consiste en un escalón unitario, aplicado en un tiempo inicial t0 = 0 s y hasta un
tiempo final t f = 10 s. Determine una resolución para la gráfica de 0.2 s.

2.8. Reporte del alumno

Se sugiere entregar el programa propuesto en la sección 2.7.3 al instructor. El


nombre del archivo debe tener extensión .m. La discusión de resultados y conclusio-
nes, se debe entregar en un procesador de texto como el Microsoft Word®, el Libre
Office®, u otro similar.

Manual de prácticas: Dinámica de Sistemas 28


PRÁCTICA 2. APLICACIONES DE MATLAB EN DINÁMICA DE SISTEMAS

2.8.1. Discusión de resultados

Como ideas de discusión del problema prouesto, se sugiere la respuesta a las


siguientes preguntas:

Si la ecuación diferencial que gobierna el comportamiento del sistema masa-


2
resorte-amortiguador es: f (t) = m d dtl(t) dl(t)
2 + b dt + kl(t), ¿cómo llegar a la función

de transferencia mostrada en la expresión (2.5), a partir de ésta ecuación dife-


rencial?

Dado que el sistema masa-resorte-amortiguador propuesto es una simplifica-


ción de este sistema fı́sico real, ¿qué factores fı́sicos se tienen que agregar
para lograr una simulación más real?

Si la señal aplicada al sistema es la unidad ¿por qué la salida máxima del


sistema es la mitad de la entrada?

¿Qué ganancia propone para la función de transferencia, a fin de lograr que la


gráfica de L(s) llegue a la unidad en t f ?

Si se cambia la resolución de la gráfica a 1 s ¿que cambios se observan en la


gráfica.

2.8.2. Conclusiones

El alumno debe explicar en que medida logró adquirir las competencias propues-
tas en esta práctica. Cuales fueron las principales dificultades que enfrentó y como
las solucionó. También puede proponer ideas para mejorar la comprensión de los
temas tratados en la práctica.

Manual de prácticas: Dinámica de Sistemas 29


PRÁCTICA 2. APLICACIONES DE MATLAB EN DINÁMICA DE SISTEMAS

Referencias

Klee, H. (2011). Simulation of dynamic systems with matlab and simulink. CRC
Press.
Lynch, S. (2004). Dynamical systems with applications using matlab. Springer.
Ogata, K. (2004). System dynamics. Pearson Prentice Hall.
Ogata, K. (2010). Modern control engineering. Prentice Hall.
Vargas, M., y Berenguel, M. (2004). Introducción a matlab y su aplicación al análisis
y control de sistemas. lı́nea]. Universidad de Sevilla, Diciembre. Descargado
de http://www.esi2.us.es/

Manual de prácticas: Dinámica de Sistemas 30


PRÁCTICA 3
INTRODUCCI ÓN A SIMULINK

3.1. Competencias

El alumno inicia la comprensión de los conceptos de base para el modelado y


la simulación de sistemas de diferente tipo.

El alumno conoce el modelado básico a través de SIMULINK.

3.2. Introducción

Esta práctica introduce al alumno en el software de simulación llamado SIMU-


LINK. También, propone los conceptos básico del modelado de sistemas fı́sicos, por
el uso de las ecuaciones diferenciales ordinarias que los representan. Se enseña al
alumno, como en base a esas ecuaciones diferenciales, se puede construir un mo-
delo en SIMULINK. Estos modelos, son muy didácticos porque en lugar de mostrar
un sistema tipo caja negra, muestra un esquema de diseño, donde se puede dar
seguimiento a la señal de entrada, al ir navegando a través de cada bloque. Como
sugerencia didáctica se propone la solución de ejercicios. El producto de esta prácti-
ca, será el diseño de un modelo en SIMULINK que simule el comportamiento de un
sistema fı́sico.

31
PRÁCTICA 3. INTRODUCCIÓN A SIMULINK

3.3. Temas y subtemas

Temas: Introducción a la Modelación de Sistemas. Se analizan sistemas fı́si-


cos, que se modelan matemáticamente y se simulan a través de SIMULINK.

Subtemas:

Conceptos preliminares. Se introduce al alumno en SIMULINK.

Sistemas Fı́sicos. Se modelan los fenómenos fı́sicos.

Modelos matemáticos lineales. Se usan leyes fı́sicas y matemáticas.

Simulación. Se construyen modelos con bloques de SIMULINK, que represen-


tan ecuaciones matemáticas.

3.4. Medidas de seguridad e higiene

Como se trata de un software de simulación, las prácticas se deben desarro-


llar en el laboratorio de computo. La seguridad en un laboratorio de computo tiene
que ver con el equipo de computo. Para evitar daño en los computadores, se debe
evitar introducir bebidas al laboratorio. Los lı́quidos derramados sobre el equipo de
computo seguramente lo dañarán.

Si se va a trabajar en equipos, deben sentarse de tal manera que no se obstruyan


los pasillos. Debe tenerse mucho cuidado al insertar una unidad de memoria flash
USB a un computador; asegúrese que se encuentra libre de virus. Se tiene que
evitar las infecciones en los equipos de computo, para evitar que estos fallen.

Manual de prácticas: Dinámica de Sistemas 32


PRÁCTICA 3. INTRODUCCIÓN A SIMULINK

3.5. Material y equipo necesario

Es necesario contar con los libros y manuales de consulta que se sugieren en


las referencias bibliográficas de esta práctica (Mathworks, 2015; Klee, 2011; Cha-
turvedi, 2009). Se requiere la versión 2014 o superior del MATLAB y un computador
con un procesador Intel®, Core™ i3 ó su equivalente, con una memoria de 2 GB de
RAM.

3.6. Metodologı́a

En esta práctica, se introducen los modelos (i.e., programas) de SIMULINK ne-


cesarios para la simulación de Sistemas Dinámicos. Por lo que, primeramente se
estudia el entorno visual de SIMULINK, luego los bloques más importantes en el
diseño de modelos. Por último, se desarrolla la simulación de un sistema fı́sico a
través de sus ecuaciones matemáticas, implementadas en bloques de SIMULINK
(i.e., diseño de un modelo).

3.6.1. Entorno visual de SIMULINK

Para acceder a SIMULINK, primeramente inicializamos MATLAB; una vez que


éste se haya inicializado, damos clic en el icono de Simulink Library que se muestra
en la Figura 3.1. Otra forma de dar inicio a SIMULINK, es escribiendo el comando
simulink en el Command Window y luego pulsar Enter (i.e., Intro).

En la Figura 3.2 se muestra la ventana principal de SIMULINK. Para el diseño


de un modelo se da clic en el icono New Model. Al hacer esto, se abre una ventana
como la mostrada en la Figura 3.3; este es el entorno de diseño de SIMULINK.

Manual de prácticas: Dinámica de Sistemas 33


PRÁCTICA 3. INTRODUCCIÓN A SIMULINK

Figura 3.1: Icono para acceden al entorno de diseño de SIMULINK.

Figura 3.2: Librerı́a de SIMULINK.

Figura 3.3: Entorno de diseño de SIMULINK.

Manual de prácticas: Dinámica de Sistemas 34


PRÁCTICA 3. INTRODUCCIÓN A SIMULINK

En la Figura 3.3 se tiene el icono para ejecutar la simulación del modelo, el icono
de paro de simulación, la ventana de tiempo de simulación, y abajo, la ventana
de porcentaje de avance y el método para la solución de ecuaciones diferenciales
ordinarias (i.e., ode3). También se tiene el diseño de un modelo sencillo, que incluye
un bloque de una señal de entrada, una función de transferencia y como bloque de
salida, un osciloscopio.

Al dar clic en el icono de activar simulación, el porcentaje de avance completa el


100 %; si no existe error, entonces se puede dar doble clic en el osciloscopio. Esto,
abrirá una ventana con una gráfica que mostrará el comportamiento de salida de la
función de transferencia, ante una señal de entrada escalón unitario.

En el entorno de diseño de SIMULINK, uno de los iconos más importantes es el


de parámetros de simulación. Esta herramienta es útil para seleccionar los paráme-
tros adecuados para la simulación, como el periodo de muestreo y el algoritmo de
solución de ecuaciones diferenciales ordinarias.

3.6.2. Bloques más importantes de SIMULINK

Retomando la librerı́a de SIMULINK en la Figura 3.4, a mano izquierda se mues-


tra el árbol que contiene las diferentes cajas de herramientas de SIMULINK (i.e.,
Toolboxes. A Mano derecha, se muestran los diferentes bloques que conforman el
Toolbox de SIMULINK en la categorı́a de sistemas de tiempo continuo.

Aunque son muchos bloques con los que cuenta cada Toolbox, para Dinámica
de Sistemas solo algunos son los más usados (Arce Rubio y Vianna Raffo, 2009).
En esta sección se mencionan los más importantes. En la Figura 3.3 se muestra el
diseño de un modelo sencillo. Si se da doble clic en el bloque llamado Transfer Fcn
se abrirá una ventana que muestra los parámetros básicos del bloque (ver Figura
3.5).

Manual de prácticas: Dinámica de Sistemas 35


PRÁCTICA 3. INTRODUCCIÓN A SIMULINK

Figura 3.4: Bloques para el diseño de sistemas en tiempo continuo.

Figura 3.5: Parámetros básicos del bloque Transfer Fcn.

Manual de prácticas: Dinámica de Sistemas 36


PRÁCTICA 3. INTRODUCCIÓN A SIMULINK

Lo que se puede observar en la ventana del bloque de parámetros de la Figura


3.5, es que los datos del numerador se introducen en un vector fila; al igual sucede
con los del denominador. Todos los bloques de SIMULINK tienen este mismo com-
portamiento, al dar doble clic sobre ellos, se abrirá la ventana de parámetros de los
mismos. Por lo general todos los datos se introducen en vectores fila o columna y
en el caso de ganancias estáticas de los sistemas, en forma escalar.

Cuando se trata de bloques digitales se debe introducir el periodo de muestreo.


En la Figura 3.6 se muestran los bloques más usados de las librerı́as de sistemas
en tiempo continuo, de operaciones matemáticas y de ruta de señales. Es posible
modificar los nombres de cada uno de estos bloques, solamente se da clic en el
nombre del bloque para activar la caja de texto; luego, es posible cambiar el nombre
si se quiere.

Librería de sistemas lineales en tiempo continuo Librería de operaciones matemáticas


(i.e., Continuos) (i.e., Math Operations)

1 sin
du/dt 1 x' = Ax+Bu
y = Cx+Du
s Sum Gain Sign Trigonometric
Derivative Integrator State-Space Function
Librería de ruta de señales
(i.e., Signal Routing)
1 (s-1)
s+1 s(s+1)
Transport
Transfer Fcn Zero-Pole
Delay
Manual Switch Mux Demux

Figura 3.6: Bloques más usados de la librerı́a de sistemas de tiempo continuo.

En la Figura 3.7 se muestran los bloques de librerı́a de fuentes, sumideros y


funciones definidas por el usuario. De estos bloques, las funciones definidas por el
usuario, son diferentes en lo que se refiere a configuración de parámetros. Par el
bloque Fnc al dar doble clic en el bloque se abre la ventana de parámetros y en
lugar de introducir un vector, se introduce una función matemática que puede incluir
comandos integrados en MATLAB.

“El bloque MATLAB Function es más lento que el bloque Fcn porque por cada pa-

Manual de prácticas: Dinámica de Sistemas 37


PRÁCTICA 3. INTRODUCCIÓN A SIMULINK

Figura 3.7: Bloques más usados en las librerı́as de fuentes y sumideros.

so de integración llama a una función creada en MATLAB” como script (Arce Rubio
y Vianna Raffo, 2009).

3.6.3. Simulación de un modelo fı́sico

En la Figura 3.8 se muestra un circuito RLC (i.e., Resistencia, Bobina, Capacitor)


tomado de Arce Rubio y Vianna Raffo (2009). Se hará uso de las ecuaciones dife-
renciales que representan este modelo fı́sico, para ejemplificar el diseño equivalente
del mismo en SIMULINK.

R=1Ω L = 1/4 H

Vs(t) Vc(t)
C=4F

i(t)

Vs(t) = u0(t) = 1 V

Figura 3.8: Circuito eléctrico RLC.

El análisis de malla del circuito RLC, da como resultado la ecuación diferencial


(3.1)

Manual de prácticas: Dinámica de Sistemas 38


PRÁCTICA 3. INTRODUCCIÓN A SIMULINK

di(t)
Ri(t) + L + Vc (t) = u0 (t) (3.1)
dt

Si se desea declarar como variable de salida al voltaje en el capacitor (Vc ), en-


tonces se toma en cuenta la equivalencia expresada en (3.2).

dVc (t)
i(t) = iR (t) = iL (t) = iC (t) = C (3.2)
dt

Sustituyendo (3.2) en la ecuación de malla (3.1) resulta la expresión (3.3).

d 2Vc (t) dVc (t)


LC 2
+ RC + Vc (t) = u0 (t) (3.3)
dt dt

Sustituyendo los valores de los componentes del circuito de la Figura 3.8, en la


ecuación (3.3), se obtiene la ecuación (3.4).

d 2Vc (t) dVc (t)


+ 4 + Vc (t) = u0 (t) (3.4)
dt 2 dt

La solución de una ecuación diferencial ordinaria en SIMULINK, se puede formu-


lar de muchas formas y todas correctas; depende de la creatividad del diseñador.
Una de las maneras de formular esta solución, es haciendo uso de un diagrama de
estados simplificado (i.e., sin tomar en cuenta condiciones iniciales).

El primer paso es dejar al término de mayor orden de la ecuación (3.4) como


único primer miembro de la ecuación. De esta forma resultará la expresión (3.5).

d 2Vc (t) dVc (t)


2
= −4 − Vc (t) + u0 (t) (3.5)
dt dt

En la Figura 3.9 se muestra el diagrama de estado para la ecuación (3.5). En


un diagrama de estado (Golnaraghi y Kuo, 2010), los nodos son los términos de

Manual de prácticas: Dinámica de Sistemas 39


PRÁCTICA 3. INTRODUCCIÓN A SIMULINK

la ecuación diferencial, las flechas son las ganancias de cada término e indican el
sentido del flujo de la señal. En la trayectoria directa del diagrama, tenemos dos
integradores expresados según la transformada de LaPlace (i.e., 1s ).

Estos integradores efectúan la operación inversa a la derivada, por lo que al


avanzar la señal, el orden de la derivada de Vc (t) va descendiendo hasta llegar a la
variable de salida que se va a medir. Analizando el diagrama de estado, se puede
notar que el nodo principal es el de segundo orden. Todos los términos del segundo
miembro de la ecuación (3.5) apuntan hacia el nodo principal.

Empezando con u0 (t) este multiplica por la unidad y llega al nodo del término de
segundo orden. El nodo Vc (t) multiplica por -1 y luego llega al nodo principal. Por
dVc (t)
último el nodo de dt
multiplica por -4 y llega al nodo principal.

d 2 V c (t) dV c (t )
dt
2
dt Vc(t)
u0(t) Vc(t)
1 1 1 1
s s

-4

-1

Figura 3.9: Diagrama de estado que representa al circuito RLC.

Al llegar todos los términos del segundo miembro de la ecuación al nodo de


segundo orden (i.e., al primer miembro de la ecuación), se cumple la condición de
igualdad. Siguiendo esta técnica es posible solucionar las ecuaciones diferenciales
en SIMULINK. Pasar del diagrama de estado al modelo de SIMULINK se convierte
en algo sencillo; debido a que la relación visual entre uno y otro es muy buena.

Es ası́ que, los nodos de un diagrama de estado equivalen a unión de lineas de


SIMULINK, y las flechas, son bloques de ganancia o de funciones de transferencia.

Manual de prácticas: Dinámica de Sistemas 40


PRÁCTICA 3. INTRODUCCIÓN A SIMULINK

En base al contexto anterior, se desarrollará el modelo de SIMULINK del sistema


fı́sico estudiado en esta sección.

Para ello, se abre la librerı́a de diseño de SIMULINK (ver Figura 3.1). Una vez
se accedió a la librerı́a, se inicia un nuevo modelo (ver Figura 3.2). Ya en el entorno
de diseño de SIMULINK, se arrastran los bloques necesarios para el nuevo modelo
como se muestra en la Figura 3.10.

Figura 3.10: Diseño inicial del modelo para el circuito RLC.

En el modelo inicial mostrado en la Figura 3.10, los bloques en cı́rculos rojos ya


han sido modificados. Al bloque de suma se le agregó otra entrada; esto se logra
dando doble clic sobre el mismo, se abrirá la ventana de parámetros, y se debe
agregar un signo de suma ‘+’ a los ya existentes en la lista de signos.

A los bloques de ganancia (i.e., Gain2 y Gain3) se les invirtió su dirección. Esto
se logra dando un clic derecho sobre el bloque, con esto se abrirá un menú; des-
lizamos el puntero del ratón hasta la opción Rotate & Flip, se abrirá un submenú
donde se selecciona la opción Flip Block. Otra forma de poder invertir un bloque es:
seleccionando el bloque y luego pulsar las teclas Ctrl + i.

Para unir los bloques se puede hacer por medio del ratón. Se arrastra el pivote de
salida de un bloque con el botón izquierdo del ratón, hasta la entrada del siguiente
bloque. Al soltar el botón del ratón, se efectúa la conexión. De esta forma se com-

Manual de prácticas: Dinámica de Sistemas 41


PRÁCTICA 3. INTRODUCCIÓN A SIMULINK

pleta la trayectoria directa (i.e., lı́nea de transmisión de la señal desde la entrada a


la salida).

Las conexiones de entrada a los bloques invertidos se logra, insertando un nodo


de salida en medio de una flecha. Para hacer esto, se posiciona el puntero del
ratón sobre la flecha, luego se da clic derecho (sin soltar), se arrastra el puntero del
ratón hasta la entrada del bloque de ganancia invertido. Se completa las uniones de
los bloques invertidos con el sumador, y de esta forma se completa el diseño del
modelo, como se muestra en la Figura 3.11.

d 2V c(t)/dt 2
dV c(t)/dt V c(t)
1 1
1 1
s s
1

uo(t) = 1 Ganancia 1er. integrador 2do. integrador Ganancia Salida Vc(t)


de entrada de salida

-4

Ganancia
de dVc(t)/dt

-1

Ganancia
de Vc(t)

Figura 3.11: Diseño final del modelo para simular el circuito RLC.

Como se puede observar en el diseño final del modelo, las ganancias de los
bloques invertidos se modificaron. Esto se hizo dando doble clic en los bloques, y al
abrirse la ventana de parámetros, se cambiaron los valores por defecto de 1, a -4 y
dVc (t)
a -1, para las ganancias de dt
y Vc respectivamente. Los demás bloques no fueron
modificados.

En el caso de agregar una leyenda al modelo, se da doble clic en el lugar deseado


y se introduce el texto. Para modificar una leyenda existente, tan solo se da clic
en la caja de texto y al activarse, podrá ser modificada. Para cambiar el estilo del
texto, se selecciona el texto a ser personalizado, y en la barra de herramientas, se

Manual de prácticas: Dinámica de Sistemas 42


PRÁCTICA 3. INTRODUCCIÓN A SIMULINK

escoge Diagram, Format, Font Style. Entonces, aparecerá una ventana para hacer
los cambios de estilo en el texto.

Antes de dar clic en el icono de ejecución, se debe modificar el tiempo final


de simulación, del valor por defecto de 10 s, a 25 s, que es el tiempo apropiado
para esta simulación. Una vez hecho esto, se puede ejecutar la simulación. Cuando
la simulación se haya completado al 100 %, entonces se puede dar doble clic el
osciloscopio. Con esto, se visualiza el resultado de la señal de salida Vc (t), con
respecto a una señal de entrada constante unitaria u0 (t).

Autoscale

Figura 3.12: Gráfica de la señal de salida Vc (t).

En la Figura 3.12, se observa la señal de salida Vc (t). En ocasiones no se vi-


sualizan correctamente las dimensiones de los ejes de la gráfica; por consiguiente,
la figura no se aprecia en su totalidad. Para solucionar este problema, una de las
herramientas disponibles, es el icono de Autoscale, que se resalta encerrado en un
cı́rculo rojo en la Figura 3.12. Al dar clic en este icono, se podrá apreciar correcta-
mente la gráfica.

Manual de prácticas: Dinámica de Sistemas 43


PRÁCTICA 3. INTRODUCCIÓN A SIMULINK

3.7. Sugerencias didácticas

Como sugerencias didácticas se propone la solución de los siguientes ejercicios


en SIMULINK.

3.7.1. Ejercicios

3.1 Diseñe un modelo en SIMULINK, que reste dos números (constantes) y que
después de la resta los multiplique por 10. Muestre el resultado de las opera-
ciones en un Display.

3.2 Diseñe un modelo en SIMULINK, que sume una señal de entrada rampa (con
pendiente unitaria), con una señal de entrada senoidal (con amplitud unitaria).
Después de la suma, grafique la señales de salida en un osciloscopio.

3.3 Diseñe un modelo en SIMULINK, que tenga como señal de entrada un escalón
unitario, que se aplique a una función de transferencia con un numerados de
ganancia 10, y denominador con el polinomio s3 + 3s2 + 6s + 10. Para observar
la señal de salida del sistema, use un osciloscopio.

3.4 Diseñe un modelo en SIMULINK, que tenga como señal de entrada una on-
da senoidal, que se aplique a un bloque Zero-Pole, cuyas raı́ces se ubiquen
según la expresión (3.6). Para observar la señal de salida del sistema, use un
osciloscopio. Sitúe el tiempo máximo de simulación en 30 s.
Y (s) (s + 5)
= (3.6)
U(s) (s + 1)(s + 2)(s + 3)

3.5 Solucione la ecuación diferencial ordinaria (3.7) a través de un modelo de SI-


MULINK (Herman, 2017). La condición inicial es y(0) = 0. Grafique y(t) en un
osciloscopio.
dy(t)
+ 4y(t) = 2sen3t (3.7)
dt

Manual de prácticas: Dinámica de Sistemas 44


PRÁCTICA 3. INTRODUCCIÓN A SIMULINK

3.7.2. Solución a ejercicios

En esta sección, se muestra los modelos diseñados en la solución de los ejerci-


cios propuestos en la sección anterior.

En la Figura 3.13 se tiene la solución a los dos primeros ejercicios de la sección


anterior. En la Figura 3.14 se tiene la solución al tercero y cuarto ejercicio. Para
visualizar los resultados se debe dar doble clic sobre el osciloscopio y al abrirse la
ventana del mismo, se pulsa el icono de Autoscale.

En la Figura 3.15 se muestra la solución al quinto ejercicio, i.e., la solución a


la ecuación diferencial (3.7). En la misma Figura, a mano derecha, se muestra la
ventana de parámetros de la onda senoidal. Una vez se configure, se puede ejecutar
el modelo y ası́ visualizar la respuesta ofrecida en la gráfica del osciloscopio.

10

10 Constant3
Ramp
Constant 50
Add1 Scope
Product Display
Add
5
Sine Wave
Constant1
Ejercicio 2
Ejercicio 1

Figura 3.13: Solución a los dos primeros ejercicios de la sección 3.7.1.

10 (s+5)
s3+3s2+6s+10 (s+1)(s+2)(s+3)
Step Transfer Fcn Scope Sine Wave Zero-Pole Scope1

Ejercicio 3 Ejercicio 4

Figura 3.14: Solución al tercer y cuarto ejercicio de la sección 3.7.1.

Manual de prácticas: Dinámica de Sistemas 45


PRÁCTICA 3. INTRODUCCIÓN A SIMULINK

Parámetros de onda senoidal

Figura 3.15: Solución al quinto ejercicio de la sección 3.7.1.

3.7.3. Problema propuesto

Con el propósito de comparar resultados entre un enfoque y otro en la solución


de problemas, se retoma el problema propuesto en la sección 2.7.3. Con esto, se
podrá comparar entre la simulación de un sistema fı́sico a través de un script de
MATLAB, y un modelo de SIMULINK.

En la Figura 3.16 se muestra el sistema masa-resorte-amortiguador, donde la


masa es m = 1 kg, la constante de amortiguación es b = 3 N/m/s, y la constante
elasticidad es k = 2 N/m. La ecuación diferencial que gobierna el comportamiento
del desplazamiento l(t) de la masa, al aplicar una fuerza f (t) sobre la misma, se
muestra en la expresión (3.8). Las condiciones iniciales deben ser cero (i.e., y(0) =
0).

f(t)
k

b l(t)

Figura 3.16: Sistema masa-resorte-amortiguador.

Manual de prácticas: Dinámica de Sistemas 46


PRÁCTICA 3. INTRODUCCIÓN A SIMULINK

d 2 l(t) dl(t)
m 2
+b + kl(t) = f (t) (3.8)
dt dt

Basándose en la ecuación (3.8), diseñe un modelo en SIMULINK que compren-


da: de dos bloques integradores, un bloque de entrada, que corresponda a una señal
f (t) escalón unitaria; use un sumador y los bloques de ganancia necesarios. Para
observar la respuesta l(t) del sistema, utilice como bloque de salida un osciloscopio.

3.8. Reporte del alumno

Se sugiere entregar el modelo en SIMULINK propuesto en la sección 3.7.3 al


instructor. El nombre del archivo debe tener extensión .slx. La discusión de resulta-
dos y conclusiones, se debe entregar en un procesador de texto como el Microsoft
Word®, el Libre Office®, u otro similar.

3.8.1. Discusión de resultados

Como ideas de discusión del problema propuesto, se sugiere la respuesta a las


siguientes preguntas:

¿Qué expresiones matemáticas pueden ser usadas para representar el des-


plazamiento de l(t), en un sistema masa-resorte-amortiguador, cuando se apli-
ca una fuerza f (t)?

En el diseño del modelo de SIMULINK propuesto, ¿Los parámetros de qué


bloque integrador deben modificarse, para que la condición inicial sea y(0) =
−1?

Manual de prácticas: Dinámica de Sistemas 47


PRÁCTICA 3. INTRODUCCIÓN A SIMULINK

¿Que diferencias en la respuesta a la señal l(t) observa, entre una simulación


por medio de un script de MATLAB, y un modelo de SIMULINK para un sistema
fı́sico masa-resorte-amortiguador?

¿Qué enfoque de simulación le parece mejor? y ¿Por qué le parece mejor?

3.8.2. Conclusiones

El alumno debe explicar en que medida logró adquirir las competencias propues-
tas en esta práctica. Cuales fueron las principales dificultades que enfrentó y como
las solucionó. También puede proponer ideas para mejorar la comprensión de los
temas tratados en la práctica.

Referencias

Arce Rubio, A., y Vianna Raffo, G. (2009, Marzo). Manual de simulink pa-
ra la asignatura de teorı́a de sistemas. ESCUELA SUPERIOR DE INGE-
NIEROS, DEPARTAMENTO DE INGENIERÍA DE SISTEMAS Y AUTOMÁTI-
CA, UNIVERSIDAD DE SEVILLA. Descargado de http://perso.ya.com/
ecoterso/ManualSimulink.pdf
Chaturvedi, D. K. (2009). Modeling and simulation of systems using matlab and
simulink. CRC Press.
Golnaraghi, F., y Kuo, B. C. (2010). Automatic control systems. JOHN WILEY &
SONS, INC.
Herman, R. (2017, June). Solving differential equations using simulink. Published
in URL. Descargado de people.uncw.edu/hermanr/mat361/simulink since
Summer 2015.

Manual de prácticas: Dinámica de Sistemas 48


PRÁCTICA 3. INTRODUCCIÓN A SIMULINK

Klee, H. (2011). Simulation of dynamic systems with matlab and simulink. CRC
Press.
Mathworks, I. S. (2015). Simulink: User’s guide. The MathWorks, Inc.

Manual de prácticas: Dinámica de Sistemas 49


PRÁCTICA 4
SOLUCI ÓN DE ECUACIONES DIFERENCIALES
EN MATLAB

4.1. Competencias

El alumno conoce, desarrolla y aplica métodos para la representación ma-


temática de sistemas continuos, para la sı́ntesis y resolución de modelos ma-
temáticos que describen el comportamiento dinámico de sistemas continuos.

El alumno soluciona las ecuaciones diferenciales que modelan un sistema fı́si-


co continuo a través de MATLAB.

4.2. Introducción

Esta práctica trata sobre el modelado de sistemas fı́sicos a través de ecuaciones


diferenciales. Se introduce a alumno en el Simbolic Toolbox de MATLAB, con el
propósito de que pueda solucionar las ecuaciones diferenciales en un script. Se dan
ejemplos de la solución de ecuaciones diferenciales por medio de los comandos
apropiados del Simbolic Toolbox. Como sugerencia didáctica se propone la solución
de ejercicios. El producto de esta práctica, será la implementación de un programa

50
PRÁCTICA 4. SOLUCIÓN DE ECUACIONES DIFERENCIALES EN MATLAB

que resuelva la ecuación diferencial, que define el comportamiento de un sistema


fı́sico en el tiempo.

4.3. Temas y subtemas

Tema: Marco Matemático. Se representan matemáticamente los sistemas fı́si-


cos continuos.

Subtemas:

Ecuaciones Diferenciales (E.D.).

Linealidad.

Métodos de solución de E.D. Lineales.

4.4. Medidas de seguridad e higiene

Como se trata de un software de simulación, las prácticas se deben desarro-


llar en el laboratorio de computo. La seguridad en un laboratorio de computo tiene
que ver con el equipo de computo. Para evitar daño en los computadores, se debe
evitar introducir bebidas al laboratorio. Los lı́quidos derramados sobre el equipo de
computo seguramente lo dañarán.

Si se va a trabajar en equipos, deben sentarse de tal manera que no se obstruyan


los pasillos. Debe tenerse mucho cuidado al insertar una unidad de memoria flash
USB a un computador; asegúrese que se encuentra libre de virus. Se tiene que
evitar las infecciones en los equipos de computo, para evitar que estos fallen.

Manual de prácticas: Dinámica de Sistemas 51


PRÁCTICA 4. SOLUCIÓN DE ECUACIONES DIFERENCIALES EN MATLAB

4.5. Material y equipo necesario

Es necesario contar con los libros y manuales de consulta que se sugieren en las
referencias bibliográficas de esta práctica (Mathworks, 2017b, 2017a; Moore, 2015;
Moler, 2013). Se requiere la versión 2014 o superior del MATLAB y un computador
con un procesador Intel®, Core™ i3 ó su equivalente, con una memoria de 2 GB de
RAM.

4.6. Metodologı́a

Básicamente existen tres herramientas en MATLAB para la solución de ecua-


ciones diferenciales ordinarias (ODEs): el Symbolic Toolbox, el software MuPAD, y
los métodos numéricos que por defecto tiene MATLAB. De las tres herramientas, la
mejor es el Symbolic Toolbox. El software MuPAD aunque es parte de MATLAB, usa
una sintaxis y una semántica diferente al MATLAB lo cual toma tiempo en aprender.

Los métodos numéricos de MATLAB, son más rápidos que los simbólicos, pero
pueden presentar errores de exactitud en la solución. Otra desventaja en los méto-
dos numéricos, es que son fáciles de usar para ecuaciones de primer orden, pero
se dificulta su uso cuando son de orden mayor, porque se tienen que representar
las ecuaciones en el espacio estado (i.e., en forma matricial).

La ventaja del Symbolic Toolbox es que presenta la solución en una forma cerra-
da (i.e., sin error). Otra ventaja, es que esta caja de herramientas tiene una sintaxis
parecida al MATLAB (aunque esta basada en MuPAD), la forma de su representa-
ción es semejante a la forma analı́tica. Por esta razón, en esta metodologı́a, pri-
meramente se da una introducción a la caja de herramientas simbólica, para luego
aplicarla en la solución de ecuaciones diferenciales que representan a un sistema
fı́sico.

Manual de prácticas: Dinámica de Sistemas 52


PRÁCTICA 4. SOLUCIÓN DE ECUACIONES DIFERENCIALES EN MATLAB

4.6.1. Introducción al Symbolic Toolbox de MATLAB

Existen dos formas de crear una variable simbólica en MATLAB. Se muestran a


continuación en las siguientes lı́neas.

>> x = sym(’x’);
o
>> syms x;

La segunda opción es más conveniente, porque es posible crear más de una


variable con un solo comando (Moore, 2015). En la siguiente lı́nea, e.g.

>> syms Q R T u0;

Estas variables pueden ser usadas para formar una nueva variable que compren-
da de múltiples variables, e.g.

>> u = u0*R*exp(-Q/T)

Otro comando simbólico de MATLAB es el comando simple, que regresa la ex-


presión algebraica simplificada más corta. Además, también regresa la solución de
múltiples comandos de simplificación, como son: simplify, factor, expand, combine,
etc. En el Listado 4.1 se muestra un ejemplo del uso del comando simplify.

Listado 4.1: Ejemplo sobre el uso del comando simplify.

1 z = sym(’x+3*x+(x-2)^2-(x^2+2*x+1)’) %declaración de ecuación simbólica


2 simplify(z) %simplificación de la ecuación

El resultado del programa del Listado 4.1 se muestra en la siguiente lı́nea.

ans =

3 - 2*x

Manual de prácticas: Dinámica de Sistemas 53


PRÁCTICA 4. SOLUCIÓN DE ECUACIONES DIFERENCIALES EN MATLAB

El comando [num,den] = numden(S) encuentra el numerador y el denominador


de una fracción algebraica. El comando poly2sym, convierte un polinomio expresa-
do en un vector numérico, en una ecuación simbólica; el comando sym2poly ha-
ce la operación inversa. En la siguientes lı́neas se muestra el uso de poly2sym y
sym2poly.

>> v = [2, 5, 1]; u = poly2sym(v)

Como resultado se observa:


u=

2*xˆ2 + 5*x + 1

>> z = sym2poly(u)

como resultado se observa:


z=

2 5 1.

Aquı́ “z” equivale a la regresión del vector inicial “v”. El comando solve puede
determinar raı́ces de expresiones, encuentra una respuesta numérica cuando existe
una variable única. También puede resolver un conjunto de ecuaciones. E.g., para la
variable u = 2x2 + 5x + 1 declarada anteriormente, la respuesta de solve se muestra
en las siguientes lı́neas.

>> solve(u)
ans =

- 17ˆ (1/2)/4 - 5/4


17ˆ (1/2)/4 - 5/4

Si se quiere convertir esta respuesta de números expresados en fracciones, a


doble precisión, entonces se aplica el comando double, como se muestra a conti-
nuación.

Manual de prácticas: Dinámica de Sistemas 54


PRÁCTICA 4. SOLUCIÓN DE ECUACIONES DIFERENCIALES EN MATLAB

>> double(ans)
ans =

-2.2808
-0.2192

Otra forma de obtener una respuesta numérica, en la solución de una expresión


algebraica, es usando el comando subs (i.e., substitución). Para ejemplificar el uso
de subs de nuevo se usará la expresión u = 2x2 + 5x + 1, donde x se substituye por
la unidad. La respuesta se muestra en las siguientes lı́neas.

>> subs(u,’x’,1)
ans =

El comando subs, se puede usar para substituir un vector en lugar de un escalar


(como se mostró en las lı́neas anteriores). En este caso, se podrı́a graficar el vector x
con respecto a la respuesta u, con el comando plot. Sin embargo, existen comandos
especializados en la graficación de expresiones simbólicas en MATLAB. Uno de
estos comandos es: ezplot. En la lı́nea siguiente se muestra como se usarı́a con
respecto a la expresión u.

>> ezplot(u)

En la Figura 4.1 se muestra la gráfica de la expresión u. Esta gráfica se desarrolló


con el comando ezplot. Antes de pasar a ecuaciones diferenciales es necesario
mencionar el comando diff(f,‘t’,n). En este comando, f es la función a derivar, ‘t’ es
la variable con respecto a la que se va a derivar y n es el orden de la derivada. En
la siguiente lı́nea se presenta la doble derivada de la expresión x3 − 5t + 4y2 con
respecto a x.

>> y = sym(’xˆ3 -5*t +4*yˆ2’); diff(y,‘x’,2)


ans =

Manual de prácticas: Dinámica de Sistemas 55


PRÁCTICA 4. SOLUCIÓN DE ECUACIONES DIFERENCIALES EN MATLAB

6*x

5 x + 2 x2 + 1

100

80

60

40

20

-6 -4 -2 0 2 4 6
x

Figura 4.1: Gráfica de una expresión simbólica por medio de ezplot.

4.6.2. Ecuaciones diferenciales en el Simbolic toolbox

En MATLAB se puede usar cualquier sı́mbolo para representar las variables de-
pendientes e independientes. Sin embargo, la variable independiente por defecto
es ‘t’. En la ecuación (4.1) aparece una ecuación diferencial de primer orden con
nomenclatura básica.

dy
=y (4.1)
dt

En la ecuación (4.1) se busca que y esté en función del tiempo, por lo que, se
propone y = et . Ahora, es posible solucionar la ecuación diferencial, que usualmente
tienen más de una solución. La familia de soluciones para la ecuación en cuestión,
se aprecia en (4.2).

Manual de prácticas: Dinámica de Sistemas 56


PRÁCTICA 4. SOLUCIÓN DE ECUACIONES DIFERENCIALES EN MATLAB

y = C1 et (4.2)

Se puede tener una solución especı́fica cuando se propone condiciones iniciales.


Para la solución de (4.2), cuando la condición inicial es: y(0) = 1, entonces C1 = 1.
El Simbolic Toolbox de MATLAB, contiene el comando dsolve, que soluciona ecua-
ciones diferenciales para y, en función de t. E.g., en las siguientes lı́neas se muestra
la solución de (4.1) por medio de dsolve.

>> dsolve(‘Dy = y’)


ans =

C1*exp(t)

En el caso de que t no sea la variable independiente, se puede especificar en el


tercer campo, como se observa en el ejemplo de la siguiente lı́nea.

>> dsolve(‘Dy = 2*y/x’,‘y(-1) = 1’, ‘x’)


ans =

xˆ 2

En el ejemplo anterior, el segundo campo del comando dsolve, corresponde a


las condiciones iniciales de la ecuación diferencial.

4.6.3. Solución de ecuaciones diferenciales de un sistema fı́sico

Según Edwards y Penney (2008) “las leyes del universo están escritas en el
lenguaje de las matemáticas”. Aunque este enunciado se oye absolutista, es verdad
que muchos fenómenos fı́sicos, pueden ser modelados por las matemáticas con un
grado de aproximación, tal que, para ciertos contextos de aplicación dichos modelos

Manual de prácticas: Dinámica de Sistemas 57


PRÁCTICA 4. SOLUCIÓN DE ECUACIONES DIFERENCIALES EN MATLAB

resultan útiles. Para modelos estáticos, el álgebra resulta ser suficiente, pero para
los dinámicos, es necesario el uso de ecuaciones diferenciales.

En esta sección, se estudiará el comportamiento de un sistema fı́sico represen-


tado por ecuaciones diferenciales, propuesto por Edwards y Penney (2008). En la
Figura 4.2, se muestra una representación de un módulo lunar. Éste módulo, cae
libremente hacia la superficie lunar a una velocidad de 450 m/s. Cuando se dispa-
ran sus retrocohetes, proporcionan una desaceleración constante de 2.5 m/s2 ; (se
supone que la aceleración de la gravedad producida por la luna se incluye en la
desaceleración dada). ¿A qué altura x(t) sobre la superficie lunar, deberán activarse
los retrocohetes para garantizar un “alunizaje suave”, (v = 0 en el impacto)?

a v

Figura 4.2: Dibujo de la representación de un módulo lunar.

En la solución de este sistema fı́sico, se denota a x(t) como la altura del módulo
lunar sobre la superficie. Los retrocohetes serán encendidos en t = 0. La condición
inicial para la velocidad v0 = −450 m/s, (negativa porque la altura x(t) disminuirá).
La aceleración a = +2.5 m/s2 , porque un empuje hacia arriba aumenta la velocidad
v, (aunque disminuye la velocidad |v|). La velocidad de una partı́cula esta dada por
la ecuación diferencial (4.3), mientras que su aceleración por la ecuación diferencial

Manual de prácticas: Dinámica de Sistemas 58


PRÁCTICA 4. SOLUCIÓN DE ECUACIONES DIFERENCIALES EN MATLAB

(4.4).
dx
v= (4.3)
dt
dv d2x
a= = 2 (4.4)
dt dt

Sustituyendo las constantes y las condiciones iniciales en las ecuaciones (4.3)-


(4.4), se puede calcular x(t) como se muestra en el listado 4.2. En la lı́nea 3 del
listado, se resuelve la ecuación diferencial (4.3), donde “v(0)” es la condición inicial
de velocidad. En la lı́nea 4, “v(t)” se iguala a cero, porque la velocidad final para un
alunizaje suave debe ser cero. En la lı́nea 5, se obtiene el tiempo final “tf = 180”(s),
que es el tiempo que tarda el módulo en alunizar. En la lı́nea 8, se soluciona la
ecuación diferencial (4.4); note se aquı́, que la condición inicial de desplazamiento
“x(0)” es cero, porque da inicio el descenso, y según (4.3), la condición inicial de la
derivada de desplazamiento “Dx(0)” es igual a la velocidad inicial. En la lı́nea 9, se
substituye el tiempo final “tf” en lugar de “t” de la ecuación de “x(t)”, para obtener la
distancia a descender x(t) = −40, 500 m. El signo negativo, indica que la distancia
irá en descenso hasta llegar a cero.

Listado 4.2: Obtención de la altura a descender x(t) del módulo lunar.

1 syms x(t) v(t) %declarando variables simbólicas


2 Dv=diff(v); %derivada de v
3 v(t)=dsolve(’Dv==2.5’,v(0)==-450) %solución de ecuación de v(t)
4 eq_t=subs(’v’,v(t)==0) %velocidad final = 0 para alunizaje suave
5 tf=solve(eq_t) %resolviendo ecuación de tiempo final
6 Dx=diff(x); %derivada de x
7 D2x=diff(x,2); %doble derivada de x
8 x(t)=dsolve(’D2x==2.5’,x(0)==0,Dx(0)==-450) %solución ecuación x(t)
9 x_t=subs(x(t),t,tf) %altura a descender x(t)

Manual de prácticas: Dinámica de Sistemas 59


PRÁCTICA 4. SOLUCIÓN DE ECUACIONES DIFERENCIALES EN MATLAB

4.7. Sugerencias didácticas

Como sugerencias didácticas se propone la solución de los siguientes ejercicios


usando el Simbolic Toolbox de MATLAB.

4.7.1. Ejercicios

4.1 Crear las correspondientes variables simbólicas, tal que se pueda construir la
expresión ax3 + bx2 + cx + d.

4.2 Por el uso de los comandos sym y simplify simplificar la expresión x3 − 1 =


(x − 3) ∗ (x + 3).

4.3 Obtener el numerador y el denominador de la siguiente expresión (4.5).

y−1
(4.5)
y2 + 3y + 5

4.4 Solucionar la siguiente ecuación (4.6) y los resultados convertirlos a doble.

x3 − 6.6x2 + 13.3x − 7.9 (4.6)

4.5 Graficar la ecuación (4.6).

4.7.2. Solución a ejercicios

En esta sección se muestra el código a introducir en el Command Window o


en script; que dará solución a los ejercicios propuestos en la sección anterior. Se
recomienda su ejecución para observar los resultados.

4.1 >> syms a, b, c, d, x; a*xˆ3 + b*xˆ2 + c*x + d

Manual de prácticas: Dinámica de Sistemas 60


PRÁCTICA 4. SOLUCIÓN DE ECUACIONES DIFERENCIALES EN MATLAB

4.2 >> w = sym (’xˆ3-1 = (x-3)*(x+3)’); simplify(w)

4.3 >> v=sym(’(y-1)/(yˆ2 +3*y+5)’); [num,den]=numden(v)

4.4 >> z=sym(’xˆ3 -6.6*xˆ2+ 13.3*x -7.9’); solve(z); double(ans)

4.5 >> ezplot(z)

4.7.3. Problema propuesto

En la Figura 4.3, se considera un sistema de nivel de lı́quidos. Se asume que el


nivel de lı́quido h se encuentra en estado estable. En t = 0, la válvula de entrada se
abre más y el caudal de entrada qi cambia a 0.5 × 10−4 m3 /s. La ecuación diferencial
que rige el comportamiento del nivel de lı́quido es (4.7),

dh(t)
C = qi − qo (4.7)
dt

donde la capacitancia del tanque es C = 0.02 m2 , y el caudal de salida se define


como: qo = h(t)/R. La resistencia de caudal de la válvula de salida se define como:
R = 0.532 × 104 s/m2 . Determine el comportamiento del nivel de lı́quido h(t) como
una función del tiempo; considere la condición inicial h(0) = 0.

qi
Válvula
de control

h Válvula
de carga
qo

C = 0.02 m2
Resistencia, R

Figura 4.3: Sistema de nivel de lı́quido.

Manual de prácticas: Dinámica de Sistemas 61


PRÁCTICA 4. SOLUCIÓN DE ECUACIONES DIFERENCIALES EN MATLAB

4.8. Reporte del alumno

Se sugiere, después de resolver el problema propuesto en la sección 4.7.3 en


un script, entregarlo al instructor. El nombre del archivo debe tener extensión .m. La
discusión de resultados y conclusiones, se debe entregar en un procesador de texto
como el Microsoft Word®, el Libre Office®, u otro similar.

4.8.1. Discusión de resultados

Como ideas de discusión del problema propuesto, se sugiere la respuesta a las


siguientes preguntas:

En la solución a la ecuación diferencial (4.7), ¿qué tipo de función del tiempo


resultó ser h(t)?

En caso de turbulencia en el tanque, la ecuación (4.7) ¿seguirı́a representando


la dinámica del sistema?

El comando ezplot por defecto sólo grafica 12 s, ¿Cómo graficar 120 s en el


sistema de nivel de lı́quidos propuesto en la sección 4.7.3?

4.8.2. Conclusiones

El alumno debe explicar, en que medida logró adquirir las competencias propues-
tas en esta práctica. Cuales fueron las principales dificultades que enfrentó y como
las solucionó. También puede proponer ideas para mejorar la comprensión de los
temas tratados en la práctica.

Manual de prácticas: Dinámica de Sistemas 62


PRÁCTICA 4. SOLUCIÓN DE ECUACIONES DIFERENCIALES EN MATLAB

Referencias

Edwards, C. H., y Penney, D. E. (2008). Elementary differential equations (Sixth


ed.). Upper Saddle River, NJ 07458: Pearson, Prentice Hall.
Mathworks, I. S. (2017a). Mupad® user’s guide. Descargado de https://
www.mathworks.com
Mathworks, I. S. (2017b). Symbolic math toolbox™ user’s guide. Descargado de
https:// www.mathworks.com
Moler, C. (2013). Numerical computing with matlab. Mathworks. Descargado de
https:// www.mathworks.com
Moore, H. (2015). Matlab® for engineers. Pearson.

Manual de prácticas: Dinámica de Sistemas 63


PRÁCTICA 5
SOLUCI ÓN DE ECUACIONES EN DIFERENCIAS
EN MATLAB

5.1. Competencias

El alumno conoce, desarrolla y aplica métodos para la representación ma-


temática de sistemas discretos, para la sı́ntesis y resolución de modelos ma-
temáticos que describen el comportamiento dinámico de sistemas discretos.

El alumno obtiene las competencias básicas para la solución de ecuaciones


en diferencias, que modelen un sistema fı́sico en MATLAB.

5.2. Introducción

Esta práctica, trata sobre el modelado de sistemas fı́sicos a través de ecuaciones


en diferencias. Para la solución de ecuaciones en diferencias, se usarán métodos
simbólicos y métodos numéricos. Para los métodos simbólicos, se usará el Simbolic
Toolbox de MATLAB, y para los métodos numéricos, se usarán funciones integradas
en MATLAB como la función filter. Se darán ejemplos de la solución de ecuacio-
nes en diferencias, por medio de los comandos apropiados del Simbolic Toolbox, y

64
PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

de las funciones numéricas. Como sugerencia didáctica, se propone la solución de


ejercicios. El producto de esta práctica, será la implementación de un programa que
resuelva la ecuación en diferencias, que define el comportamiento de un sistema
fı́sico en tiempo discreto.

5.3. Temas y subtemas

Tema: Marco Matemático. Se representan matemáticamente los sistemas fı́si-


cos discretos.

Subtemas:

Ecuaciones en diferencias finitas.

Linealidad.

Métodos de solución de ecuaciones en diferencias finitas lineales.

Filtros digitales.

5.4. Medidas de seguridad e higiene

Como se trata de un software de simulación, las prácticas se deben desarro-


llar en el laboratorio de computo. La seguridad en un laboratorio de computo tiene
que ver con el equipo de computo. Para evitar daño en los computadores, se debe
evitar introducir bebidas al laboratorio. Los lı́quidos derramados sobre el equipo de
computo seguramente lo dañarán.

Si se va a trabajar en equipos, deben sentarse de tal manera que no se obstruyan


los pasillos. Debe tenerse mucho cuidado al insertar una unidad de memoria flash

Manual de prácticas: Dinámica de Sistemas 65


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

USB a un computador; asegúrese que se encuentra libre de virus. Se tiene que


evitar las infecciones en los equipos de computo, para evitar que estos fallen.

5.5. Material y equipo necesario

Es necesario contar con los libros y manuales de consulta que se sugieren en las
referencias bibliográficas de esta práctica (Mathworks, 2017; Ingle y Proakis, 2012;
Moudgalya, 2007; Elaydi, 2005). Se requiere la versión 2014 o superior del MATLAB
y un computador con un procesador Intel®, Core™ i3 ó su equivalente, con una
memoria de 2 GB de RAM.

5.6. Metodologı́a

El modelado de sistemas dinámicos a través de ecuaciones en diferencias es


usado en diferentes ciencias como: la economı́a (Elaydi, 2005), el procesamiento di-
gital de señales (Ingle y Proakis, 2012; Elali, 2005) y el control discreto (Moudgalya,
2007; Fadali y Visioli, 2013) (por mencionar algunas de ellas). En esta contribución
se estará enfocando el uso de ecuaciones en diferencias para el modelado de sis-
temas fı́sicos.

En MATLAB existen principalmente dos formas de solucionar ecuaciones en di-


ferencias, una es a través del Simbolic Toolbox, y otra, por medio de funciones in-
tegradas en MATLAB, que usan métodos numéricos. En esta aportación se estarán
estudiando brevemente ambas propuestas. Como se dijo en la práctica anterior, los
métodos simbólicos son más exactos, pero con un tiempo de computo mayor, mien-
tras que los métodos numéricos tienen un tiempo de computo menor, a expensas
de menor exactitud.

Manual de prácticas: Dinámica de Sistemas 66


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

5.6.1. Definición de ecuaciones en diferencias

En matemáticas, existen ecuaciones que permiten el cálculo del valor de una fun-
ción de forma recursiva, a partir de un conjunto de valores dados. A estas ecuacio-
nes se les llama: “ecuaciones en diferencias” o “ecuaciones de recurrencia” (Kelley
y Peterson, 2001). Estas ecuaciones sólo usan valores discretos, i.e., las variables
se consideran discretas, en contra posición a continuas, si son divisibles un número
finito de veces.

Los sistemas dinámicos discretos, en ocasiones son producto del muestreo de


señales continuas. En la Figura 5.1 se observa el resultado del muestreo de una
función senoidal. Para un periodo de muestreo T (i.e., duración de un paso tiempo)
constante, se puede definir el tiempo continuo como t = T k. En la señal de la Figura
5.1 el periodo de muestreo T = 0.1 s, donde k son los eventos de muestreo (i.e.,
pasos de tiempo), que en este caso llegan hasta 20 (i.e., n = 20).

Figura 5.1: Gráfica de una función senoidal muestreada x(k).

En la formulación de ecuaciones en diferencias, si se considera el tiempo de


muestreo T , como constante, entonces se puede omitir. Siendo ası́, una ecuación
en diferencias toma la forma expresada en (5.1),

y(k) + a1 y(k − 1) + · · · + an y(k − n) = b0 u(k) + b1 u(k − 1) + · · · + bn u(k − n) (5.1)

Manual de prácticas: Dinámica de Sistemas 67


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

donde u es la variable de entrada, cuando y es la variable de salida y n son los va-


lores pasados de las variables u, y. El valor actual en la entrada se considera como
u(k); dando inicio con k = 0, si se conoce y(−1), . . . , y(−n), y u(−1), . . . , u(−n), y
u(0), entonces se puede calcular y(0). Se almacena u(0), y(0) en una pila (i.e., stack,
vector en memoria de computo) y se procede al cálculo de y(1), y ası́ recursivamente
hasta y(n). El procedimiento citado aquı́, es bastante adecuado para la simulación
de sistemas discretos. Si se conocen la entrada u(z), y las condiciones iniciales
y(−1), . . . , y(−n), u(−1), . . . , u(−n), se puede calcular analı́ticamente y(k), obtenien-
do la transformada z de ambos miembros de la ecuación (5.1) (Madhusudan, 2015).

5.6.2. Solución en forma simbólica de ecuaciones en diferencias

En la solución de ecuaciones en diferencias el Simbolic Toolbox de MATLAB


hace uso de la transformada z (Mathworks, 2017). Para ilustrar el método de solu-
ción de ecuaciones en diferencias por medio de la transformada z, se resolverá un
problema en forma analı́tica, para luego resolverse a través del Simbolic Toolbox.

Ejemplo 5.1. Problema del “crecimiento de población de conejos”: si un


par de conejos madura en un año, y luego produce otro par de conejos cada año,
la población de conejos y(k) en el año k, se describe mediante la ecuación en di-
ferencias (5.2). Solucionar la ecuación que define el problema, tal que describa el
comportamiento de la población de conejos para n años.

y(k + 2) = y(k + 1) + y(k) (5.2)

Aunque no se cuenta con una entrada u(k) que excite el sistema, se pueden
dilucidar las condiciones iniciales. Se cuenta inicialmente con un par de conejos,
i.e., y(0) = 1, y después de transcurrido un año se contará con otro par, por lo que
y(1) = 2. Primeramente se aplican las propiedades de adelanto en el tiempo de la

Manual de prácticas: Dinámica de Sistemas 68


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

transformada z, (ver apéndice II de (Fadali y Visioli, 2013)) sobre (5.2), resultando


(5.3),
z2Y (z) − z2 y(0) − zy(1) = zY (z) − zy(0) + Y (z) (5.3)

sustituyendo las condiciones iniciales en (5.3), se obtiene (5.4),

z2Y (z) − z2 − 2z = zY (z) − z + Y (z) (5.4)

factorizando y despejando en (5.4) para Y (z)/z resulta (5.5),

Y (z) z+1
= 2 (5.5)
z z −z−1

al consultar la tabla de la transformada z (ver apéndice I de (Fadali y Visioli, 2013)) es


posible notar, que la expresión (5.5) no se puede normalizar para aproximar algunas
de las fórmulas de la tabla. Por lo tanto, se debe recurrir a la descomposición en
fracciones parciales. Es ası́ que la expresión (5.5) se transforma en (5.6),

Y (z) A B
= + (5.6)
z (z + 0.618) (z − 1.618)

calculando los coeficientes de las fracciones, se obtienen A = −0.1708, y B = 1.1708.


Sustituyendo estos valores y despejando z al segundo miembro de la ecuación (5.6)
se obtiene (5.7).
−0.1708z 1.1708z
Y (z) = + (5.7)
(z + 0.618) (z − 1.618)
Las fracciones resultantes en (5.7), son más sencillas y se pueden encontrar en la
tabla de la transformada z. Recurriendo a estas tablas se obtiene la transformada z
inversa y(k), que se observa en la ecuación (5.8).

y(k) = 1.1708(1.618)k − 0.1708(−0.616)k (5.8)

En la ecuación (5.8) se tiene la solución analı́tica al problema del crecimiento de

la población de conejos. El Listado 5.1, es un script que da solución al mismo pro-


blema, por medio de comandos del Simbolic Toolbox. En la lı́nea 3 se obtiene la
transformada z de la ecuación en diferencias; como la solución no es clara, en la

Manual de prácticas: Dinámica de Sistemas 69


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

lı́nea 4 se sustituye la expresión ztrans por Yz (en alusión a Y (z)). En la lı́nea 5, se


factoriza con respecto a Yz. En la lı́nea 6, se sustituyen las condiciones iniciales.
En la lı́nea 7, se obtiene la solución en función de Yz. En la lı́nea 8, se obtiene la
solución simbólica y(k) por medio de la transformada z inversa. En la lı́nea 9, se in-
cluye la solución analı́tica que se obtuvo en (5.8). En la lı́nea 10, se crea el vector “a”
necesario para poder graficar el número de años. En las lı́neas restantes, se crean
las gráficas que comparan la solución simbólica con la analı́tica.

Listado 5.1: Solución simbólica al crecimiento de la población de conejos.

1 syms y(k) z Yz %declaración de variables


2 f = y(k+2) - y(k+1) - y(k); %ecuación en diferencias del problema
3 fZT = ztrans(f,k,z) %obtención de la transformada z
4 fZT = subs(fZT,ztrans(y(k),k,z),Yz) %sustitución de ztrans por Yz
5 fZT = collect(fZT,Yz) %factorizar en función de Yz
6 fZT = subs(fZT,{y(0),y(1)},{1,2}) %sustitución de condiciones iniciales
7 Yz = solve(fZT,Yz) %solución en función de Yz
8 ySimbolic = iztrans(Yz,z,k) %obtención de la transformada z inversa
9 yAnalytic = 1.1708*(1.618)^k - 0.1708*(-0.618)^k %versión analı́tica
10 a = 1:10; %vector para el número de ‘‘years’’
11 ySim = double(subs(ySimbolic,k,a)); %conversión de simbólico a numérico
12 yAna = double(subs(yAnalytic,k,a)); %conversión de simbólico a numérico
13 subplot(1,2,1),stem(a, real(ySim),’r’) %gráfica de la solución simbólica
14 title(’Población de conejos (solución simbólica)’);
15 xlabel(’Years (k)’); ylabel(’Población y(k)’);grid on
16 subplot(1,2,2),stem(a,real(yAna),’k’) %gráfica de la solución analı́tica
17 title(’Población de conejos (solución analı́tica)’);
18 xlabel(’Years (k)’); ylabel(’Población y(k)’);grid on

En la Figura 5.2, se puede analizar gráficamente, como la solución simbólica


es igual a la solución analı́tica. Esto, a pesar de que en la lı́nea 8 del Listado 5.1,

Manual de prácticas: Dinámica de Sistemas 70


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

la solución simbólica que se despliega en el Command Window, no es igual a la


solución (5.8). Lo anterior se debe a que los algoritmos que utiliza MATLAB, no ne-
cesariamente obtendrán una solución igual a la que se obtiene analı́ticamente. Sin
embargo, se puede notar en la gráfica de la Figura 5.2 que son equivalentes en un
100 %, por lo que, podemos aseverar que el Simbolic Toolbox, es una herramienta
muy útil en la solución de problemas que involucren métodos matemáticos simbóli-
cos.
Población de conejos (solución simbólica) Población de conejos (solución analítica)
150 150

100 100
Población y(k)

Población y(k)

50 50

0 0
0 2 4 6 8 10 0 2 4 6 8 10
Años (k) Años (k)

Figura 5.2: Comparación gráfica de la solución simbólica vs. solución analı́tica.

5.6.3. Solución en forma numérica de ecuaciones en diferencias

Para la solución de ecuaciones en diferencias en forma numérica, se cuenta con


funciones integradas en MATLAB. Algunas de estas funciones, como lo es filter,
son muy usadas en el procesamiento digital de señales (Ingle y Proakis, 2012). Las
propiedades de tiempo, de las ecuaciones en diferencias pueden ser de tiempo en
atraso y(k − n), o de tiempo en adelanto y(k + n). Una ecuación en diferencias, se
puede describir por sus coeficientes lineales constantes de acuerdo a (5.9), cuando

Manual de prácticas: Dinámica de Sistemas 71


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

es en atraso, y de acuerdo a (5.10), cuando es en adelanto1 .


N
X M
X
an y(k − n) = bm u(k − m), ∀k (5.9)
n=0 m=0
N
X XM
aN−n y(k + n) = bM−m u(k + m), ∀k (5.10)
n=0 m=0

si aN 6= 0, entonces la ecuación en diferencias es de orden N. La función filter tiene


la siguiente forma.

filter(b,a,u,zi)

Donde b = [b0 , . . . , bM ]; a = [a0 , . . . , aN ]; son los coeficientes agrupados en forma


de vectores de las ecuaciones (5.9)-(5.10), “u” es un vector que define una secuen-
cia de entrada, mientras que “zi”, es un vector que define las condiciones iniciales.
La longitud del vector “zi” debe ser la máxima longitud del vector “a” o “b” menos
uno (i.e., max(length(a),length(b))-1).

Si el sistema a simular es de tiempo en atraso, entonces el orden de la secuencia


en “zi” debe estar dada de la siguiente forma: zi = [y(−1), y(−2), . . . , y(−N)]. Si el
sistema es en adelanto, entonces el orden de la secuencia debe ser: zi = [y(N −
1), . . . , y(1), y(0)]. Para incluir las condiciones iniciales de la secuencia de entrada
“u”, debe utilizarse el comando filtic. El orden de la secuencia para las condiciones
iniciales de “u”, debe ser igual al de “zi”.

Para ejemplificar el uso de la función filter, se retoma el “problema del creci-


miento de la población de conejos” visto en el ejemplo 5.1, de la sección 5.6.2.
Primeramente, se toma la ecuación (5.2) que define el problema, y se separa por
variables. Las variables de salida y, estarán en el primer miembro de la ecuación, y
las de entrada u, ocuparán el segundo miembro de la ecuación, resultando (5.11).
1
Se puede prescindir de esta expresión y usar sólo la expresión (5.9). Esto es, convertir un sistema
en adelanto en uno en atraso; para ello hay que restar a k en todas las variables, N pasos, donde N
es el orden de la ecuación, esto también aplica a las condiciones iniciales

Manual de prácticas: Dinámica de Sistemas 72


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

y(k + 2) − y(k + 1) − y(k) = 0 (5.11)

Dado que el problema es de tiempo en adelanto, se interpreta (5.11) de acuerdo


a la definición (5.10), resultando: a0 = 1, a1 = −1, y a2 = −1. Como el segundo
miembro de (5.11) no existe, b = 0. En el Listado 5.2, se despliega el código de un
programa, que resuelve el problema del crecimiento de la población de conejos por
medio de la función filter. En la lı́nea 2, se encuentran los coeficiente a = [a0 , a1 , a2 ];
en la lı́nea 3, los coeficientes b. En la lı́nea 4, las condiciones iniciales zi = [y(1),
y(0)]. En la lı́nea 5, la secuencia de entrada u(k); que en este caso es un vector
con 10 ceros, porque no existe entrada. En la lı́nea 6, la función filter resuelve el
problema desplegando una solución numérica. En la lı́nea 7, se incluye la solución
analı́tica para poder compararla con la solución numérica. En la lı́nea 8, ys es el
vector para el número de años. Las lı́neas restantes, implementan las gráficas del
comportamiento del crecimiento de la población de conejos numérica y analı́tica.

Listado 5.2: Solución numérica al crecimiento de la población de conejos.

1 syms k %declaración de variable simbólica k


2 a = [1 -1 -1]; %coeficientes 1er. miembro de ecuación
3 b = 0; %coeficientes 2do. miembro de ecuación
4 zi = [2 1]; %condiciones iniciales [y(1) y(0)]
5 u = zeros(1,10); %secuencia de entrada u(k)
6 yNum = filter(b,a,u,zi) %solución de la ecuación en diferencias
7 yAnalytic = 1.1708*(1.618)^k - 0.1708*(-0.618)^k; %versión analı́tica
8 ys = 1:10; %número de eventos ‘‘k’’ a simular
9 yAna = double(subs(yAnalytic,k,ys)); %conversión de simbólico a numérico
10 subplot(1,2,1),stem(ys,yNum,’r’) %gráfica del crecimiento de población
11 title(’Población de conejos (solución numérica)’);
12 xlabel(’Years (k)’); ylabel(’Población y(k)’);grid on
13 subplot(1,2,2),stem(ys,real(yAna),’k’) %gráfica de la solución analı́tica

Manual de prácticas: Dinámica de Sistemas 73


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

14 title(’Población de conejos (solución analı́tica)’);


15 xlabel(’Years (k)’); ylabel(’Población y(k)’);grid on

En la Figura 5.3 se observa la solución al problema del crecimiento de la po-


blación de conejos. En la gráfica de la derecha se tiene la solución numérica que
arroja la función filter ; en la gráfica de la izquierda se tiene la solución que se logra
en forma analı́tica. Se puede notar que ambas gráficas son iguales, por lo que, la
solución numérica que ofrece MATLAB, también es una buena opción a tomar en
cuenta al resolver ecuaciones en diferencias.
Población de conejos (solución numérica) Población de conejos (solución analítica)
150 150

100 100
Población y(k)

Población y(k)

50 50

0 0
0 2 4 6 8 10 0 2 4 6 8 10
Años (k) Años (k)

Figura 5.3: Comparación gráfica de la solución numérica vs. solución analı́tica.

5.6.4. Modelado discreto de un sistema fı́sico

El problema del crecimiento de la población de conejos esencialmente es un


problema de tiempo discreto. En la naturaleza, la mayorı́a de los sistemas fı́sicos
son de tiempo continuo, por lo que, para expresarlos en ecuaciones en diferencias
se deben hacer aproximaciones 2 . Para ilustrar estas aproximaciones, se abordará
2
El método de discretización por aproximación de ecuaciones en diferencias, es llamado método
“indirecto de diseño”.

Manual de prácticas: Dinámica de Sistemas 74


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

la simulación de un tanque con fugas como el mostrado en la Figura 5.4 (Mahajan


y Freeman, 2009). Se supone un fregadero lleno con agua a una altura h. En el
momento t = 0, se abre el drenaje y el agua fluye. ¿Cuál es la altura posterior del
agua?

Fuga

Figura 5.4: Tanque con fugas.

El comportamiento de este sistema es descrito por la ecuación diferencial (5.12),

dh h
=− (5.12)
dt τ

donde h, es el comportamiento lineal del nivel de lı́quido con respecto al tiempo, y


τ es la constante de tiempo del sistema. Si el “paso de tiempo” (i.e., timestep) se
denota como T , entonces h(k) es la aproximación de tiempo discreto de h(kT ). Se
supone que el sistema inicia con h(0) = h0 . Por lo tanto, (5.12) equivale a (5.13),

dh h0
=− (5.13)
dt τ

si dh/dt, permanece fijo durante un intervalo de tiempo completo, entonces la altura


disminuye aproximadamente Tτ h0 en un paso de tiempo T . Por consiguiente resulta
(5.14).  
T T
h(1) = h0 − h0 = 1− h(0) (5.14)
τ τ

El razonamiento para calcular h(1) a partir de h(0), también aplica cuando se


calcula h(2) a partir de h(1). La derivada en k = 1 (i.e., en t = T ) es −h(1)/τ. Por

Manual de prácticas: Dinámica de Sistemas 75


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

lo tanto, entre k = 1 y k = 2 (i.e., entre t = T y t = 2T ) la altura cae − Tτ h(1) lo que


produce (5.15),  
T T
h(2) = h1 − h1 = 1− h(1) (5.15)
τ τ
dado este patrón de comportamiento, se generaliza esta regla, de donde resulta la
ecuación en diferencias (5.16), que captura el movimiento del nivel del agua en el
fregadero, cuando se destapa el drenaje.
 
T
h(k) = 1 − h(k − 1) (5.16)
τ

Una vez que se obtuvo la ecuación en diferencias (5.16), que modela el sistema
del tanque con fugas, se procede a obtener su solución. Se supone un periodo
de muestreo fijo T = 1 s, y una constante de tiempo del sistema τ = 10 s, (i.e.,
tiempo en que se vacı́a el fregadero si la disminución de h fuese lineal). Cuando se
destapa el drenaje, (i.e., en t = 0) la altura inicial del nivel del agua es h = 0.1 m.
Según las propiedades de los sistemas discretos, cuando un sistema es de tiempo
en atraso, y además de primer orden, como en este caso, entonces k inicia en −1
(i.e., k = −1, 0, 1, . . . , +∞). Por lo tanto, la condición inicial será: h(−1) = 0.1 m.

En el Listado 5.3 se muestra la solución simbólica y la solución numérica para


la simulación del sistema fı́sico de un tanque con fugas. De la lı́nea 1 a la 11, se
despliega la solución simbólica, donde conviene destacar, como la secuencia de
tiempo inicia en −1 por las condiciones iniciales que también inicias según la lı́nea 7
en h(−1) = 0.1. De la lı́nea 13 a la 17, se tiene la solución numérica, y de la lı́nea 18
a la 24, se observa el código de las gráficas, que comparan la respuesta simbólica
vs. la respuesta numérica.

Listado 5.3: Solución simbólica vs. numérica del vaciado del fregadero.

1 syms h(k) z Hz %declaración de variables simbólicas


2 T = 1; tau = 10; %declaración de constantes

Manual de prácticas: Dinámica de Sistemas 76


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

3 f = h(k) - (1-T/tau)*h(k-1); %ecuación en diferencias del sistema


4 fZT = ztrans(f,k,z) %obtención de la transformada z
5 fZT = subs(fZT,ztrans(h(k),k,z),Hz) %sustitución de ztrans por Hz
6 fZT = collect(fZT,Hz) %factorizar en función de Hz
7 fZT = subs(fZT,{h(-1)},{0.1}) %sustitución de condiciones iniciales
8 Hz = solve(fZT,Hz) %solución en función de Hz
9 hSimbolic = iztrans(Hz,z,k) %obtención de la transformada z inversa
10 kT=-1:9; %secuencia de tiempo a simular
11 hSim = double(subs(hSimbolic,k,kT)) %conversión de simbólico a numérico
12 %Inicia solución numérica a través de la función filter
13 a = [1 -(1-T/tau)]; %coeficientes 1er. miembro de ecuación
14 b = 0; %coeficientes 2do. miembro de ecuación
15 zi = 0.1; %condiciones iniciales h(-1)
16 u = zeros(1,11); %secuencia de entrada u(k)
17 yNum = filter(b,a,u,zi) %solución de la ecuación en diferencias
18 t=0:10; %tiempo a simular
19 subplot(1,2,1),stem(t,hSim,’r’) %gráfica de la solución simbólica
20 title(’Disminución del nivel de agua (simbólico)’);
21 xlabel(’Tiempo kT (segundos)’); ylabel(’Altura h(k)’);grid on
22 subplot(1,2,2),stem(t,yNum,’k’) %gráfica de la solución numérica
23 title(’Disminución del nivel de agua (numérico)’);
24 xlabel(’Tiempo kT (segundos)’); ylabel(’Altura h(k)’);grid on

En este problema, no se obtuvo la solución analı́tica del sistema fı́sico, lo cual


no hace falta, gracias a que la solución simbólica del sistema, produce la respuesta
analı́tica cerrada (5.17).

 k
9 9
h(k) = para k = −1, 0, 1, . . . , +∞ (5.17)
100 10

Manual de prácticas: Dinámica de Sistemas 77


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

Una desventaja del la repuesta numérica, a través de la función filter, es que sólo
produce la señal gráfica de comportamiento, y no la fórmula cerrada. En la Figura
5.5, se observan dos soluciones gráficas al problema del desagüe del fregadero. En
la gráfica de la derecha, se tiene la solución simbólica, mientras que en la gráfica
de la izquierda, se tiene la solución numérica. Se puede apreciar que ambas gráfi-
cas son iguales, por lo que, es posible concluir que los métodos son equivalentes,
además de que producen soluciones correctas. Estas gráficas fueron generadas en
el Listado 5.3.

Disminución del nivel de agua (simbólico) Disminución del nivel de agua (numérico)
0.1 0.1

0.09 0.09

0.08 0.08

0.07 0.07

0.06 0.06
Altura h(k)

Altura h(k)

0.05 0.05

0.04 0.04

0.03 0.03

0.02 0.02

0.01 0.01

0 0
0 2 4 6 8 10 0 2 4 6 8 10
Tiempo kT (segundos) Tiempo kT (segundos)

Figura 5.5: Comparación gráfica de la solución simbólica vs. numérica.

5.7. Sugerencias didácticas

En esta sección, se proponen ejercicios a resolver, que puedan afianzar los co-
nocimientos sobre la solución de ecuaciones en diferencias, en forma simbólica y
numérica; haciendo uso para ello, de comandos de MATLAB.

Manual de prácticas: Dinámica de Sistemas 78


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

5.7.1. Ejercicios

5.1 Obtenga la solución cerrada de la siguiente ecuación en diferencias: y(k + 2) −


4y(k +1)+4y(k) = 0, por medio del Simbolic Toolbox, cuando y(0) = 1, y(1) = 3.
Grafique la respuesta a través del comando stem.

5.2 Obtenga la solución cerrada de la siguiente ecuación en diferencias: y(k + 2) −


5y(k + 1) + 6y(k) = u(k) por medio del Simbolic Toolbox, cuando y(0) = 0,
y(1) = 0, y u(k) = 38. Como u(k) es una señal escalón con una amplitud de 38,
38z
se debe expresar en tiempo discreto como: z−1
. Grafique la respuesta a través
del comando stem.

5.3 Encuentre la respuesta al impulso cerrada, para la siguiente ecuación en di-


ferencias: y(k) − y(k − 2) = u(k), por medio del Simbolic Toolbox, cuando
y(−1) = y(−2) = 0, y u(k) = δ (k). Como se trata de la respuesta del sistema
a una entrada impulso δ (k), se debe remplazar su equivalencia en el dominio
del tiempo discreto como: U(z) = 1.

5.4 Dada la siguiente ecuación en diferencias: y(k)−0.8y(k −1)+0.8y(k −2) = u(k),


calcule en forma gráfica la respuesta impulso y la respuesta escalón unitario.
Use la función filter para obtener la solución, y el comando stem para la repre-
sentación gráfica.

5.5 Dada la siguiente ecuación en diferencias: y(k) − 0.5y(k − 1) + 0.25y(k − 2) =


u(k) + 2u(k − 1), calcule en forma gráfica la respuesta cuando no hay entrada al
sistema, pero sı́ condiciones iniciales. Las condiciones iniciales serán: y(−1) =
0, y(−2) = 2, u(−1) = 1. Use la función filter para obtener la solución, y el
comando stem para la representación gráfica. stem.

Manual de prácticas: Dinámica de Sistemas 79


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

5.7.2. Solución a ejercicios

En esta sección se muestra el código en los Listados 5.4 - 5.8, que darán solución
a los ejercicios propuestos en la sección anterior. Se recomienda su ejecución para
observar los resultados.

Listado 5.4: Solución al ejercicio 5.1.

1 syms y(k) z Yz %declaración de variables


2 f = y(k+2) -4*y(k+1)+ 4*y(k); %ecuación en diferencias a resolver
3 fZT = ztrans(f,k,z) %obtención de la transformada z
4 fZT = subs(fZT,ztrans(y(k),k,z),Yz) %sustitución de ztrans por Yz
5 fZT = collect(fZT,Yz) %factorizar en función de Yz
6 fZT = subs(fZT,{y(0),y(1),y(2),y(3)},{1,3,0,0}) %sustitución de CI
7 Yz = solve(fZT,Yz) %solución en función de Yz
8 ySimbolic = iztrans(Yz,z,k) %obtención de la transformada z inversa
9 pretty(ySimbolic) %visualización de la solución cerrada
10 kT=0:10; %secuencia de tiempo
11 ySim = double(subs(ySimbolic,k,kT)) %conversión de simbólico a numérico
12 stem(kT,ySim);grid on; %gráfica de la respuesta

Listado 5.5: Solución al ejercicio 5.2.

1 syms y(k) z Yz %declarión de variables


2 f = y(k+2)- 5*y(k+1) + 6*y(k); %ecuación en diferencias a resolver
3 fZT = ztrans(f,k,z) %obtención de la transformada z
4 fZT = subs(fZT,ztrans(y(k),k,z),Yz) %sustitución de ztrans por Yz
5 fZT = collect(fZT,Yz) %factorizar en función de Yz
6 fZT = subs(fZT,{y(0),y(1)},{0,0}) %sustitución de condiciones iniciales
7 U_z=36*z/(z-1); %entrada escalón con amplitud de 38
8 Yz = solve(fZT==U_z,Yz) %solución en función de Yz
9 ySimbolic = iztrans(Yz,z,k) %obtención de la transformada z inversa

Manual de prácticas: Dinámica de Sistemas 80


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

10 pretty(ySimbolic) %visualización de la solución cerrada


11 kT=0:10; %secuencia de tiempo
12 ySim = double(subs(ySimbolic,k,kT)) %conversión de simbólico a numérico
13 stem(kT,ySim);grid on; %gráfica de la respuesta

Listado 5.6: Solución al ejercicio 5.3.

1 syms y(k) z Yz %declaración de variables


2 f = y(k)-y(k-2); %ecuación en diferencias a resolver
3 fZT = ztrans(f,k,z) %obtención de la transformada z
4 fZT = subs(fZT,ztrans(y(k),k,z),Yz) %sustitución de ztrans por Yz
5 fZT = collect(fZT,Yz) %factorizar en función de Yz
6 fZT = subs(fZT,{y(-1),y(-2)},{0,0}) %sustitución de CI
7 D_z=1; %equivalencia del impulso en tiempo discreto
8 Yz = solve(fZT==D_z,Yz) %solución en función de Yz
9 ySimbolic = iztrans(Yz,z,k) %obtención de la transformada z inversa
10 pretty(ySimbolic) %visualización de la solución cerrada
11 kT=0:10; %secuencia de tiempo
12 ySim = double(subs(ySimbolic,k,kT)) %conversión de simbólico a numérico
13 stem(kT,ySim);grid on; %gráfica de la respuesta

Listado 5.7: Solución al ejercicio 5.4.

1 a = [1, -0.8, 0.8]; %coeficientes 1er. miembro de ecuación


2 b = 1; %coeficientes 2do. miembro de ecuación
3 k = 0:40; %secuencia de tiempo discreto
4 yi = impz(b,a,k); %salida en respuesta al impulso de entrada
5 subplot(2,1,1); stem(k,yi); %gráfica de la respuesta al impulso
6 title(’Respuesta al impulso’); xlabel(’k’); ylabel(’y(k)’);grid on
7 u = ones(1,41); %entrada escalón unitario
8 ys = filter(b,a,u); %solución por medio de un filtro

Manual de prácticas: Dinámica de Sistemas 81


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

9 subplot(2,1,2); stem(k,ys) %gráfica de la respuesta al escalón


10 title(’Respuesta al escalón’); xlabel(’k’); ylabel(’y(k)’);grid on

Listado 5.8: Solución al ejercicio 5.5.

1 a = [1, -0.5, 0.25]; %coeficientes 1er. miembro de ecuación


2 b = [1 2]; %coeficientes 2do. miembro de ecuación
3 u=zeros(1,11); %secuencia de entrada u(k)
4 CI_y=[0 2]; %condiciones iniciales [y(-1) y(-2)]
5 CI_u=1; %condiciones iniciales [u(-1)]
6 zi=filtic(b,a,CI_y,CI_u); %comando para gestionar las CI
7 y = filter(b,a,u,zi); %solución por medio de un filtro
8 kT=0:10; %secuencia de tiempo
9 stem(kT,y) %gráfica de la respuesta del sistema
10 title(’Respuesta del sistema’); xlabel(’k’); ylabel(’y(k)’);grid on

5.7.3. Problema propuesto

En la Figura 5.6, se considera un sistema masa-resorte ideal (i.e., sin fricción).


Por lo que, este sistema debe oscilar libremente en la dimensión l(t). La ecuación
diferencial del sistema fı́sico es (5.18),
d 2 l(t)
m + kl(t) = 0 (5.18)
dt 2
donde l(t) es la longitud de desplazamiento del bloque a partir de su posición de
equilibrio, m es la masa del bloque, y k la constante de elasticidad del resorte.

Se supone que m = 1 Kg, k = 3 N/m, el paso de tiempo T = 1 s, y las condiciones


iniciales: l(0) = 0.1 m, y l(1) = 0 m. Para convertir la ecuación diferencial (5.18) a
una ecuación en diferencias, se usará la aproximación simétrica de segundo orden
(Mahajan y Freeman, 2009), que se muestra en la ecuación (5.19).

Manual de prácticas: Dinámica de Sistemas 82


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

l(t)

Figura 5.6: Sistema masa-resorte ideal, (i.e., sin fricción).

d 2 l(t) l(k + 1) − 2l(k) + l(k − 1)


≈ (5.19)
dt 2 t=kT T2

Sustituyendo (5.19) en (5.18), se obtiene la ecuación en diferencias (5.20), que


aproxima al sistema masa-resorte. Demostrar como se llegó a esta ecuación en
diferencias.
kT 2
 
l(k + 2) = 2 − l(k + 1) − l(k) (5.20)
m

Obtenga la solución cerrada de la ecuación (5.20) que define al sistema, por


medio del Simbolic Toolbox. Grafique la respuesta con el comando stem. También,
obtenga en forma gráfica la respuesta del sistema, por medio de la función filter.
Grafique con el comando stem esta respuesta, y compare ésta con la respuesta
que arrojó la solución cerrada3 .

5.8. Reporte del alumno

Se sugiere, después de resolver el problema propuesto en la sección 5.7.3 en


un script, entregarlo al instructor. El nombre del archivo debe tener extensión .m. La
3
Una consideración a tomar en cuenta, es que el comando filter ha sido diseñado para modelar
sistemas fı́sicos, que siempre observarán una dinámica de tiempo en atraso. Por esta razón, el autor
advierte que las respuestas que se obtienen de forma numérica, en ocasiones pudieran discrepar un
poco de las que se obtiene en forma simbólica.

Manual de prácticas: Dinámica de Sistemas 83


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

discusión de resultados y conclusiones, se debe entregar en un procesador de texto


como el Microsoft Word®, el Libre Office®, u otro similar.

5.8.1. Discusión de resultados

Como ideas de discusión del problema propuesto, se sugiere la respuesta a las


siguientes preguntas:

Al graficar la solución a la ecuación en diferencias (5.20), ¿qué tipo de función


del tiempo resultó ser l(t)?

Si se incrementa un poco el paso de tiempo (T = 1.5 s) en la ecuación (5.20)


¿la gráfica de la respuesta observará algún cambio?

Si la respuesta es sı́, ¿por qué sucede esto?, ¿está de acuerdo con el com-
portamiento fı́sico del sistema en la realidad?

Si se decrementa un poco el paso de tiempo (T = 0.5 s) en la ecuación (5.20)


¿la gráfica de la respuesta observará algún cambio?

5.8.2. Conclusiones

El alumno debe explicar, en que medida logró adquirir las competencias pro-
puestas en esta práctica. Cuales fueron las principales dificultades que enfrentó y
como las solucionó. También puede proponer ideas para mejorar la comprensión de
los temas tratados en la práctica, o contribuciones que puedan enriquecer el trabajo
aquı́ presentado.

Manual de prácticas: Dinámica de Sistemas 84


PRÁCTICA 5. SOLUCIÓN DE ECUACIONES EN DIFERENCIAS EN MATLAB

Referencias

Elali, T. S. (2005). Discrete systems and digital signal processing with matlab. CRC
PRESS.
Elaydi, S. (2005). An introduction to difference equations (3rd. ed.). Springer Scien-
ce+Business Media, Inc.
Fadali, M. S., y Visioli, A. (2013). Digital control engineering analysis and design.
Elsevier Inc.
Ingle, V. K., y Proakis, J. G. (2012). Digital signal processing using matlab ® (Third
ed.). 200 First Stamford Place, Suite 400, Stamford, CT 06902, USA: Cengage
Learning.
Kelley, W. G., y Peterson, A. C. (2001). Difference equations: An introduction with
applications (Second ed.). Harcourt Academic Press.
Madhusudan, H. (2015). Digital control applications : Illustrated with matlab®. CRC
Press, Taylor & Francis Group.
Mahajan, S., y Freeman, D. (2009, September). Discrete time signals and systems:
An operator approach. MIT. Descargado de web.mit.edu /6.003/F11/www/
handouts/chap1.pdf
Mathworks, I. S. (2017). Symbolic math toolbox™ user’s guide. Descargado de
https:// www.mathworks.com
Moudgalya, K. M. (2007). Digital control. John Wiley & Sons, Ltd.

Manual de prácticas: Dinámica de Sistemas 85


PRÁCTICA 6
OBTENCI ÓN DE LA TRANSFORMADA DE
LAPLACE

6.1. Competencias

El alumno conoce, desarrolla y aplica métodos para la representación ma-


temática de sistemas continuos, para la sı́ntesis y resolución de modelos ma-
temáticos que describen el comportamiento dinámico de sistemas continuos.

El alumno soluciona las ecuaciones diferenciales que modelan un Sistema


Dinámico continuo, haciendo uso de los comandos de la transformada de La-
place, que se encuentran integrados en el Simbolic Toolbox de MATLAB.

El alumno será capaz de obtener la transformada inversa de Laplace de un


Sistema Dinámico, a través del Simbolic Toolbox de MATLAB.

6.2. Introducción

Esta práctica, trata de la representación de los Sistemas Dinámicos a través de la


transformada de Laplace. Para ello, se hace uso del Simbolic Toolbox de MATLAB,

86
PRÁCTICA 6. OBTENCIÓN DE LA TRANSFORMADA DE LAPLACE

para convertir las funciones en él dominio del tiempo continuo, a funciones de trans-
ferencia en el dominio de la frecuencia, o en el dominio de Laplace. De igual forma,
se hace la operación inversa, i.e., convertir del dominio de Laplace, al dominio del
tiempo continuo, a través de la transformada inversa de Laplace. Se resuelven las
ecuaciones diferenciales por medio del método de Laplace. El producto de esta
práctica, será la implementación de un programa que resuelva la ecuación diferen-
cial, que define el comportamiento de un sistema fı́sico en tiempo continuo.

6.3. Temas y subtemas

Tema: Marco Matemático. Se representan matemáticamente los sistemas fı́si-


cos continuos.

Subtemas:

Ecuaciones Diferenciales (E.D.).

Linealidad.

Métodos de solución de E.D. Lineales.

6.4. Medidas de seguridad e higiene

Como se trata de un software de simulación, las prácticas se deben desarro-


llar en el laboratorio de computo. La seguridad en un laboratorio de computo tiene
que ver con el equipo de computo. Para evitar daño en los computadores, se debe
evitar introducir bebidas al laboratorio. Los lı́quidos derramados sobre el equipo de
computo seguramente lo dañarán.

Manual de prácticas: Dinámica de Sistemas 87


PRÁCTICA 6. OBTENCIÓN DE LA TRANSFORMADA DE LAPLACE

Si se va a trabajar en equipos, deben sentarse de tal manera que no se obstruyan


los pasillos. Debe tenerse mucho cuidado al insertar una unidad de memoria flash
USB a un computador; asegúrese que se encuentra libre de virus. Se tiene que
evitar las infecciones en los equipos de computo, para evitar que estos fallen.

6.5. Material y equipo necesario

Es necesario contar con los libros y manuales de consulta que se sugieren en las
referencias bibliográficas de esta práctica (Mathworks, 2017; Moore, 2015; Houpis y
Sheldon, 2014). Se requiere la versión 2014 o superior del MATLAB y un computador
con un procesador Intel®, Core™ i3 ó su equivalente, con una memoria de 2 GB de
RAM.

6.6. Metodologı́a

Para esta práctica, los Sistemas Dinámicos modelados por ecuaciones en tiempo
continuo, se convierten al dominio en la frecuencia, a través de la transformada de
Laplace. Esta representación, generalmente produce funciones de transferencia en
base a la variable compleja s, usada en la transformada de Laplace. Las funciones
en el dominio de la frecuencia, se antitransforman para volver al dominio del tiempo
continuo, a través de la transformada inversa de Laplace.

En esta Metodologı́a, las ecuaciones diferenciales que representan a los siste-


mas fı́sicos, se resuelven por medio de un proceso, que hace uso primeramente de
la transformada de Laplace, y luego de la transformada inversa de Laplace.

Manual de prácticas: Dinámica de Sistemas 88


PRÁCTICA 6. OBTENCIÓN DE LA TRANSFORMADA DE LAPLACE

6.6.1. Definición de la transformada de Laplace

Sea f (t) una función definida para t > 0, tal que f (t) = 0, para t < 0. Se llama
transformada de Laplace de la función f (t) a la función que se expresa en (6.1),
siempre que la integral de la función sea convergente.
Z ∞
L [ f (t)] = F(s) = f (t)e−st dt (6.1)
0

De la expresión (6.1), se deducen las “tablas de funciones pares” (ver anexos de


Fadali y Visioli (2013); Ogata (2010)), que se usan para obtener la transformada de
Laplace en forma analı́tica1 . El algunas ocasiones, el Simbolic Toolbox de MATLAB,
resuelve la transformada de Laplace igual a la solución analı́tica. Sin embargo, se
puede demostrar en forma gráfica, que el total de las soluciones son una aproxima-
ción muy aceptable.

6.6.2. Uso de la transformada de Laplace

Para mostrar el uso de la transformada de Laplace en forma analı́tica, se hará


uso de un ejemplo.

Ejemplo 6.1. Obtener la transformada de Laplace de la función (6.2),

1
f (t) = (1 − e−5t ) para t ≥ 0 (6.2)
2

si se busca en las tablas de pares de la transformada de Laplace, (Fadali y Visioli,


2013; Ogata, 2010), se encontrará, que el par más parecido a la función (6.2), es el
que se muestra en (6.3),
1 1
1 − e−at ≡

(6.3)
a s(s + a)
1
En MATLAB, la función escalón unitario de las tablas de pares, se define como: “heaviside”

Manual de prácticas: Dinámica de Sistemas 89


PRÁCTICA 6. OBTENCIÓN DE LA TRANSFORMADA DE LAPLACE

sin embargo, la función (6.2) no es igual al primer miembro del par (6.3), por lo tanto,
se tiene que normalizar la función (6.2) como se muestra en (6.4),
 
5 1 −5t

f (t) = 1−e para t ≥ 0 (6.4)
2 5

ahora, se visualiza que lo que está en el paréntesis cuadrado en (6.4), es igual al


primer miembro de (6.3), por lo tanto, se puede usar éste par en la solución que se
muestra en (6.5), que es la transformada de Laplace de la función (6.2).

5 1
L [ f (t)] = F(s) = (6.5)
2 s(s + 5)

La función del Simbolic Toolbox para obtener la transformada de Laplace es la


que se muestra a continuación.

>> L = laplace (F, w, u)

Donde se hace a “L” una función de “u”, en lugar de “s”, que es la predeterminada;
la integración es con respecto a “w”. En el Listado 6.1, se tiene un script que resuelve
la función (6.2) del ejemplo 6.1, propuesto en esta sección. Se puede observar en
este listado, que la única variable simbólica que se declaró fue “t”, dado que “s”, es
la variable predeterminada para presentar la transformada de Laplace.

Listado 6.1: Solución en MATLAB del ejemplo 6.1 propuesto en esta sección.

1 syms t %declarando variable simbólica


2 f = (1/2)*(1-exp(-5*t)); %función en tiempo continuo a resolver
3 F = laplace(f); %obtención de la transformada de Laplace
4 F = simplify(F) %comando que hace la respuesta igual a la analı́tica
5 pretty(F) %mejora la visualización de la solución

Manual de prácticas: Dinámica de Sistemas 90


PRÁCTICA 6. OBTENCIÓN DE LA TRANSFORMADA DE LAPLACE

Si se ejecuta el programa que se ofrece en el Listado 6.1, se podrá observar que


en esta ocasión, la respuesta que se despliega en el Command Window, es igual a
la respuesta analı́tica que se muestra en (6.5).

6.6.3. Transformada inversa de Laplace

El proceso analı́tico de obtener la transformada inversa de Laplace, para una


función como la (6.5), resulta trivial. También se usa la tabla de pares de la transfor-
mada de Laplace, solamente que ahora en el proceso inverso. También la solución
en el Simbolic Toolbox resulta sencilla. El comando para obtener la transformada
inversa de Laplace es el siguiente.

>> F = ilaplace (L, y, x)

Donde se hace a “F” una función de “x” en lugar de “t” que es la predeterminada;
la integración se desarrolla con respecto a “y”. En el Listado 6.2, se obtiene la trans-
formada inversa de Laplace de la función (6.5); i.e., se vuelve a la función en tiempo
continuo (6.2).

Listado 6.2: Cálculo de la transformada inversa de Lapalce de (6.5) en MATLAB.


1 syms s %declarando variable simbólica
2 F = (5/2)*(1/(s*(s+5))); %función en el dominio de Laplace a resolver
3 f = ilaplace(F) %comando para obtener la inversa de Laplace
4 pretty(f) %mejora la visualización de la solución

En algunos casos, obtener la transformada inversa de Laplace en forma analı́tica


resulta difı́cil. Esto se debe a que cuando las funciones a resolver, son de un orden
mayor a dos, en ocasiones, resulta complicado normalizar, para igualar a los pares
de la tabla de la transformada de Laplace. Existe un método analı́tico llamado ex-
pansión por fracciones parciales, que ayuda a simplificar las funciones de tal forma,
que coincidan con los pares de la tabla de la transformada de Laplace.

Manual de prácticas: Dinámica de Sistemas 91


PRÁCTICA 6. OBTENCIÓN DE LA TRANSFORMADA DE LAPLACE

A continuación, se se muestra por medio de un ejemplo, el uso de las fraccio-


nes parciales en la solución de una función, a través de la transformada inversa de
Laplace.

Ejemplo 6.2. Obtener la transformada inversa de Lapalce en forma analı́tica de


la función (6.6),
1
F(s) = (6.6)
s3 (s + 2)
donde s3 es un polo múltiple con raı́ces repetidas en s = 0, y (s + 2) es un polo
simple con raı́z en s = −2. La función (6.7) se expande en las fracciones parciales
mostradas en (6.7),
A B C D
P(s) = + + 2+ 3 (6.7)
(s + 2) s s s
se procede en un orden alfa numérico ascendente, calculando primeramente D (6.8).
 
3  3 1 1 1
D = s F(s) s=0 = s 3 = = (6.8)
s (s + 2) s=0 (s + 2) s=0 2
 
d 3 1 d  1
(s + 2)−1 s=0 = −1(s + 2)−2 = −

C= s 3 = (6.9)

dt s (s + 2) s=0 dt s=0 4
1 d2 3
 
1 1d  −2
 1
−3 1
B= s = −(s + 2) = 2(s + 2) = (6.10)
2 dt 2 s3 (s + 2) s=0 2 dt s=0 2 8

s=0
 
1 1 1
A = [(s + 2)F(s)]s=−2 = (s + 2) 3 = 3 =− (6.11)
s (s + 2) s=−2 s s=−2 8

El algoritmo usado para calcular los coeficientes de las raı́ces múltiples repetidas,
de las expresiones (6.8)-(6.10), se encuentra en (Fadali y Visioli, 2013). El cálculo
del coeficiente (6.11), usa el procedimiento para el caso de raı́ces simples distintas.

Al sustituir los coeficientes en (6.7) se produce (6.12),

1/8 1/8 1/4 1/2


P(s) = − + − 2 + 3 (6.12)
(s + 2) s s s

dada la expansión en fracciones parciales se facilita el uso de la tabla de pares de


la transformada de Laplace, de tal forma que, se puede obtener la transformada

Manual de prácticas: Dinámica de Sistemas 92


PRÁCTICA 6. OBTENCIÓN DE LA TRANSFORMADA DE LAPLACE

inversa de acuerdo con la expresión (6.13), que es la solución a la función (6.6).

1 1 1 1
L −1 [F(s)] = f (t) = − e−2t + − t + t 2 (6.13)
8 8 4 4

En el listado 6.3 se muestra el código para obtener la transformada inversa de


Laplace de la función (6.6) del ejemplo 6.2, a través del Simbolic Toolbox. Los co-
mandos a destacar son: en la lı́nea 3, [n,d] = numden(F), es un comando simbólico
que separa al numerador “n” y al denominador “d”, de una expresión simbólica “F”.
En la lı́nea 4, sym2poly convierte una expresión simbólica a polinomial; en este ca-
so, el numerador. En la lı́nea 7, [r,p,k] = residue(num,den), es un comando de tipo
numérico, que expande en fracciones parciales, una función de transferencia forma-
da por un numerador “num”, y un denominador “den”. Debe tomarse en cuenta, que
el orden de los residuos y de los polos en este comando, pueden varia; i.e., que
para casos distintos, el orden en que se presentan los residuos, puede ser diferente
al presentado en este Listado.

Listado 6.3: Cálculo de la transformada inversa de Lapalce de (6.6) en MATLAB.

1 syms s %declarando variable simbólica


2 F = 1/(s^3*(s+2)) %función a resolver
3 [n,d] = numden(F); %descompone en numerador n y denominador d
4 num = sym2poly(n); %convierte numerador de simbólico a polinomial
5 denP_s = collect(d); %ordena al denominador de mayor a menor grado
6 den = sym2poly(denP_s); %convierte denominador de simbólico a polinomial
7 [r,p,k] = residue(num,den) %expansión por fracciones parciales
8 A = r(1); %residuo 1
9 B = r(2); %residuo 2
10 C = r(3); %residuo 3
11 D = r(4); %residuo 4
12 a = -p(1); %raı́z de polo 1
13 b = -p(2); %raı́z de polo 2

Manual de prácticas: Dinámica de Sistemas 93


PRÁCTICA 6. OBTENCIÓN DE LA TRANSFORMADA DE LAPLACE

14 c = -p(3); %raı́z de polo 3


15 d = -p(4); %raı́z de polo 4
16 P = A/(s+a) + B/(s+b) + C/(s+c)^2 + D/(s+d)^3 %fracciones parciales
17 f = ilaplace(P) %solución de la transformada inversa de Laplace
18 pretty(f) %mejora la visualización de la solución

6.6.4. Solución de ecuaciones diferenciales por Laplace

Para mostrar el método de la solución analı́tica, de una ecuación diferencial a


través de la transformada de Laplace, se hará uso de un ejemplo.

Ejemplo 6.3. Encontrar la solución de la ecuación diferencial (6.14), por medio


de la transformada de Laplace, cuya condición inicial es y(0) = 5.

dy
+ y(t) = 0 (6.14)
dt

Primeramente se aplican las propiedades de la transformada de Laplace a la


ecuación diferencial (ver anexos de Fadali y Visioli (2013); Ogata (2010)) resultando
la ecuación (6.15) en el dominio de Laplace;
 
dy
L + y(t) = 0 = sY (s) − y(0) + Y (s) = 0 (6.15)
dt

luego se sustituye el valor de la condición inicial y(0) = 5 resultando la expresión


(6.16),
sY (s) + Y (s) − 5 = 0 (6.16)

factorizando y despejando con respecto a Y (s) resulta (6.17),

5
Y (s) = (6.17)
(s + 1)

Manual de prácticas: Dinámica de Sistemas 94


PRÁCTICA 6. OBTENCIÓN DE LA TRANSFORMADA DE LAPLACE

finalmente, aplicando la tabla de pares de la transformada de Laplace, se obtiene


la transformada inversa de Laplace en (6.18). Esta es la solución a la ecuación
diferencial (6.14) propuesta en este ejemplo.

L −1 [Y (s)] = y(t) = 5e−t (6.18)

En el Listado 6.4 se da la solución a la ecuación diferencial (6.14) por el uso de

comandos del Simbolic Toolbox. Es de destacar, que en las lı́neas 5 y 6, la sustitu-


ción de la condición inicial, y de “Y” por “laplace”, podrı́a haber sido hecha usando
una sola vez el comando subs, pero por legibilidad, se prefirió usarlo dos veces. Por
lo demás, el código sigue el procedimiento usado en la solución analı́tica.

Listado 6.4: Solución de (6.14) por medio de Laplace en MATLAB.

1 syms s y(t) Y %declarando variables


2 Dy = diff(y); %declarando dy/dt
3 eq = Dy + y(t) == 0; %ecuación diferencial a resolver
4 Eq = laplace(eq,t,s); %obteniendo la transformada de Laplace
5 Eq = subs(Eq,laplace(y(t),t,s),Y); %sustitución de Y(s) por Laplace
6 Eq = subs(Eq,{y(0)},{5}); %sustitución de condición inicial y(0) = 5
7 solY = solve(Eq,Y) %despejando con respecto a Y(s)
8 soly = ilaplace(solY) %obteniendo la inversa de Laplace (solución)

6.6.5. Representación de un sistema fı́sico por Laplace

En la Figura 6.1, se muestra el sistema de suspensión electromagnético de una


esfera metálica, tomado de (Elaydi, 2005). La ecuación dinámica que representa el
sistema se observa en (6.19),

d 2 xt (t) ut2 (t)


m = mg − k (6.19)
dt 2 xt (t)

Manual de prácticas: Dinámica de Sistemas 95


PRÁCTICA 6. OBTENCIÓN DE LA TRANSFORMADA DE LAPLACE

donde xt es la distancia a la esfera desde el electroimán, ut es la corriente que


alimenta al electroimán, g es la aceleración de la gravedad y k es una constante
determinada por las propiedades del electroimán.

Figura 6.1: Esfera metálica suspendida en un campo magnético.

Se ha probado que (6.19) tiene su punto de equilibrio en: xt = x0 = 1, y ut = u0 =


p
mg/k, (Elaydi, 2005). Se aproxima al modelo lineal de (6.19) alrededor del punto
de equilibrio, en términos de la desviación: x = xt − x0 y u = ut − u0 , resultando (6.20),
r
d 2 x(t) g kg
2
− x(t) = −2 u(t) (6.20)
dt k m

resolver la ecuación (6.20), por medio del método de la transformada de Lapla-


ce, graficando el comportamiento de x(t), cuando u(t) es una señal impulso (δ ) de
0.01 A, g = 9.8 m/s2 , m = 0.1 Kg, k = 0.1. Grafique el comportamiento de x(t) para el
intervalo −0.5 ≤ t ≤ 0.5.

En el Listado 6.5, se muestra el código para la solución de la ecuación diferencial


(6.20), que modela el sistema de suspensión electromagnético de esfera metálica.
Del código a destacar se tiene en la lı́nea 4, la función dirac delta (δ ), que representa
a la función impulso unitario. En la linea 11, la función ezplot se programa para
graficar el intervalo −0.5 ≤ t ≤ 0.5, de x(t).

Manual de prácticas: Dinámica de Sistemas 96


PRÁCTICA 6. OBTENCIÓN DE LA TRANSFORMADA DE LAPLACE

Listado 6.5: Solución de la ecuación (6.20) por medio del método de Laplace.

1 syms s x(t) X %declarando variables


2 Dx = diff(x); %declarando dx/dt
3 D2x = diff(x,2); %declarando d^2x/dt^2
4 u = 0.01*dirac(t); %función impulso unitario dirac delta
5 eq = D2x -98*x(t) == -6.261*u; %ecuación diferencial a resolver
6 Eq = laplace(eq,t,s) %obteniendo la transformada de Laplace
7 Eq = subs(Eq,laplace(x(t),t,s),X) %sustitución de X(s) por Laplace
8 Eq = subs(Eq,{x(0),Dx(0)},{0,0}) %sustitución de CI x(0) = Dx(0)= 0
9 solX = solve(Eq,X) %despejando con respecto a X(s)
10 solx = ilaplace(solX) %obteniendo la inversa de Laplace (solución)
11 ezplot(solx,[-0.5,0.5]);grid %grafica del comportamiento de x(t)

En la Figura 6.2 se muestra el comportamiento de la esfera metálica cuando se


aplica una función impulso con una amplitud de 0.01 A. Se puede observar como
el comportamiento es inestable, esto se debe, que para este sistema, no se ha
implementado todavı́a un sistema de control.
Comportamiento de x(t)

0.3

0.2

0.1
x(t)

-0.1

-0.2

-0.3

-0.5 0 0.5
t

Figura 6.2: Gráfica de x(t) al aplicar un impulso al sistema de suspensión.

Manual de prácticas: Dinámica de Sistemas 97


PRÁCTICA 6. OBTENCIÓN DE LA TRANSFORMADA DE LAPLACE

6.7. Sugerencias didácticas

Para afianzar los conocimientos vistos en esta unidad, se proponen algunos ejer-
cicios sobre la solución de ecuaciones en el domino del tiempo continuo y en el do-
minio de la frecuencia, a través de la metodologı́a de la transformada de Laplace.
Para ello se propone el uso del Simbolic Toolbox de MATLAB.

6.7.1. Ejercicios

6.1 Obtenga la transformada de Laplace de la función (6.21).

f (t) = 2e−t − 2te−2t − 2e−2t (6.21)

6.2 Obtenga la transformada de Laplace de la función (6.22).


 
3 3 −t 1
f (t) = − e cos(2t) + sen(2t) (6.22)
16 16 2

6.3 Obtenga la transformada inversa de Laplace de la función de transferencia


(6.23).
(s − 5)
F(s) = (6.23)
s(s + 2)2

6.4 Obtener la transformada inversa de Laplace de la función de transferencia


(6.24).
(5s − 1)
F(s) = (6.24)
(s3 − 3s − 2)

Manual de prácticas: Dinámica de Sistemas 98


PRÁCTICA 6. OBTENCIÓN DE LA TRANSFORMADA DE LAPLACE

6.5 Resuelva la ecuación diferencial (6.25), para las condiciones iniciales y(0) = 1,
ẏ(0) = 0, y donde la señal de entrada u(t) corresponde a un escalón unitario.

d 2 y(t) dy(t)
+ = u(t) (6.25)
dt 2 dt

6.7.2. Solución a ejercicios

En esta sección se muestra el código en los Listados 6.6 - 6.10, que darán solu-
ción a los ejercicios propuestos en la sección anterior. Se recomienda su ejecución
para observar los resultados.

Listado 6.6: Solución al ejercicio 6.1.

1 syms t %se declara variable simbólica


2 f=2*exp(-t)-2*t*exp(-2*t)-2*exp(-2*t); %función en el tiempo continuo
3 F=laplace(f); %cálculo la transformada de Laplace
4 F=simplify(F); %simplificación de la función de transferencia
5 pretty(F) %se mejora visualización

Listado 6.7: Solución al ejercicio 6.2.

1 syms t %se declara variable simbólica


2 f=3/16-3/16*exp(-t)*(cos(2*t)+(1/2)*sin(2*t)); %función a resolver
3 F=laplace(f); %obtención de la transformada de Laplace
4 pretty(F) %se mejora visualización

Listado 6.8: Solución al ejercicio 6.3.

1 syms s; %se declara variable simbólica


2 F=(s-5)/(s*(s+2)^2); %función de transferencia en el dominio de Laplace

Manual de prácticas: Dinámica de Sistemas 99


PRÁCTICA 6. OBTENCIÓN DE LA TRANSFORMADA DE LAPLACE

3 f=ilaplace(F) %transformada inversa (solución)


4 pretty(f) %se mejora visualización

Listado 6.9: Solución al ejercicio 6.4.


1 syms s; %se declara variable simbólica
2 F=(5*s-1)/(s^3-3*s-2); %función de transferencia en Laplace
3 f=ilaplace(F) %transformada inversa (solución)
4 pretty(f) %se mejora visualización

Listado 6.10: Solución al ejercicio 6.5.


1 syms y(t) s Y %se declaran variables simbólicas
2 Dy=diff(y); %se declara dy/dt
3 D2y=diff(y,2); %se declara d^2y/dt^2
4 eq = D2y + 4*Dy == 1; %ecuación diferencial a resolver
5 Eq = laplace(eq,t,s) %se obtien la transformada de Laplace
6 Eq = subs(Eq,laplace(y(t),t,s),Y) %sustitución de Y(s) por Laplace
7 Eq = subs(Eq,{y(0),Dy(0)},{1,0}) %sustitución de CI y(0) = Dy(0)= 0
8 solY = solve(Eq,Y) %despejando con respecto a Y(s)
9 solY = simplify(solY) %se simplifica Y(s)
10 pretty(solY) %se mejora la visualización de Y(s)
11 soly = ilaplace(solY) %se obtiene la inversa de Laplace (solución)
12 pretty(soly) %se mejora la visualización de y(t)

6.7.3. Problema propuesto

En la Figura 6.3 se muestra un circuito resistencia-bobina-capacitor (i.e., RLC).


Encontrar la corriente i(t) después de que el interruptor se cierra en t = 0, don-
de i(0) = 0. Resolver la ecuación diferencial (6.26) que define el problema, por el

Manual de prácticas: Dinámica de Sistemas 100


PRÁCTICA 6. OBTENCIÓN DE LA TRANSFORMADA DE LAPLACE

método de la transformada de Lapalce, haciendo uso del Simbolic Toolbox 2 . Grafi-


que el comportamiento de la corriente i(t), al cerrar el interruptor, después de haber
transcurrido 10 s. Z
di(t) 1
e(t) = Ri(t) + L + i(t)dt (6.26)
dt C

Figura 6.3: Circuito RLC del problema propuesto.

6.8. Reporte del alumno

Se sugiere, después de resolver el problema propuesto en la sección 6.7.3 en


un script, entregarlo al instructor. El nombre del archivo debe tener extensión .m. La
discusión de resultados y conclusiones, se debe entregar en un procesador de texto
como el Microsoft Word®, el Libre Office®, u otro similar.

6.8.1. Discusión de resultados

Como ideas de discusión para el problema propuesto, se sugiere la respuesta a


las siguientes preguntas:
2
Lamentablemente, el Simbolic Toolbox de MATLAB no resuelve la operación de integración, ası́
que se recomienda, una vez definida y después de obtener la transformada de Laplace, sustituir
“laplace(int(i(t), t), t, s)” por “I/s”, que es la solución; de acuerdo a las propiedades de transformación
de Lapalce.

Manual de prácticas: Dinámica de Sistemas 101


PRÁCTICA 6. OBTENCIÓN DE LA TRANSFORMADA DE LAPLACE

¿Qué tipo de señal se observa en la gráfica de corriente i(t)?

¿Cómo se comportarı́a i(t) si la entrada fuese una señal senoidal, en lugar del
escalón de 25 V que se aplica?

Para evitar la operación de integración en el capacitor, se puede usar la carga


del mismo (i.e., q(t)), ¿cómo resultarı́a la ecuación diferencial del circuito RLC,
si se quisiera graficar el comportamiento de la carga q(t), en vez de la i(t)?

6.8.2. Conclusiones

El alumno debe explicar, en que medida logró adquirir las competencias propues-
tas en esta práctica. Cuales fueron las principales dificultades que enfrentó y como
las solucionó. También puede proponer ideas para mejorar la comprensión de los
temas tratados en la práctica.

Referencias

Elaydi, S. (2005). An introduction to difference equations (3rd. ed.). Springer Scien-


ce+Business Media, Inc.
Fadali, M. S., y Visioli, A. (2013). Digital control engineering analysis and design.
Elsevier Inc.
Houpis, C. H., y Sheldon, S. N. (2014). Linear control system analysis and design
with matlab® (Sixth ed.). CRC press.
Mathworks, I. S. (2017). Symbolic math toolbox™ user’s guide. Descargado de
https:// www.mathworks.com
Moore, H. (2015). Matlab® for engineers. Pearson.
Ogata, K. (2010). Modern control engineering (Fifth ed.). Prentice Hall.

Manual de prácticas: Dinámica de Sistemas 102


PRÁCTICA 7
OBTENCI ÓN DE LA TRANSFORMADA Z

7.1. Competencias

El alumno conoce, desarrolla y aplica métodos para la representación ma-


temática de sistemas discretos, para la sı́ntesis y resolución de modelos ma-
temáticos que describen el comportamiento dinámico de sistemas discretos.

El alumno será capaz de obtener la transformada z de un Sistema Dinámico


continuo, a través del Simbolic Toolbox de MATLAB.

El alumno será capaz de obtener la transformada z inversa de un Sistema


Dinámico discreto, a través del Simbolic Toolbox de MATLAB.

7.2. Introducción

Esta práctica, trata de la representación de los Sistemas Dinámicos a través


de la transformada z. Para ello, se hace uso de comandos del Simbolic Toolbox y
de otros comandos numéricos del MATLAB. Además de representar las funciones
matemáticas, que modelan los sistemas fı́sicos en el dominio de la transformada
z, también se revertirá esta conversión a través de la transformada z inversa. El

103
PRÁCTICA 7. OBTENCIÓN DE LA TRANSFORMADA Z

producto de esta práctica, será la implementación de un programa que represente


en tiempo discreto, los modelos matemáticos de los sistemas fı́sicos continuos.

7.3. Temas y subtemas

Tema: Marco Matemático. Se representan matemáticamente los sistemas fı́si-


cos discretos.

Subtemas:

Funciones lineales continuas y discretas.

Linealidad.

Métodos de solución de funciones lineales discretas.

7.4. Medidas de seguridad e higiene

Como se trata de un software de simulación, las prácticas se deben desarro-


llar en el laboratorio de computo. La seguridad en un laboratorio de computo tiene
que ver con el equipo de computo. Para evitar daño en los computadores, se debe
evitar introducir bebidas al laboratorio. Los lı́quidos derramados sobre el equipo de
computo seguramente lo dañarán.

Si se va a trabajar en equipos, deben sentarse de tal manera que no se obstruyan


los pasillos. Debe tenerse mucho cuidado al insertar una unidad de memoria flash
USB a un computador; asegúrese que se encuentra libre de virus. Se tiene que
evitar las infecciones en los equipos de computo, para evitar que estos fallen.

Manual de prácticas: Dinámica de Sistemas 104


PRÁCTICA 7. OBTENCIÓN DE LA TRANSFORMADA Z

7.5. Material y equipo necesario

Es necesario contar con los libros y manuales de consulta que se sugieren en las
referencias bibliográficas de esta práctica (Mathworks, 2017; Madhusudan, 2015;
Fadali y Visioli, 2013). Se requiere la versión 2014 o superior del MATLAB y un
computador con un procesador Intel®, Core™ i3 ó su equivalente, con una memoria
de 2 GB de RAM.

7.6. Metodologı́a

Para esta práctica, los Sistemas Dinámicos modelados por ecuaciones en tiempo
continuo, se convierten al dominio del tiempo discreto, a través de la transformada
z. Esta representación, generalmente produce funciones de transferencia en base
a la variable compleja z, usada en la transformada z. Las funciones en el dominio
del tiempo discreto, se antitransforman para volver al dominio del tiempo continuo, a
través de la transformada z inversa.

En esta metodologı́a, primeramente se define la transformada z. Luego, se usa


para convertir funciones en tiempo continuo, a funciones en tiempo discreto. Des-
pués, se hace el proceso inverso, que consiste en convertir funciones en tiempo
discreto, a funciones en tiempo continuo. Finalmente, se modela un sistema fı́sico a
través de la transformada z.

7.6.1. Definición de la transformada z

La transformada z es una herramienta usada en el cálculo de la respuesta de


sistemas (Madhusudan, 2015). La transformada z unilateral (i.e., kT ≥ 0) para una

Manual de prácticas: Dinámica de Sistemas 105


PRÁCTICA 7. OBTENCIÓN DE LA TRANSFORMADA Z

secuencia en el tiempo f (k) se define en (7.1),



X

F(z) = f (k)z−k ( región de convergencia |z| > 1) (7.1)
k=0

donde el coeficiente de z−k es f (k). Una propiedad importante de la transformada z,


recordado que T es el paso de tiempo o periodo de muestreo, es la que se expresa
en (7.2),
z−1 = e−sT ∼ T (retardo en segundos) (7.2)

De la expresión (7.1), se deducen las “tablas de funciones pares” (ver anexos de


Fadali y Visioli (2013); Ogata (1995)), que se usan para obtener la transformada z
en forma analı́tica. El algunas ocasiones, el Simbolic Toolbox de MATLAB, resuelve
la transformada z igual a la solución analı́tica. Sin embargo, se puede demostrar en
forma gráfica, que el total de las soluciones son una aproximación muy aceptable.

7.6.2. Uso de la transformada z

Para mostrar el uso de la transformada z en forma analı́tica, se hará uso de un


ejemplo.

Ejemplo 7.1. Obtener la transformada z de la función (7.3).

f (t) = 2e−2t − 4te−2t (7.3)

Desde que t = kT , entonces se hace la sustitución y se factoriza, con el fin de


normalizar la función, de acuerdo con la tabla de pares de la transformada z. Esto
se puede observar en la expresión (7.4);

f (kT ) = 2e−2kT − 4kTe−2kT = 2 (1 − 2kT )e−2kT


 
(7.4)

Manual de prácticas: Dinámica de Sistemas 106


PRÁCTICA 7. OBTENCIÓN DE LA TRANSFORMADA Z

el par más parecido de acuerdo con Ogata (1995), es el que se muestra en (7.5),
1 − (1 + aT )e−aT z−1
(1 − akT )e−akT ≡ (7.5)
(1 − eaT z−1 )2
donde para este caso, a = 2. Resolviendo (7.4) con respecto a (7.5), se obtiene la
solución (7.6),
2 − 2e−2T z−1 − 4Te−2T z−1
Z [ f (kT )] = F(z) = (7.6)
(1 − e−2T z−1 )2
si se manipula algebraicamente (7.6), cambiando todos los exponentes negativos a
positivos, se tendrá la solución (7.7).
2e2T z(e2T z − 2T − 1)
F(z) = (7.7)
(e2T z − 1)2

La función del Simbolic Toolbox para obtener la transformada z es la que se


muestra a continuación.

>> F = ztrans(f, k, w)

Donde se hace que “F” sea una función de la variable simbólica “w”, en lugar
de “z”, que es la predeterminada. También, se toma a “f” como una función de la
variable simbólica “k”. En el Listado 7.1, se tiene un script que resuelve la función
(7.3) del ejemplo 7.1, propuesto en esta sección. Si se ejecuta el programa que se
ofrece en este Listado, se podrá observar que en esta ocasión, la respuesta que
se despliega en el Command Window, es similar a la respuesta analı́tica que se
muestra en (7.7).

Listado 7.1: Solución en MATLAB del ejemplo 7.1 propuesto en esta sección.

1 syms k T %se declaran las variables simbólicas k y T


2 f = 2*exp(-2*k*T) - 4*k*T*exp(-2*k*T); %función a resolver
3 F = ztrans(f); %se obtiene la transformada z
4 F = simplify(F); %se simplifica el resultado
5 pretty(F) %se muestra una mejor visualización

Manual de prácticas: Dinámica de Sistemas 107


PRÁCTICA 7. OBTENCIÓN DE LA TRANSFORMADA Z

7.6.3. Transformada z inversa

El proceso analı́tico de obtener la transformada z inversa, para una función co-


mo la (7.7) del ejemplo 7.1, resulta trivial. También se usa la tabla de pares de la
transformada z, solamente que ahora en el proceso inverso. También la solución
en el Simbolic Toolbox resulta sencilla. El comando para obtener la transformada z
inversa es el siguiente.

>> f = iztrans(F, w, k)

Donde se toma a “F” como una función de “w” en lugar de la variable prede-
terminada de “F” (i.e., “s”) y devuelve una función de “k”, en lugar de “n” que es la
predeterminada. En el Listado 7.2, se obtiene la transformada z inversa de la función
(7.7), del ejemplo 7.1; i.e., se vuelve a la función en tiempo continuo (7.3).

Listado 7.2: Cálculo de la transformada z inversa de (7.7) en MATLAB.

1 syms z T %se declaran las variables simbólicas


2 F = 2*z*exp(2*T)*(z*exp(2*T)-2*T-1)/(z*exp(2*T)-1)^2 %función a resolver
3 f = iztrans(F,k) %se obtiene la transformada z inversa
4 f = simplify(f) %se simplifica la solución
5 pretty(f) %se mejora la visualización de la solución

En algunos casos, obtener la transformada z inversa en forma analı́tica resulta


difı́cil. Esto se debe a que cuando las funciones a resolver, son de un orden mayor a
dos, en ocasiones, resulta complicado normalizar, para igualar a los pares de la tabla
de la transformada z. El método analı́tico llamado expansión por fracciones parcia-
les, aplicado para simplificar las funciones de la transformada de Laplace, visto en
la práctica 6.6.3, también puede aplicarse a la transformada z inversa. Solamente
debe sustituirse la variable s por z, y el comando ilaplace por iztrans.

En esta práctica, el tema subsecuente de acuerdo con la metodologı́a de la


transformada z, serı́a la solución de ecuaciones en diferencias, pero para no re-

Manual de prácticas: Dinámica de Sistemas 108


PRÁCTICA 7. OBTENCIÓN DE LA TRANSFORMADA Z

petir contenidos, se ha preferido omitir este tema. Si se desea recordar este tema,
se recomienda ir a la práctica 5.6.2.

Entrada Salida
Computador Planta
_ A/D D/A
digital

Sensor

Figura 7.1: Sistema de muestreo de señales en el control digital.

7.6.4. Muestro y reconstrucción de la señal

En esta sección se aborda el tema del muestro y reconstrucción de la señales


usadas en control de Sistemas Dinámicos. En la actualidad la mayorı́a de los Siste-
mas Dinámicos son controlados por dispositivos digitales en vez de analógicos. En
el proceso de control digital deben ser usados dos dispositivos, uno es el convertidor
analógico digital (i.e., A/D Converter ), y otro es el convertidor digital analógico (i.e.,
D/A Converter ). En la Figura 7.1 se muestra el uso que se le da a estos convertido-
res en el control digital.

En la actualidad el tiempo que tarda el proceso de conversión A/D es muy pe-


queño tanto que la mayorı́a de los autores (Fadali y Visioli, 2013; Moudgalya, 2007;
Ibrahim, 2006) no lo toman en cuenta. Sin embargo, el tiempo que tarda el proceso
de conversión D/A, si es significativo, debido a que los valores deben ser retenidos
en forma escalonada, como se muestra en la Figura 7.2. El tiempo que tarde la
retención dependerá del periodo de muestreo T . Este periodo de muestreo general-
mente es uniforme.

El circuito retenedor de orden cero (i.e., Zero Order Hold, ZOH) que se muestra

Manual de prácticas: Dinámica de Sistemas 109


PRÁCTICA 7. OBTENCIÓN DE LA TRANSFORMADA Z

Retenedor de
orden cero

ZOH

Figura 7.2: Circuito retenedor de orden cero.

en la Figura 7.2 es representado por el modelo matemático de la ecuación (7.8) para


el dominio de Laplace,
1 − e−T s
GZOH (s) = (7.8)
s
y por la ecuación (7.9) para el dominio de z,
  
−1 G(s)
G(z) = (1 − z )Z L
−1
(7.9)
s

donde G(z) es la planta transformada del dominio de Laplace G(s) al dominio de la


transformada z. Existen otro tipos de retenedores de señal en la literatura, pero el
retenedor de orden cero, es el más usado.

Cuando se usa la expresión (7.9) para convertir una planta al dominio de z, se


dice que se ha utilizado el método directo de diseño. Esto tiene que ver, con la re-
construcción de la señal que se da en el convertidor D/A. Como usualmente se tiene
que incluir un convertidor D/A, entonces también se debe incluir un retenedor de or-
den cero. En la Figura 7.3, en alusión a (7.9), se muestra el proceso de discretización
de G(s) del cual resulta G(z).

Es importante mencionar, que la frecuencia de muestreo fs = 1/T que es el


número de muestras por segundo, debe obedecer la frecuencia de Nyquist, i.e.,
ωs > 2ωmax (Madhusudan, 2015). El requerimiento es que, la frecuencia de Nyquist
ωs , debe ser al menos el doble de la máxima frecuencia de la señal ωmax , que es

Manual de prácticas: Dinámica de Sistemas 110


PRÁCTICA 7. OBTENCIÓN DE LA TRANSFORMADA Z

G(z)
u(t) y(t)
u(kT) D/A G(s) A/D y(kT)

Figura 7.3: Reconstrucción de la señal digitalizada.

usada para controlar el Sistema Dinámico. Si se incumple con el requerimiento de


la frecuencia de Nyquist, es probable que se pierda información que resulta crucial
en la reconstrucción de la señal. Una buena reconstrucción de la señal analógica en
su forma digital, es esencial para propósitos de control.

7.6.5. Representación de sistema por la transformada z

En el sistema térmico de un tanque de lı́quidos que se muestra en la Figura


7.4, se asume que la temperatura de entrada θi es constante. La temperatura del
calentador tiene una relación de cambio que incrementa de H̄ a H̄ + h (Kcal/s). La
temperatura del lı́quido cambia de una relación de θ̄o a θ̄o + θo (°C). La entrada del
sistema es h y la salida es θo . La ecuación diferencial que rige el comportamiento
dinámico del sistema es (7.10),
dθo (t)
RC + θo (t) = Rh(t) (7.10)
dt
donde la resistencia térmica es R = 1 °C s/Kcal, y la capacitancia térmica es C =
1 Kcal/°C. Represente el modelo matemático del sistema térmico en el dominio de
la transformada z, cuando el periodo de muestreo T = 1 s y las condiciones iniciales
están dadas por: θo (0) = 0. Use el método directo de diseño. Para representar este

sistema a través de la transformada z, primeramente se obtiene la transformada de

Manual de prácticas: Dinámica de Sistemas 111


PRÁCTICA 7. OBTENCIÓN DE LA TRANSFORMADA Z

θo
Mezclador

θi

Figura 7.4: Sistema térmico a discretizar.

Laplace de la ecuación (7.10) de donde se obtiene la ecuación (7.11),

RC sΘo (s) + Θo (s) = RH(s) (7.11)

luego se factoriza y despeja, para obtener la función de transferencia de la salida con


respecto a la entrada, tal y como se expresa en (7.12), donde también se sustituyen
los valores de R y C.
Θo (s) R 1
= = = G(s) (7.12)
H(s) RCs + 1 s+1
En la Figura 7.5, se muestra la discretización en bloques de la función de transfe-
rencia obtenida en (7.12).

G(z)

h(t)* 1−e−sT 1
h(t) s s+1
θo(kT)
δT
GZHO(s) G(s)

Figura 7.5: Discretización en bloques de la función (7.12).

Finalmente, para pasar al dominio de z, se aplica (7.9) a la función de transferen-

Manual de prácticas: Dinámica de Sistemas 112


PRÁCTICA 7. OBTENCIÓN DE LA TRANSFORMADA Z

cia (7.12). Con lo anterior se obtiene (7.13),


1
( " #)
(s+1)
G(z) = (1 − z−1 )Z L −1 (7.13)
s

simplificando, por la ley de medios y extremos se obtiene (7.14);


  
1
G(z) = (1 − z )Z L
−1 −1
(7.14)
s(s + 1)

luego, aplicando las tablas de pares de la transformada z (considerando T = 1 s) se


obtiene (7.15);
(1 − e−1 )z−1
 
−1
G(z) = (1 − z ) (7.15)
(1 − z−1 )(1 − e−1 z−1 )
simplificando, se obtiene (7.16);

0.6321 z−1
G(z) = (7.16)
(1 − 0.3679 z−1 )

cambiando a exponentes positivos de z, se obtiene la solución (7.17), que modela al


sistema térmico en su forma discreta.

0.6321
G(z) = (7.17)
(z − 0.3679)

En el Listado 7.3, se modela el sistema térmico definido por la ecuación dife-


rencial (7.10), a través de un script de MATLAB. Un comando a destacar en este
Listado, se encuentra en la lı́nea 3. Aquı́ se usa el comando “dirac(t)” que se co-
rresponde con un impulso unitario. En la solución analı́tica de esta ecuación, se usó
la función de transferencia Θo (s)/H(s), por lo que no se definió la señal de entrada
H(s), i.e., se dejó como una variable. La estrategia usada en este caso, es conside-
rar a H(s) como una entrada impulso unitario, tal que Θo (s) = 1/(s + 1), lo cual esta
de acuerdo con la solución analı́tica.

En la lı́nea 13, se introduce el comando “tf(num,den)”. Este es un comando


numérico que crea una función de transferencia. En la lı́nea 14, la función de trans-
ferencia que se encuentra en el dominio de Laplace, se convierte al dominio de z

Manual de prácticas: Dinámica de Sistemas 113


PRÁCTICA 7. OBTENCIÓN DE LA TRANSFORMADA Z

por el comando “c2d(sis, T, ’zho’)”. En este comando el parámetro “sis”, se corres-


ponde con la función de transferencia, “T” al periodo de muestreo, y ’zho’, especifica
que se incluye el retenedor de orden cero en el método de discretización. En este
programa, la solución “Gz” resultó igual a la solución analı́tica G(z), de la expresión
(7.17).

Listado 7.3: Modelado del sistema térmico (7.10) en MATLAB.

1 syms s o(t) O z %se declaran las variables


2 Do = diff(o); %declarando derivada de salida do/dt
3 h = dirac(t); %entrada impulso que define h(t) = 1
4 R = 1; C = 1; T = 1; %definiendo constantes
5 eq = R*C*Do+o(t) == R*h; %ecuación diferencial a resolver
6 Eq = laplace(eq,t,s) %obteniendo la transformada de Laplace
7 Eq = subs(Eq,laplace(o(t),t,s),O) %sustitución de O(s) por Laplace
8 Eq = subs(Eq,{o(0)},{0}) %sustitución de CI o(0) = 0
9 solO = solve(Eq,O) %despejando con respecto a O(s)
10 [n,d] = numden(solO) %separación del numerador y denominador
11 num = sym2poly(n) %conversión de simbólico a numérico
12 den = sym2poly(d) %idem anterior
13 sis = tf(num,den) %se define la función en forma numérica
14 Gz = c2d(sis,T,’zho’) %discretización de la función de transferencia

7.7. Sugerencias didácticas

Con el propósito de estudiar los temas vistos en esta práctica, se proponen al-
gunos ejercicios para ser desarrollados en MATLAB.

Manual de prácticas: Dinámica de Sistemas 114


PRÁCTICA 7. OBTENCIÓN DE LA TRANSFORMADA Z

7.7.1. Ejercicios

7.1 Encontrar la transformada z de la función (7.18),

f (k) = cos(600k) (7.18)

7.2 Encontrar la transformada z inversa de la función (7.19),

z(10z + 5)
F(z) = (7.19)
(z − 1)(z − 0.2)

7.3 Encontrar la transformada z inversa de la función (7.20),

z2
F(z) = (7.20)
(z − 1)2 (z − e−1 )

7.4 Obtenga la transformada z de la función de transferencia (7.21), cuando T =


1 s, use un retenedor de orden cero con el método directo de diseño.

1
G(s) = (7.21)
s(s + 1)

7.5 Obtenga la transformada z de la función de transferencia (7.22), cuando T =


1 s, use un retenedor de orden cero con el método directo de diseño. Modele
la solución en la forma cero-polo-ganancia.

2
G(s) = (7.22)
s3 + 2s2 + s

Manual de prácticas: Dinámica de Sistemas 115


PRÁCTICA 7. OBTENCIÓN DE LA TRANSFORMADA Z

7.7.2. Solución a ejercicios

En esta sección se muestra el código en los Listados 7.4 - 7.8, que darán solución
a los ejercicios propuestos en la sección anterior. Se recomienda su ejecución para
observar los resultados.

Listado 7.4: Solución al ejercicio 7.1.

1 syms k %se define la variable


2 f = cos(600*k); %función a resolver
3 F = ztrans(f); %se obtiene al transformada z
4 F = collect(F) %se simplifica
5 pretty(F) %se mejora la visualización de la respuesta

Listado 7.5: Solución al ejercicio 7.2.

1 syms z k %definición de variables


2 F = ((10*z+5)*z)/((z-1)*(z-0.2)); %función a solucionar
3 f = iztrans(F,k); %resolviendo la transformada z inversa
4 f = vpa(f,4) %solución en fracciones decimales
5 pretty(f) %mejora visual de la solución

Listado 7.6: Solución al ejercicio 7.3.

1 syms z k %definición de variables


2 F = z^2/((z - 1)^2*(z - exp(-1))) %función a solucionar
3 f = iztrans(F,k); %resolviendo la transformada z inversa
4 f = vpa(f,4) %solución en fracciones decimales
5 pretty(f) %mejora visual de la solución

Listado 7.7: Solución al ejercicio 7.4.

1 K=1; T = 1; %ganancia K y tiempo de muestreo T


2 Zeros = []; %ceros de la función de transferencia

Manual de prácticas: Dinámica de Sistemas 116


PRÁCTICA 7. OBTENCIÓN DE LA TRANSFORMADA Z

3 Polos = [0, -1]; %polos de la función de transferencia


4 Gs = zpk(Zeros,Polos,K); %modelado en cero-polo-ganancia
5 Gz = c2d(Gs,T,’zho’) %discretización de la función de transferencia

Listado 7.8: Solución al ejercicio 7.5.

1 T = 1; %periodo de muestreo
2 num = 2; %numerador de G(s)
3 den = [1 2 1 0]; %denominador de G(s)
4 [Z,P,K] = tf2zp(num,den) %conversión de función de transferencia
5 Gs = zpk(Z,P,K) %a modelo cero-polo-ganancia
6 Gz = c2d(Gs,T,’zho’) %discretización de G(s)

7.7.3. Problema propuesto

En la Figura 7.6, se muestra el sistema fı́sico llamado péndulo. Aunque el mode-


lado y linealización de este sistema es simple, sirve de base para otro problema más
complejo y de aplicación en la aeronáutica, que es: el péndulo inverso. El problema
a resolver, es la discretización de la ecuación diferencial (7.23), que rige la dinámica
del péndulo.
d 2 θ (t) dθ (t)
J 2
+B + MgL θ (t) = T (t) (7.23)
dt dt
En la ecuación del péndulo las dimensiones son: masa de esfera M = 1 Kg, longitud
de la barra L = 1 m, aceleración de la gravedad g = 9.8 m/s2 , momento de inercia
J = ML2 , fricción viscosa B = 0.1 N.m/(rads/s). Obtenga la función de transferencia
Θ(z)/T (z), donde Θ(z) es el ánulo de oscilación y T (z) es el torque de entrada. Use el
método de diseño directo, con un retenedor de orden cero y un periodo de muestreo
T = 0.1 s.

Manual de prácticas: Dinámica de Sistemas 117


PRÁCTICA 7. OBTENCIÓN DE LA TRANSFORMADA Z

T(t)

θ L

Figura 7.6: Sistema fı́sico del péndulo.

7.8. Reporte del alumno

Se sugiere, después de resolver el problema propuesto en la sección 7.7.3 en


un script, entregarlo al instructor. El nombre del archivo debe tener extensión .m. La
discusión de resultados y conclusiones, se debe entregar en un procesador de texto
como el Microsoft Word®, el Libre Office®, u otro similar.

7.8.1. Discusión de resultados

Como ideas de discusión para el problema propuesto, se sugiere la respuesta a


las siguientes preguntas:

En la transformación a z del problema propuesto, ¿Qué variaciones se obser-


van en la función de transferencia Θ(z)/T (z), cuando se cambia T = 0.1 s a
T = 1 s?

En el método directo de diseño de transformación a z, ¿Qué otros retenedores


pueden ser usados?

Manual de prácticas: Dinámica de Sistemas 118


PRÁCTICA 7. OBTENCIÓN DE LA TRANSFORMADA Z

¿Qué comando se debe usar para graficar el comportamiento de θ (t), cuando


T (t), es una señal de entrada impulso unitario?

7.8.2. Conclusiones

El alumno debe explicar, en que medida logró adquirir las competencias propues-
tas en esta práctica. Cuales fueron las principales dificultades que enfrentó y como
las solucionó. También puede proponer ideas para mejorar la comprensión de los
temas tratados en la práctica.

Referencias

Fadali, M. S., y Visioli, A. (2013). Digital control engineering analysis and design.
Elsevier Inc.
Ibrahim, D. (2006). Microcontroller based applied digital control. John Wiley & Sons.
Madhusudan, H. (2015). Digital control applications : Illustrated with matlab®. CRC
Press, Taylor & Francis Group.
Mathworks, I. S. (2017). Symbolic math toolbox™ user’s guide. Descargado de
https:// www.mathworks.com
Moudgalya, K. M. (2007). Digital control. John Wiley & Sons, Ltd.
Ogata, K. (1995). Discrete-time control systems (Vol. 8). Prentice-Hall Englewood
Cliffs, NJ.

Manual de prácticas: Dinámica de Sistemas 119


PRÁCTICA 8
MODELADO DE FUNCIONES DE
TRANSFERENCIA EN MATLAB

8.1. Competencias

El alumno comprende y caracteriza el comportamiento dinámico de los siste-


mas continuos y discretos a partir de su representación mediante funciones de
transferencia.

El alumno modela en tiempo continuo y tiempo discreto, funciones de transfe-


rencia de Sistemas Dinámicos a través de MATLAB.

8.2. Introducción

En esta práctica, se introduce al alumno en el procedimiento necesario para


obtener, las funciones de transferencia de los Sistemas Dinámicos en tiempo conti-
nuo, y en tiempo discreto, a partir de sus ecuaciones diferenciales, y en diferencias,
respectivamente. En este proceso, no se hace uso de las tablas de pares de la
transformada de Laplace, ni de la transformada z, sino que se hace uso de una me-
todologı́a analı́tica visual, para obtener las funciones de transferencia. Luego, estas

120
PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

funciones de transferencia se implementan en MATLAB, para efectuar operaciones


entre las mismas, y también se prueba su respuesta ante entradas impulso unitario,
y entradas escalón unitario.

8.3. Temas y subtemas

Introducción al análisis de Sistemas Dinámicos lineales. Se representan los


sistemas dinámicos continuos y discretos, por medio de sus funciones de transfe-
rencia, haciendo uso para ello de los comandos apropiados de MATLAB.

Subtemas:

Funciones de transferencia.

Respuesta al impulso, caso continuo y caso discreto.

Simulación de Sistemas.

8.4. Medidas de seguridad e higiene

Como se trata de un software de simulación, las prácticas se deben desarro-


llar en el laboratorio de computo. La seguridad en un laboratorio de computo tiene
que ver con el equipo de computo. Para evitar daño en los computadores, se debe
evitar introducir bebidas al laboratorio. Los lı́quidos derramados sobre el equipo de
computo seguramente lo dañarán.

Si se va a trabajar en equipos, deben sentarse de tal manera que no se obstruyan


los pasillos. Debe tenerse mucho cuidado al insertar una unidad de memoria flash
USB a un computador; asegúrese que se encuentra libre de virus. Se tiene que
evitar las infecciones en los equipos de computo, para evitar que estos fallen.

Manual de prácticas: Dinámica de Sistemas 121


PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

8.5. Material y equipo necesario

Es necesario contar con los libros y manuales de consulta que se sugieren en


las referencias bibliográficas de esta práctica (Fadali y Visioli, 2013; Dorf y Bishop,
2011; Golnaraghi y Kuo, 2010; Ogata, 2010, 1995). Se requiere la versión 2014 o
superior de MATLAB y un computador con un procesador Intel®, Core™ i3 ó su
equivalente, con una memoria de 2 GB de RAM.

8.6. Metodologı́a

En esta práctica, se obtienen las funciones de transferencia de los Sistemas


Dinámicos, a partir de sus ecuaciones diferenciales o en diferencias. Una vez que
se cuenta con las funciones de transferencia, se analiza la respuesta de los Sis-
temas Dinámicos cuando se someten a un impulso unitario. También se efectúan
operaciones con funciones de transferencia. Todo esto se desarrolla a través de
comandos de MATLAB.

8.6.1. Definición de función de transferencia

La función de trasferencia de un sistema lineal e invariante en el tiempo, (i.e.,


Linear Time Invariant, LTI) es definido como el cociente de la transformada de La-
place (o z) de la salida, con respecto a la transformada de Laplace (o z) de la entrada.
Asumiendo que todas las condiciones iniciales son cero.

Considerando un sistema LTI definido por la ecuación diferencial (8.1),


(n) (n−1)
ao y +a1 y + · · · + an−1 ẏ + an y
(8.1)
(m) (m−1)
= b0 u +b1 u + · · · + bm−1 u̇ + bm u (n ≥ m)

Manual de prácticas: Dinámica de Sistemas 122


PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

donde y es la salida del sistema y u la entrada. Entonces la función de transferencia


del sistema se define por el cociente (8.2), expresado en Laplace.

L [salida]
Función de transferencia = G(s) =
L [entrada] condiciones iniciales = 0

(8.2)
Y (s) b0 sm + b1 sm−1 + · · · + bm−1 s + bm
= =
U(s) a0 sn + a1 sn−1 + · · · + an−1 s + an

Por el uso del concepto de la función de transferencia, es posible representar los


Sistemas Dinámicos en forma algebraica en s (o en z). Como el mayor exponente
de la función de transferencia debe ser n, entonces el sistema se llamará de n-
ésimo orden (Ogata, 2010). La función de transferencia en el dominio del tiempo
discreto debe expresarse en z, i.e., G(z); sin olvidar que en este caso, la función
de transferencia proviene de ecuaciones en diferencias, en lugar de ecuaciones
diferenciales.

8.6.2. Obtención de funciones de transferencia

En prácticas pasadas se desarrollaron programas que obtienen la función de


transferencia a partir de sus ecuaciones diferenciales o en diferencias. El método ha
sido obtener la transformada de Laplace de las ecuaciones diferenciales con lo cual
se obtiene la función de transferencia.

En esta práctica, se aborda como obtener la función de transferencia en forma


analı́tica visual, por la identificación de los coeficientes a y b, de la ecuación (8.1).
Los valores de estos coeficientes se sustituyen en la función (8.2), esto con el fin
de obtener la función de transferencia. Se ilustrará esta metodologı́a por medio del
ejemplo 8.1.

Ejemplo 8.1. Obtener la función de transferencia a partir de la ecuación dife-


rencial (8.3), que representa a un Sistema Dinámico cuyas condiciones iniciales son

Manual de prácticas: Dinámica de Sistemas 123


PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

cero.
d 3 y(t) d 2 y(t) dy(t) du(t)
3
+ 3 2
+4 + y(t) = 2 + u(t) (8.3)
dt dt dt dt

Analizando la ecuación diferencial (8.3) se puede notar, que la derivada de mayor


orden en la variable de salida y, es n = 3, mientras que la derivada de mayor orden
de la variable de entrada u, es m = 1. Por lo tanto, se tendrán los coeficientes
a0 , a1 , a2 , a3 y b0 , b1 , ubicados según se muestra en la ecuación (8.4),

d 3 y(t) d 2 y(t) dy(t) du(t)


a0 + a 1 + a2 + a3 y(t) = b 0 + b1 u(t) (8.4)
dt 3 dt 2 dt dt

ahora por inspección visual se puede inferir que: a0 = 1, a1 = 3, a2 = 4, a3 = 1,


b0 = 2, y b1 = 1. De la ecuación (8.3) resulta la función de transferencia (8.5),

Y (s) b0 s + b1
= (8.5)
U(s) a0 s3 + a1 s2 + a2 s + a3

sustituyendo los valores de los coeficientes resulta la solución (8.6).

Y (s) 2s + 1
= 3 (8.6)
U(s) s + 3s2 + 4s + 1

En el Listado 8.1 se puede observar en las lı́neas 1 y 2 la definición de los


coeficientes a y b con los que se forma la función de transferencia en la lı́nea 3.

Listado 8.1: Solución en MATLAB del ejemplo 8.1.

1 num = [2 1]; %definición de coeficientes [b0 b1]


2 den = [1 3 4 1]; %definición de coeficientes [a0 a1 a2 a3]
3 sis = tf(num,den) %función de transferencia en Laplace

En el caso de requerir la función de transferencia, a partir de ecuaciones en


diferencias, se sigue el mismo procedimiento. Se identifican los coeficientes a y b,
luego al usar el comando “tf(num, den, Ts)” solo se agrega “Ts” que es el periodo
de muestreo.

Manual de prácticas: Dinámica de Sistemas 124


PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

8.6.3. Respuesta a la señal impulso unitario

En el tiempo continuo, se considera la respuesta a la señal de impulso unita-


rio en el dominio de Laplace, cuando las condiciones iniciales son cero. Como la
transformada de Laplace de la función impuso unitario es la unidad, entonces la
transformada de Laplace de la salida del sistema es (8.7),

Y (s) = G(s) (8.7)

La transformada inversa de Laplace de la salida dada por la ecuación (8.7), genera la


respuesta de impulso del sistema. Otra manera de expresar lo anterior se encuentra
en (8.8);
L −1 [G(s)] = g(t) (8.8)

la transformada de Laplace de g(t), da la función de transferencia del sistema. Por


lo tanto, “la función de transferencia y la respuesta al impulso unitario, poseen la
misma información a cerca de la dinámica del sistema” (Ogata, 2010).

En el tiempo discreto, la respuesta de un sistema discreto a una entrada de


impulso unitario, se le conoce como “secuencia de respuesta al impulso” (Fadali y
Visioli, 2013). La operación que se lleva a cabo entre esta secuencia de entrada, y
el sistema discreto, se le conoce como suma de convolución. De acuerdo con Fadali
y Visioli (2013), la suma de convolución es una operación muy compleja, que se
puede evitar por el uso del teorema de convolución de la transformada z.

El teorema de convolución de la transformada z dice:

La transformada z de la convolución de dos secuencias


de tiempo, es igual al producto de sus transformadas z.

De este teorema resulta la expresión (8.9), donde Y (z) es la salida del sistema
U(z) es la secuencia de entrada y G(z) es la función de transferencia.

Y (z) = G(z)U(z) (8.9)

Manual de prácticas: Dinámica de Sistemas 125


PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

La metodologı́a en la aplicación de este teorema es: obtener por medio de las


tablas de pares, la transformada z de u(t); luego, también por el uso de las tablas
de pares, la transformada z de g(t). Finalmente, se multiplica la entrada U(z) por la
función de transferencia G(z). La ventaja de esta metodologı́a, es que se obtiene la
salida Y (z) en una forma cerrada.

En conclusión, tanto en el tiempo continuo como en el tiempo discreto, la función


de transferencia y la respuesta al impulso unitario, poseen la misma información a
cerca de la dinámica del sistema. I. e., cuando u(t) = δ (t), basta con obtener la
transformada de Laplace de g(t) (en el caso continuo) o la transformada z de g(t)
(en el caso discreto) y obtendremos la salida del sistema.

En el ejemplo 8.2, se muestra el uso del comando impulse de MATLAB, desti-


nado para probar la respuesta de los sistemas, cuando se aplica una señal impulso
unitario como entrada.

Ejemplo 8.2. Obtenga la respuesta al impulso unitario del sistema representado


por la ecuación en diferencias (8.10), que cuenta con un periodo de muestreo Ts =
0.1 s.
y(k + 2) − y(k + 1) + y(k) = u(k + 1) (8.10)

En este ejemplo, la ecuación en diferencias es de segundo orden en la variable


de salida y, por lo tanto n = 2, y de primer orden en la variable de entrada u, por lo
tanto m = 1. Por consiguiente se tendrán los coeficientes a0 , a1 , a2 , y b0 , b1 ; ubicados
según se muestra en la ecuación (8.11),

a0 y(k + 2) + a1 y(k + 1) + a2 y(k) = b0 u(k + 1) + b1 u(k) (8.11)

ahora, por inspección visual se puede inferir que: a0 = 1, a1 = −1, a2 = 1, y b0 = 1,


b1 = 0. De la ecuación (8.10), resulta la función de transferencia (8.12),
Y (z) b0 z + b1
= 2
(8.12)
U(z) a0 z + a1 z + a2

Manual de prácticas: Dinámica de Sistemas 126


PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

sustituyendo los valores de los coeficientes resulta la función de transferencia (8.13).

Y (z) z
= 2 (8.13)
U(z) z −z+1

Una vez que se tiene la función de transferencia (8.13), es posible desarrollar


un script que simule la respuesta al impulso unitario en MATLAB. En el Listado 8.2,
se tiene la respuesta al impulso unitario del sistema del ejemplo 8.2. Las lı́neas a
destacar en este Listado son: la lı́nea 4, donde se usa la versión digital del coman-
do “tf”, al agregar como último parámetro, el periodo de muestreo “Ts”. La lı́nea 6,
donde se aplica una señal impulso unitario al sistema, por el uso del comando “im-
pulse”, donde primeramente se pasa el parámetro “sis”, que contiene la función de
transferencia en forma de estructura. Luego, se pasa el parámetro “T”, que contiene
el vector de tiempo a graficar.

Listado 8.2: Solución en MATLAB del ejemplo 8.2.

1 Ts = 0.1; %periodo de muestreo


2 num = [1 0]; %numerador del sistema
3 den = [1 -1 1]; %denominador del sistema
4 sis = tf(num,den,Ts) %función de transferencia discreta
5 T = 0:Ts:2; %vector de tiempo en segundos
6 impulse(sis,T,’r’);grid %aplicación y gráfica del impulso
7 title(’Respuesta al impulso unitario’) %leyenda del tı́tulo

En la Figura 8.1, se muestra la respuesta al impulso unitario aplicado a la función


de transferencia, que modela el sistema del ejemplo 8.2. Si se observa la tabla de
pares de transformada z, es posible notar que la función de transferencia (8.13), se
corresponde con la función seno en tiempo continuo 1 . Con esto se demuestra que:
1
Para la función de transferencia (8.13), normalizando a la tabla de pares de la transformada z,
sen(ωT ) = 1 y cos(ωT ) = 1/2.

Manual de prácticas: Dinámica de Sistemas 127


PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

“la respuesta al impulso unitario, y la función de transferencia del sistema, poseen la


misma información del sistema”. I.e., la transformada z del sistema, es la respuesta
al impulso unitario.
Respuesta al impulso unitario (función seno)
10

2
Amplitud

-2

-4

-6

-8

-10
0 0.5 1 1.5 2
Tiempo (seconds)

Figura 8.1: Simulación de la respuesta al impulso unitario del ejemplo 8.2.

8.6.4. Operaciones con funciones de transferencia

Para un Sistema Dinámico lineal, la función de transferencia G(s) esta dada por
la expresión (8.14),
Y (s)
G(s) = (8.14)
U(s)
donde U(s) es la entrada y Y (s) es la salida del sistema. Se puede expresar a Y (s)
como el producto de U(s) con G(s) tal como se aprecia en (8.15);

Y (s) = G(s)U(s) (8.15)

a esta multiplicación en el domino de los números complejos, se le llama “convo-


lución integral” (Ogata, 2010). Las operaciones principales a las que están sujetas
las funciones de transferencia, tanto en el dominio del tiempo continuo, como en el
dominio del tiempo discreto son: multiplicación (i.e., convolución o series), suma
(i.e., parallel), y retroalimentación (i.e., feedback).

Manual de prácticas: Dinámica de Sistemas 128


PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

En MATLAB las operaciones con funciones de transferencia se implementan de


diversas maneras.

Para la multiplicación se usa el operador ∗ ó el comando series.

Para la suma se usa el operador + ó el comando parallel.

Para la retroalimentación el comando feedback.

En estructuras de bloques, estas operaciones se pueden ilustrar como se mues-


tra en la Figura 8.2, donde las dos primeras son para sistemas en lazo abierto y la
última para sistema en lazo cerrado. Para ilustrar el uso de las operaciones en las
funciones de transferencia, se resolverá el ejemplo 8.3.

U(s) G1(s) G2(s) Y(s) U(s) G1(s) +


+
Y(s) R(s) _ G(s) Y(s)

G(s) G2(s) H(s)

a) b) c)

Figura 8.2: Operaciones de funciones de transferencia: a) multiplicación, b) suma,


c) retroalimentación.

Ejemplo 8.3. Sean G1(s) y G2(s) dos funciones de transferencia definidas en


(8.16). Efectuar en G1(s) y G2(s) las operaciones de: a) multiplicación, b) suma, y
c) retroalimentación. Para la operación de retroalimentación, G(s) = G1(s) y H(s) =
G2(s). Implemente las soluciones primeramente en forma analı́tica y posteriormente
a través de MATLAB.

1 s
G1(s) = , G2(s) = (8.16)
(s + 2) (s2 + 2s + 1)

Solución analı́tica a las operaciones de:

Manual de prácticas: Dinámica de Sistemas 129


PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

a) Multiplicación.
1 s
G(s) = G1(s) ∗ G2(s) = ∗ 2
(s + 2) (s + 2s + 1)
(8.17)
s
G(s) = 3 2
s + 4s + 5s + 2

b) Suma.
1 s
G(s) = G1(s) + G2(s) = + 2
(s + 2) (s + 2s + 1)
2
(s + 2s + 1) + s(s + 2)
G(s) = (8.18)
(s + 2)(s2 + 2s + 1)
2s2 + 4s + 1
G(s) = 3
s + 4s2 + 5s + 2

c) Retroalimentación.
1
Y (s) G(s) (s+2)
= = 1 s
R(s) 1 + G(s)H(s) 1+ (s+2)
∗ (s2 +2s+1)
1
Y (s) (s+2) s2 + 2s + 1 (8.19)
= (s+2)(s2 +2s+1)+s
=
R(s) (s + 2)(s2 + 2s + 1) + s
(s+2)(s2 +2s+1)
2
Y (s) s + 2s + 1
= 3
R(s) s + 4s2 + 6s + 2

En la solución (8.17), se efectúa la multiplicación de fracciones, y en la solución


(8.18), se efectúa la suma de fracciones. En la solución (8.19), se efectúa la función
de transferencia de un sistema en lazo cerrado (ver Figura 8.2.c), cuya fórmula2
(8.20), es primordial en Ingenierı́a de Control.

Y (s) G(s)
= (8.20)
R(s) 1 + G(s)H(s)

El denominador de la función (8.20) que es: 1 + G(s)H(s), es conocido como


ecuación caracterı́stica, y juega un papel muy importante en lo referente al análisis
de estabilidad, en los sistemas de lazo cerrado.
2
Su demostración, se encuentra en la literatura propuesta en las referencias bibliográficas de esta
práctica.

Manual de prácticas: Dinámica de Sistemas 130


PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

Solución en MATLAB. En el Listado 8.3, se muestra la solución en MATLAB


al ejemplo 8.3. En todos los casos, las soluciones que presentan los comandos de
MATLAB, son iguales a las que se obtuvieron en forma analı́tica.

Listado 8.3: Solución en MATLAB del ejemplo 8.3.

1 %a) multiplicación
2 num1 = 1; %numerador de G1(s)
3 den1 = [1 2]; %denominador de G1(s)
4 num2 = [1 0]; %numerador de G2(s)
5 den2 = [1 2 1]; %denominador de G2(s)
6 G1 = tf(num1,den1); %función de transferencia G1(s)
7 G2 = tf(num2,den2); %función de transferencia G2(s)
8 G = G1*G2 %multiplicación de G1(s)*G2(s)
9 %también puede ser:
10 G = series(G1,G2) %multiplicación de G1(s)*G2(s)
11 %b) suma
12 G = G1+G2 %suma de G1(s)+G2(s)
13 %también puede ser:
14 G = parallel(G1,G2) %suma de G1(s)+G2(s)
15 %c) retroalimentación
16 Y_R = feedback(G1,G2) %función de transferencia en lazo cerrado

8.6.5. Representación de sistema por función de transferencia

Se desea obtener la función de transferencia del satélite mostrado en la Figu-


ra 8.3. La ecuación en diferencias, que gobierna el movimiento para el control de
actitud, (i.e., orientación de antena a tierra) se muestra en la expresión (8.21),

θ (k + 2) − 2θ (k + 1) + θ (k) = 0.02u(k + 1) + 0.02u(k) (8.21)

Manual de prácticas: Dinámica de Sistemas 131


PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

donde θ es el ángulo del eje satelital y u es el torque de control de los propulsores,


con respecto al centro de masa del satélite. El periodo de muestreo Ts = 0.2 s. Una
vez obtenida la función de transferencia del sistema, pruebe la respuesta del mismo
a una entrada impulso unitario. Proponga a U(z) como una entrada escalón unitario;
multiplique U(z) por G(z) y pruebe el resultado de esta multiplicación que es Θ(z),
(i.e., prueba con la señal de impulso unitario).

Figura 8.3: Modelo de movimiento de θ en un satélite.

Solución analı́tica: de la ecuación en diferencias (8.21), se obtienen a0 = 1,


a1 = −2, a2 = 1, y b0 = 0.02, b1 = 0.02. Sustituyendo estos coeficientes en la función
de transferencia se obtiene (8.22);

Θ(z) 0.02z + 0.02


G(z) = = 2 (8.22)
U(z) z − 2z + 1

se propone U(z) como una entrada escalón unitario3 , con lo cual tendremos la ex-
presión (8.23),
(0.02z + 0.02) Ts z
Θ(z) = G(z)U(z) = (8.23)
(z2 − 2z + 1) (z − 1)
donde U(z) = Ts z/(z − 1). Sustituyendo Ts = 0.2 s y multiplicando las fracciones
tendremos la solución para Θ(z) (8.24).

0.004z2 + 0.004z
θ (z) = (8.24)
z3 − 3z2 + 3z − 1
3
En las tablas de pares de la transformada z (Fadali y Visioli, 2013), la entrada escalón unitario se
representa como: z/(z − 1) mientras que en MATLAB se representa como: Ts /(z − 1). Para fines de
compatibilidad, se prefirió usar la representación del escalón unitario como: Ts z/(z − 1).

Manual de prácticas: Dinámica de Sistemas 132


PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

Solución y simulación en MATLAB: en el Listado 8.4 se muestra el código


que resuelve y simula la respuesta al impulso unitario del modelo matemático del
movimiento del ángulo Θ(z) en un satélite. Las lı́neas a destacar son: lı́nea 11, donde
se tiene la respuesta al impulso del ángulo Θ(z). Lı́nea 12, donde se introduce la
función “step”, que grafica la respuesta de un escalón unitario. La lı́nea 11 y 12 en
el sentido matemático son iguales. En la lı́nea 11, se grafica la respuesta al impulso
de G(z)U(z), mientras que en la lı́nea 12, se introduce una señal escalón unitario a
G(z), que equivale a la expresión G(z)U(z).

Listado 8.4: Simulación en MATLAB del comportamiento de Θ(z) en un satélite.

1 Ts = 0.2; %periodo de muestreo Ts


2 T = 0:Ts:5; %vector tiempo de respuesta
3 num1 = [0.02 0.02]; %numerador de G(z)
4 den2 = [1 -2 1]; %denominador de G(z)
5 G = tf(num1,den2,Ts) %función de transferencia de G(z)
6 num2 = [Ts 0]; %numerador de U(z)
7 den2 = [1 -1]; %denominador de U(z)
8 U = tf(num2,den2,Ts) %función de transferencia de U(z)
9 O = series(G,U) %salida (Teta) O(z) =G(z)*U(z)
10 subplot(1,3,1);impulse(G,T);grid; %respuesta al impulso de G(z)
11 subplot(1,3,2);impulse(O,T);grid %respuesta al impulso de O(z)
12 subplot(1,3,3);step(G,T);grid %respuesta al escalón de G(z)

En la Figura 8.4, se observa la respuesta al impulso unitario de G(z) y Θ(z) en el


satélite. Como se dijo en la explicación del Listado 8.4, si se observa en las gráficas
la respuesta al impulso de Θ(z), (gráfica del medio) es igual a la respuesta a un
escalón unitario de G(z), (gráfica de la derecha).

Manual de prácticas: Dinámica de Sistemas 133


PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

Respuesta al impulso de G(z) Respuesta al impulso de O(z) Respuesta al escalón de G(z) (O(z))
5 14 14

4.5
12 12
4

3.5 10 10

3
8 8
Amplitud

Amplitud

Amplitud
2.5
6 6
2

1.5 4 4

1
2 2
0.5

0 0 0
0 2 4 0 2 4 0 2 4
Tiempo (seconds) Tiempo (seconds) Tiempo (seconds)

Figura 8.4: Respuesta al impulso de G(z) y Θ(z) en satélite.

8.7. Sugerencias didácticas

Con el propósito de estudiar los temas vistos en esta práctica, se proponen al-
gunos ejercicios para ser desarrollados en MATLAB.

8.7.1. Ejercicios

8.1 Encontrar la función de transferencia del Sistema Dinámico a partir de su ecua-


ción diferencial definida en (8.25).

d 3 y(t) dy(t) du(t)


3 − 2 + y(t) = (8.25)
dt 3 dt dt

8.2 Encontrar la función de transferencia del Sistema Dinámico a partir de su ecua-


ción en diferencias definida en (8.26).

2y(k − 2) + 3y(k − 1) + y(k) = 4u(k − 1) (8.26)

Manual de prácticas: Dinámica de Sistemas 134


PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

8.3 Probar la respuesta al impulso unitario del sistema definido por la ecuación
diferencial (8.27).
d 3 y(t) d 2 y(t) dy(t)
3
+ 6 2
+ 11 + 6y(t) = u(t) (8.27)
dt dt dt

8.4 Dadas las funciones de transferencia G1(z), G2(z), y G3(z), expresadas en


(8.28), efectuar las operaciones de multiplicación y suma entre las funciones
de transferencia.
1 2z2 − z + 1 z
G1(z) = , G2(z) = , G3(z) = (8.28)
z−3 z2 + 9z − 8 2z + 4

8.5 Dadas las funciones de transferencia G(s), y H(s), expresadas en (8.29), efec-
tuar las operaciones de multiplicación y retroalimentación entre las funciones
de transferencia. Probar el resultado de las operaciones con la función escalón
unitario.
2s 1
G(s) = , H(s) = (8.29)
(s + 1)(s + 2)(s + 3) (s + 1)

8.7.2. Solución a ejercicios

En esta sección se muestra el código en los Listados 8.5-8.9, que darán solución
a los ejercicios propuestos en la sección anterior. Se recomienda su implementación
para observar los resultados.

Listado 8.5: Solución al ejercicio 8.1.

1 num = [1 0]; %numerador de la ecuación diferencial


2 den = [3 0 -2 1]; %denominador de la ecuación
3 G = tf(num,den) %función de transferencia en el dominio de Laplace

Manual de prácticas: Dinámica de Sistemas 135


PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

Listado 8.6: Solución al ejercicio 8.2.

1 %Para la ecuación 2y(k - 2) + 3y(k - 1) + y(k) = 4u(k - 1)


2 %se propone un adelanto en el paso de tiempo k de +2
3 %con lo cual se obtiene 2y(k) + 3y(k + 1) + y(k + 2) = 4u(k + 1)
4 %re-ordenando se logra y(k + 2) + 3y(k + 1) + 2y(k) = 4u(k + 1)
5 %Ts = 1; %periodo de muestreo
6 %num = [4 0]; %numerador de la ecuación en diferencias
7 %den = [1 3 2]; %denominador de la ecuación en diferencias
8 %G = tf(num,den,Ts) %función de transferencia en el dominio de z

Listado 8.7: Solución al ejercicio 8.3.

1 num = 1; %numerador de G(s)


2 den = [1 6 11 6]; %denominador de G(s)
3 G = tf(num,den) %función de transferencia G(s)
4 impulse(G);grid %respuesta al impulso unitario

Listado 8.8: Solución al ejercicio 8.4.

1 Ts = 1; %periodo de muestreo
2 num1 = 1; %numerador de G1(z)
3 num2 = [2 -1 1]; %numerador de G2(z)
4 num3 = [1 0]; %numerador de G3(z)
5 den1 = [1 -3]; %denominador de G1(z)
6 den2 = [1 9 -8]; %denominador de G2(z)
7 den3 = [2 4]; %denominador de G3(z)
8 G1 = tf(num1,den1,Ts) %función de transferencia de G1(z)
9 G2 = tf(num2,den2,Ts) %función de transferencia de G2(z)
10 G3 = tf(num3,den3,Ts) %función de transferencia de G3(z)
11 Gs = G1*G2*G3 %G1(z)*G2(z)*G3(z) (series es solo para 2 tf)

Manual de prácticas: Dinámica de Sistemas 136


PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

12 Gp = G1+G2+G3 %G1(z)+G2(z)+G3(z) (parallel es solo para 2 tf)

Listado 8.9: Solución al ejercicio 8.5.

1 ceros1 = 0; %ceros de G(s)


2 polos1 = [-1 -2 -3]; %polos de G(s)
3 k1 = 2; %ganancia de G(s)
4 ceros2 = []; %ceros de H(s)
5 polos2 = -1; %polos de H(s)
6 k2 = 1; %ganancia de H(s)
7 G = zpk(ceros1,polos1,k1) %función de transferencia G(s) en cero, polo
8 H = zpk(ceros2,polos2,k2) %función de transferencia H(s) en cero, polo
9 Gs = G*H %función de transferencia en lazo abierto
10 Y_R = feedback(G,H) %función de transferencia en lazo cerrado
11 step(Gs);grid;pause(5); %gráfica de respuesta a un escalón unitario
12 step(Y_R);grid %gráfica de respuesta a un escalón unitrio de Y_R

8.7.3. Problema propuesto

Obtener la función de transferencia del péndulo inverso de la Figura 8.5. La ecua-


ción diferencial que gobierna el movimiento del péndulo, se expresa en (8.30),
d 2 θ (t)
ml 2 = mglθ (t) − 2kh2 θ (t) + T (t) (8.30)
dt 2
donde g = 9.8 m/s2 , k = 400 N/m, l = 1 m, h = 0.5 m, m = 2 kg, θ (t) es el ángulo
de oscilación, y T (t) es el torque, que funge como entrada de perturbación al sis-
tema. Después de obtener la función de transferencia Θ(s)/T (s), pruebe el sistema
proponiendo a T (s) como una entrada impulso unitario, y también como una entrada
escalón unitario. Compare los resultados observados en las gráficas correspondien-
tes.

Manual de prácticas: Dinámica de Sistemas 137


PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

mg

k k
θ
l
h

Figura 8.5: Péndulo inverso con resortes.

8.8. Reporte del alumno

Se sugiere, después de resolver el problema propuesto en la sección 8.7.3 en


un script, entregarlo al instructor. El nombre del archivo debe tener extensión .m. La
discusión de resultados y conclusiones, se debe entregar en un procesador de texto
como el Microsoft Word®, el Libre Office®, u otro similar.

8.8.1. Discusión de resultados

Como ideas de discusión para el problema propuesto, se sugiere la respuesta a


las siguientes preguntas:

En la tabla de pares de la transformada de Laplace, a que función en tiempo


continuo, equivale la función de transferencia obtenida en el problema pro-
puesto, de la sección 8.7.3.

¿Qué diferencia se observa entre la respuesta de la señal de impulso unitario,


y la respuesta de la señal escalón unitario, en el problema propuesto?

Manual de prácticas: Dinámica de Sistemas 138


PRÁCTICA 8. MODELADO DE FUNCIONES DE TRANSFERENCIA EN MATLAB

¿Cómo se comportarı́a el sistema de la sección 8.7.3, ante una señal de en-


trada rampa?

8.8.2. Conclusiones

El alumno debe explicar, en que medida logró adquirir las competencias propues-
tas en esta práctica. Cuales fueron las principales dificultades que enfrentó y como
las solucionó. También puede proponer ideas para mejorar la comprensión de los
temas tratados en la práctica.

Referencias

Dorf, R. C., y Bishop, R. H. (2011). Modern control systems. Pearson.


Fadali, M. S., y Visioli, A. (2013). Digital control engineering analysis and design.
Elsevier Inc.
Golnaraghi, F., y Kuo, B. C. (2010). Automatic control systems. JOHN WILEY &
SONS, INC.
Ogata, K. (1995). Discrete-time control systems (Vol. 8). Prentice-Hall Englewood
Cliffs, NJ.
Ogata, K. (2010). Modern control engineering (Fifth ed.). Prentice Hall.

Manual de prácticas: Dinámica de Sistemas 139


PRÁCTICA 9
MODELADO DE FUNCIONES DE
TRANSFERENCIA EN SIMULINK

9.1. Competencias

El alumno comprende y caracteriza el comportamiento dinámico de los siste-


mas continuos y discretos a partir de su representación mediante funciones de
transferencia.

El alumno modela en tiempo continuo y tiempo discreto, funciones de transfe-


rencia de Sistemas Dinámicos a través de SIMULINK y MATLAB.

9.2. Introducción

En esta práctica se da seguimiento a los temas tratados en la práctica 3. Se cons-


truyen modelos en SIMULINK en su forma de función de transferencia polinomial y
en su forma cero-polo-ganancia; tanto en el tiempo continuo como en el tiempo
discreto. Se leen los modelos diseñados en SIMULINK al entorno de MATLAB con
el propósito de manipular los sistemas y obtener mejores gráficas en MATLAB. El

140
PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

producto de esta práctica, será la implementación de un modelo en SIMULINK, y


programa en MATLAB, que represente el comportamiento de un sistema fı́sico.

9.3. Temas y subtemas

Introducción al análisis de Sistemas Dinámicos lineales. Se representan los


sistemas dinámicos continuos y discretos, por medio de sus funciones de transferen-
cia, haciendo uso para ello de los comandos apropiados de SIMULINK y MATLAB.

Subtemas:

Funciones de transferencia.

Respuesta al impulso, caso continuo y caso discreto.

Simulación de Sistemas.

9.4. Medidas de seguridad e higiene

Como se trata de un software de simulación, las prácticas se deben desarro-


llar en el laboratorio de computo. La seguridad en un laboratorio de computo tiene
que ver con el equipo de computo. Para evitar daño en los computadores, se debe
evitar introducir bebidas al laboratorio. Los lı́quidos derramados sobre el equipo de
computo seguramente lo dañarán.

Si se va a trabajar en equipos, deben sentarse de tal manera que no se obstruyan


los pasillos. Debe tenerse mucho cuidado al insertar una unidad de memoria flash
USB a un computador; asegúrese que se encuentra libre de virus. Se tiene que
evitar las infecciones en los equipos de computo, para evitar que estos fallen.

Manual de prácticas: Dinámica de Sistemas 141


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

9.5. Material y equipo necesario

Es necesario contar con los libros y manuales de consulta que se sugieren en las
referencias bibliográficas de esta práctica (Mathworks, 2015; Herman, 2017; Klee,
2011; Golnaraghi y Kuo, 2010; Chaturvedi, 2009; Arce Rubio y Vianna Raffo, 2009).
Se requiere la versión 2014 o superior de MATLAB y un computador con un proce-
sador Intel®, Core™ i3 ó su equivalente, con una memoria de 2 GB de RAM.

9.6. Metodologı́a

Para esta práctica, se implementan modelos en SIMULINK del tipo función de


transferencia con numerador-denominador polinomial, también del tipo cero-polo-
ganancia, (i.e., raı́ces del numerador y denominador con ganancia). Además, se
implementan modelos en el espacio estado (hasta ahora no vistos en este manual).
Se implementan scripts en MATLAB, que leen las funciones de transferencias desa-
rrolladas en modelos de SIMULINK. En ese mismo sentido, se utilizan bloques (i.e.,
scops) de SIMULINK, que envı́an datos al command window, para graficar con me-
jor presentación, las señales de respuesta de las funciones de transferencia.

9.6.1. Funciones de transferencia en SIMULINK

Como se vio en prácticas anteriores, se inicializan las librerı́as de SIMULINK pul-


sando el icono destinado para el SIMULINK, o introduciendo el comando “simulink”
en el Command Window. Una vez en la librerı́a se muestra el árbol de Toolboxes; se
escoge la opción continuos y aparecerán todos los bloques de funciones de trans-
ferencia.

Manual de prácticas: Dinámica de Sistemas 142


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

En la ventana de librerı́as de SIMULINK, se da clic en el icono de nuevo modelo.


Se abrirá una ventana en blanco donde es posible arrastrar y pegar las funciones
de transferencia de la librerı́a. Para ilustrar como debe implementarse un modelo,
se hará uso de un ejemplo.

Ejemplo 9.1. Desarrolle dos modelo en SIMULINK, uno que exprese la fun-
ción de transferencia (9.1), en forma polinomial numerador-denominador, y otro que
exprese la función de transferencia en forma de raı́ces, cero-polo-ganancia.

2s2 + 12s + 10 2(s + 1)(s + 5)


G(s) = 3 2
= (9.1)
s + 9s + 26s + 24 (s + 2)(s + 3)(s + 4)

2s 2+12s+10 2(s+1)(s+5)
s3+9s2+26s+24 (s+2)(s+3)(s+4)
Step Función de transferencia Scope Step1 Función de transferencia Scope1
numerador-denominador raíces de
polinomial cero-polo-ganancia

Figura 9.1: Modelos para las funciones de transferencia del ejemplo 9.1.

Solución en SIMULINK: Se arrastran y pegan las funciones de transferencia


tal como se observa en la Figura 9.1, que incluyen los bloques de entrada y salida.
Luego se da doble clic sobre las funciones de transferencia y se abrirán las ventanas
de parámetros como se observa en la Figura 9.2. En estas ventanas se introducen
los parámetros tanto para la función de transferencia polinomial (a la izquierda),
como la función de transferencia cero-polo-ganancia (a la derecha).

9.6.2. Funciones de transferencias discretas en SIMULINK

Partiendo de la librerı́a de SIMULINK, se escoge en el árbol de la librerı́a la


opción discrete, y aparecerán todos los bloques de funciones de transferencia para

Manual de prácticas: Dinámica de Sistemas 143


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

Figura 9.2: Parámetros de las funciones de transferencia del ejemplo 9.1.

esta categorı́a. Todos los bloque están en función de la variable compleja z.

En los modelos discretos, se pueden usar bloques que estén en función de z,


o una combinación de bloques discretos, con bloques que estén en función de la
transformada de LaPlace. Para este último caso, se usa el bloque discreto llamado
retenedor de orden cero, con bloques en función de s. Para ilustrar el diseño de
estos modelos, se proponen los siguientes dos ejemplos.

Ejemplo 9.2. Desarrolle dos modelo discretos en SIMULINK, uno que exprese la
función de transferencia (9.2), en forma polinomial numerador-denominador, y otro
que exprese la función de transferencia en forma de raı́ces, cero-polo-ganancia.
Considere el periodo de muestreo como Ts = 0.1 s.
0.2465z − 0.2230 0.2465(z − 0.9047)
G(z) = = (9.2)
z2 − 1.5595z + 0.6065 (z − 0.8186)(z − 0.7409)

Solución en SIMULINK: Se arrastran y pegan las funciones de transferencia


tal como se observa en la Figura 9.4, que incluyen los bloques de entrada y sali-
da. Luego se da doble clic sobre el bloque de escalón unitario y las funciones de

Manual de prácticas: Dinámica de Sistemas 144


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

transferencia; se abrirán las ventanas de parámetros, como se observa en la Figura


9.3.

Figura 9.3: Parámetros de las funciones de transferencia del ejemplo 9.2.

En la Figura 9.3 (izquierda), se abordan los parámetros de la entrada escalón


unitario, debido a que en el caso discreto, es importante introducir el tiempo del pe-
riodo de muestreo. En la Figura del centro, se observan los parámetros de la función
de transferencia polinomial discreta. Cabe resaltar, que en esta ventana también se
incluye el tiempo de muestreo; si se escribe el número −1, significa que el tiempo
de muestreo se heredará de un bloque antecesor. De otra manera, se debe escri-
bir el tiempo de muestreo, que en este caso es 0.1. En la Figura de la derecha,
se observan los parámetros de la función de transferencia cero-polo-ganancia dis-
creta. En esta ventana, también se incluye el tiempo de muestreo, con las mismas
propiedades que la ventana del centro.

0.2465z-0.2230 0.2465(z-0.9047)
z2-1.5595z+0.6065 (z-0.8186)(z-0.7409)
Step Función de transferencia Scope Step1 .
Función de transferencia Scope1
polinomial discreta cero-polo-ganancia
discreta

Figura 9.4: Modelos para las funciones de transferencia del ejemplo 9.2.

Manual de prácticas: Dinámica de Sistemas 145


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

Ejemplo 9.3. Desarrolle dos modelo discretos en SIMULINK, uno que exprese la
función de transferencia (9.3), en forma polinomial numerador-denominador, y otro
que exprese la función de transferencia en forma de raı́ces, cero-polo-ganancia.
Debido a que las dos funciones se encuentran en el dominio de LaPlace, use el
método directo de diseño de transformación a z. Considere el periodo de muestreo
como Ts = 0.1 s.
3s + 3 3(s + 1)
G(s) = = (9.3)
s2 + 5s + 6 (s + 2)(s + 3)

Solución en SIMULINK: Se arrastran y pegan las funciones de transferencia tal


como se observa en la Figura 9.6, que incluyen los bloques de entrada y salida,
además del bloque retenedor de orden cero (i.e., zho). El único bloque nuevo que
se tiene es bloque retenedor de orden cero, por lo que en la Figura 9.5, se muestran
sólo el parámetro de este bloque. El único parámetro de este bloque, es el tiempo
de muestreo, que también se puede heredar de un bloque antecesor poniendo el
número −1.

Figura 9.5: Tiempo de muestreo del retenedor de orden cero del ejemplo 9.3.

En este modelo, el retenedor de orden cero, es el bloque que discretiza la función


de transferencia al hacer Ts = 0.1 s. Al agregar el retenedor de orden cero, se trans-
forma a z, por el método directo de diseño. En realidad la función de transferencia
(9.3) de este ejemplo, es equivalente a la función de transferencia (9.2) del ejemplo
9.2, pero en función de z. De hecho, que si se ejecutan los modelos de los ejemplos

Manual de prácticas: Dinámica de Sistemas 146


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

de esta sección, las señales de salida vistas en los osciloscopios (ver Figura 9.8),
serán iguales en todos los casos.

3s+3 3(s+1)
s 2+5s+6 (s+2)(s+3)
Step Retenedor Función de Scope Step1 Retenedor Función de Scope1
de orden transferencia de orden transferencia
cero 1 polinomial cero 2 cero-polo-ganancia

Figura 9.6: Modelos para las funciones de transferencia del ejemplo 9.3.

9.6.3. Funciones en MATLAB a partir de SIMULINK

Es posible leer las funciones de pertenencia de un modelo construido en SIMU-


LINK por medio de comandos diseñados para este propósito. Los comandos princi-
pales son linmod para modelos en función de LaPlace y dlinmod para modelos en
función de la transformada z. Estos comandos descritos en su forma más simple se
describen a continuación.

>>[A, B, C, D] = linmod(’SYS’);

Donde ’SYS’ se refiere al nombre del modelo en SIMULINK y el vector [A, B, C,


D] son los parámetros de salida, donde las matrices A, B, C, D, definen el espacio
estado continuo de un Sistema Dinámico. Para el caso discreto se tiene el siguiente
comando.

>>[A, B, C, D] = dlinmod(’SYS’,Ts);

Donde ’SYS’ se refiere al nombre del modelo en SIMULINK, Ts es el tiempo del


periodo de muestreo, y el vector [A, B, C, D] son los parámetros de salida, donde las
matrices A, B, C, D, definen el espacio estado discreto de un Sistema Dinámico.

Actualmente, el modelado en el espacio estado de los Sistemas Dinámicos es


muy importante. Sin embargo, con el fin de incluir sólo los temas que pertenecen a

Manual de prácticas: Dinámica de Sistemas 147


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

la materia de Dinámica de Sistemas, en su revisión actual, no se incluye su imple-


mentación analı́tica en este manual. Se desarrollará el espacio estado sólo a través
de comandos de MATLAB. Si el lector se interesa por el estudio analı́tico del espacio
estado, se recomienda consultar a (Golnaraghi y Kuo, 2010) para el caso continuo,
y (Fadali y Visioli, 2013) para el caso discreto.

Para demostrar la lectura de funciones de transferencia, a partir de un modelo


de SIMULINK por el uso del comando dlinmod, se desarrolla el ejemplo 9.4.

Ejemplo 9.4. Por medio del comando dlinmod, lea el modelo discreto imple-
mentado en SIMULINK, que se muestra en la Figura 9.7. Obtenga la función de
transferencia polinomial en el dominio de z, en el entorno de MATLAB. Considere un
periodo de muestro Ts = 0.1 s.

3s+3
s 2+5s+6
Step ZHO Función de Scope
transferencia
polinomial 1
1
Out1
In1

Figura 9.7: Modelo de la función de transferencia del ejemplo 9.4.

Solución en SIMULINK: se puede observar, que el modelo de la Figura 9.7 es


igual a uno de los modelos de la Figura 9.6, excepto por los bloques “In1” y “Out1”,
que se agregan en la Figura del ejemplo actual. Note se, que para el bloque de
entrada In1, se tuvo que agregar un sumador, mientras que para el de salida Out1,
no es necesario agregar ningún bloque, si no que se conecta derivando una flecha
a partir de otra.

Los bloques In1 y Out1, son necesarios para que el comando dlinmod, pueda leer
el modelo de SIMULINK en el entorno de MATLAB. En el Listado 9.1 se muestra el
script que soluciona el ejemplo 9.4.

Manual de prácticas: Dinámica de Sistemas 148


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

Las lı́neas a destacar en este Listado son: lı́nea 2, se encuentra el comando


dlinmod, donde el nombre del modelo debe estar entre apostrofes (i.e., ‘ejemplo94’),
el último parámetro es Ts. Lı́nea 3, el comando ss2tf convierte un Sistema Dinámico
del espacio estado a función de transferencia; donde los parámetros de entrada son
las matrices de estado A, B, C, D, y los parámetros de salida son: el numerador y
denominados en forma polinomial. Lı́nea 7, el comando ss2zp es similar al comando
ss2tf, solamente que en este caso se expresa la función de transferencia en cero-
polo-ganancia.

Listado 9.1: Solución en MATLAB del ejemplo 9.4.

1 Ts = 0.1; %Periodo de muestreo


2 [A,B,C,D] = dlinmod(’ejemplo94’,Ts) %comando de lectura de modelo
3 [num,den] = ss2tf(A,B,C,D) %conversión de espacio estado a función
4 Sis1 = tf(num,den,Ts) %función de transferencia polinomial discreta
5 [Z,P,K] = tf2zp(num,den) %conversión de función de transf. a cero-polo
6 Sis2 = zpk(Z,P,K,Ts) %función de transferencia cero-polo discreta
7 [z,p,k] = ss2zp(A,B,C,D) %conversión de espacio estado a cero-polo
8 Sis3 = zpk(z,p,k,Ts) %función de transferencia cero-polo discreta

9.6.4. Gráficas de SIMULINK en MATLAB

En la Figura 9.8, se muestra la respuesta a la salida del modelo del ejemplo 9.4
ante una entrada escalón unitario. En el aspecto estético, por defecto SIMULINK
presenta la gráfica en fondo negro (tal vez, en alusión a un osciloscopio real). Si
se desea, todas las propiedades de esta gráfica pueden ser modificadas; para ello,
se da clic en el icono del engrane, se abre una ventana donde se selecciona style
(i.e., estilo). En la ventana de estilo, se modifican los colores de cualquier parte de
la gráfica.

Manual de prácticas: Dinámica de Sistemas 149


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

Sin embargo, podrı́a darse la necesidad de imprimir alguna gráfica de SIMULINK


en el entorno de MATLAB. En estas circunstancias, existe un bloque en SIMULINK
que resuelve el problema. El bloque se llama To Workspace (i.e., al espacio de
trabajo) y se encuentra en la rama de bloques de Sinks en la librerı́a de SIMULINK.
Para mostrar el uso de este bloque, se implementa el ejemplo 9.5.

Figura 9.8: Salida del osciloscopio del ejemplo 9.4.

Ejemplo 9.5. Grafique la respuesta de salida a una entrada escalón unitario del
modelo de SIMULINK mostrado en la Figura 9.9. Desarrolle la gráfica en un script
de MATLAB. Considere el periodo de muestreo como Ts = 0.1 s.

3s+3
s 2+5s+6
Step ZHO Función de Scope
transferencia
polinomial simout

Al espacio
de trabajo

Figura 9.9: Modelo de la función de transferencia del ejemplo 9.5.

Solución en SIMULINK: en este caso no son necesarios los comandos In1 y


Out1. Como se observa en la Figura 9.9, se tiene que agregar el bloque To Works-
pace. Para que este bloque resulte útil primero debe ser configurados sus paráme-
tros. Para ello, se da doble clic izquierdo sobre el bloque, y se abrirá la ventana de

Manual de prácticas: Dinámica de Sistemas 150


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

parámetros que se muestra en la Figura 9.10. En esta ventana, se puede cambiar el


nombre de la variable del bloque, que en este caso se llama “simout”. El parámetro
más importante se muestra encerrado en un elipse rojo; se debe escoger “Structure
With Time” (i.e., estructura con tiempo). Se recomienda dejar el Sample Time con
−1, para heredar el periodo de muestreo. Finalmente se pulsa el botón Ok.

Figura 9.10: Parámetros del bloque al espacio de trabajo del ejemplo 9.5.

Una vez definidos los parámetros del bloque “al espacio de trabajo”, se pude
desarrolla el script que implemente la gráfica en MATLAB. En el Listado 9.2, se
muestra el script que grafica en MATLAB la respuesta de salida del modelo de
la Figura 9.9. La lı́neas a destacar son: lı́nea 1, muestra la variable tiempo de la
estructura simout del bloque “al espacio de trabajo” del modelo de SIMULINK. El
espacio de trabajo es un entorno al que un programa de MATLAB puede acceder
directamente. Lı́nea 2, muestra los valores de respuesta de la salida del modelo.
Se almacenan en la estructura “simout.signals.values” donde signals y values son
variables por defecto que siempre se deben de invocar.

Las lı́neas restantes son dedicadas a la gráfica, donde se introducen parámetros


como ‘MarkerSize’, ‘FontSize’, y ‘Color’, que personalizan de forma especial a la

Manual de prácticas: Dinámica de Sistemas 151


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

gráfica. Estas caracterı́sticas pueden mejorar una gráfica, lo que en el entorno de


SIMULINK resultarı́a más complicado lograr.

Listado 9.2: Solución en MATLAB del ejemplo 9.5.

1 t = simout.time; %variable tiempo en la estructura simout


2 y = simout.signals.values; %valores de salida en la estructura simout
3 plot(t,y,’p-k’,’MarkerSize’,10) %gráfica de la respuesta de salida
4 grid; %retı́cula de la gráfica y personalización de los tı́tulos
5 title(’Respuesta al escalón del modelo’,’FontSize’,14,’Color’,’r’);
6 xlabel(’Tiempo "t" en segundos’,’Color’,’b’);
7 ylabel(’Amplitud de la salida y(t)’,’Color’,’g’);

En la Figura 9.11 se muestra la gráfica generada por el script del Listado 9.2.
Esta gráfica es la misma que la generada por el modelo de SIMULINK de este
ejemplo, en la Figura 9.8. Solamente que la personalización la hace ver diferente.
Otra ventaja que tiene graficar en el entorno de MATLAB, es que se puede copiar al
portapapeles a partir de la ventana de la gráfica, para luego pegar la figura en un
procesador de texto, con excelente calidad en los gráficos.

Respuesta al escalón del modelo


0.7

0.6

0.5
Amplitud de la salida y(t)

0.4

0.3

0.2

0.1

0
0 2 4 6 8 10
Tiempo "t" en segundos

Figura 9.11: Gráfica del osciloscopio del modelo, en MATLAB.

Manual de prácticas: Dinámica de Sistemas 152


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

9.6.5. Modelo fı́sico en SIMULINK

bv u
M

Figura 9.12: Automóvil y su diagrama de cuerpo libre.

Se tiene la ecuación diferencial (9.4) que modela la posición del vehı́culo mos-
trado en la Figura 9.12, (Fadali y Visioli, 2013).

d 2 y(t) dy(t)
M 2
+B = u(t) (9.4)
dt dt

Para valores donde: la masa es M = 1500 Kg, la fricción viscosa del aire es
B = 1 N.m/(rads/s), y Ts = 1 s; la función de transferencia en el domino de z, resulta
según se muestra en el modelo de SIMULINK de la Figura 9.13.

Obtenga la función de transferencia en el entorno de MATLAB. También, una vez


en el entorno de MATLAB, convierta la función de transferencia a su equivalente en
el tiempo continuo, y pruebe su respuesta al impulso unitario.

0.1
(z-1)(z-0.9993)
Step Función de Scope
transferencia
cero-polo
1 discreta 1
In1 Out1

Figura 9.13: Modelo discreto en SIMULINK del automóvil.

Manual de prácticas: Dinámica de Sistemas 153


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

Solución y simulación en MATLAB: en el listado 9.3, se muestra la solución al


modelado y simulación en MATLAB, del modelo del sistema fı́sico de un automóvil,
mostrado en la Figura 9.13. Entre la lı́neas a destacar, esta la lı́nea 5 que introduce
el comando d2c. Este comando, convierte un sistema discreto a un sistema conti-
nuo. Los parámetros de entrada son: el nombre del sistema (i.e., Sis1) y el método
muestreo y retención; que en este caso es ’zho’ (i.e., retenedor de orden cero).
Las lı́neas restantes, se refieren a la personalización de la gráfica de respuesta al
impulso.

Listado 9.3: Solución en MATLAB del modelo fı́sico de SIMULINK.

1 Ts = 1; %Periodo de muestreo
2 [A,B,C,D] = dlinmod(’ModeloCarro’,Ts) %comando de lectura de modelo
3 [z,p,k] = ss2zp(A,B,C,D) %conversión de espacio estado a cero-polo
4 Sis1 = zpk(z,p,k,Ts) %función de transferencia cero-polo discreta
5 Sis2 = d2c(Sis1,’zho’) %conversión a tiempo continuo
6 impulse(Sis2,6000,’or’);grid %gráfica de la respuesta al impulso
7 title(’Respuesta al impulso’,’Color’,’r’); %personalización de
8 xlabel(’Tiempo’);ylabel(’Amplitud’); %gráfica

La solución del Listado 9.3 de la conversión de la función de transferencia del


dominio de tiempo discreto, al dominio del tiempo continuo, se muestra en (9.5),

 
−1 0.1 −0.050023(s − 2)
G(s) = Z = (9.5)
(z − 1)(z − 0.9993) s(s + 0.0007002)

por el signo negativo de la ganancia en el tiempo continuo, podrı́a pensarse que


el sistema es inestable, y si lo es, solo que para una entrada impulso unitario, el
sistema sigue siendo estable.

En la Figura 9.14, se muestra en la gráfica de la izquierda la respuesta al impulso


del modelo posición de un automóvil generado por el Listado 9.3. La gráfica de la

Manual de prácticas: Dinámica de Sistemas 154


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

derecha es la misma gráfica, pero generada por SIMULINK. Se observa que tanto
la de la izquierda, que es generada en el tiempo continuo, como la de la derecha,
que es generada en el tiempo discreto, la respuesta es la misma.

Figura 9.14: Respuesta al impulso en el entorno de MATLAB vs. SIMULINK.

De las gráficas se explica, que en respuesta al impulso unitario el automóvil se


desplazarı́a 140 m, en un tiempo de 5000 s. No se debe olvidar que el modelado por
ecuaciones diferenciales, como es este caso, es una aproximación simplificada y en
ocasiones, para ciertos lı́mites de prueba, sus resultados distan de la realidad.

9.7. Sugerencias didácticas

Con el propósito de estudiar los temas vistos en esta práctica, se proponen al-
gunos ejercicios para ser desarrollados en SIMULINK y MATLAB.

Manual de prácticas: Dinámica de Sistemas 155


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

9.7.1. Ejercicios

9.1 Desarrolle un modelo en SIMULINK que exprese la función de transferencia


9.6, en su forma cero-polo-ganancia.
20(s − 1)
G(s) = (9.6)
s(s + 1)(s + 2)

9.2 Desarrolle un modelo en SIMULINK que exprese la función de transferencia


(9.7), en su forma polinomial con un tiempo de muestreo Ts = 0.01 s.
z2 − 2z + 5
G(z) = (9.7)
z3 + 3z − 7

9.3 Desarrolle un modelo en SIMULINK que exprese la función de transferencia


(9.1) del ejemplo 9.1, en su forma cero-polo-ganancia. Debido a que la función
se encuentra en el dominio de LaPlace, use el método directo de diseño de
transformación a z. Considere el periodo de muestreo como Ts = 0.1 s.

9.4 Por medio del comando linmod, lea el modelo continuo implementado en SI-
MULINK, que se muestra en la Figura 9.1, del ejemplo 9.1. Obtenga la fun-
ción de transferencia polinomial en el dominio de LaPlace, en el entorno de
MATLAB.

9.5 Grafique la respuesta de salida a una entrada escalón unitario del modelo de
SIMULINK mostrado en la Figura 9.1, del ejemplo 9.1.

9.7.2. Solución a ejercicios

En esta sección se muestra la solución a los ejercicios de la sección anterior.


De la Figura 9.15, a la Figura 9.19, se resuelven los ejercicios del 9.1 - 9.5. En los
Listados 9.4, y 9.5, se complementan las respuestas a los ejercicios 9.4, y 9.5.

Manual de prácticas: Dinámica de Sistemas 156


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

20(s-1)
s(s+1)(s+2)
Step Función de Scope
transferencia
cero-polo

Figura 9.15: Modelo en SIMULINK que da respuesta al ejercicio 9.1.

z2-2z+5
z3+3z-7
Step Función de Scope
transferencia
discreta

Figura 9.16: Modelo en SIMULINK que da respuesta al ejercicio 9.2.

2(s+1)(s+5)
(s+2)(s+3)(s+4)
Step1 Retenedor
Función de transferencia Scope1
de orden
cero cero-polo-ganancia

Figura 9.17: Modelo en SIMULINK que da respuesta al ejercicio 9.3.

Listado 9.4: Solución al ejercicio 9.4.

1 [A,B,C,D] = linmod(’ejercicio94’); %comando que lee el modelo


2 [num,den] = ss2tf(A,B,C,D); %conversión del espacio estado a función
3 sis = tf(num,den) %expresión de sistema en función de transferencia

Listado 9.5: Solución al ejercicio 9.5.

1 t = Variable1.time; %variable tiempo en la estructura Variable1


2 y = Variable1.signals.values; %valores de y(t) en la Variable1
3 plot(t,y,’s-k’) %gráfica de la respuesta de salida
4 grid; %retı́cula de la gráfica y personalización de tı́tulo
5 title(’Respuesta al escalón del modelo’,’FontSize’,15,’Color’,’c’);

Manual de prácticas: Dinámica de Sistemas 157


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

2s 2+12s+10
s +9s2+26s+24
3

Step Función de transferencia Scope


numerador-denominador
1 polinomial 1
In1 Out1

Figura 9.18: Modelo en SIMULINK que da respuesta al ejercicio 9.4.

2s 2+12s+10
s3+9s2+26s+24
Step Función de transferencia Scope
numerador-denominador
polinomial Variable1

To Workspace

Figura 9.19: Modelo en SIMULINK que da respuesta al ejercicio 9.5.

9.7.3. Problema propuesto

Para el sistema masa-resorte-polea mostrado en la Figura 9.20, el momento de


inercia de la polea con respecto al eje de rotación es J = 0.01 kg − m2 , y el radio
es R = 0.1 m. Asumiendo que el sistema esta inicialmente en equilibrio, la fuerza
grabitacional de la masa m = 10 kg, causa una deflexión estática del resorte tal
que kδ = mg. Se asume que el desplazamiento y de la masa m se mide a partir
de la posición de equilibrio. La ecuación diferencial que rige el comportamiento del
sistema esta dada por (9.8),
d 2 θ (t) kR2
+ θ (t) = u(t) (9.8)
dt 2 (J + mR2 )
donde la fuerza u(t) externa aplicada a la masa m, es la entrada, y el desplazamiento
y(t), es la salida del sistema. Si considera a y(t) = Rθ (t), entonces la función de
transferencia Y (s)/U(s) estará dada por (9.9).

Y (s) 0.1
= 2 (9.9)
U(s) s + 1.82

Manual de prácticas: Dinámica de Sistemas 158


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

Construya un modelo en SIMULINK con la función de transferencia (9.9), use el


método directo de diseño de transformación a z agregando un retenedor de orden
cero. Considere el tiempo de muestreo como T = 0.1 s. Después de esto, lea el
modelo en MATLAB por medio del comando dlinmod. En el mismo script, pruebe la
respuesta al impulso unitario del sistema.

θ
R
u δ

m k

y mg

Figura 9.20: Sistema masa-resorte-polea del problema propuesto.

9.8. Reporte del alumno

Se sugiere, después de resolver el problema propuesto en la sección 9.7.3 en un


modelo de SIMULINK (con extensión .slx), y en un script (con extensión .m), entre-
garlos al instructor. La discusión de resultados y conclusiones, se debe entregar en
un procesador de texto como el Microsoft Word®, el Libre Office®, u otro similar.

Manual de prácticas: Dinámica de Sistemas 159


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

9.8.1. Discusión de resultados

Como ideas de discusión para el problema propuesto, se sugiere la respuesta a


las siguientes preguntas:

¿Qué tipo de señal se genera como respuesta al impulso unitario en el siste-


ma?

¿Que diferencia existe entre la gráfica de la respuesta al impulso unitario dis-


creta y la continua?

¿Que sucede si se varia el tiempo del periodo de muestreo Ts ?

9.8.2. Conclusiones

El alumno debe explicar, en que medida logró adquirir las competencias propues-
tas en esta práctica. Cuales fueron las principales dificultades que enfrentó y como
las solucionó. También puede proponer ideas para mejorar la comprensión de los
temas tratados en la práctica.

Referencias

Arce Rubio, A., y Vianna Raffo, G. (2009, Marzo). Manual de simulink pa-
ra la asignatura de teorı́a de sistemas. ESCUELA SUPERIOR DE INGE-
NIEROS, DEPARTAMENTO DE INGENIERÍA DE SISTEMAS Y AUTOMÁTI-
CA, UNIVERSIDAD DE SEVILLA. Descargado de http://perso.ya.com/
ecoterso/ManualSimulink.pdf
Chaturvedi, D. K. (2009). Modeling and simulation of systems using matlab and
simulink. CRC Press.

Manual de prácticas: Dinámica de Sistemas 160


PRÁCTICA 9. MODELADO DE FUNCIONES DE TRANSFERENCIA EN SIMULINK

Fadali, M. S., y Visioli, A. (2013). Digital control engineering analysis and design.
Elsevier Inc.
Golnaraghi, F., y Kuo, B. C. (2010). Automatic control systems. JOHN WILEY &
SONS, INC.
Herman, R. (2017, June). Solving differential equations using simulink. Published
in URL. Descargado de people.uncw.edu/hermanr/mat361/simulink since
Summer 2015.
Klee, H. (2011). Simulation of dynamic systems with matlab and simulink. CRC
Press.
Mathworks, I. S. (2015). Simulink: User’s guide. The MathWorks, Inc.

Manual de prácticas: Dinámica de Sistemas 161


PRÁCTICA 10
REPRESENTACI ÓN DE DIAGRAMAS DE FLUJO A
TRAV ÉS SIMULINK

10.1. Competencias

El alumno comprende y caracteriza el comportamiento dinámico de los siste-


mas continuos y discretos a partir de su representación por medio de diagra-
mas de bloques de SIMULINK.

El alumno modela en tiempo continuo y tiempo discreto, diagramas de flujo de


señal a través de SIMULINK.

10.2. Introducción

En esta práctica, se construyen a partir de bloques modelos en SIMULINK. Se


hace uso de la técnica llamada álgebra de bloques. Se hace uso de la metodo-
logı́a de diagramas de flujo de señal (i.e., fórmula de Mason), que se representan
en diagramas de bloques de SIMULINK. El producto de esta práctica, será la imple-
mentación de un sistema fı́sico real, un circuito con amplificador operacional que se

162
PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

le aplica una señal de prueba escalón unitario. Este circuito se modela en un diagra-
ma a bloques en SIMULINK y un programa en MATLAB. Se compara la respuesta
de simulación con la respuesta real del circuito.

10.3. Temas y subtemas

Introducción al análisis de Sistemas Dinámicos lineales. Se representan los


sistemas dinámicos continuos y discretos, por medio de diagramas de bloques que
se modelan en SIMULINK.

Subtemas:

Diagrama de bloques.

Diagramas de flujo de señal.

Simulación de Sistemas.

10.4. Medidas de seguridad e higiene

Debe contarse con equipo extintor de fuegos. Debe hacerse uso de las herra-
mientas apropiadas para evitar heridas en las manos. De ser posible usar batas de
laboratorio. Verificar las polaridades en las conexiones de las fuentes de voltaje y
osciloscopios antes de encenderlas. Si se va a trabajar en equipos, deben sentarse
de tal manera que no se obstruyan los pasillos.

Como se hará uso de un software de simulación, esa parte de la prácticas se


deben desarrollar en el laboratorio de computo. La seguridad en un laboratorio de

Manual de prácticas: Dinámica de Sistemas 163


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

computo tiene que ver con el equipo de computo. Para evitar daño en los compu-
tadores, se debe evitar introducir bebidas al laboratorio. Los lı́quidos derramados
sobre el equipo de computo seguramente lo dañarán.

10.5. Material y equipo necesario

Material. Se necesita una tablilla de prueba (i.e., protoboard), tres resistencias


de 100 KΩ de 1/4 de Watt, dos capacitores electrolı́ticos de 10 µF de 12 V ,
un switch tipo un polo un tiro, un amplificador operacional 741 (de cualquier
marca), alambre de cobre aislado de calibre pequeño para conexiones en la
tablilla, puntas de prueba y conexión para el osciloscopio y las fuentes.

Equipo. Una fuente de voltaje dual, una fuente de voltaje sencilla, un oscilos-
copio.

Equipo de computo. Se requiere la versión 2014 o superior de MATLAB y


un computador con un procesador Intel®, Core™ i3 ó su equivalente, con una
memoria de 2 GB de RAM.

Material bibliográfico. Es necesario contar con los libros y manuales de con-


sulta que se sugieren en la bibliografı́a de esta práctica (Mathworks, 2015;
Herman, 2017; Golnaraghi y Kuo, 2010; Chaturvedi, 2009; Arce Rubio y Vian-
na Raffo, 2009).

10.6. Metodologı́a

En esta práctica, se construyen a partir de bloques modelos en SIMULINK. Se


hace uso de la metodologı́a del álgebra de bloques. También se hace uso de las

Manual de prácticas: Dinámica de Sistemas 164


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

técnicas de diagramas de flujo de señal (i.e., fórmula de Mason), que se representan


en modelos de SIMULINK.

10.6.1. Álgebra de bloques

La función de transferencia en lazo cerrado, se obtiene a través del álgebra de


bloques. En la Figura 10.1, se observan las variables necesarias para obtener la
función de transferencia por medio del álgebra de bloques.

E(s)
R(s) + G(s) Y(s)

B(s)
H(s)

Figura 10.1: Diagrama a bloques de un sistema en lazo cerrado.

Para obtener la función de transferencia, la salida Y (s) se relaciona con la entrada


R(s), según las expresiones en (10.1),

Y (s) = G(s)E(s)
(10.1)
E(s) = R(s) − B(s) = R(s) − H(s)Y (s)

sustituyendo E(s) en la primera ecuación de (10.1), se obtienen las expresiones


(10.2),

Y (s) = G(s) [R(s) − H(s)Y (s)]

Y (s) = G(s)R(s) − G(s)H(s)Y (s)


(10.2)
Y (s) + G(s)H(s)Y (s) = G(s)R(s)

Y (s) [1 + G(s)H(s)] = G(s)R(s)

Manual de prácticas: Dinámica de Sistemas 165


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

de la última ecuación de (10.2), se obtiene la función de transferencia en lazo cerra-


do (10.3).
Y (s) G(s)
= (10.3)
R(s) 1 + G(s)H(s)

Siguiendo las reglas algebraicas, se puede obtener cualquier función de trans-


ferencia de bloques. En la Tabla 10.1, se muestran algunas reglas algebraicas para
la simplificación de diagramas de bloques. “Un diagrama de bloques complicado se
puede simplificar re-ordenando los diagramas de bloques. Los bloques se pueden
conectar en serie, solo si la salida de un bloque no se ve afectada por el bloque
siguiente. Si hay algún efecto de carga entre los componentes, estos componentes
se deben combinar en un solo bloque” (Ogata, 2004). Para demostrar como se usan
las reglar de la Tabla 10.1, se resolverá el siguiente ejemplo.

Ejemplo 10.1. Simplifique el diagrama a bloques mostrado en la Figura 10.2.

Solución analı́tica al ejemplo 10.1. Primeramente se re-ordena añadiendo un


sumador al diagrama tal que resulte el diagrama de la Figura 10.3. En esta Figura,
se puede observar en el recuadro de lı́nea punteada, el sumador que se añadió.
Este recuadro, se corresponde a los bloques originales de la regla No. 5, que es la
que se aplicará entre los puntos A y B.

1 1
U(s)
+

+ Y(s)
+

– s s

Figura 10.2: Diagrama a bloques a simplificar en el ejemplo 10.1.

Manual de prácticas: Dinámica de Sistemas 166


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

Tabla 10.1: Reglas del álgebra de diagramas de bloques.

No. Diagrama de bloques original Diagrama de bloques equivalente

1
B
AG AG-B A−
A G +

A +
G
G AG-B

B
G
B 1
B
G

2
AG AG
A G A G

AG AG
G

3
AG AG
A G A G

A 1 A
AG G

4
A 1 B
A + G1 B + G2 G1
– G2 –

G2

5
A G1 B G1
+
– A B
1+G1 G2
G2

Manual de prácticas: Dinámica de Sistemas 167


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

Regla No. 5
2
G1
A 1 B 1
U(s)

+
+ + Y(s)

+
– – s s

2
G2

Figura 10.3: Aplicación de la regla 5 en el ejemplo 10.1.

En la ecuación (10.4) se aplica la regla No. 5 de la Tabla 10.1 para el diagrama


de la Figura 10.3. Esta nueva función de transferencia, será el bloque equivalente
de la regla No. 5, que simplifica el diagrama de bloques, cuyo resultado se muestra
en la Figura 10.4.
1
B G1 s 1
= = 1 = (10.4)
A 1 + G1 G2 1+ s ∗2 s+2
También en la Figura 10.4, se muestran encerrados en un recuadro con lı́nea pun-

Regla No. 3 A
2

1 A A 1 AG
U(s)
+

+ Y(s)
+

– s+2 s
G

Figura 10.4: Aplicación de la regla No. 3 en el ejemplo 10.1.

teada, los bloques originales a la regla No. 3 de la Tabla 10.1. En la Figura 10.5, se
muestra el resultado de sustituir los bloques equivalentes de la regla No. 3. También
encerrado en un recuadro con lı́nea punteada, se muestra de nuevo el bloque origi-
nal de la regla No. 5 que se aplicará de nuevo entre los puntos A0 y B0 . En la función
de transferencia (10.5), aparece las operaciones de la regla No. 5 que se aplican al
diagrama de la Figura 10.5. Esta simplificación aparece en la Figura 10.6.
1
B0 G1 s(s+2) 1
0
= = 1 = 2 (10.5)
A 1 + G1 G2 1 + s(s+2) ∗ 1 s + 2s + 1

Manual de prácticas: Dinámica de Sistemas 168


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

1
G
AG A
Regla No. 5 s 2

1 A 1 AG
U(s)

+
+ Y(s)

+
A’ – s+2 s B’
G

Figura 10.5: Bloque equivalente de la regla No. 3 en el ejemplo 10.1.

La Figura 10.6, muestra la simplificación preliminar del ejemplo 10.1. Se puede ob-
servar, que las únicas operaciones pendientes son la multiplicación y la suma, para
terminar la simplificación. En la expresión (10.6), se muestra las operaciones a rea-

2s

1
U(s) Y(s)
+
+
2
s +2 s+1

Figura 10.6: Simplificación preliminar del diagrama de bloques del ejemplo 10.1.

lizar para concluir la simplificación algebraica de bloques.


 
1 2s
Y (s) = + U(s) (10.6)
s2 + 2s + 1 s2 + 2s + 1
Finalmente, la función de transferencia resultante del ejemplo 10.1, se observa en
la expresión (10.7).
Y (s) 2s + 1
= 2 (10.7)
U(s) s + 2s + 1
En la Figura 10.7, se muestra la simplificación final del diagrama a bloques propues-
to en el ejemplo 10.1.

2 s+1
U(s) 2 Y(s)
s +2 s+1

Figura 10.7: Simplificación final del diagrama de bloques del ejemplo 10.1.

Manual de prácticas: Dinámica de Sistemas 169


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

10.6.2. Álgebra de bloques en SIMULINK

Como se vio en la práctica anterior, es posible leer un modelo de SIMULINK en


MATLAB. Al hacer esto, los algoritmos de MATLAB pueden simplificar el diagrama a
bloques del modelo de SIMULINK, e interpretar la función de transferencia equiva-
lente. Para ilustrar esto, se implementa el ejemplo .

Ejemplo 10.2. Desarrollar en SIMULINK el modelo del ejemplo 10.1 (ver Figu-
ra 10.2), e interpretarlo en MATLAB de modo que se obtenga la simplificación del
diagrama a bloques; i.e., la función de transferencia equivalente.

Solución en SIMULINK. En la Figura 10.8, se muestra el modelo a simplificar


que es equivalente al diagrama a bloques mostrado en la Figura 10.2. Note se que
se han incluido los bloques “In1” y “out1”, necesarios para que el modelo pueda ser
leı́do por comandos de MATLAB.

Ganancia2

1 1
Step s s
Integrador1 Integrador2 Scope

1 1
2
In1 Out1
Ganancia1

Figura 10.8: Modelo en SIMULINK del ejemplo 10.2.

En el Listado 10.1, se muestra el script que interpreta el modelo del ejemplo


10.2. El resultado de este programa es la función de transferencia que se muestra
en (10.8), que es igual a la mostrada en la expresión (10.7). Con esto, se prueba
que MATLAB ha simplificado el modelo propuesto.
2s + 1
Sis = (10.8)
s2 + 2s + 1

Manual de prácticas: Dinámica de Sistemas 170


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

Listado 10.1: Solución en MATLAB del ejemplo 10.2.

1 [A,B,C,D] = linmod(’Ejemplo2’); %comando de lectura de modelo


2 [num,den] = ss2tf(A,B,C,D); %conversión de espacio estado a función
3 Sis = tf(num,den) %función de transferencia equivalente

10.6.3. Diagramas de flujo de señal

Un diagrama de flujo de señal se puede considerar como una versión simplificada


de un diagrama de bloques. Los diagramas de flujo de señal fueron introducidos por
S. J. Mason (Golnaraghi y Kuo, 2010), para la representación de causa y efecto
de sistemas lineales modelados por ecuaciones algebraicas. Dado un diagrama de
flujo de señal, con N trayectorias directas y L mallas, la ganancia entre el nodo de
entrada Yent , y el nodo de salida ysal , esta dada por la expresión (10.9),
N
X Mk ∆k
ysal
= (10.9)
yent k=1

donde: yent es la variable del nodo de entrada, ysal es la variable del nodo de salida,
N es el número total de trayectorias directas entre yent y ysal , Mk es la ganancia de la
trayectoria directa k-ésima entre yent y ysal , ∆k es la ∆ para aquella parte del diagrama
de flujo que no toca la k-ésima trayectoria directa. El caso del término ∆ esta dado
por (10.10),
X X X
∆=1− Li1 + L j2 − Lk3 + · · · (10.10)
i j k

donde: Lmr es el producto de la ganancia de la combinación posible m-ésima (i.e.,


m = i, j, k, . . .) de las mallas de no contacto (i.e., 1 ≤ r ≤ L). I.e., ∆ = 1− (suma
de las ganancias de todas las mallas individuales) + (suma de los productos de las
ganancias de todas las combinaciones posibles de dos mallas que no se tocas) −
(suma de los productos de las ganancias de todas las combinaciones posibles de
tres mallas que no se tocan) + · · · etc.

Manual de prácticas: Dinámica de Sistemas 171


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

Según la fórmula (10.9), parecerı́a que los diagramas de flujo de señal son com-
plicados. La mayorı́a de ocasiones son simples, porque son excepcionales los casos
en que varias mallas no se toquen, o que no toquen la trayectoria directa. Para ilus-
trar el uso de los diagramas de flujo de señal, se desarrollará el ejemplo 10.3.

Ejemplo 10.3. Determine la función de transferencia Y (s)/U(s) del diagrama de


flujo de señal, mostrado en la Figura 10.9. Use la fórmula de Mason (10.9) para
obtener la función de transferencia.

1
1 1 s2 1 1
U(s) Y(s)

-2

Figura 10.9: Diagrama de flujo de señal del ejemplo 10.3.

Solución analı́tica por medio de la fórmula de Mason. En este diagrama de


flujo de señal se tienen dos trayectorias directas. Se llamarán de la siguiente ma-
nera: M1 = 1/s2 , y M2 = 3, por lo tanto N = 2. También se tienen dos ∆k , pa-
ra M1 , ∆1 = 1, porque no existe malla que no toque la trayectoria M1 . Para M2 ,
∆2 = 1 − ( s12 × −2), porque la ganancia de la malla que no toca la trayectoria M2 es
la ganancia del lazo cerrado ( s12 × −2).

∆ = 1 − ( s12 × −2), porque solo existe una malla individual (i.e., solo hay un lazo
cerrado). Se llama lazo cerrado, al hecho de que según la dirección de las flechas,
la malla se cierra en un ciclo.

Una vez que se tienen todos los términos, se pueden sustituir en la fórmula según
se aprecia en (10.11),
N 1
+ 3 1 − ( s12 × −2)

Y (s) X Mk ∆k M1 ∆1 + M2 ∆2 s2
= = = (10.11)
U(s) k=1
∆ ∆ 1 − ( s12 × −2)

Manual de prácticas: Dinámica de Sistemas 172


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

como N = 2, en el numerador de (10.11) so existen dos términos. Efectuado las


operaciones requeridas en la fórmula, se obtiene la solución al ejemplo 10.3 en la
función de transferencia (10.12).

Y (s) 3s2 + 7
= 2 (10.12)
U(s) s +2

10.6.4. Diagramas de flujo de señal en SIMULINK

Un diagrama de flujo de señal, puede ser interpretado para convertirse en un


diagrama de bloques de SIMULINK. En la Tabla 10.2, se muestran algunas equiva-
lencias entre diagramas a bloques, y diagramas de flujo de señal. Lo importante a
resaltar, es que las flechas equivalen a ganancias de bloques, y que los nodos que
reciben más de dos señales, equivalen a los sumadores. La diferencia, es que en los
nodos no se puede hacer la operación de resta, ası́ que, debe de cambiarse el signo
de la ganancia que esta en las flechas para poder restar. Esto se puede observar,
en el la función de transferencia de lazo cerrado en la Tabla 10.2, (i.e., el última fila).

Para ilustrar la interpretación de un diagrama de flujo a un diagrama a bloques


de SIMULINK se implementará el ejemplo 10.4.

Ejemplo 10.4. Interpretar el diagrama de flujo de señal del ejemplo 10.3, (ver
Figura 10.9), para convertirlo a un diagrama a bloques de SIMULINK. Después
de esto, leer el modelo de SIMULINK para obtener su función de transferencia en
MATLAB.

Solución del diagrama de flujo de señal en SIMULINK. Usando las equiva-


lencias de la Tabla 10.2, se sustituyen las flechas por ganancias, y los nodos que
reciben más de dos señales como sumadores (o restadores según sea el caso). Ca-
be aclarar, que algunas ganancias son escalares y otras funciones de transferencia
en LaPlace.

Manual de prácticas: Dinámica de Sistemas 173


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

Tabla 10.2: Diagramas de bloques equivalentes a diagramas de flujo.

Función de trans. Diagrama de bloques original Diagrama de flujo equivalente


Y (s)
= G(s)
U(s) G(s)
U(s) G(s) Y(s) U(s) Y(s)

Y (s)
U(s)
= G1 (s) + G2 (s)
G1(s)
G1(s)
1 1
U(s) Y(s)
+
U(s) +
Y(s)
G2(s)

G2(s)

Y (s) G(s)
U(s)
= 1+G(s)H(s) 1 G(s) 1
U(s) +

G(s) Y(s) U(s) Y(s)

-H(s)
H(s)

En la Figura 10.10, se muestra la equivalencia en diagrama de bloques del dia-


grama de flujo de la Figura 10.9. Es posible notar como la ganancia “G”, es una
función de transferencia en LaPlace. Todas las demás ganancias son escalares. El
signo negativo de la ganancia “H”, se traslada al restador del único lazo cerrado
“GH”.

En el Listado 10.2, se muestra el script que obtiene la función de transferencia


del modelo en SIMULINK del ejemplo 10.4. Las lı́neas a destacar en este programa
son: la lı́nea 3, que muestra la función de transferencia del modelo desplegada en
(10.13),
3s2 + 7
Sis = (10.13)
s2 + 2
esta función de transferencia, esta de acuerdo con la solución analı́tica de este
modelo, observada en (10.12). En la lı́nea 4, el comando “zero” determina los ceros
del sistema. En la lı́nea 5, el comando “polo” determina los polos del sistema. En la

Manual de prácticas: Dinámica de Sistemas 174


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

G3

1
1 1 1 1
s2
Step G1 G2 G G4 G5 Scope

1 2 1

In1 Out1
H

Figura 10.10: Diagrama a bloques equivalente del ejemplo 10.4.

lı́nea 6, el comando “step” prueba el sistema con la señal escalón unitario.

Listado 10.2: Solución en MATLAB del ejemplo 10.4.

1 [A,B,C,D] = linmod(’Ejemplo4’); %comando de lectura de modelo


2 [num,den] = ss2tf(A,B,C,D); %conversión de espacio estado a función
3 Sis = tf(num,den) %función de transferencia equivalente
4 ceros = zero(Sis) %determina los ceros del sistema
5 polos = pole(Sis) %determina los polos del sistema
6 step(Sis,10);grid %prueba de entrada escalón por 10 s.

10.6.5. Sistema fı́sico en bloques de SIMULINK

En la Figura 10.11, se tiene la representación de los parámetros de un motor de


Corriente Directa (CD). Las ecuaciones diferenciales que modelan la dinámica del
motor (Mathia, 2010; Starr, 2006) aparecen en (10.14),

dia (t)
Va (t) − Ra ia (t)−La − Ke ωa (t) = 0
dt
Te = Kt ia (t) (10.14)
dωa (t)
Te − J − Bωa (t) − TL (t) = 0
dt

Manual de prácticas: Dinámica de Sistemas 175


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

donde la constante de torque Kt = 1.82 × 10−2 N-m/A, la constante de fuerza contra-


electromotriz Ke = 1.82 × 10−2 V /rad/s, la resistencia de bobina de armadura Ra =
0.83 Ω, la inductancia de bobina de armadura La = 0.63 mH, la inercia del rotor
J = 4.2×10−6 Kg-m2 . La entrada (i.e., fuente) es el voltaje de bobina de armadura Va ,
la salida es la velocidad angular ωa 1 . Otras unidades son el torque electromagnético
Te , y el torque de la carga mecánica TL , que para este sistema no se tomará en
cuenta.

Ra La

Va + Vc
─ J
ia ─

ωa

Figura 10.11: Representación de los parámetros de un motor de CD.

Obtenga la función de transferencia en el dominio de z, a través del método


directo de diseño, con un Ts = 0.01 s. Por medio de los coeficientes de la función de
transferencia, construya un diagrama de flujo de señal, y obtenga por medio de la
fórmula de Mason la función de transferencia del diagrama. Construya un modelo en
SIMULINK, a partir del diagrama de flujo del sistema. Lea el diagrama de bloques de
SIMULINK, en un programa de MATLAB que determine la función de transferencia.

Solución analı́tica. Se obtiene la transformada de LaPlace de las ecuaciones


(10.14) resultando las ecuaciones (10.15), y (10.16),

Va (s) − Ra Ia (s) − La sIa (s) − Ke ωa (s) = 0 (10.15)

Kt Ia (s) − Jsωa (s) − Bωa (s) = 0 (10.16)


1
Los valores de los parámetros pertenecen a un motor Pittman Express®, modelo 9234S004,
tomados de la hoja de caracterı́sticas del 2001.

Manual de prácticas: Dinámica de Sistemas 176


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

en la ecuación (10.16), se sustituye Te por su equivalencia, y se considera TL = 0 (i.e.,


no existirá perturbación de carga). De la expresión (10.15) se despeja en función de
Ia (s), resultando la función de transferencia (10.17),

Va (s) − Ke ωa (s)
Ia (s) = (10.17)
Ra + La s

se sustituye Ia (s) en la ecuación (10.16), resultando la función de transferencia en


LaPlace (10.18),
Kt
ωa (s)
= h iLa J h i (10.18)
Va (s) s2 + Ra J+L aB
s + Ra B+Kt Ke
La J La J

sustituyendo los valores de los parámetros en (10.18) se obtendrá (10.19).

ωa (s) 6878.3
= 2 (10.19)
Va (s) s + 108.46s + 266.34

Ahora por el método directo de diseño, se obtiene la transformada z de (10.19),


como se observa en (10.20),
  
ωa (s) −1 ωa (s)/Va (s)
= (1 − z )Z L
−1
(10.20)
Va (s) s

resultando la función de transferencia (10.21).

ωa (z) 0.2466z + 0.1723


= 2 (10.21)
Va (z) z − 1.322z + 0.338

Un diagrama de flujo de señal, puede observar una forma canónica, como es el


caso del la Figura 10.12, que muestra el diagrama de flujo de señal genérico, para
la forma canónica controlable2 .

Los coeficientes −a1 , −a2 , . . . , −an , y b1 , b2 , . . . , bn , se corresponden con los co-


eficientes de la función de transferencia del sistema. En este caso, como n = 2 (i.e.,
2
Este diagrama también aplica para el dominio de LaPlace, solamente tiene que cambiarse la
variable z−1 por el operador LaPlaciano s−1 .

Manual de prácticas: Dinámica de Sistemas 177


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

b1
b2
bn-2
bn-1
1 z-1 z-1 z-1 z-1
u(k) y(k)
bn
-a1

-a2
-an-2
-an-1
-an

Figura 10.12: Diagrama de flujo genérico para la forma canónica controlable.

el grado mayor de la función de transferencia es dos), el orden de los coeficientes


es como se observa en la función de transferencia (10.22),
ωa (z) b1 z + b2
= 2
(10.22)
Va (z) a0 z + a1 z + a2
por lo tanto, si se comparan las funciones de transferencia (10.22) y (10.21), se
puede notar, que los valores de los coeficientes en este caso son: a0 = 1, a1 =
−1.322, a2 = 0.338, b1 = 0.2466, b2 = 0.1723. Dado lo anterior, el diagrama de flujo
de señal resultante se observa en la Figura 10.13.

b1= 0.2466

1 z-1 z-1 ωa(k)


Va(k)
b2=0.1723
-a1= 1.322

-a2= -0.338

Figura 10.13: Diagrama de flujo de señal del motor de CD.

Para la solución por la fórmula de Mason, se observan dos trayectorias directas,


por lo que N = 2. La primera trayectoria será M1 = b1 z−1 , la segunda M2 = b2 z−2 .

Manual de prácticas: Dinámica de Sistemas 178


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

Como los dos lazos cerrados del diagrama tocan las trayectorias directas, entonces
∆1 = 1 y ∆2 = 1. Como no existen lazos cerrados separados (i.e., los dos se tocan),
entonces ∆ = 1 − (−a1 z−1 − a2 z−2 ). Sustituyendo los valores en la fórmula se tiene
(10.23),
ωa (z) M1 ∆1 + M2 ∆2 b1 z−1 + b2 z−2 0.2466z−1 + 0.1723z−2
= = = (10.23)
Va (z) ∆ 1 + a1 z−1 + a2 z−2 1 − 1.322z−1 + 0.338z−2
se normaliza multiplicando el numerador y el denominados por z2 con lo que se
obtiene (10.24),
ωa (z) 0.2466z + 0.1723
= 2 (10.24)
Va (z) z − 1.322z + 0.338
esta función de transferencia es igual a la función (10.21), lo que significa que el
diagrama de flujo de señal de la Figura 10.13, representa al modelo matemático del
motor de CD estudiado en este caso.

Solución en SIMULINK y MATLAB. En la Figura 10.14, se muestra la conver-


sión del diagrama de flujo de señal del motor de CD, a un diagrama a bloques en
SIMULINK. Es importante configurar el tiempo de muestreo Ts = 0.01 s, en los blo-
ques “Step” y retardo unitario 1/z, de lo contrario los resultados serán incorrectos.

0.2466

b1

1 1
0.1723
Step z z
z^-1 z^-1. b2 Scope

1
1.322
In1
1
-a1
Out1

-0.338

-a2

Figura 10.14: Diagrama de bloques de SIMULINK del motor de CD.

En el Listado 10.3, se muestra el script que lee el diagrama a bloques del mo-
delo de SIMULINK de la Figura 10.14, que representa al motor de CD. Todos estos

Manual de prácticas: Dinámica de Sistemas 179


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

comandos se han usado anteriormente, ası́ que lo importante a destacar, es que el


resultado de la función de transferencia en la lı́nea 4, (i.e., “Sis1”) es igual al de la
función (10.21), mientras que la función de transferencia en la lı́nea 5, (i.e., “Sis2”)
es equivalente a la función (10.19). Con esto se concluye la solución al modelado
de un motor de CD.

Listado 10.3: Obtención en MATLAB de la función de transferencia del motor de CD.

1 Ts = 0.01; %tiempo de muestreo


2 [A,B,C,D] = dlinmod(’SistemaFisico10’,Ts); %comando de lectura de modelo
3 [num,den] = ss2tf(A,B,C,D) %conversión de espacio estado a función
4 Sis1 = tf(num,den,Ts) %función de transferencia equivalente en z
5 Sis2 = d2c(Sis1,’zho’) %función de transferencia equivalente en LaPlace

10.7. Sugerencias didácticas

Con el propósito de estudiar los temas vistos en esta práctica, se proponen al-
gunos ejercicios para ser desarrollados en SIMULINK y MATLAB.

10.7.1. Ejercicios

10.1 Desarrolle la reducción del diagrama a bloques de la Figura 10.15.

A G1 + G2 B

Figura 10.15: Diagrama de bloques del ejercicio 10.1.

Manual de prácticas: Dinámica de Sistemas 180


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

10.2 Convierta a diagrama de flujo el diagrama de bloques del ejercicio 10.1, y por
medio de la fórmula de Mason obtener la función de transferencia equivalente.

10.3 Desarrolle la reducción del diagrama a bloques de la Figura 10.16.

2
1 G3
s
G1 +
U(s)

+
+ Y(s)

+
– +

1
s
G2

1
s H

Figura 10.16: Diagrama de bloques del ejercicio 10.3.

10.4 Convierta a diagrama de flujo el diagrama de bloques del ejercicio 10.3, y por
medio de la fórmula de Mason obtener la función de transferencia equivalente.

10.5 El diagrama de flujo de señal del ejercicio 10.4, convierta lo a diagrama a


bloques de un modelo en SIMULINK. Lea el diagrama por medio de un script
en MATLAB, de modo que obtenga su función de transferencia.

10.7.2. Solución a ejercicios

En esta sección se muestra la solución a los ejercicios de la sección anterior. De


la Figura 10.17, a la Figura , se resuelven los ejercicios del - .

10.1 En la Figura 10.17, se muestra la solución al ejercicio 10.1.

10.2 En la Figura 10.18, se muestra la solución al ejercicio 10.2. A partir de este


diagrama de flujo de señal, se puede obtener la función de transferencia por la

Manual de prácticas: Dinámica de Sistemas 181


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

Regla No. 1 Regla No. 1 aplicada

A G1 +

G2 B A + G1 G2 B

1
H H
G1
Regla No. 5

Regla No. 5 aplicada


A +

G1G2 B
G1 G 2
A B
H 1+G 2 H
G1

Figura 10.17: Solución al ejercicio 10.1.

fórmula de Mason. Se tiene sólo una trayectoria directa, por lo que: M1 = G1 G2


y dado que el único lazo cerrado toca la trayectoria directa ∆1 = 1. Como no
existen lazos cerrados separados, ∆ = 1 + G2 H. Sustituyendo estos términos
en la fórmula de Mason se tiene la solución en (10.25), que se corresponde
con la solución del ejercicio 10.1.
N
B X Mk ∆k M1 ∆1 G1 G2
= = = (10.25)
A k=1
∆ ∆ 1 + G2 H

G1 G2 1
A B

-H

Figura 10.18: Solución al ejercicio 10.2.

10.3 En la Figura 10.19, se muestra la solución al ejercicio 10.3.

10.4 En la Figura 10.20, se muestra la solución al ejercicio 10.4. A partir de este


diagrama de flujo de señal, se puede obtener la función de transferencia por
la fórmula de Mason. Se tienen tres trayectorias directas, i.e, N = 3, por lo
que la superior será M1 = 2. Para esta trayectoria, como existen dos lazos
cerrados que no la tocan, entonces ∆1 = 1 − (−s−2 − s−2 ). M2 = s−1 , para esta

Manual de prácticas: Dinámica de Sistemas 182


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

G3 G3

G1 Regla No. 5
+
U(s) U(s) G1 + G2

+
+ Y(s) + Y(s)

+
– + –

G2

H H

G3

Regla No. 5 aplicada Suma de los bloques anteriores Sustitución de valores


2
G1 +G2 G1 +G2 +G3 +G1 G3 H +G2 G3 H 2 s +2 s+4
U(s) U(s)
+

Y(s) U(s) Y(s) Y(s)


+

1+(G1 +G 2 ) H 1+G1 H +G2 H s2 +2

Figura 10.19: Solución al ejercicio 10.3.

trayectoria, como no existe lazo que no la toque, entonces ∆2 = 1. Para la


trayectoria inferior M3 = s−1 , también para esta, como no existe lazo que no la
toque, entonces ∆3 = 1. Como no existen lazos cerrados separados, entonces
∆ = 1 − (−s−2 − s−2 ). Sustituyendo estos términos en la fórmula de Mason se
tiene la solución en (10.26), que se corresponde con la solución del ejercicio
10.3.
Y (s) M1 ∆1 + M2 ∆2 + M3 ∆3 2(1 + 2s−2 ) + s−1 + s−1
= =
U(s) ∆ 1 + 2s−2
(10.26)
(2 + 2s−1 + 4s−2 )s2 2s2 + 2s + 4
= =
(1 + 2s−2 )s2 s2 + 2

s-1
1 1 1 1 1 1
u(t) y(t)

s-1

-s-1

Figura 10.20: Solución al ejercicio 10.4.

Manual de prácticas: Dinámica de Sistemas 183


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

10.5 En la Figura 10.21, se muestra el diagrama a bloques de SIMULINK, equi-


valente al diagrama de flujo de señal del ejercicio 10.4. En el Listado 10.4,
se muestra el script en MATLAB que obtiene la función de transferencia del
diagrama a bloques de SIMULINK. Cabe resaltar, que en este ejercicio el al-
goritmo usado en “linmod”, aunque aproximó bastante bien la solución no fue
del todo exacta. Por esta razón, se tuvo que usar el comando “round” en las
lı́neas 3 y 4 del Listado, para redondear números muy pequeños a cero. Tam-
bién, se hizo necesario usar en la lı́nea 6 el comando “minreal” para reducir el
orden del sistema, dado que en “Sis1” se tienen un cero y un polo en el origen
(i.e., s(2s2 + 2s + 4)/s(s2 + 2)). El resultado de “Sis2” se corresponde al de la
función (10.26).

G3
1
s
G1

Step 1
s Scope

G2

1 1
1
In1 s Out1

Figura 10.21: Solución al ejercicio 10.5.

Listado 10.4: Script que da solución al ejercicio 10.5.


1 [A,B,C,D] = linmod(’Ejercicio105’); %comando de lectura de modelo
2 [num,den] = ss2tf(A,B,C,D); %conversión de espacio estado a función
3 num1 = round(num); %redondea números que tienden a cero
4 den1 = round(den); %redondea números que tienden a cero
5 Sis1 = tf(num1,den1) %función de transferencia equivalente
6 Sis2 = minreal(Sis1) %reduce orden del sistema cuando es posible

Manual de prácticas: Dinámica de Sistemas 184


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

10.7.3. Problema propuesto

La función de transferencia del circuito con amplificador operacional de la Figura


10.22, según Ogata (2004) esta definida por (10.27),

Eo (s) 1
=− 2
(10.27)
Ei (s) R1C1 R2C2 s + [R2C2 + R1C2 + (R1 /R3 )R2C2 ] s + (R1 /R3 )

donde R1 = R2 = R3 = 100 KΩ, y C1 = C2 = 10 µF. Sustituya estos valores en


la función (10.27), para determinar los valores de a0 , a1 , y a2 , donde b0 = b1 = 0
y b2 = 1. Con estos valores obtenga el diagrama de flujo de señal que modele
al circuito. Use para ello, el diagrama de flujo de señal genérico mostrado en la
Figura 10.12, sustituyendo z−1 por s−1 . Una vez desarrollado el diagrama de flujo
de señal, obtenga a partir de este el diagrama a bloques de SIMULINK equivalente.
Después de esto, lea el modelo de SIMULINK en un script de MATLAB, para obtener
la función de transferencia original. Aplique tanto en SIMULINK como en MATLAB,
la señal de prueba escalón unitario y observe la respuesta de salida.

R3

C2

R1 R2 Vcc+
2
─ 7
6
741
3 4
+
ei C1 Vcc- eo

Figura 10.22: Circuito con amplificador operacional del problema propuesto.

Con el propósito de comparar resultados simulados con respecto a resultados


fı́sicos reales, implemente en una tablilla de pruebas (i.e., protoboard) el circuito
mostrado en la Figura 10.22. El amplificador operacional es un 741, los valores de
componentes pasivos (i.e., resistencias y capacitores) deben ser los usados en la

Manual de prácticas: Dinámica de Sistemas 185


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

función de transferencia. Ajuste los voltajes Vcc+ = 5 V , y Vcc− = −5 V . Se recomien-


da usar otra fuente y por medio de un switch, aplicar en la entrada ei del circuito
+1 V , (i.e., un escalón unitario) y medir la respuesta en la salida eo , usando para ello
un osciloscopio.

10.8. Reporte del alumno

Se sugiere, después de resolver el problema propuesto en la sección 10.7.3 en


un modelo de SIMULINK (con extensión .slx), y en un script (con extensión .m),
entregarlos al instructor. También, entregue una gráfica del osciloscopio de la res-
puesta al escalón unitario, del circuito armado en el protoboard. La discusión de
resultados y conclusiones, se debe entregar en un procesador de texto como el
Microsoft Word®, el Libre Office®, u otro similar.

10.8.1. Discusión de resultados

Como ideas de discusión del experimento propuesto, se sugiere la respuesta a


las siguientes preguntas:

¿Qué tipo de señal se genera como respuesta al escalón unitario en el siste-


ma?

¿Qué diferencia existe entre la respuesta que genera la simulación en SIMU-


LINK y MATLAB, con respecto al sistema fı́sico real?

¿Qué valores de resistencias y capacitor sugiere, para que la respuesta del


sistema sea más rápida al aplicar al circuito un escalón unitario?

Manual de prácticas: Dinámica de Sistemas 186


PRÁCTICA 10. REPRESENTACIÓN DE DIAGRAMAS DE FLUJO A TRAVÉS SIMULINK

10.8.2. Conclusiones

El alumno debe explicar, en que medida logró adquirir las competencias propues-
tas en esta práctica. Cuales fueron las principales dificultades que enfrentó y como
las solucionó. También puede proponer ideas para mejorar la comprensión de los
temas tratados en la práctica.

Referencias

Arce Rubio, A., y Vianna Raffo, G. (2009, Marzo). Manual de simulink pa-
ra la asignatura de teorı́a de sistemas. ESCUELA SUPERIOR DE INGE-
NIEROS, DEPARTAMENTO DE INGENIERÍA DE SISTEMAS Y AUTOMÁTI-
CA, UNIVERSIDAD DE SEVILLA. Descargado de http://perso.ya.com/
ecoterso/ManualSimulink.pdf
Chaturvedi, D. K. (2009). Modeling and simulation of systems using matlab and
simulink. CRC Press.
Golnaraghi, F., y Kuo, B. C. (2010). Automatic control systems. JOHN WILEY &
SONS, INC.
Herman, R. (2017, June). Solving differential equations using simulink. Published
in URL. Descargado de people.uncw.edu/hermanr/mat361/simulink since
Summer 2015.
Mathia, K. (2010). Robotics for electronics manufacturing. Cambridge university
press.
Mathworks, I. S. (2015). Simulink: User’s guide. The MathWorks, Inc.
Ogata, K. (2004). System dynamics. Pearson Prentice Hall.
Starr, G. P. (2006). Introduction to applied digital control. Lecture Notes in Digital
Control, 5–31.

Manual de prácticas: Dinámica de Sistemas 187


PRÁCTICA 11
SISTEMA MASA-RESORTE F ÍSICO

11.1. Competencias

El alumno comprende y caracteriza el comportamiento dinámico de los sis-


temas continuos de segundo orden, a partir del concepto de respuesta en el
tiempo para diferentes tipos de señales de prueba.

11.2. Introducción

En esta práctica, primero se define la respuesta de un sistema de segundo orden.


Luego, se desarrolla un experimento para calcular la constante de elasticidad K de
un resorte; para ello se hace uso del algoritmo de mı́nimos cuadrados. Después
de eso, se lleva a cabo un experimento con un sistema masa-resorte para poder
determinar la frecuencia natural ωn , y la constante de amortiguación ζ , de un sistema
oscilante de segundo orden. El producto de esta práctica, será la implementación de
un sistema masa-resorte fı́sico real, cuyo comportamiento dinámico será comparado
con una simulación del mismo, desarrollada en un script de MATLAB.

188
PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

11.3. Temas y subtemas

Respuesta de sistemas continuos de segundo orden. Se implementa un sis-


tema de segundo orden que consiste en una masa sujeta a un resorte, para después
analizar su respuesta a las señales impulso y escalón unitario.

Subtemas:

Región de estabilidad.

Región de tiempo máximo de asentamiento.

Región de frecuencia máxima de oscilación.

Región de sobrepico máximo.

11.4. Medidas de seguridad e higiene

Debe hacerse uso de las herramientas apropiadas para evitar heridas en las ma-
nos. Use guantes de protección. Debe tenerse cuidado al transportar las diferentes
masas de prueba para los resorte. De ser posible usar batas de laboratorio. Lávese
las manos después de manipular las pesas porque pueden contener plomo. Si se
va a trabajar en equipos, deben sentarse de tal manera que no se obstruyan los
pasillos.

11.5. Material y equipo necesario

Materiales: Un resorte helicoidal de aproximadamente 1.5 cm de diámetro por


10 cm de longitud.

Manual de prácticas: Dinámica de Sistemas 189


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

Equipo. Cronómetro, soporte con varilla y nuez, regla métrica, juego de pesas,
porta pesas o platillo.

Equipo de computo. Se requiere la versión 2014 o superior de MATLAB y


un computador con un procesador Intel®, Core™ i3 ó su equivalente, con una
memoria de 2 GB de RAM.

Material bibliográfico. Es necesario contar con los libros y manuales de con-


sulta que se sugieren en la bibliografı́a de esta práctica (Ogata, 2010; Golna-
raghi y Kuo, 2010; Dorf y Bishop, 2011).

11.6. Metodologı́a

En esta práctica, primero se define la respuesta de un sistema de segundo or-


den. Luego, se desarrolla un experimento para calcular la constante de elasticidad
K de un resorte. Después de eso, se lleva a cabo un experimento con un siste-
ma masa-resorte para poder determinar la frecuencia natural ωn , y la constante de
amortiguación ζ , de un sistema oscilante de segundo orden.

11.6.1. Parámetros de un sistema de segundo orden

Un sistema de lazo cerrado de segundo orden, aparece en el diagrama de blo-


ques de la Figura 11.1. La función de transferencia de este sistema en lazo cerrado
se muestra en (11.1), a esta función se le llama la forma estándar de un sistema de
segundo orden (Ogata, 2010),
Y (s) ωn2
= 2 (11.1)
R(s) s + 2ζ ωn s + ωn2
donde ωn es la frecuencia natural no amortiguada, y ζ es la razón de amortigua-
miento.

Manual de prácticas: Dinámica de Sistemas 190


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

E(s) ω2n
R(s) + Y(s)
– s (s+2 ζ ωn )

B(s)

Figura 11.1: Diagrama a bloques de un sistema de segundo orden.

El comportamiento dinámico de un sistema de segundo orden puede ser descrito


en términos de dos parámetros ζ y ωn . Si ζ = 0, el sistema es no amortiguado por
lo que nunca deja de oscilar. Si 0 < ζ < 1, al sistema se le llama subamortiguado y
su respuesta transitoria es oscilatoria. Si ζ > 1, entonces es llamado sobreamorti-
guado.

Figura 11.2: Efecto de ζ en un sistema de segundo orden.

Cuando a un sistema de segundo orden se le aplica una señal de prueba es-


calón, puede observar las variaciones mostradas en la Figura 11.2, que dependen
de los diferentes valores del parámetro ζ (Ogata, 2010). Note que cuando ζ = 0,
entonces se tiene la frecuencia natural no amortiguada ωn .

Además de los parámetros vistos en un sistema de segundo orden existen otra


especificaciones en la respuesta transitoria. Estas especificaciones se muestran en

Manual de prácticas: Dinámica de Sistemas 191


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

Tolerancia permitida

Figura 11.3: Especificaciones en la respuesta transitoria de sistema (11.1).

la Figura 11.3. Las especificaciones en la respuesta transitoria de un sistema de


segundo orden se definen de la siguiente manera.

Tiempo de retardo Td . El tiempo de retardo, es el tiempo requerido para que la


respuesta alcance la mitad del valor final la primera vez.

Tiempo de subida Tr . El tiempo de subida, es el tiempo requerido para que la


respuesta suba del 10 % al 90 % ó del 0 % al 100 %.

Tiempo pico Tp . El tiempo pico, es el tiempo requerido para que la respuesta


alcance el primer pico del sobreimpulso.

Sobreimpulso máximo (por ciento) Mp . El sobreimpulso máximo, es el valor


pico máximo de la curva de respuesta.

Tiempo de estabilización Ts . El tiempo de estabilización, es el tiempo requerido


para que la curva de respuesta alcance y permanezca dentro de un rango
alrededor del valor final, (generalmente 2 % o 5 % del valor final).

Manual de prácticas: Dinámica de Sistemas 192


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

11.6.2. Cálculo de la constante de elasticidad k

En 1676 Robert Hooke descubrió y estableció la ley que lleva su nombre y que
se utiliza para definir las propiedades elásticas de un cuerpo. En el estudio de los
efectos de las fuerzas de tensión, y comprensión, observó que habı́a un aumento
en la longitud del resorte, o cuerpo elástico, que era proporcional a la fuerza aplica-
da, dentro de ciertos lı́mites. Esta observación puede generalizarse diciendo que la
deformación es directamente proporcional a la fuerza deformadora (Hibbeler, 2014;
Palm III, 2010).

El balance de fuerzas en un elemento elástico como es el caso del resorte, re-


sulta en (11.2),
F = −kx (11.2)

donde F es la fuerza (N), k es la constante elástica del resorte (N/m), y x es la


deformación (i.e., alargamiento o compresión que experimenta el resorte) (m). El
signo negativo indica que la fuerza del resorte es restauradora, u opuesta a la fuerza
externa que lo deforma. La expresión (11.2) se conoce con el nombre de “ley de
Hooke”. Si la fuerza deformadora sobrepasa un cierto valor, el cuerpo no volverá a
su tamaño (o forma) original después de suprimir esa fuerza. Entonces se dice que
el cuerpo ha adquirido una deformación permanente. La tensión más pequeña que
produce un deformación permanente se llama lı́mite de elasticidad. Para fuerzas
deformadoras que rebasan el lı́mite de elasticidad no es aplicable la ley de Hooke
(Hibbeler, 2014).

Determinación de la constante elasticidad k de un resorte. Aunque las hojas


de caracterı́sticas de los resortes, especifican el valor de la constante k, es posible
determinarla experimentalmente. Utilizando la ley de Hooke se calcular la constan-
te k del resorte. El procedimiento consiste en medir las elongaciones que sufre el
resorte en reposo.

Manual de prácticas: Dinámica de Sistemas 193


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

En la Figura 11.4, se muestra un ejemplo del montaje experimental del sistema


masa-resorte. Se coloca el resorte en el soporte superior de manera que penda co-
mo se observa en la Figura 11.4. Se mide tres veces sin agregar carga; el promedio
de estas tres medidas se le llama xEP (i.e., posición de equilibrio sin carga). Se es-

Figura 11.4: Montaje experimental de sistema masa-resorte.

cogen pesas de distinta masa, que no deben ser excesivamente grandes, para no
exceder el lı́mite de elasticidad del resorte. Las masas deben ser conocidas, en ca-
so de que no lo sean, se pesan en una balanza. Se miden las diferentes posiciones
de equilibrio del resorte xE con cada una de las pesas que se agregan. Las distintas
pesas se deben ir agregando sin quitar la pesas iniciales. Este es el procedimiento
ascendente. Luego de arriba a abajo, se quitan las pesas tomando de nuevo las
medidas xE correspondientes. Este es el procedimiento descendente.

En la Figura 11.5, se muestra el procedimiento ascendente en la toma de me-


didas xE . En la Tabla 11.1, se muestra una forma para el registro de datos de las
lecturas de diferentes elongaciones xE . En la primera columna se registra el número
de la medida (se recomienda empezar con la pesa de menor masa). En la segunda
columna se registra el total de la masa (Kg) agregada, (i.e., a medida que se van

Manual de prácticas: Dinámica de Sistemas 194


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

agregando, se suma la masa del total de pesas agregadas al porta pesas). En la


tercera columna, se registra w que resulta de la multiplicación de la masa por la
constante de la gravedad (i.e., g = 9.8 m/s2 ). En la cuarta columna, se registra xE
ascendente (i.e., la medida de xE cada vez que se agrega una pesa). En la quinta
columna, se registra xE descendente (i.e., la medida de xE cada vez que se quita
una pesa). La sexta columna, el promedio de xE ascendente y xE descendente. En
la última columna, la elongación ∆x para cada masa (i.e., ∆x = xE − xEP ), se anota
en el encabezado de la columna el valor de xEP , para no perder la referencia. El mı́ni-
mo de diferentes masas a considerar debe ser cinco. A mayor número de diferentes
masas el cálculo k será más exacto.

x EP
xE '
xE
Δx
Δ x'

Figura 11.5: Procedimiento ascendente en la toma de medidas xE .

Tabla 11.1: Tabla de datos modelo, para obtener el valor de k de un resorte.

No. Masa w = mg (N) xE (ascen.) xE (descen.) xE (prom.) ∆x (xEP = )


1
2
3
.. .. .. .. .. ..
. . . . . .

Como es sabido, mientras se trabaje en los lı́mites de elasticidad el comporta-

Manual de prácticas: Dinámica de Sistemas 195


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

miento de un resorte es lineal (Hibbeler, 2014). Sin embargo, si se toman en cuenta


datos experimentales de las diferentes masas, con respecto a sus correspondientes
xE , difı́cilmente se obtendrá un comportamiento lineal óptimo. Por lo tanto, para li-
nealizar el comportamiento de las cargas en un resorte, se usa el método numérico
de mı́nimos cuadrados (11.3);

y = a0 + a1 x
P P P
n xi yi − xi yi
a1 = (11.3)
n xi2 − ( xi )2
P P

a0 = ȳ − a1 x̄

donde x, son los datos del eje de las abscisas de una lı́nea recta, y son los datos
del eje de las ordenadas de una lı́nea recta, n es el número de datos, x̄ y ȳ son los
promedios de x y y respectivamente. Por último a0 es la constante de la recta y a1 es
la pendiente de la recta.

La ecuación de lı́nea de carga del resorte esta dada por (11.4),

F = a + k∆x (11.4)

donde a = a0 (i.e., equivale a la constante de la recta) y esta dada en Newtons


(N). k = a1 (i.e., equivale a la pendiente de la recta) y esta dada en Newtons sobre
metros (N/m). ∆x son las diferencias en elongaciones dadas en metros (m) que se
experimentan al incrementar las masas, y F, es la fuerza que experimenta el resorte
y esta dada en Newtons (N).

Las definiciones de a y k de la ecuación (11.4), quedarı́an expresadas en (11.5),


P P P
n ∆xi wi − ∆xi wi
k=
n ∆xi2 − ( ∆xi )2
P P
(11.5)
¯
a = w̄ − k∆x

donde wi , son las fuerzas que resultan de multiplicar las diferentes masas por la
constante g, ∆xi son las diferencias en elongaciones producidas por las diferentes
masas, y n son las diferentes masas aplicadas al resorte. Todos estos datos se

Manual de prácticas: Dinámica de Sistemas 196


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

registran en la Tabla 11.1. Por medio del ejemplo 11.1, se muestra como obtener la
constante k de un resorte.

Ejemplo 11.1. Se tienen los datos medidos experimentalmente de un resorte.


Estos datos aparecen en la Tabla 11.2. A partir de estos datos, calcular la constante
de elasticidad k por medio de la Ley de Hooke.

Tabla 11.2: Tabla de datos experimentales para obtener el valor de k de un resorte.

No. Masa w = mg (N) xE (ascen.) xE (descen.) xE (prom.) ∆x (xEP = 0.117)

1 0.07 0.686 0.118 0.119 0.1185 0.0015


2 0.1 0.98 0.119 0.12 0.1195 0.0025
3 0.13 1.274 0.121 0.122 0.1215 0.0045
4 0.15 1.47 0.124 0.123 0.1235 0.0065
5 0.17 1.666 0.127 0.126 0.1265 0.0095
6 0.2 1.96 0.132 0.131 0.1315 0.0145
7 0.22 2.156 0.135 0.136 0.1355 0.0185
8 0.24 2.352 0.141 0.141 0.1410 0.0240

Solución en MATLAB. Es posible calcular el valor de k y a analı́ticamente por


medio de las expresiones (11.5). Sin embargo, existe en MATLAB un comando que
puede calcular los coeficientes de una recta, por medio de algoritmos muy potentes
como el de mı́nimos cuadrados. Este comando lleva el nombre de “polyfit”.

En el Listado 11.1, se muestra el script que calcula k. En este Listado las lı́neas a
destacar son: lı́nea 5, el comando “polyfit(Delta x,w,1)” calcula los coeficientes “k” y
“a” de la lı́nea recta de carga del resorte, donde el último parámetro significa el orden
del sistema (el 1 indica que es una recta, un 2 indicarı́a que es ecuación cuadrática,

Manual de prácticas: Dinámica de Sistemas 197


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

un 3 . . . etc.). En la lı́nea 8, se obtiene “F” a partir de la lı́nea recta de carga del


resorte. En la lı́nea 9, se da inicio a la personalización de la gráfica de lı́nea recta.

Listado 11.1: Solución en MATLAB del ejemplo 11.1.

1 %Script que calcula k de un resorte


2 %por medio de la Ley de Hooke
3 Delta_x = [0.0015 0.0025 0.0045 ... %datos experimentales
4 0.0065 0.0095 0.0145 0.0185 0.0240]; %de elongación de x
5 w = [0.686 0.98 1.274 1.47 1.666 ... %datos de masa por constante
6 1.96 2.156 2.352]; %de gravedad: w = m*g
7 a_=polyfit(Delta_x,w,1); %comando que calcula coeficientes de recta
8 k = a_(1) %resultado de constante de elasticidad ’k’
9 a = a_(2) %coeficiente ’a’ de la recta de carga
10 F = a + k*Delta_x; %cálculo de F por medio de la recta
11 plot(Delta_x,w,’*r’,Delta_x,F,’k’);grid; %personalización
12 xlabel(’Delta x (m)’);ylabel(’F (N)’) %de la gráfica de recta
13 title(’Relación Fuerza elongación, Ley de Hooke’) %de carga
14 legend(’Datos experimentales’,...
15 ’recta con: k = 68.6793, a = 0.8683’,’Location’,’NorthWest’);

La Figura 11.6, muestra la gráfica de la lı́nea recta de carga del resorte, donde los
datos experimentales tomados de la Tabla 11.2, se representan por los asteriscos.
La lı́nea recta sólida, se obtuvo usando los coeficientes k y a. Es posible observar
como esta lı́nea recta es muy buena aproximación de los datos experimentales. Con
este ejemplo, se ha podido demostrar la utilidad de la Ley de Hooke en la obtención
de la constante de elasticidad, que resulto ser k = 68.6793 N/m, y a = 0.8683 N.

Manual de prácticas: Dinámica de Sistemas 198


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

Relación Fuerza elongación, Ley de Hooke


2.6
Datos experimentales
2.4 recta con: k = 68.6793, a = 0.8683

2.2

1.8

F (N)
1.6

1.4

1.2

0.8

0.6
0 0.005 0.01 0.015 0.02 0.025
Delta x (m)

Figura 11.6: Lı́nea recta de carga del resorte.

11.6.3. Análisis de respuesta de un sistema masa-resorte

La respuesta de un sistema masa-resorte sin amortiguamiento es una respuesta


oscilante. En el caso de un sistema ideal ante una señal de prueba impulso unitario
la masa osciları́a sin fin. En el caso de un sistema real la masa dejarı́a de oscilar
después de algunos minutos. Esto se debe principalmente al amortiguamiento que
provee la fricción viscosa del aire.

En la sección anterior se calculó experimentalmente la constante de elasticidad


k de un resorte. En esta sección se hará uso de este mismo resorte agregando una
masa al porta pesas. Esto con el propósito de calcular los parámetros de respuesta
que tiene este sistema de segundo orden.

El modelo matemático de un sistema masa-resorte esta dado por la ecuación


diferencial (11.6),
d 2 x(t)
f (t) = m + kx(t) (11.6)
dt 2
donde f (t) es la fuerza que se aplica sobre la masa, x(t) es el desplazamiento de la
masa, m es la masa, y k es la constante del resorte. Por el uso de la transformada

Manual de prácticas: Dinámica de Sistemas 199


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

de LaPlace se obtiene la función de transferencia que se muestra en (11.7),


" p #
X(s) 1 k/m
=√ (11.7)
F(s) mk s2 + k/m

esta función equivale a la función seno de la tabla de pares de la transformada de


Laplace que se despliega en (11.8),
ωn
G(s) = (11.8)
s2 + ωn2
por observación visual se puede deducir cual es el valor de ωn tomando en cuenta
el contenido del paréntesis cuadrado en (11.7). En un sistema ideal sin considerar
la masa intrı́nseca del resorte, la frecuencia natural no amortiguada esta dada por
(11.9). r
k
ωn = (11.9)
m

Para llevar a cabo este experimento se recomienda usar un resorte con una k
no mayor a 10 N/m, al que debe aplicarse una masa de alrededor de 0.15 Kg. Esto
se debe a que para poder contar las oscilaciones, el resorte no debe ser muy rı́gido
(de ser muy rı́gido, las oscilaciones serán más rápidas de lo que el ojo humano
puede percibir). En la Figura 11.7, se muestra la secuencia de estados en el inicio
de la prueba. En el estado a), se fija la pesa y se espera a que se estabilice en su
posición de equilibrio. En el estado b), se tira de la pesa hacia abajo una distancia
apropiada (i.e., sin llegar al lı́mite de elasticidad del resorte y evitando que la pesa
salga proyectada); se mide la condición inicial x0 . En el estado c), se inicia el conteo
del cronómetro al momento que se libera la pesa.

Se cuentan 50 oscilaciones y se para el cronómetro. Con el tiempo medido en


el cronómetro se calcula la frecuencia natural no amortiguada experimental de la
siguiente forma (11.10),
50
fne =
t50 (11.10)
ωne = 2π fne

Manual de prácticas: Dinámica de Sistemas 200


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

t50

-x0
a) b) c)

Figura 11.7: Estados del sistema masa-resorte al inicio de la prueba.

donde t50 es el tiempo que tardan las 50 oscilaciones (s), fne es la frecuencia natural
no amortiguada experimental en Hz, y ωne es la frecuencia natural no amortiguada
experimental en rad/s. La última prueba a realizar en este experimento, se hará
repitiendo la secuencia de pasos mostrados en la Figura 11.7, con la diferencia que
en el estado c) no se contarán el número de oscilaciones sino que el cronómetro se
parará cuando la pesa oscile alrededor del ± 5 % de x0 . A este tiempo se le llama ts ,
(i.e., tiempo de estabilización).

En la Tabla 11.3, se registrarán los datos medidos en este experimento. En la


primera columna, se registra el número de resorte que se esta probando (por si se
quiere experimentar con más de un resorte). En la segunda columna, se registra la
condición inicial x0 (m). En la tercera columna, se registra la frecuencia natural no
amortiguada experimental fne (Hz), que se obtuvo con (11.10). En la cuarta columna,
se registra la frecuencia natural no amortiguada experimental ωne (rad/s), calculada
con (11.10). En la quinta columna, se registra la frecuencia natural no amortiguada
calculada analı́ticamente con (11.9) (rad/s). En la sexta columna, se registra el tiem-
po de estabilización ts (s), calculado experimentalmente. En la última columna, se
registra la razón de amortiguamiento ζ que se obtiene experimentalmente (Ogata,

Manual de prácticas: Dinámica de Sistemas 201


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

2010) a partir de ts , según se aprecia en (11.11).


3
ζ = (11.11)
ωnts

Tabla 11.3: Tabla de datos experimentales y analı́ticos para varios resortes.

No. x0 (m) fne (Hz) ωne (rad/s) ωn (rad/s) ts (s) ζ


1
.. .. .. .. .. .. ..
. . . . . . .

El propósito de la Tabla 11.3, es comparar los datos experimentales y analı́ticos


de la frecuencia natural no amortiguada (i.e., ωne vs ωn ). También registrar los datos
de ts , que puede ser usado para calcular ζ y por ende la fricción viscosa del aire
b, que es la causa principal por la que el sistema masa-resorte deja de oscilar.
La ecuación diferencial (11.12), define el comportamiento dinámico de un sistema
masa-resorte-amortiguador,
d 2 x(t) dx(t)
f (t) = m 2
+b + kx(t) (11.12)
dt dt
donde m es la masa (kg), b es la constante de amortiguación del amortiguador
(N/m/s), k es la constante de elasticidad del resorte (N/m), y f (t) es la fuerza apli-
cada al sistema (N). Para este caso en particular (i.e., sistema masa-resorte), la
fricción viscosa del aire actúa como amortiguador. Por lo tanto b será la fricción
viscosa del aire.

Si se le aplica la transformad de LaPlace a (11.12), entonces se obtendrá la


función de transferencia (11.13),
" #
k
X(s) 1 m
= (11.13)
F(s) k s2 + mb s + k
m

donde lo que se encuentra enmarcado en el paréntesis cuadrado, puede ser com-


parado con la función (11.1). Se puede notar, que la frecuencia ωn de un sistema

Manual de prácticas: Dinámica de Sistemas 202


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

masa-resorte-amortiguador, es igual a la frecuencia ωn de un sistema masa-resorte.


Se deduce también b en función de ζ y ωn de acuerdo con la equivalencia (11.14),

b = 2mζ ωn (11.14)

la fricción viscosa del aire b, es sólo una aproximación y puede ser calculada con ωn
o ωne (m es la masa de la pesa).

11.7. Sugerencias didácticas

Con el fin de practicar la obtención de parámetros de sistemas de segundo orden,


se sugiere la solución a los siguientes ejercicios.

11.7.1. Ejercicios

11.1 De la función de transferencia (11.15), calcular los parámetros ωn y ζ .

Y (s) 1
= (11.15)
U(s) 5.2s2 + 12.2s + 20

11.2 Considere el sistema de segundo orden estándar mostrado en la Figura 11.1,


donde ζ = 0.6 y ωn = 5 rad/s. Calcule el tiempo de subida tr , el tiempo pico t p ,
el sobreimpulso máximo Mp , el tiempo de estabilización ts cuando el sistema
es sometido a una señal de entrada escalón unitario (Ogata, 2010).

11.3 Considere la función de transferencia en lazo cerrado definida (11.16),

Y (s) 1
= 2 (11.16)
U(s) s + 2ζ s + 1

Manual de prácticas: Dinámica de Sistemas 203


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

grafique las curvas de respuesta de y(t) cuando se aplica a la entrada un es-


calón unitario para diferentes valores de ζ . Los diferentes valores de ζ a probar
son los siguientes:
ζ = 0, 0.2, 0.4, 0.6, 0.8, 1.0,

también grafique la respuesta en tercera dimensión (Ogata, 2010).

11.7.2. Solución a ejercicios

11.1 Se normaliza la función propuesta (11.15) que debe de estar de acuerdo a la


(11.1). Después de normalizar resulta la función (11.17),
 20 
Y (s) 1 5.2
= (11.17)
U(s) 20 s2 + 12.2
5.2
20
s + 5.2

por observación visual se encuentra las equivalencias expresadas en (11.18),

20 12.2
ωn2 = , 2ζ ωn = (11.18)
5.2 5.2

resolviendo para ωn y para ζ resulta (11.19).


r
20
ωn = = 1.9612 rad/s
5.2 (11.19)
12.2
ζ = = 0.5981
5.2(2)(1.9612)
p
11.2 De los valores de ζ y ωn , se obtiene ωd = ωn 1 − ζ 2 = 4, y σ = ζ ωn = 3,
donde ωd es la frecuencia natural amortiguada y σ es la parte real. El tiempo
de subida tr se obtiene por (11.20),

π −β 3.1416 − β
tr = = (11.20)
ωd 4

donde β que es el ángulo entre ωn y −σ esta dado por (11.21),

ωd 4
β = tan−1 = tan−1 = 0.93 rad (11.21)
σ 3

Manual de prácticas: Dinámica de Sistemas 204


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

entonces el tr esta dado por (11.22).

3.1416 − 0.93
tr = = 0.55 s (11.22)
4

El tiempo pico t p esta dado por (11.23).

π 3.1416
tp = = = 0.785 s (11.23)
ωd 4

El sobreimpulso máximo Mp , esta dado por (11.24),

Mp = e−(σ /ωd )π = e−(3/4)3.1416 = 0.095 (11.24)

i.e., el por ciento de sobreimpulso máximo es 9.5 %.

El tiempo de estabilización por el criterio del 5 % esta dado por (11.25).

3
ts = =1s (11.25)
σ

11.3 En el Listado 11.2, se muestra el script que da solución al ejercicio 11.3, se


recomienda implementarlo y ejecutarlo para apreciar las diferentes gráficas
solución.

Listado 11.2: Solución en MATLAB del ejercicio 11.3.

1 %Gráfica 2-D y 3-D para una entrada de prueba escalón unitario


2 %curvas de respuesta de un sistema estándar de segundo orden
3 %con Wn = 1, y zeta = 0, 0.2, 0.4, 0.6, 0.8, 1.
4 t = 0:0.2:10; %vector tiempo
5 zeta = [0 0.2 0.4 0.6 0.8 1]; %valores de zeta
6 for n = 1:6; %número de iteraciones
7 num = 1;
8 den = [1 2*zeta(n) 1]; %variación del denominador al variar zeta
9 [y(1:51,n),x,t] = step(num,den,t); %resultado del comando step
10 end %con cada iteración almacenados en la matriz y(1:51,n)

Manual de prácticas: Dinámica de Sistemas 205


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

11 %que tiene 51 filas y 6 columnas, cada columna es una gráfica


12 plot(t,y) %gráfica de las 6 curvas
13 grid %personalización de la gráfica de 2-D
14 title(’Respuesta a un escalón unitario a diferentes \zeta’)
15 xlabel(’t (s)’)
16 ylabel(’Respuesta’)
17 text(4.1,1.86,’\zeta = 0’) %pone texto sobre las diferntes curvas
18 text(3.5,1.5,’0.2’)
19 text(3.5,1.24,’0.4’)
20 text(3.5,1.08,’0.6’)
21 text(3.5,0.95,’0.8’)
22 text(3.5,0.86,’1.0’)
23 pause; %pulsar la tecla enter para continuar con la grafica en 3-D
24 mesh(t,zeta,y’) %comando para graficar en 3-D
25 title(’Respuesta 3-D para las diferentes \zeta’)
26 xlabel(’t (s)’) %personalización de gráfica
27 ylabel(’\zeta’)
28 zlabel(’Respuesta’)

11.8. Reporte del alumno

Para esta práctica el alumno deberá desarrollar dos experimentos: determinar


la constante k para uno o dos resortes (visto en la sección 11.6.2), y determinar
los parámetros ωn , ζ , y la fricción viscosa del aire b, para un sistema masa-resorte
(visto en la sección 11.6.3). Entregue la Tabla 11.1 de datos experimentales usados
para obtener las k de los resortes. Entregue la Tabla 11.3 de datos experimenta-
les y analı́ticos registrados del sistema masa-resorte. Usar los valores del sistema

Manual de prácticas: Dinámica de Sistemas 206


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

masa-resorte y la b encontrada experimentalmente, en la función (11.13). Con esta


función, implemente un script que grafique la respuesta de una entrada impulso de
−x0 , al sistema masa-resorte.

La discusión de resultados y conclusiones (que son parte del reporte), se debe


entregar en un procesador de texto como el Microsoft Word®, el Libre Office®, u otro
similar. Una vez desarrollado el reporte y el script (con extensión .m), entregarlos al
instructor.

11.8.1. Discusión de resultados

Como ideas de discusión de los experimentos propuestos, se sugiere la respues-


ta a las siguientes preguntas:

¿Los valores experimentales para determinar k, resultaron muy dispersos con


respecto a la lı́nea recta de carga del resorte?

Si la respuesta a la anterior pregunta fue sı́, explique por qué.

¿Qué factores influyeron para que los valores entre ωne y ωn fueran diferentes?
(si es que lo fueron).

Además de la fricción viscosa del aire ¿Qué otros factores influyen para que el
sistema masa-resorte deje de oscilar al recibir un impulso −x0 ?

¿Qué diferencia existe entre la respuesta del sistema masa-resorte real, con
respecto a la simulación en el script de MATLAB?

11.8.2. Conclusiones

El alumno debe explicar, en que medida logró adquirir las competencias propues-
tas en esta práctica. Cuales fueron las principales dificultades que enfrentó y como

Manual de prácticas: Dinámica de Sistemas 207


PRÁCTICA 11. SISTEMA MASA-RESORTE FÍSICO

las solucionó. También puede proponer ideas para mejorar la comprensión de los
temas tratados en la práctica.

Referencias

Dorf, R. C., y Bishop, R. H. (2011). Modern control systems. Pearson.


Golnaraghi, F., y Kuo, B. C. (2010). Automatic control systems. JOHN WILEY &
SONS, INC.
Hibbeler, R. C. (2014). Statics and mechanics of materials (Fourth ed.). Pearson.
Ogata, K. (2010). Modern control engineering (Fifth ed.). Prentice Hall.
Palm III, W. J. (2010). System dynamics (Second ed.). McGraw-Hill.

Manual de prácticas: Dinámica de Sistemas 208


PRÁCTICA 12
SIMULACI ÓN DE UN SISTEMA MASA-RESORTE

12.1. Competencias

El alumno comprende y caracteriza el comportamiento dinámico de los siste-


mas continuos y discretos de segundo orden, a partir del concepto de respues-
ta en el tiempo para diferentes tipos de señales de prueba.

12.2. Introducción

Esta práctica, trata principalmente de la simulación de sistemas masa-resorte. En


su forma más simple, estos sistemas generalmente son de segundo orden. Se calcu-
la los coeficientes de respuesta transitoria, de sistemas de segundo orden continuos
y discretos. También, se gráfica por comandos de MATLAB el lugar geométrico de
las raı́ces de sistemas continuos y sistemas discretos. Se simula en SIMULINK un
sistema masa-resorte. El producto de esta práctica, será la simulación en MATLAB
de un sistema masa-resorte-amortiguador, con el fin de poder observar los efectos
de la respuesta transitoria, a condiciones iniciales, y graficar el lugar geométrico de
las raı́ces del mismo sistema.

209
PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

12.3. Temas y subtemas

Respuesta de sistemas continuos y discretos de segundo orden. Se imple-


menta la simulación un sistema de segundo orden que consiste en una masa sujeta
a un resorte, para después analizar su respuesta a las señales impulso y escalón
unitario. Para lograr estos objetivo de simulación, se hará uso del software MATLAB
y SIMULINK. Se obtienen los lugares geométricos de las raı́ces de los sistemas
dinámicos a través de MATLAB.

Subtemas:

Sistemas Continuos de Segundo Orden.

Sistemas Discretos de Segundo Orden.

Región de estabilidad.

Región de tiempo máximo de asentamiento.

Región de frecuencia máxima de oscilación.

Región de sobrepico máximo.

Tiempo de subida.

Técnica del lugar de las raı́ces.

12.4. Medidas de seguridad e higiene

Como se trata de un software de simulación, las prácticas se deben desarro-


llar en el laboratorio de computo. La seguridad en un laboratorio de computo tiene
que ver con el equipo de computo. Para evitar daño en los computadores, se debe

Manual de prácticas: Dinámica de Sistemas 210


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

evitar introducir bebidas al laboratorio. Los lı́quidos derramados sobre el equipo de


computo seguramente lo dañarán.

Si se va a trabajar en equipos, deben sentarse de tal manera que no se obstruyan


los pasillos. Debe tenerse mucho cuidado al insertar una unidad de memoria flash
USB a un computador; asegúrese que se encuentra libre de virus. Se tiene que
evitar las infecciones en los equipos de computo, para evitar que estos fallen.

12.5. Material y equipo necesario

Es necesario contar con los libros y manuales de consulta que se sugieren en


las referencias bibliográficas de esta práctica (Mathworks, 2015; Ogata, 2010; Do-
gan, 2006; Ogata, 1995). Se requiere la versión 2014 o superior de MATLAB y un
computador con un procesador Intel®, Core™ i3 ó su equivalente, con una memoria
de 2 GB de RAM.

12.6. Metodologı́a

Los sistemas masa-resorte más simples son sistemas de segundo orden. Por es-
ta razón, la metodologı́a tratada en esta práctica se refiere principalmente a sistemas
de segundo orden. A diferencia de la práctica 11, donde se calculan los coeficientes
de respuesta transitoria a sistemas en tiempo continuo, aquı́ se calculan a sistemas
en tiempo discreto. Se simula la respuesta transitoria para sistemas continuos y dis-
cretos en MATLAB y SIMULINK. Se obtiene el lugar geométrico de las raı́ces de los
sistemas discretos y continuos. Finalmente, se aplican todos los temas vistos, en la
simulación de un sistema fı́sico.

Manual de prácticas: Dinámica de Sistemas 211


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

12.6.1. Parámetros de un sistema discreto de segundo orden

Los parámetros de sistemas de segundo orden en tiempo continuo vistos en la


práctica 11 son los mismos que se tratarán en esta práctica. Esto gracias a que
existe un mapeo que relaciona el plano de la transformada de Laplace con el plano
de la transformada z. Esto es, hay una relación directa entre la transformada de
Laplace y la transformada z. Esta equivalencia esta dada por la expresión (12.1).

z = esT (12.1)

Gracias a la equivalencia (12.1), es posible obtener ωn , y ζ , en un sistema de


segundo orden discreto (Dogan, 2006). Para demostrarlo, se parte de un sistema
continuo estándar de segundo orden, mostrado en la función (12.2).
ωn2
G(s) = (12.2)
s2 + 2ζ ωn s + ωn2

Los polos del sistema se encuentran definidos por la fórmula (12.3), donde 0 <
ζ <1
p
s1,2 = −ζ ωn ± jωn 1 − ζ2 (12.3)

se sustituye s usando la equivalencia (12.1) y resulta la expresión (12.4),


p
z = esT = e−ζ ωn T ∠ ± ωn T 1 − ζ2 (12.4)

que se puede escribir como (12.5),

z=r ∠±θ (12.5)

donde la equivalencia de r esta dada por (12.6),

r = e−ζ ωn T ó ζ ωn T = − ln r (12.6)

y la equivalencia de θ esta dada por (12.7).


p
θ = ωn T 1 − ζ2 (12.7)

Manual de prácticas: Dinámica de Sistemas 212


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

Usando las expresiones (12.6) y (12.7) se obtiene (12.8),


ζ − ln r
p =
1 − ζ2 θ
(12.8)
− ln r
ζ =p
(ln r)2 + θ 2
a partir de (12.6) y (12.8) se obtiene (12.9).
1p
ωn = (ln r)2 + θ 2 (12.9)
T

Para mostrar el uso de las fórmulas (12.8) y (12.9) se hará uso del ejemplo 12.1.

Ejemplo 12.1. Un sistema de lazo cerrado discreto con un periodo de tiempo de


muestreo de Ts = 1 s, tiene una función de transferencia descrita por (12.10).
Y (z) 0.368z + 0.264
(z) = 2 (12.10)
U z − z + 0.632
Encontrar la razón de amortiguamiento ζ , la frecuencia natural no amortiguada ωn ,
el tiempo de subida tr , el tiempo pico t p , el sobreimpulso máximo Mp , y el tiempo de
estabilización ts por el criterio del 5 %.

Solución analı́tica. Por la fórmula general cuadrática se obtienen las raı́ces del
denominador de (12.10), resultando en los polos complejos conjugados (12.11), que
se convierten a su forma polar obteniendo su módulo y su ángulo.

z1,2 = 0.5 ± j0.6181 = 0.7950 ∠ ± 0.8906 = r ∠ ± θ (12.11)

Note que θ esta en radianes. Se sustituyen los valores obtenidos en (12.11) en la


fórmula (12.8) con lo que se obtiene el valor de ζ en (12.12),
− ln r − ln 0.7950
ζ =p =p = 0.2495 (12.12)
(ln r)2 + θ 2 (ln 0.7950)2 + 0.89062
luego en (12.9) se sustituye los valores de (12.11) con lo que obtenemos el valor de
ωn en (12.13), considerando a T = Ts .
1p p
ωn = (ln r)2 + θ 2 = (ln 0.7950)2 + 0.89062 = 0.9197 rad/s (12.13)
T
Manual de prácticas: Dinámica de Sistemas 213
PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

Con las fórmulas para obtener los parámetros de un sistema continuo de segun-
do orden, visto en la práctica 11 se completan los parámetros de diseño faltantes.
Para obtener tr primero se obtiene ωd , σ , y β , de acuerdo a las fórmulas (12.14),
p √
ωd = ωn 1 − ζ 2 = 0.9197 1 − 0.24952 = 0.8191 rad/s

σ = ζ ωn = 0.2495 × 0.9197 = 0.2294 rad/s (12.14)


ωd 0.8191
β = tan−1 = tan−1 = 1.2977 rad
σ 0.2294
luego sustituyendo estos valores resulta (12.15),

π −β 3.1416 − 1.2977
tr = = = 2.2512 s (12.15)
ωd 0.8191

después se obtiene t p por (12.16),

π 3.1416
tp = = = 3.8356 s (12.16)
ωd 0.8191

luego se obtiene Mp por (12.17),

Mp = e−(σ /ωd )π = e−(0.2294/0.8191)3.1416 = 0.4452 (12.17)

lo que significa que se tiene un 44.52 % de sobreimpulso máximo. Finalmente se


obtiene ts por medio de (12.18).

3 3
ts = = = 13.0757 s (12.18)
σ 0.2294

12.6.2. Simulación de un sistema de segundo orden en MATLAB

La condición para este tipo sistema es que su respuesta en lazo cerrado sea
subamortiguada i.e., 0 < ζ < 1, y que la función de transferencia del mismo sea
estándar (12.2). También debe ser estable i.e., las raı́ces de los polos del sistema
(i.e., raı́ces del denominador), deben ser negativas lo que implica que se ubican en
el semiplano derecho del plano s.

Manual de prácticas: Dinámica de Sistemas 214


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

La obtención de parámetros de un sistema de segundo orden, en tiempo continuo


y en tiempo discreto se facilita a través de los diferentes comandos de MATLAB. En
esta sección se plantea por medio de ejemplos en tiempo continuo y tiempo discreto
la utilización de esta herramienta para el cálculo de parámetros y simulación de
sistemas de segundo orden estándar.

Ejemplo 12.2. Obtener los parámetros de respuesta transitoria a la entrada


escalón unitario y a la entrada impulso unitario del sistema en tiempo continuo de
segundo orden, descrito por la función de transferencia (12.19).

Y (s) 25
= 2 (12.19)
U(s) s + 4s + 25

Solución en MATLAB. El sistema a solucionar es de segundo orden continuo


estándar, es estable y es subamotiguado. En el Listado 12.1, se muestra el script
que soluciona este ejemplo. La lı́neas a destacar son: lı́nea 4, se obtienen los polos
del sistema (i.e., raı́ces complejas conjugadas del denominador) por el uso del co-
mando “pole(sis)”, cuyo argumento es la estructura que define a un sistema. Lı́nea 5,
se obtiene la parte real positiva del primer polo complejo conjugado (i.e., se cambia
al primer cuadrante para poder obtener β ). Lı́nea 6, se obtiene la parte imaginaria
del primer polo complejo conjugado. La forma de los polos se aprecia en (12.20),

s1,2 = σ ± jωd (12.20)

para obtener el módulo y el ángulo de estos números complejos conjugados se


deben usar las expresiones (12.21).
q
ωd
ωn = σ 2 + ωd2 , β = tan−1 (12.21)
σ

Precisamente en la lı́nea 7, se usa el comando “cart2pol” que convierte números


cartesianos a números polares, obteniendo ωn y β .

Manual de prácticas: Dinámica de Sistemas 215


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

Listado 12.1: Solución en MATLAB del ejemplo 12.2.

1 num = 25; %definición del numerador


2 den = [1 4 25]; %definición del denominador
3 sis = tf(num,den) %definiendo la función de transferencia
4 polos = pole(sis) %polos (raı́ces del denominador)
5 sigma = abs(real(polos(1))) %parte real positiva del 1er. polo complejo
6 Wd = imag(polos(1)) %parte imaginaria del 1er. polo complejo conjugado
7 [Beta,Wn] = cart2pol(sigma,Wd) %el módulo es Wn, el ángulo es Beta
8 Zeta = sigma/Wn %cálculo de zeta
9 Tr = (pi-Beta)/Wd %cálculo del tiempo de subida
10 Tp = pi/Wd %cáculo del tiempo pico
11 Mp = exp(-(sigma/Wd)*pi) %cálculo del sobreimpulso máximo
12 ts = 3/sigma %cálculo del tiempo de estabilización
13 step(sis);grid; %respuesta a la entrada escalón unitario
14 pause;
15 t = atan(sqrt(1-Zeta^2)/Zeta)/Wd %tiempo del máximo sobreimpulso
16 yt_max = Wn*exp(-(Zeta/sqrt(1-Zeta^2))* ... %máximo sobreimpulso
17 atan(sqrt(1-Zeta^2)/Zeta)) %a la entrada impulso unitario
18 impulse(sis);grid %respuesta a la entrada impulso unitario

En las lı́neas 15 y 16 se presentan el tiempo máximo de sobreimpulso y el sobre-


impulso máximo respectivamente, para una entrada impulso unitario. Las fórmulas
que gobiernan estas respuestas se encuentran en (12.22), para el tiempo de sobre-
impulso máximo (Ogata, 2010),
√ 2
1−ζ
tan−1 ζ
t= p (12.22)
ωn 1 − ζ 2
donde 0 < ζ < 1, y en (12.23), para el sobreimpulso máximo
p !
ζ 1 − ζ 2
y(t)máx = ωn exp − p tan−1 (12.23)
1 − ζ2 ζ

Manual de prácticas: Dinámica de Sistemas 216


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

donde 0 < ζ < 1.

En la Figura 12.1, se encuentra la gráfica de la respuesta de la entrada escalón


unitario aplicado al sistema en la lı́nea 13 del Listado 12.1. Se puede apreciar dando
un clic derecho del ratón sobre la señal, de izquierda a derecha el tr = 0.43 s, el
t p = 0.68 s, el Mp = 0.25, (restando la unidad a la amplitud), y por último el ts = 1.5 s.

En la Figura 12.2, se encuentra la gráfica de la respuesta de la entrada impulso


unitario aplicado al sistema en la lı́nea 18 del Listado 12.1. Se puede apreciar dando
un clic derecho del ratón sobre la señal, el tiempo de sobreimpulso máximo t =
0.25 s, y el sobreimpulso máximo y(t)máx = 3.01.
Impulse Response
System: sisResponse
Step 3.5
1.4 Time (seconds): 0.684
Amplitude: 1.25 3
System: sis System: sis
1.2
Time (seconds): 0.432 2.5 Time (seconds): 0.25
Amplitude: 0.999 Amplitude: 3.01
1 2

System: sis
Amplitude

1.5
Amplitude

0.8 Time (seconds): 1.5


Amplitude: 0.946
1
0.6
0.5
0.4
0

0.2 -0.5

0 -1
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3 3.5
Time (seconds) Time (seconds)

Figura 12.1: Respuesta a un escalón Figura 12.2: Respuesta a un impulso


unitario. unitario.

Ejemplo 12.3. Considere la función de transferencia en lazo cerrado discreta


, con un periodo de tiempo de muestreo Ts = 0.1 s. Obtenga los parámetros de
respuesta transitoria a la entrada escalón unitario.

Y (z) 0.1077z + 0.09414


= 2 (12.24)
U(z) z − 1.469z + 0.6703

Solución en MATLAB. El sistema a solucionar es de segundo orden discreto, es

estable y es subamotiguado. En el Listado 12.2, se muestra en un script la solución

Manual de prácticas: Dinámica de Sistemas 217


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

en MATLAB al ejemplo 12.3. Las lı́neas a destacar en este Listado, son: la lı́nea 4,
que con “Ts” como parámetro de entrada, configura una función de transferencia
discreta. La lı́nea 9, debido a que el sistema es discreto se obtiene el valor de ζ por
medio de la expresión (12.8). La lı́nea 10, debido a que el sistema es discreto se
obtiene el valor ωn por medio de la expresión (12.9).

Listado 12.2: Solución en MATLAB del ejemplo 12.3.

1 Ts = 0.1; %periodo de tiempo de muestreo


2 num = [0.1077 0.09414]; %numerador del sistema discreto
3 den = [1 -1.469 0.6703]; %denominador del sistema discreto
4 sis = tf(num,den,Ts); %definición del sistema
5 polos = pole(sis) %polos del sistema
6 x = real(polos(1)) %parte real del 1er. polo complejo conjugado
7 y = imag(polos(1)) %parte imaginaria del polo complejo conjugado
8 [th,ro] = cart2pol(x,y) %módulo y angulo del 1er. polo
9 Zeta = -log(ro)/sqrt(log(ro)^2 + th^2) %cálculo de zeta
10 Wn = (1/Ts)*sqrt(log(ro)^2 + th^2) %cálculo de Wn
11 Wd = Wn*sqrt(1-Zeta^2) %cálculo de Wd
12 sigma = Zeta*Wn %cálculo de sigma
13 Beta = atan(Wd/(sigma)) %cálculo del ángulo beta
14 Tr = (pi-Beta)/Wd %cálculo del tiempo de subida
15 Tp = pi/Wd %cáculo del tiempo pico
16 Mp = exp(-(sigma/Wd)*pi) %cálculo del sobreimpulso máximo
17 ts = 3/sigma %cálculo del tiempo de estabilización
18 step(sis,3);grid; %gráfica de respuesta al escalón unitario

En la Figura 12.3, se observa la respuesta de la señal de prueba escalón unitario


aplicado a la función de transferencia (12.24), del ejemplo 12.3 y generada por el
Listado 12.2. En la Figura se muestran los valores aproximados de los parámetro
generados por el Listado.

Manual de prácticas: Dinámica de Sistemas 218


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

System:
StepsisResponse
1.4 Time (seconds): 0.7
Mp Amplitude: 1.25
System: sis
1.2
Time (seconds): 0.5 tp
Amplitude: 1
ts
1 tr
System: sis

Amplitude
0.8 Time (seconds): 1.5
Amplitude: 0.949
0.6

0.4

0.2

0
0 0.5 1 1.5 2 2.5 3
Time (seconds)

Figura 12.3: Respuesta al escalón unitario del ejemplo 12.3.

12.6.3. Simulación de un sistema de segundo orden en SIMU-


LINK

En esta sección se modela en SIMULINK un sistema de segundo orden continuo


el cual se expone en el siguiente ejemplo.

Ejemplo 12.4. Se trata de un sistema masa-resorte-amortiguador definido por


la ecuación diferencial (12.25),

d 2 x(t) dx(t)
f (t) = m 2
+b + kx(t) (12.25)
dt dt

donde m = 0.17 Kg, b = 0.01 N/m/s, y k = 8.67 N/m. Estos valores hacen
alusión al sistema masa-resorte usado en la práctica 11, donde la constante de
amortiguación b se corresponde a la fricción viscosa del aire.

Solución en SIMULINK. Suponiendo que la simulación da inicio cuando se ex-


tiende hacia abajo el resorte 5 cm (i.e., ∆E = 0.05 m) y en t0 = 0 se suelta, lo que
significa que se tendrán condiciones iniciales de x0 = −0.05 m, donde no habrá la

Manual de prácticas: Dinámica de Sistemas 219


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

aplicación de fuerza al sistema (i.e., f (t) = 0). Tomando en cuenta estas condiciones
iniciales la ecuación (12.25) se re-escribe como (12.26),

d 2 x(t) b dx(t) k
= − − x(t) (12.26)
dt 2 m dt m

donde el primer miembro de la ecuación es el nodo de mayor orden, al cual deben


converger todas las aristas de lazo cerrado en el diagrama de flujo de señal, según
se aprecia en la Figura 12.4 de SIMULINK.

x0 = -0.05
d2x(t)/dt2 dx(t)/dt x(t)
1 1
s s
int1 Int2 Scope

-b/m

-a1
-k/m

-a2

Figura 12.4: Simulación del sistema masa-resorte-amortiguados con x0 = −0.05.

El segundo integrador (i.e., el que tiene por salida x(t)), se debe configurar ha-
ciendo doble clic sobre el icono del bloque; luego se cambia la condición inicial a
x0 = −0.05, se da clic en el botón OK para guardar el cambio. Note que los valores
de las variables m, b, y k, deben estar cargados en el Workspace de MATLAB, de lo
contrario se tendrá un error.

Al ejecutar el modelo de la Figura 12.4, se puede dar doble clic en el osciloscopio


y se podrá apreciar las señales de respuesta a la condición inicial x0 . En la Figura
12.5.a, se observan las oscilaciones del sistema masa-resorte-amortiguador en los
primeros diez segundos. En la Figura 12.4.b, se observa el fin de las oscilaciones
después de transcurridos al rededor de dos minutos.

Manual de prácticas: Dinámica de Sistemas 220


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

(a) (b)

Figura 12.5: Oscilaciones del sistema masa-resorte-amortiguador.

12.6.4. Lugar geométrico de las raı́ces

Un Sistema Dinámico se puede representar por funciones de transferencia en


el dominio de Laplace o en el dominio de z. Las funciones de transferencia están
representadas por polinomios tanto en el numerador como en el denominador. A las
raı́ces del polinomio del numerador se le llaman ceros; a las raı́ces del polinomio del
denominador, se le llaman polos.

Al variar la ganancia de un sistema en lazo cerrado las raı́ces de los ceros y los
polos también variarán. El lugar geométrico de las raı́ces: se refiere a la gráfica de
cómo los ceros y polos se van desplazando en el plano de Laplace, y en el plano z,
a medida que la ganancia K del sistema en lazo cerrado crece desde K → 0 hasta
k → ∞.

El lugar geométrico de las raı́ces determina la estabilidad y la inestabilidad de


los sistemas en lazo cerrado. En la Figura 12.6 se muestran los planos s y z. En
el plano s un sistema es estable cuando las raı́ces tanto de ceros como polos se
ubican en el semiplano izquierdo, i.e., todas las raı́ces deben ser negativas. En el
plano z para que un sistema sea estable todas las raı́ces deben ubicarse dentro del
cı́rculo unitario.

En la Figura 12.6, también se relaciona las regiones de estabilidad: el área dentro


del cı́rculo unitario en el plano z, equivale a el área rectangular encerrada por flechas,

Manual de prácticas: Dinámica de Sistemas 221


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

con la diferencia que el área rectangular se extiende hasta −∞ (Madhusudan, 2015;


Dogan, 2006). Lo anterior pone de manifiesto que determinar la estabilidad en el
plano z es menos incierto que en el plano s.

Plano-s Plano-z

Figura 12.6: Relación entre el plano s y el plano z.

Para ilustrar cómo obtener el lugar geométrico de las raı́ces, tanto en tiempo
continuo como en tiempo discreto, se resolverán dos ejemplos a través de comandos
de MATLAB.

Ejemplo 12.5. Obtenga el lugar geométrico de las raı́ces del sistema en lazo ce-
rrado continuo mostrado en la Figura 12.7. También obtenga los lugares geométricos
de la constante ζ , y ωn . Se asume que el valor de la ganancia K es no negativo.

K (s+1)
R(s) +
2 Y(s)
– (s +0.4 s+0.53)

Figura 12.7: Sistema en lazo cerrado continuo considerado en el ejemplo 12.5.

Solución en MATLAB. En el Listado 12.3, se tiene el código que obtiene el lugar


geométrico de las raı́ces del sistema del ejemplo 12.5. Las lı́neas a destacar en este
script son: la lı́nea 5, que define las ganancias que se usarán para obtener las raı́ces

Manual de prácticas: Dinámica de Sistemas 222


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

correspondientes a cada valor del vector. Si no se define un vector “K” especı́fico


entonces el comando de la lı́nea 6, automáticamente definirá los valores de “K”.
la lı́nea 6, contiene el comando “rlocus(sis,K,’xr’)” que obtiene el lugar geométrico
de las raı́ces. El primer parámetro se refiere a la estructura que define el sistema.
El segundo parámetro se refiere a la ganancia “K”, que si se omite, por defecto
variará desde cero a infinito (i.e., tomará un valor significativo tal que logre una
buena gráfica). El tercer parámetro se refiere a la forma en que se indican los polos;
en este caso los polos se indican con una cruz roja. Por defecto los polos se indican
con una lı́nea continua. La lı́nea 7, grafica la variación de ζ y ωn a medida que K
varia.

Listado 12.3: Solución en MATLAB del ejemplo 12.5.

1 ceros = -1; %raı́z del cero


2 polos = [-0.2+0.7*1i, -0.2-0.7*1i]; %raı́ces de los polos
3 k = 1; %ganancia inicial del sistema
4 sis = zpk(ceros,polos,k) %definicisión del sistema tipo cero-polo
5 K = 0:0.5:5; %vector de las ganancias a graficar
6 rlocus(sis,K,’xr’); %grafica del lugar geométrico de las raı́ces
7 grid %gráfica de zeta y Wn
8 axis([-4 0 -2 2]) %definición del área a graficar

En la Figura 12.8, se muestra la gráfica del lugar geométrico de las raı́ces gene-
rada por el Listado 12.3. En Dinámica de Sistemas los polos usualmente se repre-
sentan con una cruz y los ceros con un pequeño cı́rculo. A los polos se les llaman
puntos de origen (i.e., cuando K → 0). A los ceros se les llaman puntos termina-
les (i.e., cuando K → ∞). En la gráfica se aprecia cómo se desplazan los polos a
medida que K aumenta y tienden a llagar al cero que se encuentra en −1, aunque
también van hasta −∞ por la ası́ntota que está sobre el eje real.

Otra cosa que se puede notar en el lugar geométrico de las raı́ces de la Figura

Manual de prácticas: Dinámica de Sistemas 223


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

Lugar de raíces de Y(s)/R(s) = K(s+1)/(s²+0.4s+0.53)


2
0.86 0.76 0.64 0.5 0.34 0.16

1.5 0.94

)
-1
1

0.985

Imaginary Axis (seconds


0.5

4 3.5 3 2.5 2 1.5 1 0.5


0

-0.5
0.985

-1

-1.5 0.94

0.86 0.76 0.64 0.5 0.34 0.16


-2
-4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0
-1
Real Axis (seconds )

Figura 12.8: Lugar geométrico de las raı́ces del ejemplo 12.5.

12.8, es que todas las raı́ces se encuentran en el semiplano izquierdo del plano s,
por lo que el sistema es estable. Los cı́rculos concéntricos se refieren a las diferentes
ωn . En este caso ωn crece en pasos de 0.5 a medida K aumenta. Las lı́neas rectas
que parten del origen, se refieren a los diferentes valores de ζ que en este caso
crecen a medida que K crece.

Otro concepto importante en el lugar geométrico de las raı́ces es la identificación


de los polos dominantes de un sistema. Estos polos son los que se encuentran
más cerca del eje imaginario. Debido a esto, los polos dominantes gobiernan el
comportamiento de la respuesta transitoria del sistema. En el caso particular de
este ejemplo, los polos dominantes son: s1,2 = −0.2 ± j0.7.

Ejemplo 12.6. Obtenga el lugar geométrico de las raı́ces del sistema en lazo
cerrado discreto mostrado en la Figura 12.9. También obtenga los lugares geométri-
cos de la constante ζ , y ωn . Se asume que el valor de la ganancia K es no negativo
y que Ts = 0.1 s.

Solución en MATLAB. En el Listado 12.4, se tiene el código que obtiene el lugar


geométrico de las raı́ces del sistema del ejemplo 12.6. Las lı́neas a destacar en

Manual de prácticas: Dinámica de Sistemas 224


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

K ( z +0.5)
R(z) +
2 Y(z)
– ( z −0.2 z+0.26)

Figura 12.9: Sistema en lazo cerrado discreto considerado en el ejemplo 12.6.

este script son: la lı́nea 5, que define la estructura de la función de transferencia del
tipo cero-polo. La lı́nea 6, que genera el lugar geométrico de las raı́ces del sistema
discreto. La última lı́nea, gráfica los lugares geométricos de ζ , y ωn . En este script
no se definió un vector de ganancias K, ni se personalizó el sı́mbolo que representa
a los polos; el comando “rlocus” caracterizó la gráfica con sus opciones por defecto.

Listado 12.4: Solución en MATLAB del ejemplo 12.6.

1 Ts = 0.1; %periodo del tiempo de muestreo


2 ceros = -0.5; %raı́z del cero
3 polos = [0.1+0.5*1i, 0.1-0.5*1i]; %raı́ces de los polos complejos conju.
4 k = 1; %ganancia inicial del sistema
5 sis = zpk(ceros,polos,k,Ts) %definición de la función cero-polo
6 rlocus(sis); %obtención del lugar geométrico de las raı́ces
7 grid %gráfica de zeta y Wn

En la Figura 12.10, se muestra el lugar geométrico de las raı́ces del sistema


discreto del ejemplo 12.6. En este caso los polos se representan con una lı́nea
continua. En el caso discreto los polos que salen del cı́rculo unitario hacen que el
sistema se vuelva inestable. Por lo tanto es posible apreciar que este sistema en
particular, es parcialmente estable. Esto se debe a que en el intervalo de ganancia
1.47 < K < 2.92 los lugares geométricos de los polos salen del cı́rculo unitario. Los
valores de K crı́ticos que definen el intervalo de inestabilidad se obtienen dando un
clic izquierdo del ratón donde el lugar geométrico de las raı́ces intercepta el cı́rculo
unitario (como se observa en la gráfica).

Manual de prácticas: Dinámica de Sistemas 225


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

System: sis
Gain: 1.47
Pole: -0.634 + 0.769i
Lugar de 0.00136
Damping: las raíces de Y(z)/R(z) = K(z+0.5)/(z²-0.2z+0.26)
1 Overshoot (%): 99.6
0.5 π/T
Frequency (rad/s): 22.6 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
System: sis 0.4 0.2 π/T
Gain: 2.92 0.5
0.4 Pole: -1 0.6
0.7
Damping:
0.9 π/T -0.00066 0.8 0.1 π/T
Imaginary Axis 0.2 Overshoot (%): 100 0.9
Frequency (rad/s): 31.4
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.5 -1 -0.5 0 0.5 1
Real Axis

Figura 12.10: Lugar geométrico de las raı́ces del ejemplo 12.6.

En la Figura 12.10, los lugares geométricos de ζ , son los elipses que parten de
+1 en el eje real (los valores de ζ se muestran de manera vertical descendente).
Los lugares geométricos de ωn , son las lı́neas verticales marcadas con la frecuencia
en términos del inverso del periodo de muestreo π/T .

12.6.5. Ejemplo de un sistema discreto de segundo orden

Se propone la digitalización de un sistema masa-resorte como el implementa-


do en la práctica 11, donde se considero la fricción viscosa del aire b, como un
efecto amortiguador. La función de transferencia que describe al sistema resultó ser
(11.13), que se reescribe aquı́ en (12.27),
" #
k
X(s) 1 m
= (12.27)
F(s) k s2 + mb s + k
m

donde m = 0.17 Kg, b = 0.01 N/m/s, y k = 8.67 N/m. En la Figura 12.11, se ob-
serva que para digitalizar el sistema se conectó un sensor detector de movimiento

Manual de prácticas: Dinámica de Sistemas 226


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

discreto. Considere una frecuencia de muestreo Ts veinte veces mayor que la fre-
cuencia angular no amortiguada ωn . Use el método de diseño directo para efectuar
la conversión del tiempo continuo a tiempo discreto. Obtenga los parámetros de la
respuesta transitoria del sistema y grafique el lugar geométrico de las raı́ces

Δx

Sensor monitor
conectado a
interface digital

Figura 12.11: Sistema masa-resorte digitalizado

Solución en MATLAB. En el Listado 12.5, se muestra la solución en un script de


MATLAB para el sistema masa-resorte simulado en esta sección. En las primeras
cuatro lı́neas, se define la función de transferencia del sistema. De la lı́nea 5 a la 9,
se obtienen los parámetros base ωn , y ζ , necesarios para calcular los coeficientes
de la respuesta transitoria. En la lı́nea 10, se cumple con el requerimiento de veinte
veces mayor la frecuencia de muestreo “Ws” que la frecuencia “Wn”. La frecuencia
de Nyquist estipula que al menos ωs > 2ωn ; se recomienda probar con frecuencias
alrededor de 2ωn para que se pueda experimentar el aliasing de la señal (i.e., la
introducción de distorsión o error).

Listado 12.5: Solución en MATLAB de un sistema discreto de segundo orden.

1 m = 0.17; b = 0.01; k = 8.67; %valores de masa, fricción del aire


2 num = 1/m; %y constante del resorte; numerador del sistema
3 den = [1 b/m k/m]; %denominador del sistema
4 sis1 = tf(num,den); %definición de la función de transferencia

Manual de prácticas: Dinámica de Sistemas 227


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

5 polos = pole(sis1); %polos (raı́ces del denominador)


6 sigma = abs(real(polos(1))); %parte real positiva del 1er. polo
7 Wd = imag(polos(1)); %parte imaginaria del 1er. polo complejo
8 [Beta,Wn] = cart2pol(sigma,Wd); %el módulo es Wn, el ángulo es Beta
9 Zeta = sigma/Wn %cálculo de zeta
10 Ws = 20*Wn; %frecuencia angular de muesreo veinte veces mayor que Wn
11 Ts = 2*pi/Ws %periodo del tiempo de muestreo
12 sis2 = c2d(sis1,Ts) %conversión del sistema de continuo a digital
13 Tr = (pi-Beta)/Wd %cálculo del tiempo de subida
14 Tp = pi/Wd %cáculo del tiempo pico
15 Mp = exp(-(sigma/Wd)*pi) %cálculo del sobreimpulso máximo
16 ts = 3/sigma %cálculo del tiempo de estabilización
17 [A,B,C,D] = tf2ss(sis2.num{1},sis2.den{1}); %conversión de función de
18 sis3 = ss(A,B,C,D,Ts); %transferencia a espacio estado
19 subplot(1,3,1);step(sis2,2); %gráfica de escalón y condición inicial
20 subplot(1,3,2);initial(sis3,[-0.025/0.0056 -00.025/.0056],2); % x0
21 subplot(1,3,3);rlocus(sis2);grid;axis([-1.5 1 -1.1 1.1]); %raı́ces

De la lı́nea 11 a la 16 se obtienen los coeficientes de respuesta transitoria. De-


bido a que el sistema masa-resorte simulado no es normal, i.e., no tiene una forma
estándar (11.1), el resultado del coeficiente “Mp” parecerı́a ser incorrecto. En este
caso la expresión a usar debe ser (12.28),

x(t p ) − x(∞) (0.229 − 0.114)


Mp % = × 100 % = × 100 % = 100.88 % (12.28)
x(∞) 0.114

esto significa que si la deformación x del resorte es 0.114 cuando t → ∞ entonces


Mp = 0.229 lo que implica que el sobreimpulso fue del 100.88 % lo cual es correcto.
De la lı́nea 17 a la 21, se convierte primero al espacio estado (para poder graficar
la respuesta a condición inicial), luego se grafica la respuesta al escalón unitario,
después la respuesta a la condición inicial x0 = −0.05, y por último se obtiene el

Manual de prácticas: Dinámica de Sistemas 228


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

lugar geométrico de las raı́ces.

En la Figura 12.12, se observan las gráficas generadas por el Listado 12.5. De


izquierda a derecha, primero se tiene la respuesta transitoria donde se pueden ob-
servar los valores de coeficientes a la respuesta transitoria. Los valores de la gráfica
se pueden cotejar con los que arroja el código del Listado. La gráfica del medio,
muestra la respuesta a la condición inicial x0 = −0.05, que se puede comparar a
la gráfica de la Figura 12.5.a. Al extremo derecho se muestra el lugar geométrico
de las raı́ces, donde se observa que los polos complejos conjugados en los puntos
iniciales, se encuentran casi sobre el cı́rculo unitario. Esto significa que el sistema
es crı́ticamente estable, que es tı́pico de los sistemas oscilantes.
System: sis2
Time (seconds): 0.44
Step Response Response to Initial Conditions Root Locus
0.25 0.06
Amplitude: 0.229
1
0.5 π/T
0.4 π/T
0.6 π/T
0.8 0.7 π/T 0.30.1
π/T
0.04 0.2
0.2 0.3
0.6
0.8 π/T 0.4 0.2 π/T
0.5
0.02 0.4 0.6
0.7
0.9 π/T 0.8 0.1 π/T

Imaginary Axis
System: sis2 0.15 0.2 0.9
Amplitude

Amplitude

Time (seconds): 0.22


Amplitude: 0.114 1 π/T
0 0
1 π/T
0.1 -0.2
0.9 π/T 0.1 π/T
-0.02 -0.4
0.8 π/T 0.2 π/T
-0.6
0.05
-0.04 0.7 π/T 0.3 π/T
-0.8
0.4 π/T
0.6 π/T
0.5 π/T
-1
0 -0.06
0 0.5 1 1.5 2 0 0.5 1 1.5 2 -1.5 -1 -0.5 0 0.5 1
Time (seconds) Time (seconds) Real Axis

Figura 12.12: Diferentes respuestas de un sistema masa-resorte discreto.

12.7. Sugerencias didácticas

Con el fin de practicar la obtención de parámetros de sistemas de segundo orden


discretos y continuos, ası́ como el lugar geométrico de las raı́ces de los mismos, se
sugiere la solución a los siguientes ejercicios.

Manual de prácticas: Dinámica de Sistemas 229


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

12.7.1. Ejercicios

12.1 Obtenga los parámetros ζ , ωn y los coeficientes de la respuesta transitoria de


la función de transferencia en lazo cerrado definida por (12.29).
Y (s) 2
= 2 (12.29)
U(s) s + s + 0.5

12.2 Obtenga los parámetros ζ , ωn y los coeficientes de la respuesta transitoria


de la función de transferencia en lazo cerrado definida por (12.30), cuando
Ts = 0.1.
Y (z) 0.0198(z + 0.9933)
= 2 (12.30)
U(z) z − 1.941z + 0.9802

12.3 Obtenga el lugar geométrico de las raı́ces de la función de transferencia en el


tiempo continuo (12.31).
Y (s) s
= 3 2
(12.31)
U(s) s + 4s + 9s + 10

12.4 Obtenga el lugar geométrico de las raı́ces de la función de transferencia en el


tiempo discreto (12.32), cuando Ts = 0.05.
Y (z) 2z
= 3 2
(12.32)
U(z) z + 0.1z − 0.07z + 0.585

12.7.2. Solución a ejercicios

En esta sección se muestra el código de los Listados 12.6-12.9, que darán solu-
ción a los ejercicios propuestos en la sección anterior. Se recomienda su implemen-
tación para observar los resultados.

Manual de prácticas: Dinámica de Sistemas 230


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

Listado 12.6: Solución al ejercicio 12.1.

1 num = 2; %numerador del sistema


2 den = [1 1 0.5]; %denominador del sistema
3 sis = tf(num,den) %definición de la función de transferencia
4 polos = pole(sis) %polos (raı́ces del denominador)
5 sigma = abs(real(polos(1))) %parte real positiva del 1er. polo
6 Wd = imag(polos(1)) %parte imaginaria del 1er. polo complejo
7 [Beta,Wn] = cart2pol(sigma,Wd) %el módulo es Wn, el ángulo es Beta
8 Zeta = sigma/Wn %cálculo de zeta
9 Tr = (pi-Beta)/Wd %cálculo del tiempo de subida
10 Tp = pi/Wd %cáculo del tiempo pico
11 Mp = exp(-(sigma/Wd)*pi) %cálculo del sobreimpulso máximo
12 ts = 3/sigma %cálculo del tiempo de estabilización
13 [y,t]=step(sis,14); %debido a que el sistema no es estándar se debe
14 y_tp = max(y); %calcular el % de Mp; aquı́ se calcula y(tp) salida pico
15 t_fin = length(t); %tiempo final cuando t -> infinito
16 y_fin = y(t_fin); %calculo de y(inf) cuando el tiempo t -> infinito
17 Mp_porciento = ((y_tp-y_fin)/y_fin)*100 %cálculo del % de Mp
18 step(sis,14);grid %gráfica de la respuesta al escalón unitario

Listado 12.7: Solución al ejercicio 12.2.

1 Ts = 0.1; %periodo del tiempo de muestreo


2 num = [0.0198 0.0197]; %definición del numerador del sistema
3 den = [1 -1.941 0.9802]; %definición del denominador
4 sis = tf(num,den,Ts) %definición de la función de transferencia
5 polos = pole(sis) %polos del sistema
6 x = real(polos(1)) %parte real del 1er. polo complejo conjugado
7 y = imag(polos(1)) %parte imaginaria del polo complejo conjugado

Manual de prácticas: Dinámica de Sistemas 231


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

8 [th,ro] = cart2pol(x,y) %módulo y ángulo del 1er. polo


9 Zeta = -log(ro)/sqrt(log(ro)^2 + th^2) %cálculo de zeta
10 Wn = (1/Ts)*sqrt(log(ro)^2 + th^2) %cálculo de Wn
11 Wd = Wn*sqrt(1-Zeta^2) %cálculo de Wd
12 sigma = Zeta*Wn %cálculo de sigma
13 Beta = atan(Wd/(sigma)) %cálculo del ángulo beta
14 Tr = (pi-Beta)/Wd %cálculo del tiempo de subida
15 Tp = pi/Wd %cáculo del tiempo pico
16 Mp = exp(-(sigma/Wd)*pi) %cálculo del sobreimpulso máximo
17 ts = 3/sigma %cálculo del tiempo de estabilización
18 step(sis,0:Ts:ts);grid; %gráfica de respuesta al escalón unitario

Listado 12.8: Solución al ejercicio 12.3.

1 num = [1 0]; %definición de numerador


2 den = [1 4 9 10]; %definición del denominador
3 sis = tf(num,den) %estructura de la función de transferencia
4 rlocus(sis); %gráfica del lugar geométrico de las raı́ces
5 grid %gráfica del lugar geométrico de zeta y Wn

Listado 12.9: Solución al ejercicio 12.4.

1 Ts = 0.05; %periodo del tiempo de muestreo


2 num = [2 0]; %definición del numerador del sistema
3 den = [1 0.1 -0.07 0.585]; %denominador del sistema
4 sis = tf(num,den,Ts) %estructura de la función de transferencia
5 rlocus(sis) %gráfica del lugar geométrico de las raı́ces
6 grid %gráfica del lugar geométrico de zeta y Wn
7 axis([-1.1 1.1 -1.3 1.3]) %delimitación de la extensión de los ejes

Manual de prácticas: Dinámica de Sistemas 232


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

12.7.3. Problema propuesto

En el sistema mostrado en la Figura 12.13, los valores numéricos para las cons-
tantes involucradas son como siguen: m = 1 Kg, b = 0.2 N/m/s, y k = 10 N/m. La
masa es desplazada 0.05 m (i.e., x0 = −0.05) y liberada sin velocidad inicial (i.e.,
ẋ0 = 0). Use un script de MATLAB para calcular la frecuencia que se observa en
la vibración (i.e., ωd ). También encuentre la amplitud de x(t) cinco ciclos después.
El desplazamiento de x(t) se mide a partir de la posición de equilibrio del sistema
(Ogata, 2010). La solución para x(t) esta dada por (12.33),

x(t) = xo e−ζ ωnt (12.33)

donde t = nT , y n es el número de ciclos, T esta dada por T = 2π/ωd . Finalmente,


a partir de la función de transferencia de este sistema, grafique el comportamiento
del sistema con la condición inicial x0 (use el comando “initial”); también grafique el
lugar geométrico de las raı́ces.

k b

Figura 12.13: Sistema masa-resorte-amortiguador propuesto.

12.8. Reporte del alumno

Se sugiere, después de resolver el problema propuesto en la sección 12.7.3 en


un script, entregarlo al instructor. El nombre del archivo debe tener extensión .m. La

Manual de prácticas: Dinámica de Sistemas 233


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

discusión de resultados y conclusiones, se debe entregar en un procesador de texto


como el Microsoft Word®, el Libre Office®, u otro similar.

12.8.1. Discusión de resultados

Como ideas de discusión para el problema propuesto, se sugiere la respuesta a


las siguientes preguntas:

La función de transferencia del problema propuesto en la sección 12.7.3, ¿Tie-


ne una forma estándar o normal?

La solución para x(t) de la ecuación (12.33), ¿Es congruente con la gráfica de


la condición inicial x0 ?

De aplicar un escalón unitario al sistema del problema propuesto, ¿Qué dife-


rencia habrı́a con la gráfica de la condición inicial x0 ?

Según la gráfica del lugar geométrico de las raı́ces ¿El sistema es estable o
inestable?

12.8.2. Conclusiones

El alumno debe explicar, en que medida logró adquirir las competencias propues-
tas en esta práctica. Cuales fueron las principales dificultades que enfrentó y como
las solucionó. También puede proponer ideas para mejorar la comprensión de los
temas tratados en la práctica.

Manual de prácticas: Dinámica de Sistemas 234


PRÁCTICA 12. SIMULACIÓN DE UN SISTEMA MASA-RESORTE

Referencias

Dogan, I. (2006). Microcontroller based applied digital control. John Wiley & Sons
Ltd.
Madhusudan, H. (2015). Digital control applications : Illustrated with matlab®. CRC
Press, Taylor & Francis Group.
Mathworks, I. S. (2015). Simulink: User’s guide. The MathWorks, Inc.
Ogata, K. (1995). Discrete-time control systems (Vol. 8). Prentice-Hall Englewood
Cliffs, NJ.
Ogata, K. (2010). Modern control engineering (Fifth ed.). Prentice Hall.

Manual de prácticas: Dinámica de Sistemas 235


PRÁCTICA 13
AN ÁLISIS DE BODE PARA SISTEMAS DE TIEMPO
CONTINUOS

13.1. Competencias

El alumno diseña las gráficas de Bode a través de un software de simulación


como el MATLAB.

El alumno analiza la respuesta en la frecuencia de sistemas lineales e inva-


riantes en tiempo para el diseño de controladores.

13.2. Introducción

Esta práctica, trata sobre el análisis y simulación de sistemas de tiempo con-


tinuo; para determinar su estabilidad a través de la metodologı́a del diagrama de
Bode. Para ello se establece en que consiste la metodologı́a del análisis de la res-
puesta a la frecuencia en sistemas lineales en tiempo continuo. Por medio de un
ejemplo práctico se explica como construir un diagrama de Bode. Se explica co-
mo determinar la estabilidad absoluta a través del diagrama de Bode. Se ilustra a
través de la simulación de un sistema de control en lazo cerrado como determinar

236
PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

la estabilidad por el análisis del diagrama de Bode. El producto de esta práctica,


será la simulación en MATLAB de un sistema de control en lazo cerrado para poder
determinar la estabilidad absoluta y relativa a través del análisis del diagrama de
Bode.

13.3. Temas y subtemas

Análisis en la frecuencia de sistemas lineales invariantes en tiempo conti-


nuo. Por el uso de la función de transferencia de un Sistema Dinámico, y con los
comandos apropiados de MATLAB, se diseña un script que despliega la gráfica de
Bode. Con esta gráfica se determina la estabilidad de un sistema.

Subtemas:

Análisis por el diagrama de Bode.

Gráficas de magnitud y de fase.

Margen de fase y ganancia.

Frecuencias de cruce ganancia y fase.

13.4. Medidas de seguridad e higiene

Como se trata de un software de simulación, las prácticas se deben desarro-


llar en el laboratorio de computo. La seguridad en un laboratorio de computo tiene
que ver con el equipo de computo. Para evitar daño en los computadores, se debe
evitar introducir bebidas al laboratorio. Los lı́quidos derramados sobre el equipo de
computo seguramente lo dañarán.

Manual de prácticas: Dinámica de Sistemas 237


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

Si se va a trabajar en equipos, deben sentarse de tal manera que no se obstruyan


los pasillos. Debe tenerse mucho cuidado al insertar una unidad de memoria flash
USB a un computador; asegúrese que se encuentra libre de virus. Se tiene que
evitar las infecciones en los equipos de computo, para evitar que estos fallen.

13.5. Material y equipo necesario

Es necesario contar con los libros y manuales de consulta que se sugieren en las
referencias bibliográficas de esta práctica (Ogata, 2010; Dorf y Bishop, 2011; Houpis
y Sheldon, 2014; Ogata, 2004; Kuo, 1996). Se requiere la versión 2014 o superior
de MATLAB y un computador con un procesador Intel®, Core™ i3 ó su equivalente,
con una memoria de 2 GB de RAM.

13.6. Metodologı́a

Primeramente, se explica que es el análisis en la frecuencia de sistemas lineales,


y cuáles son los métodos más comunes usados en esta metodologı́a. Después,
se explica como construir un diagrama de Bode con un ejemplo práctico. Luego,
se explica el concepto de estabilidad absoluta en el análisis de la respuesta a la
frecuencia en el diagrama de Bode. Finalmente, se hace el análisis de estabilidad a
través del diagrama de Bode de un sistema fı́sico.

13.6.1. Análisis en la frecuencia de sistemas lineales

El término “análisis en la frecuencia”, significa la respuesta en estado estable


de un sistema a una entrada de señal senoidal. La ventaja de esta metodologı́a es

Manual de prácticas: Dinámica de Sistemas 238


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

que las pruebas de respuesta a la frecuencia pueden llevarse a cabo por el uso
de generadores de onda de señal senoidal, y de medidores de precisión como los
osciloscopios.

En prácticas pasadas se ha hecho el análisis de Sistemas Dinámicos en base a


las caracterı́sticas de la respuesta transitoria a señales de prueba. Para ello, el lugar
geométrico de las raı́ces ha resultado una herramienta muy valiosa, en el análisis
de los parámetros de respuesta transitoria, y en el análisis de estabilidad.

Además de las herramientas de tiempo continuo existen otras en el dominio de


la frecuencia para el análisis de estabilidad (principalmente). En este enfoque los
parámetros y coeficientes de la respuesta transitoria solo se perciben indirectamen-
te. Entre los métodos usados en el dominio de la frecuencia tenemos el método de
los diagramas de Bode y el de los diagramas de Nyquist.

Los diagramas de Bode consisten en gráficas simi-logarı́tmicas de la frecuencia


angular contra la potencia de salida del sistema. Son fáciles de visualizar e inter-
pretar; revelan la eficacia del sistema cuando se le somete a un ciclo de trabajo
alto (i.e, repeticiones rápidas de una operación). El diagrama de Bode determina la
estabilidad absoluta del sistema, pero no da mucho detalle de la estabilidad relativa.

El diagrama de Nyquist se basa en la gráfica del plano s, y alternativamente utiliza


coordenadas polares, donde la ganancia de la función de transferencia representa la
coordenada radial, mientras que la fase de la función de transferencia la coordenada
angular. El diagrama de Nyquist es útil para determinar tanto la estabilidad absoluta
como la relativa. Es un poco más difı́cil de interpretar.

En esta práctica, se utiliza para el análisis de estabilidad el más básico de los


dos enfoques, que es: el método de Bode (Ogata, 2010; Kuo, 1996).

Manual de prácticas: Dinámica de Sistemas 239


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

13.6.2. Diagrama de Bode

La reacción de un Sistema Dinámico ante una entrada de señal senoidal, gene-


ralmente produce un desfasamiento del margen de fase con respecto a la señal de
entrada. En las Figuras 13.1 y 13.2 se representa este efecto.
Respuesta de sistema M(t) a entrada senoidal
1

amplitud de señales
0.5
R(s) M(s) Y(s) 0
entrada r(t)
-0.5
salida y(t)
-1
0 2 4 6 8 10
Figura 13.1: Sistema Dinámico con tiempo (seg)

función de transferencia M(s).


Figura 13.2: Respuesta de M(t) a senoidal.

En términos matemáticos, una señal de entrada senoidal (13.1), es una señal


compuesta,
r(t) = R sen ω0t (13.1)

donde R es la amplitud y ω0 es la frecuencia de la señal. La salida y(t) en estado


estable del sistema, será senoidal con la misma frecuencia ω0 pero posiblemente
con diferente amplitud y fase como se establece en (13.2), (ver Figura 13.2)

y(t) = Y sen (ω0t + φ ) (13.2)

donde Y es la amplitud de la onda senoidal de salida, y φ , es el desfasamiento en


grados o radianes.

Si se considera un sistema en función de la Laplace M(s) (ver Figura 13.1); en-


tonces las salida y entrada se expresan como en la ecuación (13.3).

Y (s) = M(s)R(s) (13.3)

Para el estado senoidal permanente (i.e., dominio de la frecuencia), se remplaza s


por jω lo que convierte (13.3) en (13.4),

Y ( jω) = M( jω)R( jω) (13.4)

Manual de prácticas: Dinámica de Sistemas 240


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

esta ecuación nos lleva a la relación de magnitud entre la entrada y la salida, mos-
trada en (13.5),
|Y ( jω)| = |M( jω)||R( jω)| (13.5)

y a la relación de fase, mostrada en (13.6),

∠Y ( jω) = ∠M( jω) + ∠R( jω) (13.6)

esto significa que para las señales de entrada y salida senoidal de (13.1) y (13.2)
respectivamente, la amplitud de la senoidal de salida será (13.7),

Y = R|M( jω0 )| (13.7)

y la fase de la salida será (13.8).

φ = ∠M( jω0 ) (13.8)

El diagrama de Bode esta compuesto por dos gráficas: la grafica de magnitud y


la gráfica de fase. Para la elaboración de la gráfica de magnitud, se toma en cuenta
la potencia de salida Y de (13.7) expresada en Decibeles o Decibelios (dB), contra
la frecuencia angular ω expresada en radianes por segundo (rad/s). Para la ela-
boración de la gráfica de fase, se toma en cuenta el ángulo de salida φ de (13.8)
expresado en grados, contra la frecuencia angular ω.

Par ilustrar la construcción del diagrama de Bode se hará uso del ejemplo (13.1).

Ejemplo 13.1. Encontrar la respuesta a la frecuencia del circuito eléctrico RL


mostrado en la Figura 13.3, a través del diagrama de Bode.

Solución analı́tica. Para el circuito eléctrico mostrado en la Figura 13.3, se con-


sidera una fuente de señal senoidal unitaria ei (t). Esta señal podrá variar de fre-
cuencia según resulte necesario. Se asume que la señal de salida eo (t) puede ser
medida con precisión con un osciloscopio.

Manual de prácticas: Dinámica de Sistemas 241


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

L
0.5 H

ei(t) R 4Ω eo(t)

Figura 13.3: Circuito eléctrico RL con entrada de señal senoidal.

Se obtiene la función de transferencia del circuito RL por medio de la técnica del


divisor de voltaje (13.9), considerando la impedancia inductiva XL y la impedancia
resistiva R.
eo (t) R
= (13.9)
ei (t) R + XL
Es posible considerar la función de transferencia (13.9), en el dominio de Laplace,
con lo que se sustituye la impedancia inductiva por su equivalente en Laplace (i.e.,
XL = jωL = sL). Entonces se obtiene la función (13.10),

Eo (s) R
= (13.10)
Ei (s) R + Ls

que para propósitos de análisis de respuesta a la frecuencia se tiene que normalizar


obteniendo se entonces (13.11).

Eo (s) 1
= (13.11)
Ei (s) 1 + RL s

Por causa del análisis del estado senoidal permanente, ahora se sustituye s = jω
según se aprecia en (13.12),

Eo ( jω) 1
= (13.12)
Ei ( jω) 1 + RL jω

donde R = 4 Ω, y L = 0.5 H, con lo que resulta (13.13).

Eo ( jω) 1
= (13.13)
Ei ( jω) 1 + 81 jω

Manual de prácticas: Dinámica de Sistemas 242


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

Como es bien sabido para obtener la potencia eléctrica de un sistema en dB, se


debe obtener el logaritmo base diez de la ganancia absoluta del sistema, multiplica-
do por veinte (13.14).
|G( jω)|dB = 20 log10 |G( jω)| (13.14)

Para el caso del circuito eléctrico de este ejemplo, entonces se tiene la función
(13.15),
Eo ( jω) 1
= 20 log10
Ei ( jω)

1 + 1 jω (13.15)
dB 8
usando las leyes de los logaritmos la función (13.15) se convierte en la ecuación
(13.16),
Eo ( jω) 1
= 20 log10 |1| − 20 log10 1 + jω (13.16)
Ei ( jω) 8
dB
también sustituyendo el número imaginario de (13.16) por su módulo (i.e., valor
absoluto) se tendrá (13.17).
r
Eo ( jω) 1
= 20 log10 |1| − 20 log10 1 + ω 2

(13.17)
Ei ( jω) 64
dB

Por las leyes de los ángulos la ganancia angular del sistema será como se observa
en (13.18),
∠Eo ( jω) ∠1
= = ∠1 − ∠(1 + (1/8) jω) (13.18)
∠Ei ( jω) ∠(1 + 18 jω)
que por las leyes trigonométricas resulta en (13.19).
 
∠Eo ( jω) −1 1
= − tan ω (13.19)
∠Ei ( jω) 8
En la Tabla 13.1, se proponen diferentes frecuencias de ω más o menos en escala
logarı́tmica. Estas frecuencias se usan en las expresiones (13.17), y (13.19), para
obtener la magnitud y el ángulo respectivamente, de la función de transferencia del
circuito RL. Como se aprecia en el segundo reglón de la Tabla, se tienen la magnitud
absoluta de la salida del sistema en dB. En el tercer reglón se tiene el ángulo de
desfase de la señal de salida del sistema en grados.

En la Figura 13.4, se muestra la gráfica que resultó de los datos de la Tabla


13.1. Lo que es importante notar, es que el eje de las abscisas que pertenece a

Manual de prácticas: Dinámica de Sistemas 243


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

Tabla 13.1: Datos del margen de ganancia y de fase en respuesta a la frecuencia.

ω (rad/s) 0.1 0.2 0.8 1 2 8 10 20 80 100 200 800



Eo ( jω)
Ei ( jω) -0.001 -0.003 -0.04 -0.07 -0.26 -3.0 -4.1 -8.6 -20 -22 -27 -40
dB
∠Eo ( jω)
∠Ei ( jω) (°) -0.7 -1.4 -5.7 -7.1 -14 -45 -51 -68 -84 -85 -87 -89

la frecuencia angular ω, tiene una escala logarı́tmica. A este tipo de gráficas se


les llama gráficas semi-logarı́tmicas porque al menos un eje es logarı́tmico; en este
caso el eje de las ordenadas es lineal y el de las abscisas logarı́tmico para ambas
gráficas.

En la gráfica superior de la Figura 13.4, se tiene la gráfica de magnitud donde


se gráfica frecuencia angular ω contra la ganancia absoluta del sistema |G( jω)|
(i.e., |Eo ( jω)/Ei ( jω)|) expresada en dB. En la gráfica inferior, se tiene la gráfica de
fase donde se gráfica frecuencia angular ω contra la ganancia angular del sistema
∠G( jω) (i.e., ∠Eo ( jω)/∠Ei ( jω)) expresada en grados. Ambas gráficas componen el
diagrama de Bode.

Si se analiza este diagrama de Bode se verá que a partir de ω = 8 rad/s, si se


incrementa la frecuencia en la gráfica de magnitud, se tendrá una atenuación en la
ganancia. Esto significa que este circuito deja pasar frecuencias menores a 8 rad/s
impidiendo el paso de señales con mayor frecuencia. En procesamiento digital de
señales a este circuito se le llama “filtro pasa bajas”.

Al mismo tiempo en la gráfica de fase se observa que cuando ω = 8 rad/s se


tiene un desfasamiento de la señal de −45°. Este desfasamiento inicia una década
antes y termina una década después a la frecuencia de cruce (que en este caso es
ωg = 8 rad/s). Esto quiere decir, que cuando ω = 0.8 rad/s se tendrá una contri-
bución angular inicial de 0°; y que cuando ω = 80 rad/s se tendrá una contribución
angular final de −90°. En fase un polo siempre contribuye con −90°.

Manual de prácticas: Dinámica de Sistemas 244


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

Gráfica de magnitud
0

-10
|G(j ω)| (dB)

-20

-30

-40
10 -1 10 0 10 1 10 2 10 3
Frecuencia angular ω (rad/s)
Gráfica de fase
0
Ángulo G(j ω) ( o )

-50

-100
10 -1 10 0 10 1 10 2 10 3
Frecuencia angular ω (rad/s)

Figura 13.4: Gráficas del diagrama de Bode para el circuito RL.

Si se analiza la función de transferencia (13.13), se verá que la raı́z del polo es


|s = −8|, lo que significa que la raı́z del polo es la frecuencia de cruce ωg del circuito
RL del ejemplo actual.

13.6.3. Análisis de estabilidad por el diagrama de Bode

En Sistemas Dinámicos en lazo cerrado se puede analizar la estabilidad de los


mismos por el uso de sus funciones de transferencia en lazo abierto1 . En la Figura
13.5, se muestra las regiones de estabilidad observadas en el diagrama de Bode
(Kuo, 1996). La gráfica superior es la de magnitud, y la inferior es la de fase. Según
se aprecia en el diagrama de Bode, la región de estabilidad se encuentra entre los
cero dB de la gráfica de magnitud (i.e., del eje de las abscisas hacia abajo), y el eje
1
En el análisis de estabilidad por Bode los sistemas no deben ser de fase no mı́nima; i.e., sistema
que se caracterizan por tener para altas frecuencias una fase más negativa de lo que era de esperar;
por ejemplo, sistemas con algún cero positivo o con un retardo de transporte.

Manual de prácticas: Dinámica de Sistemas 245


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

Región inestable para intersección


40 Cruce de ganancia sobre la curva de magnitud en el
cruce de fase; margen de ganancia
20 ωg negativo
|G(jω)|(dB)

0
Margen de ω(rad/s)
-20 Región estable para ganancia
intersección sobre la
-40 curva de magnitud en el
cruce de fase; margen de
-60 ganancia positivo
Región estable para
intersección sobre la
∢G ( j ω)(grados)

0 curva de fase en el cruce


de ganancia; margen de
-90 fase positivo
Margen de fase
-180
ω(rad/s)
-270 Región inestable para intersección Cruce de fase
sobre la curva de fase en el cruce de
-360 ganancia; margen de fase negativo ωp

Figura 13.5: Margen de ganancia y de fase; diagrama de Bode.

de los −180° hacia arriba de la gráfica de fase.

En el área de estabilidad, el grado de estabilidad la definen el margen de ganan-


cia y el margen de fase. Estos margenes deben ser positivos i.e., deben estar en la
región de estabilidad. El margen de ganancia lo determina el lugar de cruce de fase
ω p , formado por la intersección de la curva de fase con el eje de los −180°.

A partir de ω p se traza una lı́nea vertical que intercepte la curva de magnitud. Se


miden los dB desde el eje de las abscisas hasta el lugar de intersección de la lı́nea
vertical con la curva de magnitud. Si los dB son negativos entonces el margen de
ganancia es positivo de otra manera el margen de ganancia en negativo.

El margen de fase lo determina el lugar de cruce de ganancia ωg , formado por


la intersección de la curva de magnitud con el eje de las abscisas. A partir de ωg se
traza una lı́nea vertical que intercepte la curva de fase. Se miden los grados desde
el eje de los −180° hasta el lugar de intersección de la lı́nea vertical con la curva

Manual de prácticas: Dinámica de Sistemas 246


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

de fase. Si los grados son positivos entonces el margen de fase es positivo de otra
manera el margen de fase es negativo.

Para que un sistema tenga buenas caracterı́sticas de respuesta transitoria y es-


tabilidad, debe tener un margen de ganancia de al menos +10 dB, y un margen de
fase de al menos +40° (Ogata, 2010).

13.6.4. Análisis de estabilidad de un sistema fı́sico

Para el control de balanceo, cabeceo, y viraje, (i.e., roll, pitch, yaw, respectiva-
mente) un avión hace uso de un instrumento llamado giroscopio. En la Figura 13.6,
se muestran los tres parámetros que un giroscopio mide en un avión. El la Figura
13.7, se muestra el diagrama a bloques de un sistema de control de un avión, que
incorpora como sensor de retroalimentación un giroscopio. Determine a través del
criterio de estabilidad del análisis del diagrama de Bode, si el sistema es estableo o
inestable (i.e., estabilidad absoluta). También determine los valores del margen de
ganancia y el margen de fase del sistema (i.e., estabilidad relativa). Desarrolle un
script con los comandos adecuados de MATLAB para implementar el diagrama de
Bode.
Viraje Z
X Cabeceo

Balanceo

Figura 13.6: Control de balanceo, cabeceo, y viraje de un avión .

Solución en MATLAB. En el Listado 13.1, se muestra el código par la solución


de la estabilidad de un avión, en lo referente a balanceo, cabeceo, y viraje. De la

Manual de prácticas: Dinámica de Sistemas 247


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

1 1
R(s) + Y(s)
– s s2 +6 s+5
Servo hidráulico Avión

1
Giroscopio

Figura 13.7: Sistema de control de un avión.

lı́nea 1 a la 5, se forman las funciones de transferencia de cada bloque mostrados


en la Figura 13.7. En la lı́nea 6, se muestra la trayectoria en lazo abierto2 compuesta
por las funciones de transferencia del servo hidráulico, el avión, y el giroscopio.

Listado 13.1: Solución en MATLAB a la estabilidad de un avión.

1 num1 = 1; den1 = [1 0]; %numerado y denominador del servo hidráulico


2 G_Servo = tf(num1,den1) %función de transferencia del servo hidráulico
3 num2 = 1; den2 = [1 6 5]; %numerador y denominador del avión
4 G_Avion = tf(num2,den2) %función de transferencia del avión
5 H = 1 %retroalimentación (función de transferencia del giroscopio)
6 G = G_Servo*G_Avion*H %trayectoria en lazo abierto del sistema
7 [Gan,Pha,W]=bode(G); %vectores de ganancia, fase, y frecuencia de Bode
8 [Gm,Pm,Wcg,Wcp]=margin(Gan,Pha,W) %valores de margen de ganancia y fase
9 margin(G); %gráfica de Bode con valores de margen de ganancia (Gm),
10 grid %margen de fase (Pm), frecuencia de cruce de ganancia (Wcg),
11 pause; %y frecuencia de cruce de fase (Wcp).
12 Y = feedback(G,H) %función de transferencia en lazo cerrado del sistema
13 step(Y);grid %entrada escalón para análisis de respuesta transitoria

En la lı́nea 7, del Listado, se muestra el comando “[Gan,Pha, W] = Bode(G)” que


como parámetro recibe el la función de transferencia en lazo abierto “G” y como
2
Para el análisis de estabilidad por el diagrama de Bode de un sistema en lazo cerrado, se debe
usar la ganancia en lazo abierto en lugar de la función de transferencia en lazo cerrado.

Manual de prácticas: Dinámica de Sistemas 248


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

resultados los vectores “Gan” que con el vector “W” alusivo a la frecuencia angular,
forma la gráfica de magnitud. El otro vector es “Pha” que con el vector “W”, forma la
gráfica de fase.

En la lı́nea 8, el comando “margin” encuentra los parámetros para el análisis de


estabilidad en el diagrama de Bode. Los parámetros son: “Gm” que se refiere al
margen de ganancia, “Pm” que se refiere al margen de fase, “Wcg” que se refiere a
la frecuencia de cruce de ganancia, y “Wcp” que se refiere a la frecuencia de cruce
de fase. En la lı́nea 9, se usa de nuevo el comando “margin” pero esta vez despliega
la gráfica de Bode incluyendo los cuatro parámetros para el análisis de estabilidad
en la parte superior de la gráfica.

Por último en la lı́neas 12 y 13, se genera la función de transferencia en lazo


cerrado con el comando “feedback”. A la función en lazo cerrado se le aplica una
señal de prueba escalón unitario, para el análisis de respuesta transitoria.

En la Figura 13.8, se muestra el diagrama de Bode generado por el Listado 13.1,


para el análisis de estabilidad. Se puede notar que el sistema es estable porque
tanto el margen de ganancia como el margen de fase son positivos.

Con respecto a los valores de ambos margenes se puede decir que son ade-
cuados. El margen de ganancia es de 29.5 dB a la frecuencia de cruce de fase
ω p = 2.24 rad/s; al ser el margen de ganancia mayor de 10 dB esto asegura una
buena estabilidad en lo referente al margen de ganancia. El margen de fase es de
76.7° a la frecuencia de cruce de ganancia ωg = 0.19 rad/s; al ser el margen de fase
mayor a 40° esto asegura una buena estabilidad en lo referente al margen de fase.

En la Figura 13.9, se muestra la respuesta del controlador del avión en lazo


cerrado a una entrada escalón unitario. Se observa que la señal se estabiliza más
o menos a los 15 s lo cual para los estándares de control es mucho tiempo. Es bien
sabido que una respuesta de salida de un sistema de control, se debe estabilizar
antes de los 10 s para ser considerada como una respuesta transitoria adecuada.

Manual de prácticas: Dinámica de Sistemas 249


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

Bode Diagram
Gm = 29.5 dB (at 2.24 rad/s) , Pm = 76.7 deg (at 0.196 rad/s)
50
Magnitude (dB)

-50

-100

-150
-90
Phase (deg)

-180

-270
10 -2 10 -1 10 0 10 1 10 2
Frequency (rad/s)

Figura 13.8: Diagrama de Bode para el análisis de estabilidad del control de un


avión.

Dadas las circunstancias de la respuesta transitoria inadecuada, se hace nece-


sario para este sistema implementar un controlador antes del servo hidráulico. Tam-
bién se pueden hacer pruebas incrementando la ganancia en el servo, i.e., cambie el
valor del “num1” en el Listado 13.1 a 2 y ejecute el script para observar los cambios
en la respuesta transitoria del sistema.
Step Response
1

0.8

0.6
Amplitude

0.4

0.2

0
0 5 10 15 20 25 30 35
Time (seconds)

Figura 13.9: Respuesta a una entrada escalón unitario del control de un avión.

Manual de prácticas: Dinámica de Sistemas 250


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

13.7. Sugerencias didácticas

Con el propósito de analizar la estabilidad en los sistemas continuos de lazo


cerrado, se proponen algunos ejercicios para ser implementados en MATLAB.

13.7.1. Ejercicios

Desarrolle el análisis de estabilidad a través del diagrama de Bode de los siste-


mas en lazo cerrado cuyas funciones de transferencia en lazo abierto están dadas
por:

13.1
100
G(s) = (13.20)
s2 + 10s

13.2
500
G(s) = (13.21)
s(s + 5)(s + 10)

13.3
5(s + 80)
G(s) = (13.22)
s(s + 10)

13.4
1000(s + 2)
G(s) = (13.23)
s(s + 50)2

Manual de prácticas: Dinámica de Sistemas 251


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

13.7.2. Solución a ejercicios

En esta sección se muestra el código de los Listados 13.2-13.5, que dan solución
a los ejercicios propuestos en la sección anterior.

Listado 13.2: Solución al ejercicio 13.1.

1 num = 100; %numerador del sistema en lazo abierto


2 den = [1 10 0]; %denominador del sistema en lazo abierto
3 [G,P,W] = bode(num,den); %vectores de ganancia, fase, y frecuencia
4 [Gm,Pm,Wcg,Wcp] = margin(G,P,W) %valores de margenes de ganancia y fase
5 margin(num,den); %gráfica del diagrama de Bode con valores de margen de
6 grid %ganancia(Gm), margen de fase (Pm), frecuencia de cruce de ganancia
7 %(Wcg), y frecuencia de cruce de fase (Wcp)

Listado 13.3: Solución al ejercicio 13.2.

1 Z = []; %ceros de lazo abierto del sistema


2 P = [0 -5 -10]; %polos de lazo abierto del sistema
3 K = 500; %ganancia de lazo abierto del sistema
4 G = zpk(Z,P,K) %función de transferencia de lazo abierto
5 [Gan,Pha,W]=bode(G); %vectores de ganancia, fase, y frecuencia de Bode
6 [Gm,Pm,Wcg,Wcp]=margin(Gan,Pha,W) %valores de margen de ganancia y fase
7 margin(G); %gráfica del diagrama de Bode con valores de margen de
8 grid %ganancia (Gm), margen de fase (Pm), frecuencia de cruce de
9 %ganancia (Wcg), y frecuencia de cruce de fase (Wcp)

Listado 13.4: Solución al ejercicio 13.3.

1 Z = [-80]; %ceros de lazo abierto del sistema

Manual de prácticas: Dinámica de Sistemas 252


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

2 P = [0 -10]; %polos de lazo abierto del sistema


3 K = 5; %ganancia de lazo abierto del sistema
4 %el código subsecuente desde esta parte en adelante, es igual al
5 %del segundo ejercicio.

Listado 13.5: Solución al ejercicio 13.4.

1 Z = [-2]; %ceros de lazo abierto del sistema


2 P = [0 -50 -50]; %polos de lazo abierto del sistema
3 K = 1000; %ganancia de lazo abierto del sistema
4 %el código subsecuente desde esta parte en adelante, es igual al
5 %del segundo ejercicio.

En esta sección también se analizan las Figuras de la 13.10, a la 13.13, que


muestran los diagramas de Bode de los ejercicios de la sección anterior. En el análi-
sis de estos diagramas podemos observar que para el ejercicio 13.1, la Figura 13.10
muestra que el sistema es estable: con un margen de fase de 51°, y margen de ga-
nancia infinito. Cuando se establece un margen de ganancia como infinito, significa
que la curva de la gráfica de fase nunca cruza el eje de los −180°. La curva gene-
ralmente es asintótica a este eje, y el margen de ganancia puede crecer hasta un
número positivo infinito de decibeles, por lo que el sistema se considera estable.

Para el ejercicio 13.2, la Figura 13.11, muestra que el sistema es marginalmente


estable, dado que el margen de ganancia no rebasa los 10 dB y el margen de fase
no pasa de los 40°. Los diagramas restantes, muestran que los sistemas de los
ejercicios 13.3 y 13.4 también son estables, pero con el margen de ganancia positivo
infinito, tal como la solución del ejercicio 13.1.

Manual de prácticas: Dinámica de Sistemas 253


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

Bode Diagram
Gm = Inf dB (at Inf rad/s) , Pm = 51.8 deg (at 7.86 rad/s)
50
Magnitude (dB)

-50

-100
-90
Phase (deg)

-135

-180
10 -1 10 0 10 1 10 2 10 3
Frequency (rad/s)

Figura 13.10: Diagrama de Bode para el análisis de estabilidad del ejercicio 13.1.

Bode Diagram
Gm = 3.52 dB (at 7.07 rad/s) , Pm = 11.4 deg (at 5.72 rad/s)
50
Magnitude (dB)

-50

-100

-150
-90
Phase (deg)

-180

-270
10 -1 10 0 10 1 10 2 10 3
Frequency (rad/s)

Figura 13.11: Diagrama de Bode para el análisis de estabilidad del ejercicio 13.2.

Manual de prácticas: Dinámica de Sistemas 254


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

Bode Diagram
Gm = Inf , Pm = 41.1 deg (at 19.1 rad/s)
100
Magnitude (dB)

50

-50

-100
-90
Phase (deg)

-120

-150
10 -1 10 0 10 1 10 2 10 3 10 4
Frequency (rad/s)

Figura 13.12: Diagrama de Bode para el análisis de estabilidad del ejercicio 13.3.

Bode Diagram
Gm = Inf dB (at Inf rad/s) , Pm = 112 deg (at 0.873 rad/s)
50
Magnitude (dB)

-50

-100
0
Phase (deg)

-45

-90

-135

-180
10 -1 10 0 10 1 10 2 10 3 10 4
Frequency (rad/s)

Figura 13.13: Diagrama de Bode para el análisis de estabilidad del ejercicio 13.4.

Manual de prácticas: Dinámica de Sistemas 255


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

13.7.3. Problema propuesto

Considere el sistema del diagrama a bloques en lazo cerrado mostrado en la


Figura 13.14. Implemente en un script de MATLAB, el código necesario para obtener
el diagrama de Bode de la función de transferencia de lazo abierto del sistema.
Determine el valor de la ganancia K, tal que el margen de fase sea de 50°. ¿Cuál es
el margen de ganancia del sistema para el valor de K encontrado?

s+0.1 10
R(s) + K Y(s)
– s+0.5 s(s+1)

Figura 13.14: Diagrama a bloques del sistema propuesto.

13.8. Reporte del alumno

Se sugiere, después de resolver el problema propuesto en la sección 13.7.3 en


un script, entregarlo al instructor. El nombre del archivo debe tener extensión .m. La
discusión de resultados y conclusiones, se debe entregar en un procesador de texto
como el Microsoft Word®, el Libre Office®, u otro similar.

13.8.1. Discusión de resultados

Como ideas de discusión para el problema propuesto, se sugiere la respuesta a


las siguientes preguntas:

Manual de prácticas: Dinámica de Sistemas 256


PRÁCTICA 13. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO CONTINUOS

Una vez determinada la ganancia K, y de acuerdo a los valores del margen de


ganancia y el margen de fase del problema propuesto en la sección 13.7.3 ¿El
sistema es estable o inestable?

¿Qué valor de la ganancia K harı́a marginalmente estable el sistema propues-


to?

Cuando el margen de fase es de 50° ¿Cuáles son los valores de ωg y ω p ?

¿Es la respuesta transitoria del sistema adecuada para un margen de fase de


50°? i.e., se establece antes de los 10 s.

13.8.2. Conclusiones

El alumno debe explicar, en que medida logró adquirir las competencias propues-
tas en esta práctica. Cuales fueron las principales dificultades que enfrentó y como
las solucionó. También puede proponer ideas para mejorar la comprensión de los
temas tratados en la práctica.

Referencias

Dorf, R. C., y Bishop, R. H. (2011). Modern control systems. Pearson.


Houpis, C. H., y Sheldon, S. N. (2014). Linear control system analysis and design
with matlab® (Sixth ed.). CRC press.
Kuo, B. C. (1996). Sistemas de control automático (Séptima ed.). Prentice Hall
Hispanoamerica, S. A.
Ogata, K. (2004). System dynamics. Pearson Prentice Hall.
Ogata, K. (2010). Modern control engineering (Fifth ed.). Prentice Hall.

Manual de prácticas: Dinámica de Sistemas 257


PRÁCTICA 14
AN ÁLISIS DE BODE PARA SISTEMAS DE TIEMPO
DISCRETO

14.1. Competencias

El alumno diseña las gráficas de Bode en tiempo discreto a través de un soft-


ware de simulación como el MATLAB.

El alumno analiza la respuesta en la frecuencia de sistemas lineales de tiempo


discreto para el diseño de controladores digitales.

14.2. Introducción

Esta práctica, trata sobre el análisis y simulación de sistemas de tiempo discreto;


para determinar su estabilidad a través de la metodologı́a de la transformada bilineal
y el diagrama de Bode. Para ello se establece en que consiste la metodologı́a del
análisis de la respuesta a la frecuencia en sistemas lineales en tiempo discreto.
Por medio de un ejemplo práctico se explica como obtener la transformada bilineal
cuyo resultado se utiliza para construir el diagrama de Bode. El producto de esta
práctica, será la simulación en MATLAB de un sistema de control en lazo cerrado

258
PRÁCTICA 14. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO DISCRETO

discreto, para poder determinar la estabilidad absoluta y relativa a través del análisis
del diagrama de Bode.

14.3. Temas y subtemas

Análisis en la frecuencia de sistemas lineales invariantes en tiempo discre-


to. Por el uso de la función de transferencia de un Sistema Dinámico discreto, y con
los comandos apropiados de MATLAB, se diseña un script que despliega la gráfica
de Bode. Con esta gráfica se determina la estabilidad de un sistema de tipo discreto.

Subtemas:

Análisis por el diagrama de Bode.

Gráficas de magnitud y de fase.

Margen de fase y ganancia.

Frecuencias de cruce ganancia y fase.

Transformada bilineal.

14.4. Medidas de seguridad e higiene

Como se trata de un software de simulación, las prácticas se deben desarro-


llar en el laboratorio de computo. La seguridad en un laboratorio de computo tiene
que ver con el equipo de computo. Para evitar daño en los computadores, se debe
evitar introducir bebidas al laboratorio. Los lı́quidos derramados sobre el equipo de
computo seguramente lo dañarán.

Manual de prácticas: Dinámica de Sistemas 259


PRÁCTICA 14. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO DISCRETO

Si se va a trabajar en equipos, deben sentarse de tal manera que no se obstruyan


los pasillos. Debe tenerse mucho cuidado al insertar una unidad de memoria flash
USB a un computador; asegúrese que se encuentra libre de virus. Se tiene que
evitar las infecciones en los equipos de computo, para evitar que estos fallen.

14.5. Material y equipo necesario

Es necesario contar con los libros y manuales de consulta que se sugieren en las
referencias bibliográficas de esta práctica (Madhusudan, 2015; Fadali y Visioli, 2013;
Moudgalya, 2007; Dogan, 2006; Starr, 2006; Franklin, Powell, y Workman, 1997;
Ogata, 1995) . Se requiere la versión 2014 o superior de MATLAB y un computador
con un procesador Intel®, Core™ i3 ó su equivalente, con una memoria de 2 GB de
RAM.

14.6. Metodologı́a

En esta metodologı́a primero se introduce el método de la transformada bilineal


con la que se puede obtener el diagrama de Bode de un sistema discreto. Des-
pués se analiza la estabilidad de un sistema fı́sico por el método de Bode y de la
transformada bilineal.

14.6.1. Transformada bilineal

En la práctica anterior se probo la utilidad del diagrama de Bode para el análisis


de estabilidad en sistemas de tiempo continuo. Esta metodologı́a también puede ser
usada para el análisis de estabilidad de sistemas en tiempo discreto. Sin embargo,

Manual de prácticas: Dinámica de Sistemas 260


PRÁCTICA 14. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO DISCRETO

existes ciertos inconvenientes que complican el uso del diagrama de Bode en el


análisis de estabilidad en sistemas de tiempo discreto.

Uno de los problemas, es que la función de transferencia en tiempo discreto, no


es una función racional (i.e., no es directamente proporcional) con respecto a jω;
esto es ası́, porque la frecuencia resulta de la sustitución de z = e jωTs en la función
de transferencia discreta. Por esta razón, la simplificación provista por el método
del diagrama de Bode se pierde. Para solventar este problema, se transforma del
plano-z a un nuevo plano, llamado plano-w (Fadali y Visioli, 2013; Ogata, 1995).
En este nuevo plano, la función de transferencia correspondiente es racional y la
aproximación por el método de Bode es válida. A esta metodologı́a se le conoce
como transformada bilineal (14.1).
2 z−1
w= (14.1)
Ts z + 1

En la Figura 14.1, se muestra el diagrama del mapeo entre los planos-s, z, y w.


Como entre los planos adyacentes debe existir una transformada inversa, la trans-
formada bilineal inversa esta dada por (14.2).
wTs
1+ 2
z= wTs (14.2)
1− 2

El plano-w es un plano complejo cuya parte imaginaria se denota como ν. La re-


lación entre la frecuencia ω en al plano-s y la frecuencia ν en el plano-w, se expresa
cuando se denota s = jω y por lo tanto z = e jωTs . Al sustituir z en (14.1) se obtiene
(14.3).
2 ωTs
w = jν = j tan (14.3)
Ts 2

Considerando (14.3), como ω varia en el intervalo [0,ωs /2], según se aprecia en


la Figura 14.1, implica que z se moverá dentro del cı́rculo unitario y ν ira desde cero
hasta infinito. Por lo tanto, se concluye que habrá una distorsión o pandeo de la
escala de frecuencia entre ν y ω. Esta distorsión es significativa a alta frecuencia.

Manual de prácticas: Dinámica de Sistemas 261


PRÁCTICA 14. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO DISCRETO

jω Im
Im
ωs b
j
b 2

b c a c
c 0
σ 0 1
Re 0
Re
a d −2 a
Ts
ωs
−j
d 2 Ts s 2 z−1 d
z=e w=
T s z +1
Plano-s Plano-z Plano-w

Figura 14.1: Diagrama del mapeo entre los planos-s, z y w.

Sin embargo, si ω  ωs /2 = π/Ts , se tiene de (14.3) que ω ≈ ν por lo que la


distorsión es despreciable (Fadali y Visioli, 2013; Ogata, 1995).

Además del problema de distorsión de frecuencia, la función de transferencia


de la transformada bilineal G(w) tiene dos caracterı́sticas que pueden complicar el
diseño:

La función de transferencia siempre tendrá un déficit de cero-polo de cero (i.e.,


el mismo número de ceros y polos).

La transformación bilineal por (14.1), podrı́a agregar ceros en el semiplano


derecho del plano-w, y convertir el sistema, en un sistema de fase no-mı́nima,
comprometiendo la estabilidad del mismo.

Estas limitaciones pueden ser superadas por técnicas clásicas de compensación de


adelanto-atraso, usadas en el dominio de la frecuencia de sistemas continuos. En
la siguiente sección, se ejemplifica como determinar la estabilidad en un sistema
discreto por el uso de la trasformada bilinieal, y el diagrama de Bode.

Manual de prácticas: Dinámica de Sistemas 262


PRÁCTICA 14. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO DISCRETO

14.6.2. Análisis de estabilidad de un sistema discreto

Considere un sistema de cámara de vı́deo móvil de control remoto similar a la


mostrada en la Figura 14.2. Esta cámara es usada en un estadio de football; puede
viajar por todo el campo ası́ como mover el ángulo de la cámara1 . El control del
motor que mueve la polea se representa por la función de transferencia de lazo
abierto (14.4) (Madhusudan, 2015).
1
GH(s) = (14.4)
s(s + 1)((s/10) + 1)

Figura 14.2: Cámara de vı́deo móvil de control remoto.

En la digitalización de este sistema se usa un retenedor de orden cero (i.e.,


método directo de diseño). El periodo de tiempo de muestreo será de Ts = 0.05 s.
Determine la estabilidad del sistema a través de la transformada bilineal y el diagra-
ma de Bode.

Solución por medio de MATLAB. Primeramente se normaliza la función de


transferencia (14.4) a la forma cero-polo resultando (14.5),
10
GH(s) = (14.5)
s(s + 1)(s + 10)
con esta función se procede a diseñar el script que determina la estabilidad de la
cámara móvil. En el Listado 14.1, se muestra el código con los diferentes comandos
para el análisis de estabilidad del sistema.
1
El dibujo de esta cámara fue tomado de (Weir-Jones, 1993).

Manual de prácticas: Dinámica de Sistemas 263


PRÁCTICA 14. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO DISCRETO

En la lı́nea 5 del Listado, se introduce el comando “d2c(sis z,’tustin’)” el cual es


usado para convertir un sistema del tiempo discreto al tiempo continuo. Para este
comando el primer parámetros se refiere al sistema en el dominio de z. El segundo
parámetro (i.e., ’tustin’) se refiere al método de conversión, que en este caso es el
usado para obtener la transformada bilineal. Lo que se despliega en el Command
Window es la expresión (14.6).
5.0674e − 05(s − 75.25)(s − 40)(s + 64.22)
sis w = (14.6)
s(s + 1)(s + 9.797)
Note que (14.6) se denota en términos de s en lugar de w. Esto se debe que s es la
variable por defecto de MATLAB para sistemas de tiempo continuo, y no puede ser
cambiada.

Listado 14.1: Solución en MATLAB que determina estabilidad de cámara móvil.

1 Ts = 0.05; %periodo de muestreo


2 Z = [];P = [0, -1, -10];K = 10; %ceros y polos
3 sis_s = zpk(Z,P,K) %define el sistema cero-polo continuo
4 sis_z = c2d(sis_s,Ts,’zoh’) %define el sistema discreto
5 sis_w = d2c(sis_z,’tustin’) %convierte de z a bilineal
6 Sisz = c2d(sis_w,Ts,’matched’) %pasa de bilineal a z
7 [Gan,Pha,W]=bode(sis_s); %vectores de ganancia, fase, y frecuencia
8 [Gm,Pm,Wcg,Wcp]=margin(Gan,Pha,W); %margenes de ganancia y fase
9 margin(sis_s); %diagrama de Bode con valores de margen de ganancia
10 grid;pause; %y fase del sistema en s; pulse enter para continuar
11 [GanZ,PhaZ,WZ]=bode(sis_z); %vectores de ganancia, fase, y frecuencia
12 [GmZ,PmZ,WcgZ,WcpZ]=margin(GanZ,PhaZ,WZ); %margenes de ganancia y fase
13 margin(sis_z); %diagrama de Bode con valores de margen de ganancia
14 grid;pause; %y fase del sistema en z; pulse enter para continuar
15 [GanW,PhaW,WW]=bode(sis_w); %vectores de ganancia, fase, y frecuencia
16 [GmZ,PmZ,WcgZ,WcpZ]=margin(GanW,PhaW,WW); % margenes de ganancia y fase
17 margin(sis_w); %diagrama de Bode con valores de margen de ganancia

Manual de prácticas: Dinámica de Sistemas 264


PRÁCTICA 14. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO DISCRETO

18 grid;pause; %y fase del sistema en w; pulse enter para continuar


19 bode(sis_s,’b’,sis_z,’.-r’,sis_w,’.-k’);grid;pause; %grafica 3 sistemas
20 sis1 = feedback(sis_s,1); %define el sistema continuo en lazo cerrado
21 sis2 = feedback(sis_z,1); %define el sistema discreto en lazo cerrado
22 sis3 = feedback(sis_w,1); %define el sistema bilineal en lazo cerrado
23 step(sis1,sis2,sis3,10);grid %respuesta al escalón de los 3 sistemas

En la lı́nea 6 del Listado, se utiliza de nuevo el comando usado en la lı́nea 4.


Se trata del comando “c2d(sis w,Ts,’matched’)” pero que en esta ocasión tiene la
opción ’matched’. Esta opción es usada para convertir de la transformada bilineal
w a la transformada z. Pero como sucede con todos los algoritmos, se trata de una
aproximación, de aquı́ que lo que despliega el comando en la lı́nea 4 difiere un poco
del despliegue exhibido en la lı́nea 6, tal y como se muestra en (14.7), donde sis z
≈ Sisz.
1.8e − 04(z + 3.27)(z + 0.2324)
sis z =
(z − 1)(z − 0.9512)(z − 0.6065)
(14.7)
3.6e − 06(z − 43.05)(z − 7.389)(z − 0.0403)
Sisz =
(z − 1)(z − 0.9512)(z − 0.6127)

De la lı́nea 7 a la lı́nea 18 del Listado 14.1, se encuentra el código que grafica


cada sistema por separado obteniendo sus margenes de ganancia y fase de cada
uno. Se debe pulsar la tecla enter para pasar de un diagrama a otro. La lı́nea 19
muestra los tres diagramas de Bode en una sola gráfica, para facilitar su compara-
ción. De la lı́nea 20 a la lı́nea 23, se encuentra el código para el análisis de respuesta
transitoria, al aplicar un escalón unitario a cada sistema en lazo cerrado.

Análisis de los diagramas. En el diagrama de la Figura 14.3, se observa el dia-


grama de Bode del sistema en tiempo continuo (i.e., “sis s”). De acuerdo al margen
de ganancia Gm = 20.8 dB, y el margen de fase Pm = 47.4°, el sistema es estable
con muy buenas caracterı́sticas de estabilidad.

Manual de prácticas: Dinámica de Sistemas 265


PRÁCTICA 14. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO DISCRETO

Bode Diagram
Gm = 20.8 dB (at 3.16 rad/s) , Pm = 47.4 deg (at 0.784 rad/s)
50
Magnitude (dB)

-50

-100

-150
-90
Phase (deg)

-180

-270
10 -2 10 -1 10 0 10 1 10 2 10 3
Frequency (rad/s)

Figura 14.3: Diagrama de Bode del sistema en tiempo continuo “sis s”.

En el diagrama de la Figura 14.4, se observa el diagrama de Bode del sistema


en tiempo discreto (i.e.,“sis z”). El margen de ganancia Gm = 18.8 dB, y el margen
de fase Pm = 46.3°, son muy parecidos al diagrama de Bode en tiempo continuo.
A medida que la frecuencia de muestreo aumenta (i.e., Ts se hace más pequeño),
la diferencia entre los margenes de ganancia y fase de los dos sistemas disminuye
notoriamente, i.e., prácticamente vienen a ser iguales.

El algoritmo para implementar la gráfica de Bode en tiempo discreto, es similar al


de la transformada bilineal. Una caracterı́stica contrastante es que cuando la gráfi-
ca deja de ser significativa se corta, indicando lo con una lı́nea vertical, según se
muestra en la Figura 14.4.

En la Figura 14.5, se muestra el diagrama de Bode del sistema con transfor-


mación bilineal w. Se puede apreciar que el margen de ganancia y de fase son
equivalentes a los del sistema discreto; excepto que el margen de fase (cuya ωg =
0.784 rad/s) se mide de la lı́nea de los +180° hacia arriba2 hasta llegar a los +226.3°
lo que hace al margen de fase Pm = 46.3° positivo y por lo tanto estable.
2
Arriba de la lı́nea de los +180° también se considera un margen de fase positivo.

Manual de prácticas: Dinámica de Sistemas 266


PRÁCTICA 14. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO DISCRETO

Bode Diagram
Gm = 18.8 dB (at 2.8 rad/s) , Pm = 46.3 deg (at 0.784 rad/s)
50
Magnitude (dB)

-50

-100
0
Phase (deg)

-180

-360
10 -2 10 -1 10 0 10 1 10 2
Frequency (rad/s)

Figura 14.4: Diagrama de Bode del sistema en tiempo discreto “sis z”.

Bode Diagram
Gm = 18.7 dB (at 2.8 rad/s) , Pm = 46.3 deg (at 0.784 rad/s)
50
Magnitude (dB)

-50

-100
270
Phase (deg)

180

90

0
10 -2 10 -1 10 0 10 1 10 2 10 3
Frequency (rad/s)

Figura 14.5: Diagrama de Bode del sistema en tiempo continuo bilineal “sis w”.

Manual de prácticas: Dinámica de Sistemas 267


PRÁCTICA 14. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO DISCRETO

En la Figura 14.6, se observa el diagrama de Bode de los tres sistemas: la gráfica


de color azul se refiere al sistema en tiempo continuo. La gráfica de color rojo, se
refiere al sistema discreto, y la gráfica de color negro al sistema continuo que se
obtuvo por la transformada bilineal w. En la gráfica de magnitud es posible notar que
los tres sistemas son iguales hasta llegar a la lı́nea vertical. Esto confirma lo visto en
la sección anterior que la transformad bilineal solo es válida para bajas frecuencias.
Lo cual no anula su utilidad pues no interfiere en el análisis de estabilidad (i.e., los
margenes de ganancia y fase no son afectados).

Bode Diagram
50
Magnitude (dB)

-50

-100
System: sis_w
-150 Frequency (rad/s): 0.0104
360 Phase (deg): 269
Phase (deg)

180

-180 System: sis_z


Frequency (rad/s): 0.0104
-360 Phase (deg): -91
10 -2 10 -1 10 0 10 1 10 2 10 3
Frequency (rad/s)

Figura 14.6: Gráfica de Bode de los tres sistemas, continuo, discreto, y bilineal.

Los margenes de fase en la Figura 14.6, también observan resultados similares


entre los tres sistemas. Si se recuerda del plano cartesiano, el ángulo de −90° es
equivalente al ángulo de +270°, que es la aparente diferencia observada en el dia-
grama de fase entre la gráfica de color negro (i.e., transformada bilineal) y las otras
dos gráficas. También en el diagrama de fase, se nota como la lı́nea vertical advier-
te la pertinencia de la gráfica de la transformada bilineal, que es efectiva hasta ese
punto.

Manual de prácticas: Dinámica de Sistemas 268


PRÁCTICA 14. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO DISCRETO

En la gráfica de la Figura 14.7 se muestra la respuesta de los tres sistemas en


lazo cerrado a una entrada escalón unitario. Se puede notar que en lo referente a la
respuesta transitoria los tres sistemas tienen igual comportamiento. No es posible
diferenciar entre la respuesta de un sistema y del otro. En lo general la calidad de
respuesta transitoria es buena: se estabiliza antes de los 10 s y tiene un sobre paso
no mayor al 25 %.
Step Response
1.4

1.2

1
Amplitude

0.8

0.6

0.4

0.2

0
0 1 2 3 4 5 6 7 8 9 10
Time (seconds)

Figura 14.7: Respuesta al escalón unitario de los tres sistemas.

14.7. Sugerencias didácticas

Con el propósito de analizar la estabilidad en los sistemas discretos de lazo


cerrado, se proponen algunos ejercicios para ser implementados en MATLAB.

14.7.1. Ejercicios

Desarrolle el análisis de estabilidad a través del diagrama de Bode y la transfor-


mada bilineal de los sistemas en lazo cerrado discretos, cuyas funciones de transfe-
rencia en lazo abierto están dadas por:

Manual de prácticas: Dinámica de Sistemas 269


PRÁCTICA 14. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO DISCRETO

14.1 Use el método directo de diseño para transformar a z la función (14.8), con un
Ts = 0.2 s.
7.26
G(s) = (14.8)
s(s + 1)

14.2 Use el método directo de diseño para transformar a z la función (14.9), con un
Ts = 0.01 s.
3(s + 3)
G(s) = (14.9)
s(s + 1)(s2 + 4s + 16)

14.3 Use el método directo de diseño para transformar a z la función (14.10), con
un Ts = 0.02 s. Obtenga la transformada bilineal w de G(z).

2
G(s) = (14.10)
s(s + 2)2

14.4 A partir de la función de transferencia (14.11), que tiene un Ts = 0.1 s. Además


del análisis de estabilidad, obtenga la transformada bilineal w de G(z). Tam-
bién, a partir de la transformada bilineal G(w), obtenga G(z).

0.005(z − 0.8958)(z + 0.9894)


G(z) = (14.11)
(z − 1)(z2 − 1.862z + 0.8676)

14.7.2. Solución a ejercicios

Los siguientes Listados dan solución a los ejercicios propuestos en la sección


anterior. El Listado 14.2 analiza el ejercicio 14.1, obteniendo un sistema marginal-
mente estable (Gm = 3.08 dB y Pm = 6.32°), con una estabilización en respuesta
transitoria hasta los 30 s.

Manual de prácticas: Dinámica de Sistemas 270


PRÁCTICA 14. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO DISCRETO

Listado 14.2: Solución al ejercicio 14.1.

1 Ts = 0.2; %Periodo de muestreo


2 Z = []; P = [0 -1]; K = 7.26; %definen cero-polo del sistema continuo
3 sis = zpk(Z,P,K) %define estructura del sistema tipo cero-polo
4 sis1 = c2d(sis,Ts) %transforma el sistema a z
5 [Gan,Pha,W]=bode(sis1); %vectores de ganancia, fase, y frecuencia
6 [Gm,Pm,Wcg,Wcp]=margin(Gan,Pha,W) %margenes de ganancia y fase
7 margin(sis1); %diagrama de Bode con valores de margen de ganancia
8 grid;pause; %y margen de fase; pulsar enter para continuar
9 sis2 = feedback(sis1,1); %define sistema discreto en lazo cerrado
10 step(sis2,30) %grafica respuesta al escalón unitario

En el Listado 14.3, se muestra el código que resuelve el ejercicio 14.2. El resulta-


do es Gm = 20.8 dB, y Pm = 65°, lo que asegura una buena estabilidad y una buena
respuesta transitoria.

Listado 14.3: Solución al ejercicio 14.2.

1 Ts = 0.01; %periodo de muestreo


2 K = 3;Z = -3; %define ganancia y cero
3 P = [0, -1, roots([1,4,16])’]; %define raı́ces de polos complejos
4 sis = zpk(Z,P,K) %define estructura del sistema tipo cero-polo
5 sis1 = c2d(sis,Ts) %transforma el sistema a z
6 [Gan,Pha,W]=bode(sis1); %vectores de ganancia, fase, y frecuencia
7 [Gm,Pm,Wcg,Wcp]=margin(Gan,Pha,W) %margenes de ganancia y fase
8 margin(sis1); %diagrama de Bode con valores de margen de ganancia
9 grid; %y margen de fase

En el Listado 14.4, se muestra el código que resuelve el ejercicio 14.3. El resul-


tado es Gm = 17.7 dB, y Pm = 63.1°, lo que asegura una buena estabilidad y una
buena respuesta transitoria. En la función (14.12), se muestra la conversión de G(z)

Manual de prácticas: Dinámica de Sistemas 271


PRÁCTICA 14. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO DISCRETO

a G(w) que despliega el programa.

6.66e − 07(s − 175.2)(s − 100)(s + 171.2)


sis w = (14.12)
s(s + 2)2

Listado 14.4: Solución al ejercicio 14.3.

1 Ts = 0.02; %Periodo de muestreo


2 Z = []; P = [0 -2 -2]; K = 2; %define cero-polo del sistema continuo
3 sis_s = zpk(Z,P,K) %define estructura del sistema tipo cero-polo
4 sis_z = c2d(sis_s,Ts) %transforma el sistema a z
5 sis_w = d2c(sis_z,’tustin’) %convierte de z a bilineal
6 [Gan,Pha,W]=bode(sis_z); %vectores de ganancia, fase, y frecuencia
7 [Gm,Pm,Wcg,Wcp]=margin(Gan,Pha,W) %margenes de ganancia y fase
8 margin(sis_z); %diagrama de Bode con valores de margen de ganancia
9 grid; %y margen de fase

En el Listado 14.5, se muestra el código que resuelve el ejercicio 14.4. El resulta-


do es Gm = 16.9 dB, y Pm = 23.4°, lo que da una estabilidad regular y una respuesta
transitoria regular. En la función (14.13), se muestra la conversión de G(z) a G(w)
que despliega el programa,

−1.3e − 05(s + 1.099)(s − 20)(s + 3754)


sis w = (14.13)
s(s2 + 1.42s + 0.6006)

y en (14.14), se muestra la conversión de G(w) a G(z).

−0.0015z(z − 0.8959)(z − 7.389)


Sisz = (14.14)
(z − 1)(z2 − 1.862z + 0.8676)

Listado 14.5: Solución al ejercicio 14.4.

1 Ts = 0.1; K = 0.005; %define el periodo de muestreo y ganancia


2 Z = [0.8958 -0.9894]; %define los ceros del sistema
3 P = [1 roots([1 -1.862 0.8676])’]; %define los polos del sistema
4 sis_z = zpk(Z,P,K,Ts) %define la función cero-polo del sistema

Manual de prácticas: Dinámica de Sistemas 272


PRÁCTICA 14. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO DISCRETO

5 sis_w = d2c(sis_z,’tustin’) %convierte de z a bilineal


6 Sisz = c2d(sis_w,Ts,’matched’) %pasa de bilineal a z
7 [Gan,Pha,W]=bode(sis_z); %vectores de ganancia, fase, y frecuencia
8 [Gm,Pm,Wcg,Wcp]=margin(Gan,Pha,W) %margenes de ganancia y fase
9 margin(sis_z); %diagrama de Bode con valores de margen de ganancia
10 grid; %y margen de fase

14.7.3. Problema propuesto

Considere un sistema de control de velocidad de un motor de CD como el mos-


trado en la Figura 14.8. La planta G(s) del sistema y el controlador GD (z) se muestran
en el diagrama a bloques. Se utiliza el método directo de diseño en la digitalización
de la planta, donde el retenedor de orden cero GZOH (s) tiene un periodo de mues-
treo Ts = 0.02 s. Determine la estabilidad del sistema por el uso de la transformada
bilineal y el análisis del diagrama de Bode. Despliegue la función de transferencia
en lazo abierto de la transformada bilineal del sistema.
−sT
54.5( z−0.9) 1−e 1
R(s) + Y(s)
– ( z−1) s (s+1)(s+10)
δT
GD(z) GZOH(s) G(s)

Figura 14.8: Sistema de control de velocidad de un motor de CD.

14.8. Reporte del alumno

Se sugiere, después de resolver el problema propuesto en la sección 14.7.3 en


un script, entregarlo al instructor. El nombre del archivo debe tener extensión .m. La

Manual de prácticas: Dinámica de Sistemas 273


PRÁCTICA 14. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO DISCRETO

discusión de resultados y conclusiones, se debe entregar en un procesador de texto


como el Microsoft Word®, el Libre Office®, u otro similar.

14.8.1. Discusión de resultados

Como ideas de discusión para el problema propuesto, se sugiere la respuesta a


las siguientes preguntas:

El sistema propuesto en la sección 14.7.3 ¿Es estable o inestable?

Considerando que una buena caracterı́stica de la respuesta transitoria de un


sistema, es que no tenga un sobrepaso mayor al 25 %, y que su tiempo de
estabilización no sea mayor de 10 s, ¿Qué calidad de respuesta observa el
sistema a una señal de prueba escalón unitario?

Varı́e la ganancia del controlador digital G(z) ¿Cuál es el valor de la ganancia


que da una buena respuesta transitoria al sistema?

14.8.2. Conclusiones

El alumno debe explicar, en que medida logró adquirir las competencias propues-
tas en esta práctica. Cuales fueron las principales dificultades que enfrentó y como
las solucionó. También puede proponer ideas para mejorar la comprensión de los
temas tratados en la práctica.

Manual de prácticas: Dinámica de Sistemas 274


PRÁCTICA 14. ANÁLISIS DE BODE PARA SISTEMAS DE TIEMPO DISCRETO

Referencias

Dogan, I. (2006). Microcontroller based applied digital control. John Wiley & Sons
Ltd.
Fadali, M. S., y Visioli, A. (2013). Digital control engineering analysis and design.
Elsevier Inc.
Franklin, G. F., Powell, J. D., y Workman, M. L. (1997). Digital control of dynamic
systems (Third ed.). Addison-Wesley.
Madhusudan, H. (2015). Digital control applications : Illustrated with matlab®. CRC
Press, Taylor & Francis Group.
Moudgalya, K. M. (2007). Digital control. John Wiley & Sons, Ltd.
Ogata, K. (1995). Discrete-time control systems (Vol. 8). Prentice-Hall Englewood
Cliffs, NJ.
Starr, G. P. (2006). Introduction to applied digital control. Lecture Notes in Digital
Control, 5–31.
Weir-Jones, I. (1993, julio 6). Remotely operated camera system with battery re-
charging system. Google Patents. (US Patent 5,225,863)

Manual de prácticas: Dinámica de Sistemas 275

También podría gustarte