253
1 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA PROGRAMA INGENIERIA ELECTRÓNICA 208008 – CAD AVANZADO PARA ELECTRÓNICA JUAN OLEGARIO MONROY VASQUEZ (Director Nacional) OSCAR DONALDO RODRIGUEZ (Acreditador) SOGAMOSO Julio de 2009

Cad avanzado para electrónica julio 2009 v2

Embed Size (px)

DESCRIPTION

UNAD, ingeneiria de telecomuicaciones, electronica, electrica, matlab,simulink, bloques,señales,funciones, labview, TOOLBOX DE MATLAB, procesamiento de imagenes MATLAB, Procesamiento de Señales MATLAB, e imread y imshow del Toolbox Procesamiento de Imagenes, Tipos de modulación digital que soporta el toolbox

Citation preview

 

  1

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

 

UUNNIIVVEERRSSIIDDAADD NNAACCIIOONNAALL AABBIIEERRTTAA YY AA DDIISSTTAANNCCIIAA EESSCCUUEELLAA DDEE CCIIEENNCCIIAASS BBÁÁSSIICCAASS TTEECCNNOOLLOOGGÍÍAA EE IINNGGEENNIIEERRÍÍAA

PPRROOGGRRAAMMAA IINNGGEENNIIEERRIIAA EELLEECCTTRRÓÓNNIICCAA

220088000088 –– CCAADD AAVVAANNZZAADDOO PPAARRAA EELLEECCTTRRÓÓNNIICCAA

JJUUAANN OOLLEEGGAARRIIOO MMOONNRROOYY VVAASSQQUUEEZZ ((DDiirreeccttoorr NNaacciioonnaall))

OOSSCCAARR DDOONNAALLDDOO RROODDRRIIGGUUEEZZ ((AAccrreeddiittaaddoorr))

SSOOGGAAMMOOSSOO JJuulliioo ddee 22000099

 

  2

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

 This work is licensed under a Creative Commons Attribution‐NoDerivs 2.5 License. CURSO: CAD PARA ELECTRÓNICA @Copyright Universidad Nacional Abierta y a Distancia ISBN 2009 Vicerrectoría de Medios y Mediaciones

 

  3

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

ASPECTOS DE PROPIEDAD INTELECTUAL Y VERSIONAMIENTO El presente módulo fue diseñado en el año 2008 por el Ing. Electrónico Armando Portela Duarte, integrante de la Fundación Internacional Para La Investigación de la Cultura y la Participación. El presente módulo ha tenido una actualización, desarrollada en Julio de 2009 por los Ingenieros Juan Olegario Monroy Vásquez y Sandra Isabel Vargas López, tutores de la UNAD en el CEAD Sogamoso. El Ingeniero Monroy se desempeña actualmente como director del curso a nivel Nacional. En este mismo año el Ing. Oscar Donaldo Rodríguez, tutor del CEAD Pereira, apoyó el proceso de revisión de estilo del módulo y dio aportes disciplinares, didácticos y pedagógicos en el proceso de acreditación de material didáctico desarrollado en Julio de 2009.

 

  4

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

INTRODUCCIÓN CAD Avanzado para Electrónica es un curso metodológico de 3 créditos enmarcados en un campo de formación disciplinario, cuya intencionalidad es la de formar las bases teóricas y prácticas en el estudiante para que éste pueda implementar y ejecutar algoritmos en diferentes software de procesamiento numérico y de herramientas gráficas, mediante el uso de lenguajes de alto nivel. Esta temática es de gran importancia tanto para el estudio como para la vida profesional del individuo puesto que brinda herramientas con las cuales puede contar a la hora de realizar complejos análisis y operaciones numéricas, simulaciones en el tiempo de modelos matemáticos de sistemas reales obteniendo información valiosa como datos estadísticos o gráficos que pueden representar infinidad de variables durante determinados procesos de diseño o investigación científica. Para tal efecto el curso cosiste en 3 unidades didácticas, en la Primera Unidad se presenta las herramientas de Matlab, que es el principal de los paquetes software objeto del curso, en donde el estudiante se familiarizará con el entorno interactivo del programa así como con los comandos, toolbox y funciones, conociendo las características técnicas, operativas y ventajas de empleo de dicho software. En la Segunda Unidad se presentan de forma general las herramientas avanzadas para aplicaciones específicas del Matlab, en especial se analiza el entorno gráfico o SIMULINK, herramienta potente al momento de hacer simulación de modelos de sistemas. Finaliza con el estudio del Labview, que es un entorno interactivo que emplea un lenguaje de programación muy novedoso conocido como programación gráfica o programación G altamente empleado en aplicaciones de adquisición de datos, instrumentación virtual y control industrial. Los contenidos del curso serán presentados al estudiante empleando documentos digitales que podrán descargarse de la plataforma Moodle para que este se familiarice y profundice sus conocimientos al respecto durante el tiempo de estudio independiente, esto se complementa con el correspondiente acompañamiento

 

  5

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

tutorial en foros y sesiones de Chat predefinidas, la evaluación del curso se realizará a partir de la guía de actividades en donde el estudiante también entrará a interactuar con sus compañeros en grupos para la realización de ciertas actividades, dejando evidenciar la importancia de la participación activa de cada uno de los estudiantes en las diferentes actividades propuestas, de igual forma al final de cada unida se plantea un ejercicio de autoevaluación que busca identificar puntos criticos donde es necesario hacer refuerzos o ampliar las consultas. CAD Avanzado para electrónica sienta pues las bases primordiales en el estudiante para que aplique sus conocimientos matemáticos así como en sistemas informáticos para la programación de diferentes algoritmos y aplicaciones específicas que simplificarán ampliamente su trabajo en infinidad de aplicaciones donde se requiera el análisis numérico y modelado de sistemas.

 

  6

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

INDICE DE CONTENIDO

UNIDAD 1. HERRAMIENTAS DE MATLAB 1

CAPITULO 1: ENTRADA/SALIDA Y FUNCIONES DE MATLAB 2

Lección 1: Manejo de archivos 3

Lección 2: Archivos *.m 6

Lección 3: Gráficas Bidimensionales. 9

Lección 4: Gráficas Tridimensionales 12

Lección 5: Funciones. 15

CAPITULO 2: TOOLBOX DE MATLAB 18

Lección 6: Introducción a los Toolbox de Matlab. 19

Lección 7: Toolbox de Comunicaciones. 23

Lección 8: Simulación de un Sistema de Comunicaciones 37

Lección 9: Toolbox de Sistemas de Control. 43

Lección 10: Simulación de un sistema de control 75

CAPITULO 3: SIMULINK. CONCEPTOS BASICOS 80

Lección 11: Características 80

Lección 12: Entorno de trabajo en Simulink 82

Lección 13: Modelos 86

Lección 14: Subsistemas. 93

Lección 15: Subsistemas condicionados en su ejecución. 96

 

  7

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

ACTIVIDAD DE AUTOEVALUACIÓN UNIDAD 1 107

FUENTES DOCUMENTALES UNIDAD 1 108

UNIDAD 2. SIMULINK 111

CAPITULO 1: MODELAR CON SIMULINK 113

Lección 1. Modelar Ecuaciones 113

Lección 2: Modelar con Control de Flujo Condicional 118

Lección 3: Modelar con control de flujo Iterativo. 123

Lección 4: Ejemplos de Modelado. 127

Lección 5: Consejos para la Construcción de Modelos. 132

CAPITULO 2. NAVEGAR POR LOS MODELOS 132

Lección 6: Explorar, Buscar y Navegar por los Modelos. 133

Lección 7: Ejecutar la Simulación del modelo. 139

Lección 8: Importar y Exportar Datos. 142

Lección 9: Establecer la Configuración de la Simulación. 147

Lección 10: Resultados de la Simulación. 148

CAPÍTULO 3 BLOQUES, SEÑALES Y FUNCIONES S 152

Lección 11: Bloques y Señales. 152

Lección 12: Tipos de datos 158

Lección 13: Funciones S 159

Lección 14: Usar Funciones S en los modelos 160

Lección 15: Como trabaja una función S y como se escribe en MATLAB 163

 

  8

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

ACTIVIDAD DE AUTOEVALUACIÓN UNIDAD 2 165

FUENTES DOCUMENTALES UNIDAD 2 166

UNIDAD 3. LABVIEW 170

CAPITULO 1. CONCEPTOS BASICOS DE LABVIEW 172

Lección 1: Características y Aplicaciones 172

Lección 2: Entorno de Trabajo. Panel Frontal. 174

Lección 3: Entorno de Trabajo. Diagrama de Bloques. 185

Lección 4: Ejecutar y Depurar un Instrumento Virtual. 191

Lección 5: Ejemplos. 195

CAPITULO 2. PROGRAMACION ESTRUCTURADA. 204

Lección 6: Estructuras Case y Sequence. 204

Lección 7: Estructuras Iterativas For, While. 208

Lección 8: Estructura Formula Node. 212

Lección 9: Variables Locales y Globales. 214

Lección 10: Sub VIs 216

CAPITULO 3. APLICACIONES EN LABVIEW 222

Lección 11: Filtrado de señales. 222

Lección 12: Análisis Espectral 224

Lección 13: Generación de Tablas en Labview para presentación de datos. 225

Lección 14: Manipulación de puertos. 226

Lección 15: Leer y escribir archivos desde Labview. 227

 

  9

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

ACTIVIDAD DE AUTOEVALUACIÓN UNIDAD 3 230

FUENTES DOCUMENTALES UNIDAD 3 231

 

  10

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

LISTADO DE TABLAS

Tabla 1. Funciones básicas para crear gráficas en 2D. 9 Tabla 2. Funciones para modificación de las gráficas. 10 Tabla 3. Otras Funciones graficas bidimensionales. 11 Tabla 4. Otras Funciones gráficas tridimensionales 14 Tabla 5. Tipos de modulación analógica que soporta el toolbox. 27 Tabla 6. Sintaxis de los distintos Tipos de modulación analógica que soporta el toolbox. 28 Tabla 7. Tipos de modulación digital que soporta el toolbox. 29 Tabla 8. Sintaxis de los distintos Tipos de modulación digital que soporta el toolbox. 30 Tabla 9. Tipos de filtros 37 Tabla 10. Comandos empleados para Modelar sistemas de control. 44 Tabla 11. Sintaxis y ejemplos de comandos empleados para Modelar sistemas de control. 44 Tabla 12. Sintaxis y ejemplos de comandos empleados para interconectar modelos. 56 Tabla 13. Sintaxis y ejemplos de comandos empleados para el análisis de sistemas de control. 64 Tabla 14. Sintaxis y ejemplos de comandos empleados para el análisis de la respuesta en frecuencia de sistemas de control. 68

 

  11

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Tabla 15. Parámetros de un Motor de Corriente Continua 76 Tabla 16. Relación entre sentencias en C y bloques de SIMULINK I 118 Tabla 17. Relación entre sentencias en C y bloques de SIMULINK II. 123 Tabla 18. Bloques virtuales. 153 Tabla 19. Librerías y bloques de SIMULINK de uso común. 157 Tabla 20. Tipo de datos soportados por SIMULINK. 159

 

  12

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

LISTADO DE GRÁFICOS Y FIGURAS

Figura 1. Editor de Archivos *.m. 7 Figura 2. Función complejo.m en el editor de Archivos de Matlab 8 Figura 3. Ejecución del script complejo.m 8 Figura 4. Ejecución del comando plotyy() 9 Figura 5. Grafica de la función Seno. 10 Figura 6. Utilización del comando subplot. 11 Figura 7. Gráfica de una hélice. 12 Figura 8. Grafica de la superficie con el comando mesh. 13 Figura 9. Grafica de la superficie con el comando surf. 14 Figura 10. Escritura de la Función raices2.m 17 Figura 11. Uso de la Función raices2.m. 17 Figura 12. Esquema general de los toolboxes. 20 Figura 13. Utilización de imread y imshow del Toolbox Procesamiento de Imagenes. 21 Figura 14. Ventana Figure Matlab. Imagen a color 21 Figura 15. Utilización de rg2gray del Toolbox Procesamiento de Imagenes. 22 Figura 16. Ventana Figure Matlab . Imagen en escala de grises. 22 Figura 17. Modulación y demodulación por amplitud. 29

 

  13

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 18. Diagrama de dispersión. 34 Figura 19. Primeros 40 datos binarios. 38 Figura 20. Primeros 10 Símbolos 39 Figura 21. Respuesta al impulso del sistema. 40 Figura 22. Patrón de ojo de la señal filtrada 41 Figura 23. Señal recibida antes y después del filtrado. 42 Figura 24. Interconexión en paralelo de dos modelos LTI. Adición y sustracción 53 Figura 25. Interconexión en serie 54 Figura 26. Modelo compuesto. 56 Figura 27. Ejemplo de interconexión de sistemas 58 Figura 28. Interconexión de un sistema en paralelo 61 Figura 29. Interconexión de un sistema en serie 62 Figura 30. Interconexión de un sistema con retroalimentación negativa 62 Figura 31. Diagrama generalizado de un sistema retroalimentado 63 Figura 32. Respuesta al impulso del sistema. 66 Figura 33. Respuesta al sistema al escalón unitario 68 Figura 34. Diagrama de bode del sistema. 70 Figura 35. Diagrama del sistema con una el rango de frecuencia ampliado. 70 Figura 36. Comparación de los diagramas de Bodes continuo y discretos 71

 

  14

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 37. Diagrama de Nyquist del sistema 72 Figura 38. Lazos de retroalimentación 73 Figura 39. Diagrama del lugar geométrico de las raíces del sistema 75 Figura 40. Esquema del circuito eléctrico y diagrama mecánico rotacional 75 Figura 41. Acceso a SIMULINK. 83 Figura 42. Pantalla inicial de SIMULINK 83 Figura 43. Ventana de Inserción de bloques y simulación, Editor de Modelos. 84 Figura 44. Ventana de dialogo para realizar los reportes. 85 Figura 45. Creando un nuevo modelo. 86 Figura 46. Diagrama de bloques del ejemplo 87 Figura 47. Navegador de librerías 88 Figura 48. Bloques organizados dentro del editor de modelo 89 Figura 49. Puerto de entrada y de salida. 89 Figura 50. Conexión de los bloques. 89 Figura 51. Ramificación de una conexión. 90 Figura 52. Cuadro de diálogo para la configuración de los parámetros de simulación 91 Figura 53. Inicio y/o detención de la Simulación 91 Figura 54. Respuesta de la simulación. 92 Figura 55. Anotaciones o comentarios. 93

 

  15

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 56. Ejemplo del subsistema. 94 Figura 57. Selección de bloques 95 Figura 58. Señal de habilitación de un subsistema. 96 Figura 59. Ventana de diálogo para el ajuste de las salidas. 97 Figura 60. Ventana de diálogo para el ajuste de estados. 98 Figura 61. Apagado de la señal de control. 99 Figura 62. Modelo de un subsistema habilitado. 100 Figura 63. Indicador del funcionamiento de cada bloque. 100 Figura 64. Nivel de señal. 101 Figura 65. Subsistema activado por disparo. 102 Figura 66. Ventana de diálogo para la selección del disparo. 102 Figura 67. Subsistema de ascenso, descenso o ambos. 103 Figura 68. Mostrar el puerto de salida. 103 Figura 69. Diagrama de flujo de un subsistema disparado y habilitado. 104 Figura 70. Símbolo del subsistema habilitado y disparado. 105 Figura 71. Ejemplo de un subsistema disparado y habilitado. 105 Figura 72. Rectificador de onda completa 106 Figura 73. Respuesta del ejemplo. 106 Figura 74. Bloques del ejemplo de conversión de unidades. 114 Figura 75. Bloques conectados. 114

 

  16

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 76. Diagrama de bloques de la ecuación diferencial. 115 Figura 77. Visualización de la respuesta de la ecuación diferencial. 116 Figura 78. Modelo del ejemplo como función de transferencia. 117 Figura 79. Diagnóstico de un lazo inválido 118 Figura 80. Implementación de la sentencia si-sino en SIMULINK. 119 Figura 81. Utilización de If- Else 121 Figura 82. Diagrama del subsistema If – Action 121 Figura 83. Implementación de la sentencia Switch en SIMULINK. 122 Figura 84. Implementación de la sentencia While en SIMULINK 123 Figura 85. Implementación de la sentencia For en SIMULINK. 125 Figura 86. Factorial de un número en Matlab. 126 Figura 87. Programación de un For en Simulink 127 Figura 88. Simulación de un sistema de orden 1. 128 Figura 89. Sistema Mecánico. 129 Figura 90. Simulación Sistema Mecánico. 130 Figura 91. Circuito RLC serie 130 Figura 92. Simulación sistema RLC serie 131 Figura 93. Editor de modelo. 133 Figura 94. Árbol de jerarquía. 134 Figura 95. Panel de contenido. 135

 

  17

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 96. Barra de menú principal. 135 Figura 97. Barra de búsqueda. 136 Figura 98. Controles de la barra de búsqueda. 136 Figura 99. El buscador. 137 Figura 100. Opciones de filtrado. 137 Figura 101. Panel de búsqueda avanzado. 138 Figura 102. Navegador de modelo. 139 Figura 103. Localización del botón de inicio 141 Figura 104. Localización del botón de parada, pausa y la barra de progreso de la simulación. 141 Figura 105. Modelo con dos entradas. 144 Figura 106. Explorador de modelo para el ajuste de la configuración. 148 Figura 107. Modelo para observar el uso del Scope. 149 Figura 108. Modelo para observar el uso de las variables de retorno. 149 Figura 109. Modelo para observar el uso del bloque Workspace. 150 Figura 110. Visor de diagnóstico de la simulación. 151 Figura 111. Bloque que genera el error. 152 Figura 112. Ventana de diálogo de propiedades del bloque. 154 Figura 113. Ventana de diálogo de anotaciones del bloque. 155 Figura 114. Bloque mostrando sus propiedades. 156

 

  18

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 115. Ventana de diálogo de llamados del bloque. 156 Figura 116. Relación entre un bloque de función S, su ventana de diálogo y el archivo fuente que define el comportamiento del bloque. 161 Figura 117. Parámetros de la S- función 162 Figura 118. Esquema de la relación Matemática de los bloques 163 Figura 119. Como SIMULINK ejecuta una simulación. 164 Figura 120. Pantalla inicial de LabVIEW. 175 Figura 121. Ventanas del Instrumento Virtual, a) Diagrama de Bloques, b) Panel Frontal. 175 Figura 122. Paleta de Controles. 177 Figura 123. Controles e indicadores Numéricos. 178 Figura 124. Controles e indicadores deslizables. 178 Figura 125. Controles e indicadores giratorios. 179 Figura 126. Controles e indicadores de tiempo. 179 Figura 127. Paleta de los controles e indicadores booleanos. 180 Figura 128. Paleta de Cadena de Caracteres. 181 Figura 129. Paleta de Arrays, Matrix and Cluster. 182 Figura 130. Paleta de List & Table. 183 Figura 131. Terminal ícono de una perilla 186 Figura 132. Segmento Curva y Unión. 188 Figura 133. Ejecución de dos bloques simultáneamente. 190

 

  19

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 134. Botón de correr (run) 192 Figura 135. Botón de correr (run) mientras se ejecute la simulación 192 Figura 136. Botón de correr continuamente (run continuously) 192 Figura 137. Botón de correr roto 193 Figura 138. Botón de Ejecución iluminada (Highligth Execution) 194 Figura 139. Botón de Ejecución de un paso a la vez (single stepping) 194 Figura 140. Subpaleta Numeric 196 Figura 141. Subpaleta Modern>>String & Path 196 Figura 142. Panel de control con los elementos escogidos 197 Figura 143. Controles e indicadores numéricos 198 Figura 144. Subpaleta de Functions>>Mathematics 198 Figura 145. Diagrama de bloques conectado. 199 Figura 146. Instrumento Virtual Funcionando 199 Figura 147. Panel frontal tanque.vi 200 Figura 148. Diagrama de bloques tanque.vi 200 Figura 149. Conexiones en el Diagrama de Bloques tanque.vi 201 Figura 150. Ubicación de la Función Simulate Signal. 202 Figura 151. Aspecto Final del Panel Frontal. Generación de Señales Seno y Coseno. 203 Figura 152. Aspecto final Diagrama de Bloques. Generación de Señales Seno y Coseno 203

 

  20

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 153. Estructura Case 205 Figura 154. Ejemplo de la Estructura Case. Panel Frontal. 205 Figura 155. Ejemplo de la Estructura Case. Diagrama de Bloques. 206 Figura 156. Esquema general estructura Sequence. 207 Figura 157. Panel frontal. Estructura Sequence. 207 Figura 158. Diagrama de Bloques. Estructura Sequence. 208 Figura 159. Estructura General de un For. 209 Figura 160. Panel Frontal. Ejemplo Estructura For 210 Figura 161. Diagrama de Bloques. Ejemplo Estructura For. 210 Figura 162. Forma General de la Estructura While. 211 Figura 163. Panel Frontal. Ejemplo de un While. 211 Figura 164. Diagrama de Bloques. Ejemplo de un while. 212 Figura 165. Definición de Variables en Formula Node 213 Figura 166. Panel Frontal. Ejemplo Formula Node. 213 Figura 167. Diagrama de Bloques Ejemplo Formula Node. 214 Figura 168. Menu Variables globales. 216 Figura 169. Crear icono en un subVI. 217 Figura 170. Panel Frontal Ejemplo de un SubVI. 217 Figura 171. Diagrama de Bloques Ejemplo de un subVi. 218 Figura 172. Creación del subVI en la paleta Edit 218

 

  21

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 173. Icono que representa al subVI. 219 Figura 174. Icono del subVi seleccionando show conector. 219 Figura 175. Icono del subVI con adición de variables entrada/salida. 220 Figura 176. Llamando un SubVI. 220 Figura 177. Icono del subVI en el Diagrama de Bloques. 221 Figura 178. Utilización de un SubVI, Panel Frontal 221 Figura 179. Utilización de un SubVI, Diagrama de bloques. 222 Figura 180. Panel Frontal Ejemplo extraer el seno.vi 223 Figura 181. Diagrama de bloques Ejemplo extraer el seno.vi 223 Figura 182. Diagrama de bloques. Cálculo de Transformada rápida de Fourier. 224 Figura 183. Diagrama de bloques. Cálculo de Transformada rápida de Fourier. 225 Figura 184. Panel Frontal. Generación de Tablas. 225 Figura 185. Diagrama de Bloques. Generación de Tablas. 226 Figura 186. Panel Frontal. Envio de datos al puerto paralelo. 226 Figura 187. Diagrama de Bloques. Envio de datos al puerto paralelo. 227 Figura 188. Paleta Opciones Leer/escribir archivos 227 Figura 189. Menú Programing/ Report Generation 228 Figura 190. Uso de Report Generation. 229

 

  1

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

UUNNIIDDAADD 11.. HHEERRRRAAMMIIEENNTTAASS DDEE MMAATTLLAABB INTRODUCCIÓN En la primera Unidad se presenta las herramientas de Matlab, que es el principal de los paquetes software objeto del curso, en donde el estudiante se familiarizará con el entorno interactivo del programa así como con los comandos, toolbox y funciones, conociendo las características técnicas, operativas y ventajas de empleo de dicho software. JUSTIFICACION En electrónica es de gran relevancia esta temática puesto que los lenguajes de alto nivel forman parte de las herramientas diarias de trabajo tanto de estudiantes como de profesionales y técnicos en el área. Estos tipos de software son empleados en infinidad de aplicaciones que requieren el manejo de complejos modelos matemáticos o en su defecto de operaciones iterativas que en un momento dado pueden servir de apoyo en el diseño, simulación y análisis tanto de circuitos análogos como digitales así como en el modelado de sistemas de control, de telecomunicaciones, de audio, etc. INTENCIONALIDADES FORMATIVAS Propósitos Se pretende desglosar el manejo general de Matlab desde el punto de vista de las herramientas avanzadas para desarrollar habilidades que le permitan al estudiante identificar y utilizar los aplicativos en el desarrollo de soluciones óptimas a la hora de abordar los problemas y actividades propuestos, al tiempo que se contribuye a generar esquemas mentales en el estudiante con los que podrá abordar por su propia cuenta tanto el diseño y desarrollo de soluciones a problemáticas planteadas como el aprendizaje de otras herramientas software.

 

  2

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Objetivos Que el estudiante amplíe complemente y profundice en las características operativas, técnicas, los beneficios del aplicativo Matlab, desde el punto de vista de las herramientas de entrada/salida y manejo de toolbox, para que así puedan emplear y diferenciar las ventajas operativas que ofrecen los paquetes software de análisis numérico sobre el desarrollo manual. Competencias El estudiante conoce las características y posibilidades que le brindan las herramientas E/S y los toolbox de Matlab, además conoce los procedimientos sistemáticos para interactuar con éstos y dar soluciones a partir de sus implementación en problemas electrónicos. Metas de aprendizaje El estudiante aprenderá de forma individual las temáticas del módulo del curso para que así pueda aplicar lo aprendido en cada tema mediante ejercicios y actividades tanto individuales como grupales en las que se desarrollen pequeños programas o aplicaciones en donde el estudiante se valga de toda la información disponible, de su espíritu investigativo y del trabajo en grupo para buscar la manera de generar las soluciones más óptimas y funcionales ante las problemáticas planteadas. Denominación de Capítulos Capítulo 1. Entrada/Salida y funciones de Matlab Capítulo 2. Toolbox de Matlab Capítulo 3. Simulink Conceptos Básicos

CAPITULO 1: ENTRADA/SALIDA Y FUNCIONES DE MATLAB Introducción. MATLAB es una poderosa herramienta de programación que permite realizar diversas aplicaciones, con la ventaja de poseer un lenguaje sencillo e intuitivo y una gran cantidad de comando que simplifica la forma de

 

  3

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

escribirlos, MATLAB dispone de funciones de lectura/escritura análogas, similares a las del lenguaje C que facilitan la importación/exportación de los datos. Lección 1: Manejo de archivos La introducción de datos en MATLAB puede hacerse de la siguiente manera:

• Cargando un archivo externo (comando Load) • Creando una secuencia de entrada en el editor de comandos (Editor de

archivos .m). • Ejecutando alguna función desde la ventana de comandos. • Desde la ventana de espacio de trabajo (workspace) directamente.

Abriendo un archivo. En ciertas ocasiones es necesario escribir programas que necesitan operar con datos que residen en otros archivos o escribir los resultados de las operaciones de los programas hechos en MATLAB. Para poder abrir un archivo es necesario verificar su existencia. El comando para abrir un archivo es fopen, este comando posee varios argumentos, los principales son el nombre del archivo y la forma en el que MATLAB interactuará con éste. El comando retorna un valor entero mayor a 2 que es el número de identificación del archivo, este será usado para escribir y/o leer del archivo. Los tipos de interacción con el archivo son:

• ‘r’: si se desea abrir un archivo sólo para leer. • ‘w’: si se desea abrir un archivo sólo para escribir. • ‘r+’: si se desea abrir un archivo para leer y escribir. • ‘a’: si se desea añadir la salida del programa a un archivo. En el caso de

que no exista MATLAB creará el archivo. Si el archivo existe MATLAB añadirá la salida del programa al contenido del archivo.

Se pueden obtener todas las opciones dadas por este comando, digitando en la ventana de comandos help fopen Estructura del comando: Variable = fopen (‘nombre_del_archivo’)

 

  4

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Ejemplo: Abrir un archivo que se llama prueba.dat, que existe y reside en el directorio de archivos que se está trabajando y se desea escribir sobre este, entonces la estructura quedaría. >>Identificador = fopen (‘prueba.dat’, ‘w’) MATLAB retorna el valor que identifica el archivo Identificador = 3 Leyendo desde un archivo. Una vez abierto el archivo, para leerlo se utiliza el comando fscanf. Este comando tiene tres argumentos, el primero es el identificador que ha sido obtenido del comando fopen. El segundo es el formato del dato en el cual está escrito en el archivo y el tercero es opcional que es el número de datos que desean ser leídos. Ejemplos de la especificación de formatos:

• ‘%d’: Lee los datos como enteros. Si se usa esta sentencia de formato este leerá hasta encontrar el punto decimal.

• ‘%f’: Lee los números a la derecha del punto decimal. • ‘%s’: lee los datos de una cadena de caracteres. Ignorando los espacios en

blanco y los caracteres de control • ‘%c’: lee los datos de una cadena de caracteres, sin embargo los espacios

en blanco y los caracteres de control son preservados. Estructura del comando >>Variable = fscanf (identificador, ‘especificación de formatos’) Ejemplo: Se posee un archivo llamado datos.txt (archivo creado en un editor de texto) que contiene los números del 1 al 10. En donde se asume que el archivo está nombrado correctamente y se encuentra en el directorio en el que se está trabajando.

 

  5

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

datos.txt : 1 2 3 4 5 6 7 8 9 10 >> Identificador = fopen (‘datos.txt’, ‘r’) Identificador =

3 >> a = fscanf(identificador, ‘%d’) a = 1 2 3 4 5 6 7 8 9 10

Si se utilizara otro especificador de formatos, la repuesta de MATLAB sería:

>> a = fscanf(identificador, ‘%s’) a = 12345678910

Escribiendo a un archivo. Para poder escribir sobre un archivo debe estar abierto primero. El comando para realizar esta función es fprintf, el formato para su ejecución es la siguiente: fprintf(identificador de archivo, formato, variable) El identificador de archivo es el valor retornado por el comando fopen. El formato especifica como se desea que sea escrito el valor y la variable es el nombre donde se tiene guardado el dato.

 

  6

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Por ejemplo si se escribe A=5

>>fprintf(identificador, ‘%d’, A)

En el archivo que se específico se escribirá el valor 5, como un entero debido que ese fue el formato que se le especificó. Importar y exportar datos desde otras aplicaciones. Es posible traer datos desde otras aplicaciones como por ejemplo desde EXCEL o desde un editor de texto, se puede hacer de diferentes formas:

• se puede utilizar Copiar y Pegar para copiar datos de la aplicación original y depositarlos entre los corchetes de una matriz o vector, en una línea de comandos de MATLAB.

• Se puede crear un fichero *.m con un editor de textos.

• Es posible leer un flat file escrito con caracteres ASCII. Un flat file es un fichero con filas de longitud constante separadas con Intro, y varios datos por fila separados por espacios en blanco. Estos ficheros pueden ser leídos desde MATLAB con el comando load. Si se ejecuta load datos.txt el contenido del archivo se deposita en una matriz con el nombre datos.

• El comando textread permite leer datos de cualquier tipo de un fichero siempre que estén convenientemente separados.

• Los comandos xlsread y xlswrite permiten leer y escribir un archivo de Excel respectivamente.

• Los comandos cvsread y cvswrite permiten leer y escribir un archivo que contiene únicamente datos numéricos y que esten separados por comas.

Lección 2: Archivos *.m Son archivos que contienen instrucciones escritas; existen dos tipos de archivos *.m. los archivos de función que reciben argumentos de entrada para proporcionar uno o varios datos de salida y los archivos *.m de escritura (script) en los cuales

 

  7

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

se ejecutan una serie de sentencias de MATLAB. Un script es una secuencia de comandos que se pueden ejecutar a menudo, se guardan en archivos de extensión *.m para no tener que escribirlos de nuevo. Un script puede llamar a otros ficheros script para ejecutar sus comandos.

El editor es la ventana donde se escriben este tipo de archivos y permite al programador o al diseñador escribir los archivos en texto ASCII con la extensión *.m (aunque pueden ser creados con cualquier otro editor de textos ASCII), estos contienen el conjunto de comandos o la definición de funciones creadas por el usuario. La importancia de los archivos m-files, radica en que al ser llamados desde la ventanas de comandos se ejecutan los comandos escritos de manera secuencial, siempre y cuando se encuentren en una de las carpetas de trabajo del Matlab. Este editor no solo permite escribir los códigos, sino, que también permite depurarlos, es decir, ejecutarlos paso a paso para verificar si contienen errores. (Ver Figura 1).

Figura 1. Editor de Archivos *.m.

Fuente: Captura de Matlab versión trial (2008). A continuación se muestra la escritura de un archivo script que calcula la magnitud y el ángulo de un número complejo. Se escriben las instrucciones en el editor, se guarda el archivo como complejo.m, y se llama desde la ventana de trabajo en matlab.

 

  8

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 2. Función complejo.m en el editor de Archivos de Matlab  

  Fuente: Captura de Matlab versión trial (2008). Por ejemplo para calcular la magnitud y el ángulo del Numero complejo Z=2+3j, se asigna a la variable a el valor de 2 y a la variable b el valor de 3, y se llama el script complejo, lo cual automáticamente arroja el resultado en las variables m y ang.

Figura 3. Ejecución del script complejo.m

Fuente: Captura de Matlab versión trial (2008).

 

  9

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Lección 3: Gráficas Bidimensionales. Las gráficas en 2D de MATLAB están orientadas a la representación gráfica de vectores y matrices. Para realizar todas las operaciones gráficas este programa utiliza un tipo especial de ventanas. Algunos comandos abren una nueva ventana mientras que otros realizan operaciones sobre una ventana abierta con anterioridad. MATLAB posee cinco funciones básicas para crear gráficos bidimensionales, los cuales se diferencian en el valor de las escalas que son desplegadas en los ejes de las abscisas y de las ordenadas. Las funciones se pueden observar en la siguiente tabla.

Tabla 1. Funciones básicas para crear gráficas en 2D.

Comando Descripción

plot() Crea un gráfico a partir de vectores y matrices, con escalas lineales sobre ambos ejes

plotyy () Dibuja dos funciones sobre una misma ventana gráfica con escalas lineales independientes en el eje de las ordenadas una a la derecha y otra a la izquierda de la figura. Figura 4

loglog() Genera gráficos con escalas logarítmicas en ambos ejes semilogx () Crea gráficos con una escala logarítmica en el eje de las abscisas y lineal

en el de las ordenadas semilogx () Genera gráficos con una escala lineal en el eje de las abscisas y

logarítmica en el de las ordenadas Polar() Crea un grafico en coordenadas polares

Fuente: Armando Portela (2008)

Figura 4. Ejecución del comando plotyy()

0 2 4 6 8 10 12 14 16 18 20-200

-150

-100

-50

0

50

100

150

200

0 2 4 6 8 10 12 14 16 18 20-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

Fuente: Captura de Matlab versión trial (2008).

 

  10

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Existen otras funciones utilizadas para modificar las gráficas generadas añadiéndole títulos a las gráficas y a los ejes, etc. Estos comandos son:

Tabla 2. Funciones para modificación de las gráficas. Comando Descripción

title(‘título’) Le coloca título al gráfico xlabel(‘ejeX’) Le proporciona un título al eje de las abscisas. Con xlabel off

desaparece. xlabel(‘ejeY’) Le proporciona un título al eje de las ordenadas. Con ylabel off

desaparece. text(x,y,’texto’) Introduce ‘texto’ en lugar establecido por las coordenadas x e y, si estos

son vectores, el texto se repetirá cada par de elementos . gtext(‘’texto) Introduce el texto en la posición en el que el puntero del ratón se

encuentre en la gráfica y se haga clic grid() Activa la introducción de una cuadrícula sobre la gráfica. Con el

comando grid off este se desactiva. Fuente: Armando Portela (2008)

Ejemplo: Graficar la función seno, en el intervalo de -10 a 10, colocándole un título y una marquilla, y activándole la función de cuadrícula (grid) (Figura 5).

>> x=[-10: 0.1:10]; >> y=sin(x); >> plot(x,y) >> grid >> gtext('Gráfica de seno') >> title('Seno de x')

Figura 5. Grafica de la función Seno.

-10 -8 -6 -4 -2 0 2 4 6 8 10-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Gráfica de seno

Seno de x

Fuente: Captura de Matlab versión trial (2008).

 

  11

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

El comando subplot permite dividir una ventana gráfica en m particiones horizontales y n verticales, con el propósito de representar múltiples gráficos en ella. Cada una de estas subventanas tiene sus propios ejes y conservan algunas características comunes con las otras subventanas. La forma general de este comando es: subplot(m,n,i), donde m y n son el número de subdivisiones en filas y columnas, e i es la subdivisión que se convierte en activa. Las subdivisiones se numeran consecutivamente empezando por las de la primera fila, siguiendo por las de la segunda, etc. Por ejemplo, la secuencia de comandos que se observa en la figura 6 genera cuatro gráficos en la misma ventana

Figura 6. Utilización del comando subplot.

Fuente: Captura de Matlab versión Trial (2008). Otras funciones gráficas bidimensionales son mencionadas en la tabla 3.

Tabla 3. Otras Funciones graficas bidimensionales.

Comando Descripción bar() Crea diagramas de barras barh() Realiza diagramas de barras horizontales bar3() Realiza diagramas de barras con aspecto 3-D bar3h() Crea diagramas de barras horizontales con aspecto 3-D pie() Genera gráficos con forma de “tarta” pie3() Genera gráficos con forma de “tarta” y aspecto 3-D area() similar plot(), pero rellenando en ordenadas de 0 a y errorbar() representa sobre una gráfica –mediante barras– valores de errores compass() Dibuja los elementos de un vector complejo como un conjunto de vectores

partiendo de un origen común Fuente: Armando Portela (2008)

 

  12

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Lección 4: Gráficas Tridimensionales MATLAB posee varias posibilidades para realizar gráficas tridimensionales. Una de las maneras de realizar esto es la utilización del comando plot3, que es la analogía de la función plot en los gráficos bidimensionales, con la diferencia que con este comando es necesario definir tres vectores, una para cada eje, en vez de dos.

La estructura de este comando es la siguiente:

plot3 (vector_3, vector_2, vector_1);

Un ejemplo de este comando es la de graficar una hélice. (ver Figura 7). >> X = [-2:0.01:2]; % Define el primer vector >> plot3 (cos(2*pi*X), sin(2*pi*X), X); % En esta línea se definen los otros 2 vectores y se grafica la función. >> grid

Figura 7. Gráfica de una hélice.

-1-0.5

00.5

1

-1-0.5

0

0.51

-3

-2

-1

0

1

2

3

Fuente: Captura de Matlab versión trial (2008).

 

  13

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Para dibujar superficies en un espacio tridimensional hay dos comandos básicos: mesh que grafica la estructura en forma de alambres (transparente), y surf que genera las superficies opacas. Por ejemplo se grafica la “silla de montar” definida por la función ‘z=x2 - y2’. (Ver Figura 8).

>> [X,Y] = meshgrid(-2:.1:2, -2:.1:2); %este comando convierte los vectores en matrices para poder realizar la gráfica >> Z = X.ˆ2 - Y.ˆ2; >> mesh(X, Y, Z)

Figura 8. Grafica de la superficie con el comando mesh.

-2-1.5

-1-0.5

00.5

11.5

2

-2-1.5

-1-0.5

00.5

11.5

2-4

-3

-2

-1

0

1

2

3

4

Fuente: Captura de Matlab versión trial (2008).

La diferencia de esta con la gráfica (ver Figura 9.) anterior radica en el comando que se utilizó en la última línea del código anterior, se cambió mesh por surf.

 

  14

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 9. Grafica de la superficie con el comando surf.

-2-1.5

-1-0.5

00.5

11.5

2

-2-1.5

-1-0.5

00.5

11.5

2-4

-3

-2

-1

0

1

2

3

4

Fuente: Captura de Matlab versión trial (2008).

Otras funciones de gráficas tridimensionales son relacionadas en la tabla 4

Tabla 4. Otras Funciones gráficas tridimensionales

Comando Descripción trisurf Similar a surf, dibuja una superficie 3-D a partir de los valores de una

función en una malla de triángulos. meshz mesh con plano de referencia en el valor mínimo y una especie de

“cortina” en los bordes del dominio de la función trimesh Similar a mesh, dibuja una superficie 3-D a partir de los valores de una

función en una malla de triángulos. surfl Utilizada para controlar la iluminación determinando la posición e

intensidad de un foco de luz. Light Crea un foco de luz en los ejes actuales capaz de actuar sobre

superficies 3-D. Se le deben pasar como argumentos el color, el estilo (luz local o en el infinito) y la posición.

colorbar Adiciona el mapa de colores activo a la figura, redimensionando los ejes para hacerle un lugar. se puede colocar horizontal o verticalmente.

sphere Dibuja una esfera 3-D de radio unidad. Cylinder Dibuja una superficie cilíndrica de radio 1 y altura 1, con 20 facetas

laterales. Fuente: Armando Portela (2008)

 

  15

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Lección 5: Funciones. Las funciones de MATLAB se asemejan a las funciones matemáticas, en la medida en que representan una regla que modifica una variable de entrada transformándola en una variable de salida. La función en matlab es un llamado a conjunto de comandos, donde se le proporciona un dato de entrada y esta proporciona un resultado de salida. En muchas ocasiones es necesario definir nuevas funciones o emplear funciones ya existentes para anexarlas a los programas que se están desarrollando en un momento dado, las funciones en Matlab son una herramienta muy útil en casos en los que se requiere realizar operaciones repetitivas y que son aplicables a diferentes programas o a diferentes partes del mismo programa, se trata de piezas de código escritas y guardadas de una forma determinada en archivos con extensión *.m que pueden ser llamados por un programador para ejecutar tareas determinadas y así puedan ser usada en diversas ocasiones. Por tal motivo se hace necesario entender cómo debe ser creada y posteriormente empleada una función. Reglas para escribir funciones. Para elaborar funciones, se debe generar un nuevo archivo de texto con un nombre adecuado para reconocer la función, el archivo debe tener la extensión *.m, para que MATLAB lo reconozca. La creación de funciones en MATLAB presenta algunas diferencias respecto de la elaboración de programas. La más relevante es la siguiente: Una función incluye en la primera línea del archivo una cabecera donde se especifica su nombre, cuáles y cuántos argumentos tiene, y cuáles y cuántos valores retorna. Dicha cabecera se identifica, además, por la palabra function, tal y como se muestra en el siguiente ejemplo: function a=producto(x,y) Como se puede apreciar, se define una función de nombre producto, que tiene dos argumentos (x e y) y devuelve un valor en la variable a.

 

  16

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

La primera línea es llamada línea de definición de función, donde se le proporciona el nombre, el número y el orden de los argumentos de entradas y salidas. Siguiendo la línea de definición de función, se debe realizar comentarios anteponiéndoles el símbolo porcentual (%). Esas líneas son llamadas texto de ayuda y son mostradas en respuesta del comando help seguido del nombre de la función. Las siguientes líneas constituyen el cuerpo de la función; estas contienen las sentencias de MATLAB que calculan el valor de las funciones. Adicionalmente se pueden realizar comentarios acerca de cada sentencia (sin olvidar anteponer el símbolo de porcentaje), todas las sentencias deben culminarse con un punto y coma (;) para suprimir la salida de cada comando. Estos archivos pueden tener múltiples entradas y múltiples salidas. El cuerpo de la función contiene las sentencias que sean necesarias para calcular los valores que la función va a retornar. Para calcular dichos valores se utilizarán tanto los argumentos de la función como todas aquellas otras variables auxiliares que sean precisas. Hay que tener en cuenta que las variables que no sean argumentos son locales a la función (es decir, no toman valores desde el espacio de trabajo de MATLAB), y por tanto deberán ser inicializadas en ésta. Además hay que tener en cuenta que las funciones nunca modifican las variables o argumentos de entrada, a no ser que se incluyan también como valores de retorno. Si el usuario las modifica dentro de la función, automáticamente el Matlab saca copias de esas variables (se modifican las copias, no las variables originales). Lo que significa que para MATLAB los argumentos de las funciones siempre son valores y no variables. Ejemplo: Crear una función que calcule las raíces de un polinomio de orden dos, ingresando los coeficientes a,b,c correspondientes al polinomio ax2+bx+c=0. Se escribe la función en el editor de matlab como se muestra en la figura 10, teniendo en cuenta la cabecera, es decir iniciando con la palabra function, seguida del nombre de la función, el argumento y el valor de retorno. Se guarda la función en el directorio de trabajo de matlab y se procede a llamarla desde la ventana de trabajo del programa.

 

  17

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 10. Escritura de la Función raices2.m

Fuente: Captura de Matlab versión trial (2008)..

Una vez creada la función, esta se puede utilizar en la ventana de comandos digitando el nombre de la misma y asignando los valores de entrada. En la figura 11 se observa el cálculo de las raíces del polinomio x2+2x+3=0, mediante el llamado de la función raíces2.m e ingresando los parámetros de entrada a, b, c, que en este caso corresponden a los números 1,2,3.

Figura 11. Uso de la Función raices2.m.

Fuente: Captura de Matlab versión trial (2008)..

 

  18

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Funciones de MATLAB. MATLAB contiene una gran cantidad de funciones las categorías incluyen:

• Elfun: Estos son las funciones matemáticas elementales, incluyen las funciones trigonométricas, logarítmicas y exponenciales, funciones para la manipulación de los números complejos, funciones modulares y funciones para el redondeo de números.

• Specfun: son comandos de funciones matemáticas más especializadas como funciones de Bessel, gamma y otras tantas usadas en el tratamiento analítico de sistemas. También incluye funciones para la creación de factores primos, otras para chequear que un número sea primo, funciones para encontrar el mínimo común múltiplo y el máximo común divisor y funciones para la conversión de coordenadas.

• Matfun: Estas son las funciones de las matrices. • Datafun: son las funciones utilizadas en los análisis de datos, pueden

determinar el valor máximo o mínimo dentro de una serie de números, incluyen funciones usadas en análisis estadísticos. Existen funciones para simular filtros y manipulación de archivos de sonido.

• Polyfun: Incluye funciones de interpolación para análisis geométrico, para derivar y multiplicar polinomios. También incluye funciones para encontrar las raíces de los polinomios.

• Funfun: son un grupo de funciones que resuelven ecuaciones diferenciales. También incluye funciones usadas para la integración numérica y funciones gráficas.

• Strfun: incluye funciones que son usadas para manipular una cadena de caracteres.

• Iofun: Son funciones usadas para la entrada y salida de datos. Existen funciones para el posicionamiento y renombramiento de archivos.

• Timefun: contiene funciones que retornan flujo de datos y funciones de calendario y reloj.

CAPITULO 2: TOOLBOX DE MATLAB Introducción. Matlab posee librerías especializadas que agrupan un determinado número de funciones que poseen características similares y tienen aplicaciones específicas. A estas librerías se les denomina Toolbox, que traduce literalmente caja de herramientas, gracias a estas ‘cajas de herramientas’ especializadas, se evita la escritura de códigos extensos y poco eficientes.

 

  19

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Lección 6: Introducción a los Toolbox de Matlab. Los Toolbox o cajas de herramientas son una colección especializada de archivos .m diseñada para trabajar problemas específicos en ciertas áreas de Ingeniería, como Sistemas de Comunicaciones, Procesamiento de Señales, Redes neuronales, análisis Financiero entre otras. Algunos de los Toolbox de Matlab son:

• Procesamiento de Señales • Matematica Simbolica • Logica Difusa • Redes neuronales • Procesamiento de Imágenes • Comunicaciones • Ecuaciones Derivadas parciales • Sistemas de Control • Identificación de sistemas • Optimización • Diseño de filtros • Bioinformatica • Estadistica • Analisis Financiero

Características. Entre las características que poseen los toolbox se tiene:

• Son grupos de comandos con características similares. • Ayudan a simplificar los cálculos de ciertas aplicaciones. • Facilitan la escritura de algoritmos.

Esquema general de los Toolbox. Como se ha dicho los toolbox son librerías especializadas, los comandos ahí presentes se encuentran organizadas por orden alfabético y por categorías, para observar la organización de estos, se debe remitir a la ayuda que ofrece MATLAB desde su ventana de ayuda y de acuerdo al toolbox escogido así será la organización (Figura 12), aunque existen ítems comunes para todos que son:

 

  20

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

• Getting started (Inicio): Realizan una breve descripción del tema del cual está hecho el toolbox.

• Examples (Ejemplo): Muestran ejemplos donde se aplican los comandos ahí presentes.

• Functions - Categorical List (Funciones – Lista de categorías): Se observan los comandos organizados en categorías particulares de cada toolbox.

• Functions – Alphabetical List (Funciones – Lista alfabética): Los comandos están organizados alfabéticamente.

• Releases Notes (Notas relacionadas o de actualización): Muestra todas las notas relacionadas con el toolbox y todas las actualizaciones que existentes para este.

• Printable Documentation (Información imprimible) (PDF): Este es un hipervínculo donde se muestra la información del toolbox en un formato de documento portable.

• Product Page (Pagina del producto): Este es un hipervínculo que dirige al usuario a la página de Mathworks, referente al toolbox.

Figura 12. Esquema general de los toolboxes.

Fuente: Captura de Matlab versión trial (2008).. Ejemplo. Con ayuda del Toolbox de procesamiento de Imágenes tomar una fotografía a color, convertirla a escala de grises y generar un nuevo archivo con la imagen modificada. La imagen que se desea modificar debe estar en el directorio de trabajo de matlab, en este caso se trabaja con la imagen denominada ricardocarro.jpg, a través de los comandos imread y imshow se lee, se guarda en la variable imagen1 y se muestra la imagen en la ventana Figure.

 

  21

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 13. Utilización de imread y imshow del Toolbox Procesamiento de Imagenes.

Fuente: Captura de Matlab versión trial (2008)..

Figura 14. Ventana Figure Matlab. Imagen a color  

Fuente: Captura de Matlab versión trial (2008).. Con el comando rgb2gray se convierte la Imagen a escala de grises y el resultado se guarda en la variable b, como se muestra en la figura 15.

 

  22

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 15. Utilización de rg2gray del Toolbox Procesamiento de Imagenes.

Fuente: Captura de Matlab versión trial (2008).. En la figura 16 se observa la imagen convertida a escala de grises.

Figura 16. Ventana Figure Matlab . Imagen en escala de grises.  

Fuente: Captura de Matlab versión trial (2008).. Mediante el comando imwrite se genera un archivo denominado ricardogris.jpg con la imagen en escala de grises. imwrite(b,'ricardogris','jpg')

 

  23

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Lección 7: Toolbox de Comunicaciones. El toolbox de comunicaciones es una extensión de MATLAB, con funciones, comandos gráficos e interfaces empleadas para explorar, diseñar, analizar y simular algoritmos con las diferentes etapas de un sistema de comunicación. Las características esenciales de este toolbox son:

• Contiene funciones para diseñar las capas físicas de un enlace de comunicación, incluyendo codificación de fuente, codificación de canal, modulación, modelos de canal y ecualización.

• Comando de graficación para la visualización de las señales de comunicación.

• Interfaces graficas de usuario para comparar la tasa de error de bit de cualquier sistema con una amplia variedad de resultados analíticos probados.

• Datos del tipo Galois para la construcción de algoritmos de comunicación. Nociones Básicas del toolbox. Este toolbox implementa una variedad de comandos relacionados con las comunicaciones. Muchas de las funciones realizan cálculos asociados a un componente particular de un sistema de comunicaciones, como demoduladores o ecualizadores. Otras funciones que están enfocadas en el diseño y el análisis de diferentes sistemas. Categorías de los comandos de los toolbox. Las funciones y comandos se encuentran organizadas por categorías, estas son: • Fuentes de señal: Comandos que crean fuentes de señales aleatorias. • Evaluación del desempeño: Analiza y visualiza la respuesta de un sistema, al

ruido inherente al mundo real y a los componentes de dicho sistema. El desempeño es evaluado mediante el uso de gráficas y así determinar si cumple con los requerimientos.

• BER Tool: Comandos utilizados para medir la tasa de error de bit. • Codificación de fuente: También conocido como cuantización o formateo de

señal, es la forma de reducir la redundancia de los datos o prepararla para su posterior procesamiento. La conversión de datos análogo/digital y la compresión de datos son formas de codificación de fuente.

• Modulación/Demodulación: Comandos para modular/demodular las señales tanto analógica como digital.

 

  24

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

• Codificación del control de error: Son técnicas que detectan y posiblemente corrigen errores cuando son transmitidos en un sistema de comunicación digital. Para conseguir esto, el codificador no solo transmite los símbolos del mensaje si no que también transmite símbolos redundantes, el decodificador usa los símbolos redundantes para detectar y posiblemente corregir los errores.

• Filtrado: Comandos que sirven para la selección de señales dentro de cualquier rango de frecuencias.

• Interleaving (Entrelazador o entramador): Este permuta los símbolos de acuerdo a un mapeo, y el desentramado utiliza el mapeo inverso para recuperar la secuencia original de símbolos. El entramado y el desentramado son útiles para reducir los errores causados por ráfagas en un sistema de comunicaciones.

• Canales: Los canales de comunicaciones introducen, ruido desvanecimiento, interferencias y otras distorsiones a las señales que son transmitidas por estos. La simulación de un sistema de comunicación involucra el modelado de un canal basado en descripciones matemáticas del canal. Los diversos medios de transmisión tienen diferentes propiedades y son modelados con características diferentes.

• Ecualizadores: los canales dispersivos en función del tiempo pueden causar interferencia inter-simbólica (ISI), por ejemplo en un ambiente dispersivo multi-trayecto, el receptor observa versiones retrasadas de los símbolos transmitidos, los cuales pueden interferir con los otros símbolos transmitidos. Un ecualizador intenta mitigar el ISI y así incrementar el desempeño del receptor.

• Campos computacionales de Galois: Es un campo algebraico que tiene un número finito de miembros. Los campos de Gaolis tienen 2m miembros que son utilizados para el control de codificación de error y son denotados GF(2m).

Fuentes de Señales. Cada sistema de comunicaciones contiene una o más fuentes de señal, se puede usar este toolbox para generar señales aleatorias, lo cual es muy útil cuando se necesita simular ruido, errores o fuentes de señal. Las secciones son las siguientes: • Ruido blanco gausiano: Esta función (wgn) genera matrices usando una

distribución de ruido blanco gausiano donde se puede especificar la potencia y generar ruido tanto en valores reales como complejos y la potencia puede especificarse en unidades de dBW, dBm o lineales.

 

  25

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

La estructura de este comando es las siguiente: >> Y = wgn(M,N,P) genera una matriz M x N de ruido blanco gausiano y P especifica la potencia del ruido en dBW Como ejemplo de este comando se puede generar un vector columna de una longitud de 70 conteniendo valores reales de ruido blanco gausiano el cual posee una potencia de 2 dBW. Cuando no se especifica el valor de la carga el comando lo asume como de 1 Ohm. >> y1 = wgn (70, 1,2)

• Símbolos aleatorios: (randsrc) Este comando crea matrices aleatorias, independientes del alfabeto que el usuario especifique pero con una distribución que este proporciona. Por ejemplo, crear una matriz 5 X 4, con valores comprendidos entre 2, 4 y 6

>> A = randsrc(5,4,[2,4,6]) A = 2 2 2 4 4 2 6 6 6 4 4 4 2 2 6 2 2 2 4 6

Donde la estructura de este comando sería la siguiente;

Variable = randsrc (M,N, Alfabeto)

este comando crea una matriz aleatoria M x N con los elementos del alfabeto que se especificó.

 

  26

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

• Enteros aleatorios (randint): Genera matrices aleatorias de valores enteros de un rango que es proporcionado por el usuario, un caso especial de este comando es crear matrices binarias. Por ejemplo crear una matriz 6 X 5, en el que sus elementos sean valores enteros entre 1 y 10.

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

• Patrones aleatorios para el error de bit (randerr): crea matrices en las cuales los elementos son unos y ceros, con una probabilidad ya dada. Estas funciones son utilizadas para medir la taza de error de bit.

• Modulación y Demodulación. En la mayoría de los medios de comunicación, solo un rango de frecuencias está disponible para la transmisión. Una forma de comunicar un mensaje cuya señal no se encuentre en el rango de frecuencias disponibles, es modificando la frecuencia hasta alcanzar una que este en concordancia con el sistema de comunicación, esta modificación de la frecuencia es lo que se llama modulación y el volver la señal a un estado muy cercano al original se llama demodulación. MATLAB posee herramientas que permiten hacer tanto modulación analógica como digital. Dada una técnica de modulación, existes dos formas para simularlo, bandabase y pasabanda. La simulación bandabase también conocida el método equivalente pasabaja requiere menos cálculos computacionales. En esteToolbox la simulación bandabase es utilizada para la modulación digital mientras que para la modulación analógica se utiliza la simulación pasabanda. Los métodos disponibles que contiene este Toolbox para realizar la modulación de un sistema de comunicación dependen del tipo de señal de entrada al sistema ya

 

  27

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

sea análogo o digital. La siguiente tabla muestra las técnicas que soporta el toolbox:

Tabla 5. Tipos de modulación analógica que soporta el toolbox.

Método de modulación analógica Acrónimo Comando para la modulación

Comando para la demodulación

Modulación de amplitud (con supresión o transmisión de portadora) AM ammod amdemod

Modulación de frecuencia FM fmmod fmdemod Modulación de fase PM pmmod pmdemod

Modulacion de amplitud de banda simple SSB ssbmod ssbdemod Fuente: Armando Portela (2008) Argumentos necesarios para realizar la modulación/demodulación analógica comunes para todos los tipos: x: mensaje a modular y: mensaje modulado Fc: Frecuencia de la señal portadora (Hz) Fs: Frecuencia de muestreo (Hz) Ini_phase: fase inicial en la señal modulada (radianes)

 

  28

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Tabla 6. Sintaxis de los distintos Tipos de modulación analógica que soporta el toolbox.

Modulación Sintaxis del comando de modulación Sintaxis del comando de demodulación

AM

y = ammod(x,Fc,Fs) y = ammod(x,Fc,Fs,ini_phase) y = ammod(x,Fc,Fs,ini_phase,carramp) • carramp: amplitud de la portadora

z = amdemod(y,Fc,Fs) z = amdemod(y,Fc,Fs,ini_phase) z = amdemod(y,Fc,Fs,ini_phase,carramp) z=amdemod(y,Fc,Fs,ini_phase,carramp,num,den) • carramp: amplitud de la portadora • num, den: establecen el numerador y

el denominador del filtro pasabajas usado en la demodulación(radianes)

FM

y= fmmod(x,Fc,Fs,freqdev) y = fmmod(x,Fc,Fs,freqdev,ini_phase • freqdev: es la constante

desviación de frecuencia (Hz) de la señal modulada.

z = fmdemod(y,Fc,Fs,freqdev) z = fmdemod(y,Fc,Fs,freqdev,ini_phase) • freqdev: es la constante desviación de

frecuencia (Hz) de la señal modulada.

PM

y = pmmod(x,Fc,Fs,phasedev) y = pmmod(x,Fc,Fs,phasedev,ini_phase) • phasedev: es la constante

desviación de fase (radianes) de la señal modulada.

z = pmmod(y,Fc,Fs,phasedev) z = pmmod(y,Fc,Fs,phasedev,ini_phase) • phasedev: es la constante desviación

de fase (radianes) de la señal modulada.

SSB

y = ssbmod(x,Fc,Fs) y = ssbmod(x,Fc,Fs,ini_phase) y = ssbmod(x,fc,fs,ini_phase,'upper') • ‘upper’: Lado escogido para

realizar la modulación

z = ssbdemod(y,Fc,Fs) z = ssbdemod(y,Fc,Fs,ini_phase) z = ssbdemod(y,Fc,Fs,ini_phase,num,den) • num, den: establecen el numerador y

el denominador del filtro pasabajas usado en la demodulación(radianes)

Ejemplo: Modular y demodular una señal con el método de modulación por amplitud.

>> Fs = 8000; % Tasa de muestreo 8000 muestras por segundo. Fc = 300; % Frecuencia de la portadora en Hz t = [0:.1*Fs]'/Fs; % Tiempos de muestreo para 0.1 segundos x = sin(20*pi*t); % Representación de la señal y = ammod(x,Fc,Fs); % Modulación de x para producir y yruidoso = awgn(y,15,'measured'); %Transmisión a través de un canal ruidoso [num,den] = butter(10,Fc*2/Fs); % Definición del filtro pasabajas z = amdemod(yruidoso,Fc,Fs,0,0,num,den); % Demodulación. figure; subplot(3,1,1); plot(t,x); % Dibuja la señal de entrada(Superior).

 

  29

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

subplot(3,1,2); plot(t,yruidoso)% % Dibuja la señal modulada y transmitida(Medio). subplot(3,1,3); plot(t,z); % Dibuja la señal demodulada(Inferior).

Figura 17. Modulación y demodulación por amplitud.

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1-1

0

1

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1-2

0

2

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1-2

0

2

Fuente: Captura de Matlab versión trial (2008)..

Tabla 7. Tipos de modulación digital que soporta el toolbox.

Método de modulación digital Acrónimo Comando para la modulación

Comando para la demodulación

Modulación por desplazamiento diferencial de fase DPSK dpskmod dpskdemod

Modulación por desplazamiento de frecuencia FSK fskmod fskdemod

Modulación por desplazamiento mínimo MSK mskmod mskdemod Modulación por desplazamiento en

cuadratura compensada OQPSK oqpskmod oqpskdemod

Modulación por desplazamiento de fase PSK pskmod pskdemod Modulación por amplitud de pulso PAM pammod pamdemod

Modulación por amplitud en cuadratura QAM qammod qamdemod Fuente: Armando Portela (2008)

 

  30

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Tabla 8. Sintaxis de los distintos Tipos de modulación digital que soporta el toolbox.

Modulac Sintaxis del comando de modulación Sintaxis del comando de demodulación

DPSK

y = dpskmod(x,M) y = dpskmod(x,M,phaserot) y = dpskmod(x,M,phaserot,symbol_order) • x: mensaje que consiste de enteros entre 0

y M – 1, si este fuera una matriz con múltiple columnas y filas MATLAB procesa las columnas independientemente.

• M: es el tamaño del alfabeto y debe ser entero.

• phaserot: especifica la rotación de fases en radianes. En este caso el desplazamiento de fase total por símbolo es la suma del valor asignado en este argumento, más la fase generada por la modulación diferencial.

• symbol_order: especifica como la función asignará las palabras binarias correspondientes a los enteros.

z = dpskdemod(y,M) z = dpskdemod(y,M,phaserot) z = dpskdemod(y,M,phaserot,symbol_order) • y: mensaje modulado • M: es el tamaño del alfabeto y debe

ser entero. • phaserot: especifica la rotación de

fases en radianes. En este caso el desplazamiento de fase total por símbolo es la suma del valor asignado en este argumento, más la fase generada por la modulación diferencial.

• symbol_order: especifica como la función asignará las palabras binarias correspondientes a los enteros.

FSK

y = fskmod(x,M,freq_sep,nsamp) y = fskmod(x,M,freq_sep,nsamp,Fs) y = fskmod(x,M,freq_sep,nsamp,Fs,phase_cont) y = fskmod(x,M,freq_sep,nsamp,Fs,phase_cont,symbol_order) • x: mensaje que consiste de enteros entre 0

y M – 1, si este fuera una matriz con múltiple columnas y filas MATLAB procesa las columnas independientemente.

• M: es el tamaño del alfabeto y debe ser entero en potencias de 2.

• freq_sep: es la separación deseada entre dos frecuencias sucesivas.

• nsamp: Es el número de muestras por símbolo en la señal modulada y debe ser un numero positivo y mucho más grande que 1.

• Por el teorema de muestreo de Nyquist , el valor de freq_sep y M deben satisfacer la condición de (M-1)*freq_sep <=Fs.

• phase_cont: Establece la continuidad de fase. Cuando se ajusta a ‘cont’ se forza una continuidad de fase a través de los límites de los símbolos. ’discont’ obliga una discontinuidad en la fase, por defecto es ‘cont’.

symbol_order: especifica como la función asignará las palabras binarias correspondientes a los enteros

z = fskdemod(y,M,freq_sep,nsamp) z = fskdemod(y,M,freq_sep,nsamp,Fs) z = fskdemod(y,M,freq_sep,nsamp,Fs,symbol_order) • y: mensaje modulado • freq_sep: es la separación deseada entre

dos frecuencias sucesivas. • nsamp: Es el número de muestras por

símbolo en la señal modulada y debe ser un numero positivo y mucho más grande que 1.

• Por el teorema de muestreo de Nyquist , el valor de freq_sep y M deben satisfacer la condición de (M-1)*freq_sep <=Fs.

• symbol_order: especifica como la función asignará las palabras binarias correspondientes a los enteros

 

  31

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Tabla 8. Sintaxis de los distintos Tipos de modulación digital que soporta el toolbox. (Continuación)

Modulac Sintaxis del comando de modulación Sintaxis del comando de demodulación

MSK

y = mskmod(x,nsamp) y = mskmod(x,nsamp,dataenc) y = mskmod(x,nsamp,dataenc,ini_phase) [y,phaseout] = mskmod(...)* • x: mensaje que consiste de 0s y 1s, si este

fuera una matriz con múltiple columnas y filas MATLAB procesa las columnas independientemente.

• nsamp: denota el número de muestras por símbolo en la señal modulada y debe ser un numero positivo.

• dataenc: específica el método de codificación de los datos para la MSK, ‘diff’ para la codificación diferencial y ‘nondiff’ para codificación no diferencial.

• Ini_phase: Especifica la fase inicial del modulador MSK, este es un vector columna el cual su longitud es el número de canales y el cual sus valores son múltiplos enteros de de pi/2. Para evitar el anulamiento se del valor de dataenc se debe ajustar a un valor específico.

Esta línea retorna el valor final de la fase de y. esto es útil para mantener la continuidad cuando se está modulando una trama de bits futura, con una codificación diferencial MSK. • phaseout: tiene las mismas

dimensiones que ini_phase y asume los valores de 0, pi/2, pi y 3*pi/2

z = mskdemod(y,nsamp) z = mskdemod(y,nsamp,dataenc) z = mskdemod(y,nsamp,dataenc,ini_phase) z = mskdemod(y,nsamp,dataenc,ini_phase,ini_state) [z,phaseout] = mskdemod(...)* [z,phaseout,stateout] = mskdemod(…) El valor inicial de la fase es 0 • y: mensaje modulado, si este fuera una

matriz con múltiple columnas y filas MATLAB procesa las columnas independientemente.

• nsamp: denota el número de muestras por símbolo en la señal modulada y debe ser un número positivo.

• dataenc: específica el método de codificación de los datos para la MSK, ‘diff’ para la codificación diferencial y ‘nondiff’ para codificación no diferencial.

• Ini_phase: Especifica la fase inicial del modulador MSK, este es un vector columna el cual su longitud es el número de canales y el cual sus valores son múltiplos enteros de de pi/2. Para evitar el anulamiento se del valor de dataenc se debe ajustar a un valor específico.

• Ini_state: Especifica el estado inicial del demodulador, contiene la mitad del símbolo de la señal recibida previamente

* Esta línea retorna el valor final de la fase de y. esto es útil para demodular una señal futura. • phaseout: tiene las mismas

dimensiones que ini_phase y asume los valores de 0, pi/2, pi y 3*pi/2.

• Stateout: retorna el valor final de nsamp de (y), el cual es útil para la demodulación del primer símbolo de una señal futura. Tiene las mismas dimensiones de ini_state.

OQPSK

y = oqpskmod(x) y = oqpskmod(x,ini_phase) • x: el mensaje debe consistir valores

enteros comprendidos entre 0 y 3, si este fuera una matriz con múltiple columnas y filas MATLAB procesa las columnas independientemente.

Ini_phase: Determina la compensación de fase de la señal modulada en radianes.

z = oqpskdemod(y) z = oqpskdemod(y,ini_phase) • y: el mensaje modulado, si este fuera una

matriz con múltiple columnas y filas MATLAB procesa las columnas independientemente.

Ini_phase: Determina la compensación de fase de la señal modulada en radianes.

 

  32

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Tabla 8. Sintaxis de los distintos Tipos de modulación digital que soporta el toolbox. Modulac Sintaxis del comando de modulación Sintaxis del comando de demodulación

PSK

y = pskmod(x,M) y = pskmod(x,M,ini_phase) y = pskmod(x,M,ini_phase,symbol_order) • x: mensaje que consiste de enteros entre 0

y M – 1, si este fuera una matriz con múltiple columnas y filas MATLAB procesa las columnas independientemente.

• M: es el tamaño del alfabeto y debe ser entero en potencias de 2.

• Ini_phase: Determina la fase inicial de la modulación en radianes.

• Symbol_order: especifica como la función asignará las palabras binarias correspondientes a los enteros.

z = pskdemod(y,M) z = pskdemod(y,M,ini_phase) z = pskdemod(y,M,ini_phase,symbol_order) • y: mensaje modulado, si este fuera una

matriz con múltiple columnas y filas MATLAB procesa las columnas independientemente.

• M: es el tamaño del alfabeto y debe ser entero en potencias de 2.

• Ini_phase: Determina la fase inicial de la modulación en radianes.

• Symbol_order: especifica como la función asignará las palabras binarias correspondientes a los enteros.

PAM

y = pammod(x,M) y = pammod(x,M,ini_phase) y = pammod(x,M,ini_phase,symbol_order) • x: mensaje que consiste de enteros entre 0

y M – 1, si este fuera una matriz con múltiple columnas y filas MATLAB procesa las columnas independientemente.

• M: es el tamaño del alfabeto y debe ser entero en potencias de 2.

• Ini_phase: Determina la fase inicial de la modulación en radianes.

• Symbol_order: especifica como la función asignará las palabras binarias correspondientes a los enteros.

z = pamdemod(y,M) z = pamdemod(y,M,ini_phase) z = pamdemod(y,M,ini_phase,symbol_order) • y: mensaje modulado, si este fuera una

matriz con múltiple columnas y filas MATLAB procesa las columnas independientemente.

• M: es el tamaño del alfabeto y debe ser entero en potencias de 2.

• Ini_phase: Determina la fase inicial de la modulación en radianes.

• Symbol_order: especifica como la función asignará las palabras binarias correspondientes a los enteros

QAM

y = qammod(x,M) y = qammod(x,M,ini_phase) y = qammod(x,M,ini_phase,symbol_order) • x: mensaje que consiste de enteros entre 0

y M – 1, si este fuera una matriz con múltiple columnas y filas MATLAB procesa las columnas independientemente.

• M: es el tamaño del alfabeto y debe ser entero en potencias de 2.

• Ini_phase: Determina la fase inicial de la modulación en radianes.

• Symbol_order: especifica como la función asignará las palabras binarias correspondientes a los enteros.

z = qamdemod(y,M) z = qamdemod(y,M,ini_phase) z = qamdemod(y,M,ini_phase,symbol_order) • y: mensaje modulado, si este fuera una

matriz con múltiple columnas y filas MATLAB procesa las columnas independientemente.

• M: es el tamaño del alfabeto y debe ser entero en potencias de 2.

• Ini_phase: Determina la fase inicial de la modulación en radianes.

• Symbol_order: especifica como la función asignará las palabras binarias correspondientes a los enteros

Fuente: Armando Portela (2008)

 

  33

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Ejemplo de un sistema de Modulación y demodulación digital: Modular una señal aleatoria con la técnica de QAM, transmitirla a través de un canal ruidoso, recuperar la señal y medir la tasa de error de símbolo: %Se crea una señal aleatoria M = 32; % Tamaño del alfabeto de símbolos x = randint(5000,1,M); % Mensaje señal aleatoria % Usar Modulación 32-QAM. y = qammod(x,M); % Transmisión de los datos a través de un canal AWGN yruidoso = awgn(y,15,'measured'); % Se crea el diagrama de dispersión de los datos ruidosos scatterplot(yruidoso); % Demodular para recuperar el mensaje. z = qamdemod(ynoisy,M); % Verifica la tasa de error de símbolo. [num,rt]= symerr(x,z) % %num: es el número de símbolos errados %rt: Es la relación entre los símbolos errados y los datos transmitidos

 

  34

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 18. Diagrama de dispersión.

-6 -4 -2 0 2 4 6

-6

-4

-2

0

2

4

6

Qua

drat

ure

In-Phase

Scatter plot

Fuente: Captura de Matlab versión trial (2008).. Este es el resultado de la medición de tasa de error de símbolos, los resultados pueden variar en cada simulación debido la aleatoriedad de la fuente, y del ruido. num = 601 rt = 0.1202

 

  35

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Filtrado. En los sistemas de comunicación es necesario eliminar o atenuar las señales que no sean convenientes para el sistema y maximizar las que si lo hagan, por lo que se hace necesario filtrar las señales, esta tarea puede llevarse a cabo filtrando las señales de forma analógica o digital dependiendo de la aplicación. MATLAB ofrece un toolbox específico solo para el filtrado de señales. Aunque existen una gran cantidad de filtros, en el toolbox de comunicaciones solo se mencionaran los filtros de la transformada de Hilbert y coseno alzado, muchos de los otros tipos de filtros es encuentran en el toolbox de procesamiento de señales. Filtros con la transformada de Hilbert. Para diseñar filtros de la transformada de Hilbert es necesario utilizar el comando hilbiir y este comando brinda como respuesta:

• Un diagrama de la respuesta del filtro al impulso. • Una caracterización cuantitativa del filtro utilizando un modelo de función de

transferencia o modelo de variables de estado. La estructura del comando es la siguiente:

hilbiir hilbiir(ts) hilbiir(ts,dly) hilbiir(ts,dly,bandwidth) hilbiir(ts,dly,bandwidth,tol)

Cada una produce un diagrama de la respuesta al impulso del filtro que la función hilbiir diseña, como también la respuesta al impulso del correspondiente filtro ideal de la Transformada de Hilbert.

Hilbiir dibuja la respuesta impulso de un filtro digital de cuarto orden de la transformada de Hilbert, con un retraso de grupo de 1 segundo. La muestra es de 2/7 segundos. En este diseño en particular, el índice de tolerancia es de 0.05. El diagrama también muestra la respuesta de un filtro ideal de la transformada de Hilbert con retraso de grupo de 1 segundo.

 

  36

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

hilbiir(ts) dibuja la respuesta impulso de un filtro digital de cuarto orden de la transformada de Hilbert con un tiempo de muestreo de ts segundos y un retraso de grupo de ts*7/2. El índice de tolerancia es de 0.05. El diagrama también muestra la respuesta de un filtro ideal de la transformada de Hilbert con un tiempo de muestreo de ts segundos y un retraso de grupo de ts*7/2 segundo.

hilbiir(ts,dly), es igual a la sintaxis descrita anteriormente, excepto que el retraso de grupo del filtro es dly , para el filtro ideal y para el filtro que el comando hilbiir diseña.

hilbiir(ts,dly,bandwidth), es igual a la sintaxis descrita anteriormente, excepto que se especifica el ancho de banda (bandwidth) supuesto de la señal de entrada y el diseño del filtro debe usar el compensador para la señal de entrada.

hilbiir(ts,dly,bandwidth,tol), es igual a la sintaxis descrita anteriormente, excepto que tol es el índice de tolerancia. Si tol<1, entonces el orden del filtro está determinado por:

tolmáximosingular valor runcadosingular tvalor

<  

Si tol > 1, entonces el orden del filtro es tol.

Filtros de coseno alzado. La importancia del filtro de coseno alzado radica en que reduce al mínimo la Interferencia entre Símbolos (ISI). La función rcosine diseña (pero no aplica los filtros) filtros de los siguientes filtros:

• Filtro de coseno alzado con respuesta al impulso finito FIR. • Filtro de coseno alzado con respuesta al impulso infinito IIR. • Filtro de coseno alzado FIR de raíz cuadrada. • Filtro de coseno alzado IIR de raíz cuadrada.

La sintaxis de este comando es la siguiente.

num = rcosine(Fd,Fs) [num,den] = rcosine(Fd,Fs,type_flag) [num,den] = rcosine(Fd,Fs,type_flag,r) [num,den] = rcosine(Fd,Fs,type_flag,r,delay) [num,den] = rcosine(Fd,Fs,type_flag,r,delay,tol)

 

  37

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

num = rcosine(Fd,Fs): diseña un filtro de coseno alzado de respuesta finita al impulso (FIR) y retorna su funciçon de transferencia. La señal de entrada digital tiene una frecuencia de muestreo Fd. La frecuencia de muestreo para el filtro es Fs. La relaciçon Fs/Fd debe ser un entero positivo más grande que 1. El factor de rolloff del filtro por defecto es 5. El retraso de grupo, el cual es el tiempo entre la entrada del filtro y la respuesta del filtro al impulso. Equivalente el retraso de grupo es de 3/Fd. [num,den] = rcosine(Fd,Fs,type_flag,r): diseña un filtro de coseno alzado usando como directiva la cadena de variable type_flag. Los tipos de filtro están en la tabla 9

Tabla 9. Tipos de filtros

Tipo de filtro Valor de Type_flag con respuesta al impulso finito FIR ‘default’ o ‘fir/normal’ con respuesta al impulso infinito IIR ‘iir’ o ‘iir/normal’ de coseno alzado FIR de raíz cuadrada. ‘sqrt’ o ‘fir/sqrt’ de coseno alzado IIR de raíz cuadrada. ‘iir/sqrt’

Fuente: Armano Portelo (2008) El valor por defecto de la tolerancia en el diseño de en un filtro IIR es de 0.01 [num,den] = rcosine(Fd,Fs,type_flag,r): Con esta sintaxis se especifica el factor de rolloff, que es un valor real entre [0, 1]. [num,den] = rcosine(Fd,Fs,type_flag,r,delay): especifica el retraso de grupo del filtro, medido en entradas muestreadas. El retraso (delay), es un entero positivo. El retraso real del diseño del filtro está dado por delay/Fd segundos.

[num,den] = rcosine(Fd,Fs,type_flag,r,delay,tol): Especifica la tolerancia en el diseño del filtro IIR. El diseño del filtro FIR no necesita este argumento. Lección 8: Simulación de un Sistema de Comunicaciones La siguiente secuencia de comandos en Matlab muestra la Simulación de un sistema de Comunicaciones Digitales. Primero se definen los parámetros básicos y la fuente de señal con los que se va a trabajar, posteriormente se aplica modulación de tipo 16QAM, se filtra la señal y por último se procede al proceso de Demodulación.

 

  38

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

%%SISTEMA DE COMUNICACIÓN COMPLETO %% Tomado del toolbox de comunicaciones de MATLAB (Editado) % Definición de los parametros. M = 16; % Tamaño de la costelación k = log2(M); % Número de Bits por símbolo n = 3e4; % Número de bits a procesar. nsamp = 1; % Tasa de Sobremuestreo %% Fuente de Señal % Crear una trama de datos binarios como un vector columna x = randint(n,1); % Trama de datos binarios aleatorios. %%Preparar los datos para que sean modulados % Grafica los primeros 40 bits stem(x(1:40),'filled'); title('Bits Aleatorios'); xlabel('Indice de Bit'); ylabel('Valor Binario');

Figura 19. Primeros 40 datos binarios.

0 5 10 15 20 25 30 35 400

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1Bits Aleatorios

Indice de Bit

Val

or B

inar

io

Fuente: Captura de Matlab versión trial (2008).. %% Mapeo de Bit a Símbolo % Transforma los bits en x en k-bits simbolos xsym = bi2de(reshape(x,k,length(x)/k).','left-msb'); %Modifica Forma Matriz

 

  39

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

%% Diagrama de Símbolos % Dibuja los primeros 10 símbolo figure; % Crea una nueva ventana de figure stem(xsym(1:10)); title('Símbolos Aleatorios'); xlabel('Indices de Símbolos'); ylabel('Valor entero');

Figura 20. Primeros 10 Símbolos

1 2 3 4 5 6 7 8 9 100

2

4

6

8

10

12

14Símbolos Aleatorios

Indices de Símbolos

Val

or e

nter

o

Fuente: Captura de Matlab versión trial (2008)..

%DEFINICIÖN DEL FILTRO DE COSENO ALZADO nsamp = 4; % Modificación de la tasa de muestreo para el filtro % Definición del filtro % Se definen los parámetros relacionados con el filtro filtorder = 40; % Orden del filtro delay = filtorder/(nsamp*2); % Retraso de grupo %(# de entradas muestreadas) rolloff = 0.25; % Factor de Rolloff del filtro % Crea un filtro coseno de raíz cuadrada rrcfilter = rcosine(1,nsamp,'fir/sqrt',rolloff,delay); % Dibuja la respuesta al impulso figure; impz(rrcfilter,1)

 

  40

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 21. Respuesta al impulso del sistema.

0 5 10 15 20 25 30 35 40-0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

n (samples)

Am

plitu

de

Impulse Response

Fuente: Captura de Matlab versión trial (2008).. %% Modulación % Modular 16 QAM y = qammod(xsym,M); %% Señal Transmitida % Muetreo elevado y aplicación del filtro de coseno alzado de raíz cuadrada ytx = y; ytx = rcosflt(y,1,nsamp,'filter',rrcfilter); % Crea el patrón de ojo de la señal filtrada eyediagram(ytx(1:2000),nsamp*2);

 

  41

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 22. Patrón de ojo de la señal filtrada

-0.5 0 0.5-3

-2

-1

0

1

2

3

Time

Am

plitu

de

Eye Diagram for In-Phase Signal

-0.5 0 0.5-3

-2

-1

0

1

2

3

Time

Am

plitu

de

Eye Diagram for Quadrature Signal

Fuente: Captura de Matlab versión trial (2008)..

%% Canal % Envía la señal sobre un canal AWGN. EbNo = 10; % In dB snr = EbNo + 10*log10(k) - 10*log10(nsamp); ynoisy = awgn(ytx,snr,'measured'); %%Señal recibida % Señal filtrada recibida usando un filtro de coseno alzado de raíz cuadrada yrx = ynoisy; yrx = rcosflt(ynoisy,1,nsamp,'Fs/filter',rrcfilter); yrx = downsample(yrx,nsamp); % Baja de muestreo. yrx = yrx(2*delay+1:end-2*delay); % Cuenta del retraso. % Diagrama de dispersión % Crea un diagrama de dispersión de la señal antes y después de ser filtrada h = scatterplot(sqrt(nsamp)*ynoisy(1:nsamp*5e3),nsamp,0,'g.'); hold on; scatterplot(yrx(1:5e3),1,0,'kx',h); title('Señal Recibida, Antes y después del filtrado'); legend('Antes del filtrado','Despues del filtrado'); axis([-5 5 -5 5]); % Ajusta el rango de la axisas

 

  42

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 23. Señal recibida antes y después del filtrado.

-5 0 5-5

-4

-3

-2

-1

0

1

2

3

4

5

Qua

drat

ure

In-Phase

Señal Recibida, Antes y después del filtrado

Antes del filtradoDespues del filtrado

Fuente: Captura de Matlab versión trial (2008)..

% Demodulación % Demodular la señal usando 16-QAM zsym = qamdemod(yrx,M); % Mapeo de símbolo a bit % Deshace el mapeo de bit a símbolo hecho anteriormente z = de2bi(zsym,'left-msb'); % Convierte los enteros a bits % Comvierte a z de una matriz a un vector z = reshape(z.',prod(size(z)),1); %% Cálculo del BER % Compara x y z para obtener el número de errores y la tasa de error de bit [number_of_errors,bit_error_rate] = biterr(x,z) Respuesta de MATLAB para el cálculo del BER

number_of_errors = 75 bit_error_rate = 0.0025

 

  43

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Lección 9: Toolbox de Sistemas de Control. Es una herramienta donde se agrupan los comandos que son utilizados para una aplicación en específico que simplifica la escritura de los algoritmos. Nociones Básicas del toolbox. MATLAB posee una gran cantidad de funciones matemática útiles para los sistemas de control. Este producto es una colección de algoritmos escritos mayormente como archivos *.m que implementan sistemas de control sencillos, técnicas de análisis y de modelado. Los sistemas de control pueden ser modelados como funciones de transferencias, ganancias, polos y ceros o variables de estado, permitiendo el uso de técnicas de control clásico y moderno. Se puede trabajar sistemas con variables de tiempo continuo y discreto. Las respuestas en el tiempo, en la frecuencia y el root locus pueden ser computadas y graficadas. Otras funciones permiten la ubicación de polos, control óptimo y estimaciones. Por último permite la posibilidad de crear archivos *.m para una aplicación particular.

Categorías del Toolbox de Control. MATLAB posee una gran librería para la creación y la manipulación de modelos, tanto de control analógico como digital. Se encuentra organizada de la siguiente manera:

• Modelos LTI: Introduce al usuario en los conceptos claves sobre la representación de sistemas LTI (Sistemas lineales invariantes en el tiempo), incluyendo objetos LTI, reglas de precedencia para operaciones y una analogía entre sistemas LTI y matrices. También contiene comandos básicos para ser usados sobre los objetos LTI.

• Operaciones en los modelos LTI: Realiza operaciones básicas de las matrices como adición, multiplicación o concatenación en los modelos LTI. También se maneja métodos de discretización.

• Herramientas para el Análisis de modelos: Muestra las funciones que caracterizan a los modelos, tales como pares de entrada/salida, análisis de modelos dinámicos, como localización de polos y ceros y la transformación de sistemas en variables de estado en modelos de representaciones canónicas.

• Arreglos de Modelos LTI: Describe el arreglo de LTIs, el cual puede ser utilizado para reunir un conjunto de modelos LTIs en una sola variable de MATLAB. Se puede utilizar esta única variable para manipular o analizar todos los modelos aquí reunidos.

 

  44

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Modelando Sistemas LTI. Típicamente los ingenieros de control comienzan por desarrollar una descripción matemática del sistema dinámico que se desea controlar, el sistema que se quiere controlar se llama planta. El toolbox de control ofrece una extensiva librería de herramientas para manipular y analizar los modelos LTI. Soporta sistemas de tiempo continuo y discreto. Estos sistemas pueden ser modelados como single-input/single-output (SISO) o multiple-input/multiple-output (MIMO). Para crear modelos LTI existen una serie de funciones que sirven para generar los parámetros de diferentes técnicas de modelado entre las que se tiene: funciones de transferencia, ganancias de polos y ceros, variables de estado, respuesta en frecuencia entre otros. Estas funciones toman los datos del modelo como entrada y producen objetos TF, ZPK, SS o FRD y éstos son almacenados en una variable simple de MATLAB.

Tabla 10. Comandos empleados para Modelar sistemas de control.

Modelo Comando Función de transferencia tf Ganancia de polos y ceros zpk Modelo de variable de estado ss Respuesta en frecuencia frd

Fuente: Armando Portela (2008)

Tabla 11. Sintaxis y ejemplos de comandos empleados para Modelar sistemas de control. Modelo SISO MIMO

tf una función de transferencia está definida por :

)()()(

sdsnsh =  

Está caracterizada por un numerador n(s) y un denominador d(s) ambos polinomios están en función de la variable de Laplace (s). Existen dos formas de especificar una función de transferencia: • Usando el comando tf.

h = tf(num,den); donde num y den son vectores filas que contiene los coeficientes de los polinomios n(s) y d(s), respectivamente. Estos polinomios

Las funciones de transferencias MIMO son arreglos bidimensionales de funciones elementales SISO, por lo que existen diversas formas para especificar estos modelos incluyendo: • Conectando modelos SISO en cascada. • Usando el comando tf con arreglos de

matrices modulares. Considerando la matriz de transferencia racional.

 

  45

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

están ordenados en potencias descendentes de s. la variable resultante h es un objeto TF conteniendo los datos del numerador y del denominador. Por ejemplo para crear la función de transferencia:

73)( 2 ++=

ssssh  

Se escribe: h = tf ([1 0] , [1 , 3 , 7]) MATLAB retorna: Transfer function: s ------------------- s^2 + 3 s + 7

• Como una expresión racional en función de la variable de Laplace.

1. Definiendo la variable s como un modelo especial de TF

s = tf ( ‘ s ’ ); 2. Ingresando la función de transferencia

como una expresión racional en términos de s.

Por ejemplo una vez definida la variable se escribe la función de transferencia de la siguiente forma: H=s/(s^2+3*s+7). Esto reporta la misma función de transferencia.

⎥⎥⎥

⎢⎢⎢

++++−

=

54211

)(2 ss

sss

sH  

Se puede especificar H(s) por  la  concatenación de entradas SISO: h11 = tf([1 -1],[1 1]); h21 = tf([1 2],[1 4 5]); o su equivalente s= tf('s') h11 = (s-1)/(s+1); h21 = (s+2)/(s^2+4*s+5); La sintaxis para crear la concatenación de las funciones es la siguiente: H= [h11; h21] Esta sintaxis imita la matriz de concatenación estándar y tiende a ser más fácil y legible para sistemas MIMO con muchas entradas y/o salidas. Alternativamente para definir una función de transferencia MIMO, usando tf, se necesitan 2 arreglos modulares (N, D), para representar el conjunto de polinomios, respectivamente. Por ejemplo la matriz de transferencia racional H(s), los dos arreglos (N,D) contienen los vectores filas que representan los polinomios de entrada

⎥⎦

⎤⎢⎣

⎡+−

=21

)(ss

sN     ⎥⎦

⎤⎢⎣

⎡++

+=

541

)( 2 sss

sD  

Se pude especificar esta función de transferencia MIMO digitando N = {[1 -1];[1 2]}; % arreglo para N(s) D = {[1 1];[1 4 5]}; % arreglo para D(s) H = tf(N,D) Y MATLAB retorna: Transfer function from input to output... s - 1 #1: ----- s + 1 s + 2 #2: ------------- s^2 + 4 s + 5 Cabe notar que N y D tiene las mismas dimensiones que H. Cuando se necesiten únicamente ganancias se puede usar tf con únicamente un argumento para especificar ganancias simples o ganancias

 

  46

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

de matrices como objetos TF. Por ejemplo: G = tf([1 0;2 1]) Produce la matriz de ganancia:

⎥⎦

⎤⎢⎣

⎡=

1201

G

zpk Los modelos de tiempo continuo tienen la

forma:

))...(())...((

)(1

1

n

m

pspszszs

ksh−−−−

=  

Donde k es un valor escalar real o complejo (ganancia) y z1… zn y p1... pn son valores reales o pares de complejos conjugados de los polos y ceros de la función de transferencia h(s). Este modelos esta cercanamente relacionado con la representación de los modelos por función de transferencia: los ceros son las raíces del numerador y los polos las raíces del denominador. Existen dos formas para representar los modelos de ganancias, polos y ceros. • Usando el comando zpk.

La sintaxis de este comando es: h = zpk(z,p,k) Donde z y p son los vectores de polos y ceros y k es la ganancia. Esto produce un objeto ZPK donde h encapsula los datos z, p y k. Por ejemplo si se escribe: h = zpk(0, [1-i 1+i 2], -2) MATLAB retorna: Zero/pole/gain: -2 s -------------------- (s-2) (s^2 - 2s + 2

• Como una expresión racional en función de la variable de laplace S

1. Definiendo la variable s como un modelo especial de ZPK

s = zpk ( ‘ s ’ ); 2. Ingresando la función de transferencia

como una expresión racional en términos de s.

Por ejemplo ya definido s con zpk

Como en el modelo de función de transferencia se puede crear un sistema MIMO concatenando sistemas SISO como entradas. También se pude utilizar el comando zpk para especificar modelos ZPK MIMO. La sintaxis para crear un modelo p por m es la siguiente. H = zpk (Z , P , K) Donde • Z es el arreglo de ceros p por m

(Z{i,j}=ceros de Hij(s)) • P es el arreglo de polos p por m

(P{i,j}=polos de Hij(s)) • Z es el arreglo de ganancias p por m

(K{i,j}=ganancia de Hij(s)). Por ejemplo se escribe lo siguiente Z= {[],-5;[1-i 1+i] []}; P = {0,[-1 -1];[1 2 3],[]}; K = [-1 3;2 0]; H = zpk(Z,P,K) MATLAB retorna: Zero/pole/gain from input 1 to output... -1 #1: -- s 2 (s^2 - 2s + 2) #2: ----------------- (s-1) (s-2) (s-3) Zero/pole/gain from input 2 to output... 3 (s+5) #1: ------- (s+1)^2 #2: 0

 

  47

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

H = -2s/((s - 2)*(s^2 + 2*s + 2)); Esto genera la misma función de transferencia

Donde se ha creado el modelo de dos entradas y dos salidas.

⎥⎥⎥⎥

⎢⎢⎢⎢

−−−+−

++

−=

0)3)(2)(1(

)22(2)1(

)5(31

)( 2

2

sssss

ss

ssH

Fuente: Armando Portela (2008). El modelo de Variable de estado depende de ecuaciones lineales de diferencia o diferenciales los modelos de tiempo continuo tienen la forma:

DuCxy

BuAxdtdx

+=

+= 

Donde x es el vector de estado y u e y son los vectores de entrada y salida, estas ecuaciones pueden surgir de la física, de la identificación de las variables de estado o por realización de los sistemas de función de transferencia. Se usa el comando ss, para crear el modelo de función de transferencia

sys = ss (A,B,C,D) • A es una matriz Nx por Nx de valores reales o complejos • B es una matriz Nx por Nu de valores reales o complejos • C es una matriz Ny por Nx de valores reales o complejos • D es una matriz Ny por Nu de valores reales o complejos

Esto produce un objeto SS sys que almacena las matrices de variables de estado A, B, C, D, para modelos con una matriz de ceros (D) se puede usar D=0, es un atajo para crear una matriz de ceros de dimensiones adecuadas. Ejemplo considere el siguiente modelo de un motor eléctrico:

Idtd

dtd 3522

2

=++ θθθ 

 

  48

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Donde θ es el desplazamiento angular del roto e I la corriente manejadora. La relación entre la entrada de corriente u = I y la velocidad angular y=dθ/dt está descrita por las ecuaciones de variables de estado:

Cxy

BuAxdtdx

=

+=

Donde

⎥⎥⎦

⎢⎢⎣

⎡=

dtdx θθ

  ⎥⎦

⎤⎢⎣

⎡−−

=25

10A   ⎥

⎤⎢⎣

⎡=

30

B   [ ]10=C  

  El modelo especificado se escribe en MATLAB de la siguiente forma: sys = ss([0 1;-5 -2],[0;3],[0 1],0) Y el programa retorna a = x1 x2 x1 0 1 x2 -5 -2 b = u1 x1 0 x2 3 c = x1 x2 y1 0 1 d = u1 y1 0

 

  49

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Los modelos de respuesta en frecuencia (FRD), en algunas ocasiones solo tienen los datos de la frecuencia muestreada, en lugar de una función de transferencia o un modelo de variable de estado para el sistema que se desea analizar o controlar. Por ejemplo: se supone la función de respuesta en frecuencia, para el sistema SISO que se desea modelar es G(w), además que se realiza un experimento para evaluar G(w) a un conjunto fijo de frecuencias w1, w2, …, wn. se puede manejar el sistema con una secuencia de sinusoides para cada frecuencia, como se describe a continuación: Señal de entrada sin twisin  

Seña de salida Función de transferencia G(w) Aquí wi es la frecuencia de entrada de cada sinusoide, i=1…,n y

))(exp()()( wGjwGwG ∠= . La respuesta de la salida en estado estable de este

sistema satisface ));(sin()()( iiii wGtwwGty ∠+=   i=1…,n. El objeto de un modelo de respuesta en frecuencia, se puede tratar como un modelo LTI, y manipularlo de la misma manera que se manipulan los objetos TF, SS Y ZPK de los modelos. La sintaxis básica para crear un modelo FRD SISO es: sys = frd(response,frequencies,units) Donde:

• Frequencies: Es un vector real de longitud Nf • Response: Es un vector de longitud Nf de valores de respuesta de

frecuencia compleja para esas frecuencias. • Units: Es una cadena opcional para las unidades de la frecuencia: ‘rad/s’

(defecto) o ‘Hz’.

 

  )(tyi  

 

  50

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Por ejemplo el archivo MAT (MAT-file) LTIexamples.mat contiene un vector de frecuencia freq, y un vector de datos de respuesta de frecuencias complejas respG. Para cargar estos datos en el dominio de la frecuencia y construir un modelo FRD se escribe:

load LTIexamples sys = frd(respG,freq)

MATLAB retorna de la siguiente manera: From input 1 to:

Frequency(rad/s) output 1 ---------------- -------- 1 -0.812505-0.000312i 2 -0.175077-0.001596i

3 -0.092593-0.462963i 4 -0.075781-0.001625i

5 -0.043735-0.000390i

La sintaxis para crear un modelo MIMO FRD, es la misma que para un modelo SISO, excepto que la respuesta es un arreglo multidimensional p por –m- por Nf, donde p es el número de salidas, m es el número de entradas y Nf es el número de puntos de datos de frecuencias (la duración de la frecuencia). La creación de modelos en tiempo discreto es muy parecida a la creación de modelos de tiempo continuo, excepto que hay que definir un periodo de muestreo o tiempo de muestreo para estos. El valor de este tiempo debe ser un escalar y expresado en segundos, aunque puede utilizarse el valor de -1 para dejar el tiempo de muestreo sin especificar. Para determinar modelos LTI en tiempo discreto con los comandos tf, zpk, ss o frd, simplemente se añade el tiempo de muestreo deseado Ts de la lista de los argumentos de entrada.

• sys1 = tf(num,den,Ts) • sys2 = zpk(z,p,k,Ts) • sys3 = ss(a,b,c,d,Ts) • sys4 = frd(response,frequency,Ts)

 

  51

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Por ejemplo se escribe: h = tf([1 -1],[1 -0.5],0.1) Y el programa retorna:

Transfer function: z - 1 ------- z - 0.5 Sampling time: 0.1

Operaciones en los modelos LTI. Con los modelos LTI se pueden realizar las operaciones básicas de las matrices, como multiplicación, adición o concatenación. Como estas operaciones utilizan las mismas sintaxis que son empleadas para operaciones con matrices, pero adaptadas para ser aplicadas a sistemas o modelos LTI. Las operaciones y los comandos como el de la retroalimentación opera sobre más de un sistema a la vez, si eso modelos LTI son representados como diferentes tipos de objetos (Por ejemplo la primera operación es sobre un objeto TF y el segundo sobre un objeto SS), entonces no es obvio que tipo de modelo sería el resultante (TF o SS). Esta serie de conflictos se resuelven con la regla de precedencia. Los objetos TF, ZPK, SS y FRD, están organizados por una jerarquía de precedencia.

FRD > SS > ZPK > TF Entonces ZPK toma precedencia sobre TF, SS toma precedencia sobre TF y ZPK y así sucesivamente. Cualquier operación que involucre dos o mas modelos LTI produce:

• Un objeto FRD si por lo menos uno de los objetos del sistema es FRD • Un objeto SS, sin ningún objeto FRD está presente y por lo menos un

objete SS está en el sistema. • Un objeto ZPK, sin ningún objeto FRD o SS está presente y por lo menos

un objete ZPK está en el sistema. • Un objeto TF únicamente si todos los objetos son TF

 

  52

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Las operaciones sobre los sistemas de diferente tipo trabajan de la siguiente manera: el tipo resultante está determinado por la regla de precedencia y todos los operandos son convertidos a la forma adecuada y luego se realizan las operaciones.

Para reemplazar la supremacía de la regla de precedencia y forzar el resultado de la operación se puede:

• Convertir todos los operandos antes de ejecutar la operación. • Convertir el resultado después de ejecutar la operación.

Otra cuestión es la regla de herencia, que es, que las propiedades de los operandos pasan sus propiedades al resultado de la operación. Si bien la herencia hace parte dependiente del funcionamiento. Existen algunas reglas generales:

• En las operaciones donde se combinan modelos LTI de tiempo discreto, todos los modelos deben tener el mismo tiempo de muestreo o sin especificar (-1). El modelo resultante hereda el tiempo de muestreo.

• La mayoría de las operaciones ignora las propiedades de las Notas y los datos de usuario.

• En general, cuando dos modelos LTI sys1 y sys2 son combinados usando las operaciones como +, * , [,] , [;], append y feedback. El modelo resultante hereda los nombres de I/O y los grupos de I/O. sin embargo los conflictos entre nombres y grupos no son heredados.

• Un modelo resultante de operaciones sobre TF o ZPK hereda las propiedades de su variable los conflictos son resueltos de acuerdo a las siguientes reglas:

o Para modelos continuos ‘p’ tiene precedencia sobre ‘s’ o Para modelos discreto ‘z^-1’ tiene precedencia sobre ‘q’ y ‘z’,

mientras que ‘q’ tiene precedencia sobre ‘z’. Las operaciones de aritméticas pueden ser aplicadas en los modelos LTI, de la siguiente manera: • Adición y sustracción: Sumar modelos LTI es equivalente a conectarlos en

paralelo. Por ejemplo: sys = sys1 + sys2 La representación de la interconexión en paralelo es la siguiente:

 

  53

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 24. Interconexión en paralelo de dos modelos LTI. Adición y sustracción

    

    

Fuente: Armando Portela (2008) Si sys1 y sys2 son dos modelos de variables de estado con A1, B1, C1, D1, y A2, 2, C2, y D2, el resultado sería:

⎥⎦

⎤⎢⎣

2

1

00A

A,   ⎥

⎤⎢⎣

2

1

BB

,    [ ]21 CC ,  21 DD +

Tambien soporta la suma escalar y se comporta de la siguiente manera: si sys1 es MIMO y sys2 es SISO, sys1 + sys2 produce un sistema con las dimensiones de sys. El comado para conectar los sistemas en paralelo es: parallel(sys1,sys2)

y2 

sys1 u 

sys1 

sys2 

sys 

y1 

sys2 

sys 

y1 

y2 

y + 

 

  54

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Multiplicación. La multiplicación de dos modelos LTI es conectarlos en serie. Específicamente

sys = sys1 * sys2

MATLAB retorna un modelo LTI sys conectado en serie como se muestra:

Figura 25. Interconexión en serie

 

Fuente: Armando Portela (2008) El comando para conectar en serie los sistemas es: series(sys1, sys2) Si sys1 y sys2 son dos modelos de variables de estado con A1, B1, C1, D1, y A2, 2, C2, y D2, el resultado sería:

⎥⎦

⎤⎢⎣

2

211

0 ACBA

,    ⎥⎦

⎤⎢⎣

2

21

BDB

,    [ ]211 CDC ,    21DD  

  

Inversión y operaciones relacionadas. La inversión de modelos LTI , invierte la relación entre entradas y salidas

yHuHuy 1−=→=  

  Esta operación es definida únicamente para sistemas cuadrados, está determinada por:

inv(sys)

 

sys1  sys2 u  y v 

 

  55

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

El modelo inverso resultante es del mismo tipo que sys. Las operaciones relacionadas incluyen:

o División izquierda sys1\sys2, lo cual es equivalente inv(sys1)*sys2 o División derecha sys1/sys2, lo cual es equivalente sys1*inv(sys2)

Para el modelo de variable de estado sys con datos A,B,C,D, inv(sys) está definida solamente cuando D es una matriz cuadrada invertible, en cuyo caso los datos de variables de estado son:

CBDA 1−− ,  1−BD ,    CD 1−− ,  1−D    

Transposición. Se puede transponer un sistema LTI usando: sys.’ Esta es una operación literal con los siguientes efectos:

o Para los modelos TF (con argumentos de entrada, num y den), los arreglos num y den son transpuestos.

o Para los modelos ZPK (con argumentos de entrada z, p, k), los

arreglos z, p, y k son transpuestos.

o Para modelos SS (con datos A, B, C, D), la transposición produce un modelo de variable de estado AT, BT, CT, DT.

o Para modelos FRD (con una respuesta de frecuencia compleja la

matriz respuesta (response)), la matriz de datos de respuesta en frecuencia de cada frecuencia es transpuesta.

El toolbox de control provee un número de funciones que ayudan a modelar y construir procesos. Eso incluye las funciones para la interconexión de modelos, estas funciones son útiles para modelos de lazo abierto y cerrado.

 

  56

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Tabla 12. Sintaxis y ejemplos de comandos empleados para interconectar modelos. Operador de interconexión Descripción

[,] Concatena los modelos horizontalmente [;] Concatena los modelos verticalmente append Agrega modelos en una configuración de bloque diagonal, la sintaxis de este

comando es la siguiente: sys=append(sys1, sys2,…,sysN). Añade las entradas y salida de los modelos LTI sys1,…,sysN, para formar un modelo aumentado, como se describe a continuación

Figura 26. Modelo compuesto.

Fuente: Armando Portela (2008). Para un sistema con unas funciones de transferencia H1(s),…,HN(s), el sistema resultante tiene una diagonal en su función de transferencia.

⎥⎥⎥⎥

⎢⎢⎢⎢

)(000

0)(000)(

2

1

sH

sHsH

NL

OMM

M

L

 

Para un modelo de variable de estado sys1 y sys2 con datos (A1, B1, C1, D1) y (A2, B2, C2, D2), append(sys1,sys2), produce el siguiente modelo de variable de estado.

⎥⎦

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡+⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡=

⎥⎥

⎢⎢

⎡•

2

1

2

1

2

1

2

1

2

1

00

00

yy

BB

xx

AA

x

⎥⎦

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡+⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

2

1

2

1

2

1

2

1

2

1

00

00

uu

DD

xx

CC

yy

 

 Los argumentos de entrada sys1,..,sysN, pueden ser modelos LTI de cualquier tipo. Las matrices regulares también son representadas como ganancias

 

  57

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

estáticas, pero deben tener por lo menos un objeto de tipo LTI. Todos los modelos deben ser continuos o todos discreto con el mismo tiempo de muestreo. Cuando los modelos son de diferente tipo, el tipo está determinado por la reglas de precedencia. No existe el límte de entradas. Ejemplo: Los comandos: sys1 = tf(1,[1 0]) sys2 = ss(1,2,3,4) sys = append(sys1,10,sys2) Producen el modelo de variables de estado: sys a = x1 x2 x1 0 0 x2 0 1.00000 b = u1 u2 u3 x1 1.00000 0 0 x2 0 0 2.00000 c = x1 x2 y1 1.00000 0 y2 0 0 y3 0 3.00000 d = u1 u2 u3 y1 0 0 0 y2 0 10.00000 0 y3 0 0 4.00000 Continuous-time system.

connect Deriva el modelo de variables de estado a partir de la descripción del diagrama de bloques. La sintaxis del comando es la siguiente: sysc = connect(sys, Q, inputs, outputs ) Los sistemas dinámicos complejos se dan a menudo como diagrama de bloques. Para sistemas de complejidad moderada puede ser bastante difícil encontrar un modelo de variable de estado requerido para analizar y diseñar las herramientas para usarlo. Comenzando con la descripción del diagrama de bloque se puede usar append y connect, para construir un modelo de variable de estado para el sistema. Primero se emplea: sys=append(sys1, sys2,…,sysN) Para especificar cada bloque sysj en el diagrama y la formar un bloque diagonal,

 

  58

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

ajenas al modelo LTI del sistema. Luego se emplea: sysc=connect(sys, Q, inputs, outputs) Para conectar los bloques juntos y derivar en el modelo de variable de estado para la interconexión total. Los argumentos Q, inputs, outputs tiene el siguiente propósito: • La matriz Q indica como están conectados los bloques en el diagrama. Tiene

una fila por cada entrada de sys, donde el primer elemento de cada fila es el número de la entrada. Los subsecuentes elementos de cada fila, indica donde el bloque de entrada tiene sus entradas sumadas; los elementos negativos indican entradas negativas en el punto de unión.

• Dado sys y Q se calcula un modelo de variables de estado para la interconexión con las mismas entradas y salidas que sys (que es la concatenación de todos los bloques entrada y salida). Los índices de los vectores de entrada y salida indican cual de las entradas y salidas son externas al diagrama de bloques.

La función connect no soporta retrasos. Ejemplo:

Figura 27. Ejemplo de interconexión de sistemas

Fuente: Armando Portela (2008).

Dada las matrices del modelo de variable de estado sys2 A = [ -9.0201 17.7791 -1.6943 3.2138 ]; B = [ -.5112 .5362 -.002 -1.8470]; C = [ -3.2897 2.4544 -13.5009 18.0745]; D = [-.5476 -.1410 -.6459 .2958 ]; Se definen los trs bloques como modelos LTI individuales sys1 = tf(10,[1 5],'inputname','uc') sys2 = ss(A,B,C,D,'inputname',{'u1' 'u2'},'outputname',{'y1' 'y2'})

 

  59

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

sys3 = zpk(-1,-2,2) A continuación se añaden los bloques para formar el bloque no interconectado. sys = append(sys1,sys2,sys3) Esto produce el modelo de bloques diagonal: sys a = x1 x2 x3 x4 x1 -5 0 0 0 x2 0 -9.0201 17.779 0 x3 0 -1.6943 3.2138 0 x4 0 0 0 -2 b = uc u1 u2 ? x1 4 0 0 0 x2 0 -0.5112 0.5362 0 x3 0 -0.002 -1.847 0 x4 0 0 0 1.4142 c = x1 x2 x3 x4 ? 2.5 0 0 0 y1 0 -3.2897 2.4544 0 y2 0 -13.501 18.075 0 ? 0 0 0 -1.4142 d = uc u1 u2 ? ? 0 0 0 0 y1 0 -0.5476 -0.141 0 y2 0 -0.6459 0.2958 0 ? 0 0 0 2 Continuous-time system. Hay que notar que el orden de las entradas y las salidas es la misma como el orden de los bloques que se escogió, las entradas y salidas son denotadas por b. Para producir l diagramas de bloques total de sys especifica las interconexiones y las entradas y salidas externas. Se necesita conectar las saidas 1 y 4 en la entrada 3 (u2) y la salida 3 (y2) en la entrada 4. La matriz de interconexión Q es: Q= [3 1 -4 4 3 0]; Hay que notar en la segunda fila de Q tiene ceros. El diagrama de bloques tiene dos entradas externas uc y u1 (entradas 1 y 2 de sys) y dos salidas externas y1 y y2 (salidas 2 y 3 de sys). De acuerdo ha esto el arreglo de entradas y salidas es: inputs = [1 2]; outputs = [2 3]; Se obtiene el modelo de variables de estado interconectado, escribiendo: sysc = connect(sys,Q,inputs,outputs)

 

  60

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

MATLAB retorna: a = x1 x2 x3 x4 x1 -5 0 0 0 x2 0.84223 0.076636 5.6007 0.47644 x3 -2.9012 -33.029 45.164 -1.6411 x4 0.65708 -11.996 16.06 -1.6283 b = uc u1 x1 4 0 x2 0 -0.076001 x3 0 -1.5011 x4 0 -0.57391 c = x1 x2 x3 x4 y1 -0.22148 -5.6818 5.6568 -0.12529 y2 0.46463 -8.4826 11.356 0.26283 d = uc u1 y1 0 -0.66204 y2 0 -0.40582 Continuous-time system Cabe notar que las entradas y salidas son como se buscaba.

Parallel Conecta dos modelos LTI, la sintaxis de este comando es: sys = parallel(sys1,sys2) sys = parallel(sys1,sys2,inp1,inp2,out1,out2) Esta función acepta cualquier tipo de modelo LTI. Los dos sistemas deben ser continuos o discretos con el mismo tiempo de muestreo. Las ganancias estáticas y neutrales pueden ser especificadas como matrices regulares. sys = parallel(sys1,sys2) Es equivalente a hacer la suma directa entre los dos sistemas como se explicó con anterioridad. sys = parallel(sys1,sys2,inp1,inp2,out1,out2) La conexión del sistema se describe a continuación:

 

  61

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 28. Interconexión de un sistema en paralelo

Fuente: Armando Portela (2008). Es la forma más general de la interconexión en paralelo. Los índices de los vectores inp1 e inp2 especifican cual entrada u1 de sys1 y cual entrada u2 de sys2 están conectadas. Similarmente los índices de los vectores out1 y out2 especifican cual de las salidas y1 de sys1 y cuál de las salidas y2 de sys2 están sumadas. El modelo resultante sys tiene [v1 ; u ;v2] como entradas y [z1; y ; z2]como salidas.

series Conecta dos modelos LTI, en serie la sintaxis de este comando es la siguiente: sys = series(sys1,sys2) sys = series(sys1,sys2,outputs1,inputs2) Esta función acepta cualquier tipo de modelo LTI. Los dos sistemas deben ser continuos o discretos con el mismo tiempo de muestreo. Las ganancias estáticas y neutrales pueden ser especificadas como matrices regulares. sys = series(sys1,sys2) Esto es equivalente a multiplicar los sistemas directamente, y esta se comento con anterioridad. sys = series(sys1,sys2,outputs1,inputs2), Es la forma más general de la conexión en serie. Esta conexión esta descrita en la siguiente figura:

 

  62

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 29. Interconexión de un sistema en serie

Fuente: Armando Portela (2008).

El índice de los vectores outputs1 y outputs2 indica cual salida de y1 de sys1 y cual entrada u2 de sys2 deben ser conectadas. El modelo resultante sys tiene u como entrada e y como salida.

feedback Conecta dos sistemas LTI retroalimentados, la sintaxis de este comando es la siguiente: sys = feedback(sys1,sys2) sys = feedback(sys1,sys2,sign) sys = feedback(sys1,sys2,feedin,feedout,sign) El primer comando retorna un sistema LTI sys con retroalimentación negativa

Figura 30. Interconexión de un sistema con retroalimentación negativa

Fuente: Armando Portela (2008). El modelo de lazo cerrado sys tiene u como vector de entrada e y como vector de salida. Los modelos LTI sys1 y sys2 deben ser continuos o ambos discreto con el mismo tiempo de muestreo. Las reglas de precedencia determinan el tipo de modelo resultante. Para aplicar retroalimentación negativa, se usa la sintaxis sys = feedback(sys1,sys2,+1)

 

  63

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Por defecto el commando feedback assume una retroalimentación negativa lo que es equivalente a sys = feedback(sys1,sys2,-1). Finalmente sys = feedback(sys1,sys2,feedin,feedout,sign) Calcula un modelo de lazo cerrado para la forma más general de un lazo cerrado.

Figura 31. Diagrama generalizado de un sistema retroalimentado

Fuente: Armando Portela (2008). El vector feedin contiene los índices del vector de entrada de sys1 y especifica cuales entradas u están involucradas en lazo de retroalimentación. Similarmente feedout especifica cuales salidas y de sys1 son usadas para la retroalimentación. El modelo resultante tiene las mismas entradas y salidas como sys1 (con el mismo orden). La retroalimentación negativa es aplicada por defecto. Para aplicar una retroalimentación positiva se utilizaría la siguiente sintaxis: sys = feedback(sys1,sys2,feedin,feedout,+1)

Fuente: Armando Portela (2008). Se pueden realizar conversiones entre sistemas continuos y discretos, con el uso de un solo comando (c2d o d2c). Este (c2c) discretiza modelos de tiempo continuo TF, ZPK, SS. Inversamente, d2c convierte modelos de tiempo discreto TF, ZPK, SS. La sintaxis de los comandos de estos comandos son:

sysd = c2d(sysc,Ts); % Ts = Periodo de muestreo en segundos sysc = d2c(sysd);

 

  64

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

La conversión de tiempo discreto a continuo utiliza un retenedor de orden cero ZOH, por defecto. Herramientas para el análisis de sistemas de control. Estas herramientas pueden usarse para determinar las características como el número de pares de entrada/salida, el tiempo de muestreo si el sistema es discreto. Esta lista de comandos funciona con cualquier modelo de sistema LTI. Los análisis pueden ser hechos en el dominio del tiempo o en el dominio de la frecuencia. Los comandos para el análisis en el dominio del tiempo son los siguientes:

Tabla 13. Sintaxis y ejemplos de comandos empleados para el análisis de sistemas de control. Comando Sintaxis impulse Calcula la respuesta del modelo LTI al impulso. La sintaxis de este comando es la siguiente:

impulse(sys) impulse(sys,t) impulse(sys1,sys2,...,sysN) impulse(sys1,sys2,...,sysN,t) impulse(sys1,'PlotStyle1',...,sysN,'PlotStyleN') [y,t,x] = impulse(sys) La respuesta al impulso, es la respuesta del sistema a una entrada delta de Dirac δ(t), para sistemas de tiempo continuo y al pulso unitario en t=0 para los de tiempo discreto. El estado inicial de cero está supuesto para los sistemas de variables de estado. Cuando este comando es utilizado sin los argumentos del lado izquierdo de la asignación, esta función dibuja la respuesta al impulso en pantalla. • impulse(sys): Grafica la respuesta impulso de un modelo arbitrario LTI sys. Este modelo

puede ser continuo o discreto, y SISO o MIMO. La respuesta al impulso de un sistema multi-entrada es la colección de las respuestas impulsos para cada canal de entrada. La duración de la simulación está determinada automáticamente para mostrar el comportamiento transiente de la respuesta.

• impulse(sys,t):ajusta los límites de la simulación. Se puede especificar el tiempo final t=Tfinal (en segundos) o un vector de muestras de tiempos equiespaciadas. De la forma: t = 0:dt:Tfinal. Para tiempos discretos el espaciamiento dt debe coincidir con el periodo de muetreo. Para sistemas continuos, dt se convierte en el timpo muestreado del modelo de simulación discretizado, para asegurarse que se escoja un dt lo suficientemente pequeño para capturar el fenómeno del transiente.

• Para dibujar la respuesta al impulso de muchos modelos LTI, en una sola figura se usa: impulse(sys1,sys2,...,sysN) impulse(sys1,sys2,...,sysN,t)

 

  65

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Cuando son utilizados los argumentos del lado izquierdo del lado de la asignación y,t] = impulse(sys) [y,t,x] = impulse(sys) y = impulse(sys,t) (Esto es utilizado únicamente para los modelos de variables de estado), estos retornan la respuesta de salida y , el vector de tiempo t usada para la simulación, y las trayectoria de estado x. No realiza ningún esquema. Para sistemas de una sola entrada, y tiene muchas filas como muestras de tiempo (longitud t), y tantas columnas como salidas. En el caso de de un modelo multi-entradas, la respuesta de cada canal de entrada son apilados en la tercera dimensión de y, las dimensiones de y son: (Longitud de t ) X (número de salidas) X (número de entradas) Ejemplo: Dibujar la respuesta al impulso del modelo de variable de estado de segundo orden.

⎥⎦

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡ −+⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡ −−=

⎥⎥

⎢⎢

⎡•

2

1

2

1

2

1

2011

07814.07814.05572.0

uu

xx

x

[ ] ⎥⎦

⎤⎢⎣

⎡=

2

14493.69691.1xx

y  

Usando los siguientes comandos: a= [-0.5572 -0.7814;0.7814 0]; b = [1 -1;0 2]; c = [1.9691 6.4493]; sys = ss(a,b,c,0); impulse(sys). MATLAB retorna:

 

  66

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 32. Respuesta al impulso del sistema.

0 5 10 15 20-6

-4

-2

0

2

4

6

8

10

12From: In(1)

0 5 10 15 20

From: In(2)Impulse Response

Time (sec)

Ampl

itude

Fuente: Captura de Matlab versión trial (2008)..

step Calcula la respuesta de los modelos LTI al escalón unitario. La sintaxis del comando es la siguiente: step(sys) step(sys,t) step(sys1,sys2,...,sysN) step(sys1,sys2,...,sysN,t) [y,t,x] = step(sys) El estado inicial de cero está supuesto para los sistemas de variables de estado. Cuando este comando es utilizado sin los argumentos del lado izquierdo de la asignación, esta función dibuja la respuesta al escalón en pantalla. • step(sys): Grafica la respuesta escalón de un modelo arbitrario LTI sys. Este modelo puede

ser continuo o discreto, y SISO o MIMO. La respuesta al impulso de un sistema multi-entrada es la colección de las respuestas escalon para cada canal de entrada. La duración de la simulación está determinada automáticamente para mostrar el comportamiento transiente de la respuesta.

• step(sys,t):ajusta los límites de la simulación. Se puede especificar el tiempo final t=Tfinal (en segundos) o un vector de muestras de tiempos equiespaciadas. De la forma: t = 0:dt:Tfinal. Para tiempos discretos el espaciamiento dt debe coincidir con el periodo de muetreo. Para sistemas continuos, dt se convierte en el timpo muestreado del modelo de simulación discretizado, para asegurarse que se escoja un dt lo suficientemente pequeño para capturar el fenómeno del transiente.

• Para dibujar la respuesta al impulso de muchos modelos LTI, en una sola figura se usa:

 

  67

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

step(sys1,sys2,...,sysN) step(sys1,sys2,...,sysN,t) Cuando son utilizados los argumentos del lado izquierdo del lado de la asignación y,t] = impulse(sys) [y,t,x] = impulse(sys) y = impulse(sys,t) (Esto es utilizado únicamente para los modelos de variables de estado), estos retornan la respuesta de salida y , el vector de tiempo t usada para la simulación, y las trayectoria de estado x. No realiza ningún esquema. Para sistemas de una sola entrada, y tiene muchas filas como muestras de tiempo (longitud t), y tantas columnas como salidas. En el caso de de un modelo multi-entradas, la respuesta de cada canal de entrada son apilados en la tercera dimensión de y, las dimensiones de y son: (Longitud de t ) X (número de salidas) X (número de entradas) Ejemplo: Dibujar la respuesta al escalón unitario del modelo de variable de estado de segundo orden.

⎥⎦

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡ −+⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡ −−=

⎥⎥

⎢⎢

⎡•

2

1

2

1

2

1

2011

07814.07814.05572.0

uu

xx

x

[ ] ⎥⎦

⎤⎢⎣

⎡=

2

14493.69691.1xx

y  

 Usando los siguientes comandos: a= [-0.5572 -0.7814;0.7814 0]; b = [1 -1;0 2]; c = [1.9691 6.4493]; sys = ss(a,b,c,0); step(sys). MATLAB retorna:

 

  68

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 33. Respuesta al sistema al escalón unitario

0 5 10 15 20

-4

-2

0

2

4

6

8

10

12From: In(1)

0 5 10 15 20

From: In(2)Step Response

Time (sec)

Ampl

itude

Fuente: Captura de Matlab versión trial (2008)..

Fuente: Armando Portela (2008). Para el análisis de sistemas a nivel de respuesta en frecuencia tenemos los siguientes comandos:

Tabla 14. Sintaxis y ejemplos de comandos empleados para el análisis de la respuesta en frecuencia de sistemas de control. Comando Sintaxis Bode Calcula la magnitud y la fase de la respuesta en frecuencia de los modelos LTI. Cuando no son

utilizados los argumentos del lado izquierdo de la asignación el comando produce un diagrama de Bode en la pantalla. La magnitud es dibujada en decibeles (dB) y la fase en grados. El cálculo de los decibeles como: ( )( )ωjH10log20 donde ( )ωjH es la respuesta del modelo en frecuencia. Este diagrama es utilizado para analizar las propiedades de los sistemas como el margen de ganancia, margen de fase, ganancia en DC, ancho de banda, rechazo a las interferencias y estabilidad. La sintaxis de este comando es la siguiente:

 

  69

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

bode(sys) bode(sys,w) bode(sys1,sys2,...,sysN) bode(sys1,sys2,...,sysN,w) [mag,phase,w] = bode(sys) • bode(sys): Dibuja la respuesta de Bode de cualquier modelo LTI (sys). este modelo puede

ser continuo o discreto, SISO o MIMO en este caso produce un arreglo de diagramas de Bode, cada diagrama es mostrado de acuerdo a la entrada del sistema. El rango de frecuencia está determinado automáticamente por el sistema de polos y ceros.

• bode(sys,w): se especifica explícitamente el rango de frecuencias o los puntos de

frecuencias que serán usados para el diagrama. Para enfocarlo en un rango de frecuencias particular [wmin, wmax], se asigna w=(wmin,wmax). Para usar puntos de frecuencias particulares se ajusta el vector w a las frecuencias deseadas. Se usa logspace, para generar vectores de frecuencia logarítmicamente espaciados. todas las frecuencia deben ser dadas en radian/sec.

• bode(sys1,sys2,...,sysN,w ) o bode(sys1,sys2,...,sysN,w): Dibuja la respuesta de varios

modelos LTI en una sola figura. Todos los sistemas deben tener el mismo número de entradas y de salidas pero puede ser una combinación de modelos continuos y discretos. Esta sintaxis es útil para comparar la respuesta de múltiples sistemas.

Cuando son invocados los argumentos del lado izquierdo de la asignación: [mag,phase,w] = bode(sys) [mag,phase] = bode(sys,w) Retorna la magnitud y la fase (en grados) de la respuesta en frecuencia a las frecuencias w(rad/sec). Las salida mag y phase son arreglos tridimensionales con la frecuencia como su ultima dimensión, se puede hacer la conversión de la magnitud a dB se hace de la siguiente forma: magdb = 20*log10(mag). Ejemplo: Dibujar el diagrama de Bode para el siguiente sistema SISO continuo:

234

2

912.05.71.0)(sss

sssH++++

=  

Digitando los siguientes comandos: g= tf([1 0.1 7.5],[1 0.12 9 0 0]); bode(g)

 

  70

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 34. Diagrama de bode del sistema.

-40

-30

-20

-10

0

Mag

nitude

(dB)

100

101

-180

-135

-90

-45

Phas

e (d

eg)

Bode Diagram

Frequency (rad/sec) Fuente: Captura de Matlab versión trial (2008)..

Para dibujar la frecuencia en un rango más amplio de 0.1 a 100 rad/sec se digita: bode(g,{0.1 , 100}) MATLAB retorna

Figura 35. Diagrama del sistema con una el rango de frecuencia ampliado.

-80

-60

-40

-20

0

20

40

Mag

nitude

(dB)

10-1

100

101

102

-180

-135

-90

-45

Phas

e (d

eg)

Bode Diagram

Frequency (rad/sec) Fuente: Captura de Matlab versión trial (2008).. Si se desea discretizar con un retenedor de orden cero y un tiempo de muestreo de Ts=0.5 segundos, y compararlo con el sistema continuo se digita: gd = c2d(g,0.5) bode(g,'r',gd,'b--')

 

  71

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 36. Comparación de los diagramas de Bodes continuo y discretos

-80

-60

-40

-20

0

20

40

Mag

nitu

de (d

B)

10-1

100

101

-270

-180

-90

0

Phas

e (d

eg)

Bode Diagram

Frequency (rad/sec)

Fuente: Captura de Matlab versión trial (2008)..

Nyquist Calcula la frecuencia de Nyquist de los modelos LTI, es la frecuencia de muestreo necesaria para discretizar un modelo continuo. Nyquist: calcula la respuesta frecuencial de Nyquist del modelo LTI. Cuando no son utilizados los argumentos del lado izquierdo de la asignación el comando produce un diagrama de Nyquist en la pantalla. Este diagrama es utilizado para analizar las propiedades de los sistemas como el margen de ganancia, margen de fase, y estabilidadLa sintaxis de este comando es la siguiente: nyquist(sys) nyquist(sys,w) nyquist(sys1,sys2,...,sysN) nyquist(sys1,sys2,...,sysN,w) [re,im,w] = nyquist(sys) [re,im] = nyquist(sys,w) • nyquist(sys): Dibuja la respuesta de Nyquist de cualquier modelo LTI (sys). este modelo

puede ser continuo o discreto, SISO o MIMO en este caso produce un arreglo de diagramas de Nyquist, cada diagrama es mostrado de acuerdo a la entrada del sistema. El rango de frecuencia está determinado automáticamente por el sistema de polos y ceros.

• nyquist(sys,w): se especifica explícitamente el rango de frecuencias o los puntos de frecuencias que serán usados para el diagrama. Para enfocarlo en un rango de frecuencias particular [wmin, wmax], se asigna w=(wmin,wmax). Para usar puntos de frecuencias particulares se ajusta el vector w a las frecuencias deseadas. Se usa logspace, para generar vectores de frecuencia logarítmicamente espaciados. todas las frecuencia deben ser dadas en radian/sec.

 

  72

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

• nyquist(sys1,sys2,...,sysN,w ) o bode(sys1,sys2,...,sysN,w): Dibuja la respuesta de varios modelos LTI en una sola figura. Todos los sistemas deben tener el mismo número de entradas y de salidas pero puede ser una combinación de modelos continuos y discretos. Esta sintaxis es útil para comparar la respuesta de múltiples sistemas.

Cuando son invocados los argumentos del lado izquierdo de la asignación: [re,im,w] = nyquist(sys) [re,im] = nyquist(sys,w) Retorna la parte real e imaginaria de la respuesta en frecuencia a las frecuencias w(rad/sec). Las salida re y im son arreglos tridimensionales. Ejemplo: Dibujar el diagrama de Nyquist para el siguiente sistema :

32152)( 2

2

++++

=sssssH  

Digitando los siguientes comandos: H = tf([2 5 1],[1 2 3]) nyquist (H) MATLAB retorna:

Figura 37. Diagrama de Nyquist del sistema

-1 -0.5 0 0.5 1 1.5 2 2.5 3-2

-1.5

-1

-0.5

0

0.5

1

1.5

2Nyquist Diagram

Real Axis

Imag

inar

y Ax

is

Fuente: Captura de Matlab versión trial (2008)..

 

  73

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

El lugar geométrico de las raíces de Evans (quién en 1948 propuso algunas reglas para esbozar el gráfico) es realizado por el comando rlocus en un modelo SISO de lazo abierto. El lugar geométrico de las raíces brinda las trayectorias de lazo cerrado como función de la ganancia de la trayectoria de retroalimentación k (asumiendo una retroalimentación negativa). Este gráfico es usado para estudiar los efectos de la variación de las ganancias en la retroalimentación en la localización de los polos en un lazo cerrado. A su vez esos lugares proporcionan una información indirecta de las respuestas en el tiempo y en la frecuencia. La sintaxis de este comando es:

rlocus(sys) rlocus(sys,k) rlocus(sys1,sys2,...) [r,k] = rlocus(sys) r = rlocus(sys,k)

rlocus(sys): calcula y grafica el lugar geométrico de las raíces del modelo SISO de lazo abierto sys. esta función puede ser aplicada a los siguientes lazos de retroalimentación negativo, ajustando las características del modelo sys apropiadamente.

Figura 38. Lazos de retroalimentación

Fuente: Armando Portela (2008).

 

  74

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Si sys tiene la función de transferencia:

)()()(

sdsnsh =

Los polos del lazo cerrados son las raíces de:

0)()( =+ sknsd    

El comando selecciona un conjunto de valores de k, para producir un diagrama suavizado. Alternativamente rlocus(sys,k), donde los valores de k son especificados por el usuario para diagramar el lugar geométrico de las raíces. rlocus(sys1,sys2,...), diagrama el lugar geométrico de las raíces de múltiples modelos LTI, en un solo diagrama. Cuando son invocados los argumentos del lado izquierdo de la asignación:

[r,k] = rlocus(sys) r = rlocus(sys,k)

Retorna el vector k de las ganancias seleccionadas y los lugares de las raíces complejas r para esas ganancias. Ejemplo: Diagrame el lugar geométrico de las raíces para el siguiente sistema:

32152)( 2

2

++++

=sssssH  

h = tf([2 5 1],[1 2 3]); rlocus(h)

MATLAB retorna;

 

  75

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 39. Diagrama del lugar geométrico de las raíces del sistema

-2.5 -2 -1.5 -1 -0.5 0-1.5

-1

-0.5

0

0.5

1

1.5Root Locus

Real Axis

Imag

inar

y Ax

is

Fuente: Captura de Matlab versión trial (2008)..

Lección 10: Simulación de un sistema de control Modelado de un motor de corriente de continua.

Figura 40. Esquema del circuito eléctrico y diagrama mecánico rotacional  

Fuente: Armando Portela (2008).

 

  76

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Par el modelo del motor se consideraron los parámetros dados en la Tabla 15.

Tabla 15. Parámetros de un Motor de Corriente Continua

Parámetro Símbolo Valor Momento de inercia del sistema J

2

2

01.0s

kgm

Coeficiente de fricción b Nms1.0 Constante de fuerza electromotriz (FEM)

K=Ke=Kt A

Nm01.0

Resistencia de armadura R Ω1 Entrada: fuente de tensión V H5.0 Posición del eje Θ

Fuente: Armando Portela (2008). Se suponen rotor y ejes rígidos, El torque (T) se relaciona con la corriente de armadura y la fem (e) con la velocidad de rotación, según las siguientes ecuaciones:

iKT t ⋅= (1)     •

⋅= θeKe (2) 

Con base en las leyes de Newton y en las leyes de Kirchoff, resultan las siguientes ecuaciones diferenciales que describen al sistema dinámico.

iKbJ ⋅=⋅+⋅•••

θθ (3) ••

⋅−=⋅+⋅ θKViRiL (4)  

Aplicando la transformada de Laplace y haciendo cero las condiciones iniciales, las expresiones quedan de la siguiente manera

iKsbsJs ⋅=Θ⋅+⋅⋅ )()( (5) 

)()()( ssKVsIRsL Θ⋅⋅−=⋅+⋅ (6) 

 

  77

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Igualando las ecuaciones 5 y 6 y despejando se obtiene:

2)()( KRsLbsJK

V ++⋅⋅+⋅=

Θ•

 (7) 

  Que es la función de transferencia del sistema. El modelo de variables de estado es el siguiente:

vLi

LR

LK

JK

Jb

idtd

⋅⎥⎥⎦

⎢⎢⎣

⎡+

⎥⎥⎦

⎢⎢⎣

⎡⋅

⎥⎥⎥

⎢⎢⎢

−−

−=

⎥⎥⎦

⎢⎢⎣

⎡ ••

10θθ  (8) 

Código en MATLAB: %%MOTOR DE CORRIENTE CONTINUA CC %Definición de los parámetros J=0.01; b=0.1; K=0.01; R=1; L=0.5; %Creación de la función de transferencia num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)]; sys=tf(num,den) %Respuesta al impulso en lazo abierto: impulse(sys) title('Respuesta al impulso en lazo abierto'); grid; xlabel('Tiempo'); ylabel('Amplitud'); %Respuesta al escalón en lazo abierto figure; step(sys) title('Respuesta al escalón en lazo abierto'); grid; xlabel('Tiempo'); ylabel('Amplitud');

 

  78

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

%Variables de estado A=[-b/J K/J -K/L -R/L]; B=[0 1/L]; C=[1 0]; D=0; sysss=ss(A,B,C,D) %Respuesta al impulso en lazo abierto: figure; impulse(sysss) title('Respuesta al impulso en lazo abierto'); grid; xlabel('Tiempo'); ylabel('Amplitud'); %Respuesta al escalón en lazo abierto figure; step(sysss) title('Respuesta al escalón en lazo abierto'); grid; xlabel('Tiempo'); ylabel('Amplitud'); Siendo el mismo sistema descrito de formas diferentes, las respuestas son iguales. El sistema de lazo cerrado debe cumplir con las siguientes condiciones:

• Tiempo de establecimiento de 2seg • Sobreimpulso menor que el 5% • Error de estado estacionario 1%

Para diseñar el controlador PID se debe recordar la función de transferencia de este controlador, la cual es:

sKsKsKsK

sKK IDD

DI

P+⋅+⋅

=⋅++2

(9) 

 

 

  79

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Se debe encontrar los valores de las constantes del controlador que hagan cumplir las condiciones mencionadas anteriormente. Que en este caso son: Kp=100, Ki=200, Kd=10, con este código se pueden hacer pruebas para el controlador.   %Función de transferencia del controlador PID input('Ingrese el valor de la parte proporcional '); Kp=ans; input('Ingrese el valor de la parte integral '); Ki=ans; input('Ingrese el valor de la parte derivativa '); Kd=ans; numc=[Kd, Kp, Ki]; denc=[1 0]; %Se determina la función del sistema retroalimentado numa=conv(num,numc); dena=conv(den,denc); [numac,denac]=cloop(numa,dena); figure; step(numac,denac) El lugar geométrico de las raíces, es utilizado para controlar el sistema, realizando una compensación esto se logra agregando polos y ceros, con tal de que el sistema en lazo cerrado, se comporte como se desea. Para conseguir esta compensación se agrega un compensador por atraso de fase, cuya función de transferencia es:

01.01

++

ss

(10) 

  %Utilizando el lugar geométrico de las raíces con un compensador por atraso de fase. figure; rlocus(num,den)%LGR en lazo abierto z1=1; p1=0.01; numa = [1 z1]; dena = [1 p1]; numb=conv(num,numa); denb=conv(den,dena); figure; rlocus(numb,denb) sgrid(.8,0) title('LGR con un compensador por atraso de fase')

 

  80

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

%Permite ver la respuesta del lazo cerrado con el compensador por %atraso de fase

input('Ingrese el valor de la ganancia '); %Permite ingresar el valor de la ganancia desde la línea de comandos

k=ans; [numc,denc]=cloop(k*numb,denb,-1); figure; step(numc,denc) title('Respuesta escalon con un compensador')

CAPITULO 3: SIMULINK. CONCEPTOS BASICOS Introducción. SIMULINK es un paquete software utilizado para modelar simular y analizar sistemas dinámicos, soporta tanto sistemas lineales como no lineales, pueden ser modelados de forma continua, discreta o una mezcla de ambos. Uno de los objetivos de este programa es brindar herramientas gráficas que a diferencia de la programación normal se basa en la unión de diferentes bloques funcionales para realizar modelado y simulación de sistemas.   Lección 11: Características SIMULINK es un entorno de simulación multi-dominio basado en modelos para sistemas dinámicos y embebidos. Proporciona un entorno gráfico interactivo y ajustable con un conjunto de librerías de bloques que le permiten, diseñar, simular, implementar y probar una variedad de sistemas variables en el tiempo, incluyendo comunicaciones, control, procesamiento de señales, procesamiento de vídeo, y procesamiento de imágenes. SIMULINK ésta integrado con MATLAB, proporcionando acceso inmediato a una amplia gama de herramientas que le permiten desarrollar algoritmos, analizar y visualizar simulaciones, crear scripts de procesamiento por lotes, personalizar el entorno de modelado, definir señales, parámetros y datos de prueba. Con este programa se puede ir más allá de los modelos lineales ideales, para explorar modelos no lineales, más reales, teniendo en cuenta diferentes factores como fricción, resistencia del aire, detenciones bruscas, entre otros que describen mejor los fenómenos del mundo real. SIMULINK convierte un PC en un laboratorio para el modelado y análisis de sistemas que en la realidad simplemente no sería posible y/o práctico.

 

  81

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Las características fundamentales que definen a este entorno de simulación son las siguientes:

• Gran cantidad de librerías de bloques que pueden ampliarse. • Editor gráfico interactivo para el ensamble y manejo de diagramas de

bloques. • Habilidad para manejar diseños complejos segmentando los modelos en

jerarquías de componentes. • Explorador de modelos para navegar, crear, configurar y buscar todas las

señales, propiedades y código generado asociado con un modelo. • Posee interfaces de programación de aplicaciones (API´s), que permiten

conectarse con otros programas de simulación. • Posee bloques de función con MATLAB embebido, para ser usadas en

sistemas de esta característica. • Modos de simulación (normal, acelerado o rápidamente acelerado), para

correr simulaciones interpretativamente o compiladas. • Depurador gráfico para examinar resultados de las simulaciones y

diagnosticar la ejecución y comportamientos inesperados. • Acceso total a MATLAB, para analizar y visualizar resultados, ajustar el

entorno de modelado, y definir señales, parámetros y datos de pruebas. • Análisis de modelos y herramientas de diagnóstico para asegurar la

consistencia del modelo e identificación de errores. Las aplicaciones de SIMULINK son similares a las de MATLAB, por lo que a continuación se describirán las más importantes. Diseño de sistemas de control: Para el diseño de sistemas embebidos (empotrados), esta herramienta es utilizada para la creación de modelos, muy empleados en diferentes áreas como la industria aeroespacial, procesos de control, equipos industriales, etc. Procesamiento de señal y telecomunicaciones: El diseño basado en simulación de modelos, permite un desarrollo de aplicaciones más rápido y económico, la simulación dinámica elimina la necesidad de prototipos físicos. Un método de pruebas integrado ayuda a corregir los errores, y mejorar la calidad de los diseños. Procesamiento de imagen: Este entorno posee herramientas para el procesamiento de imágenes y video, además proporciona a los ingenieros,

 

  82

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

científicos, investigadores una interfaz intuitiva y flexible para resolver complejos problemas de procesamiento de imágenes. SIMULINK ofrece a los usuarios una gran librería de ayuda que contiene explicaciones del uso de los comandos, los parámetros necesarios para su correcta utilización y una serie de ejemplos que ilustran de una manera didáctica la utilización de los diferentes bloques. Lección 12: Entorno de trabajo en Simulink

SIMULINK está diseñado para que el usuario pueda empezar su estudio implementando aplicaciones sencillas de prueba con fines didácticos, se puede partir construyendo nuevos modelos fácilmente, o bien adoptar un modelo ya existente y añadirle diferentes características, aprovechando el hecho de que se puede tener acceso a todas las herramientas del MATLAB. El SIMULINK proporciona una interfaz gráfica de usuario (GUI), para la construcción de modelos como diagramas de bloques, brindando un entorno gráfico de simulación en el que solo es necesario arrastrar los diferentes bloques funcionales sobre una plantilla, estos bloques prediseñados poseen parámetros que pueden ser modificados de acuerdo con las características que el usuario necesita para su simulación, luego dichos bloques son interconectados creando un flujo de información a través de las conexiones. Iniciando el SIMULINK. Podría considerarse al SIMULINK como un toolbox de MATLAB, en el que se puede programar gráficamente. El acceso a esta herramienta se hace de la siguiente manera:

• Iniciar MATLAB.

• Escriba en la ventana de comando SIMULINK o hacer clic en el icono de SIMULINK de la barra de herramientas. Figura 41.  

• Aparece en pantalla el menú de librería de bloques. Figura 41 Dentro de esta pantalla se puede escoger un nuevo modelo o un modelo preestablecido y/o los bloques a usar. Figura 41.

 

  83

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Se inicia con un nuevo modelo de SIMULINK, haciendo clic sobre nuevo en la pantalla inicial, haciendo clic sobre file en la barra de menús, luego sobre new y por último sobre New model o presionado ctrl+n simultáneamente con esto aparecerá la ventana de inserción de bloques y simulación. Ver Figura 42.

Figura 41. Acceso a SIMULINK.

Fuente: Captura de Matlab versión trial (2008).l.

Figura 42. Pantalla inicial de SIMULINK

Fuente: Captura de Matlab versión trial (2008).l.

 

  84

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 43. Ventana de Inserción de bloques y simulación, Editor de Modelos.

Fuente: Captura de Matlab versión trial (2008).l.

Abriendo un modelo. Para editar un diagrama de un modelo existente se debe abrir dicho modelo, para esto se puede realizar lo siguiente:

• Hacer clic sobre el símbolo de abrir, en la barra de herramientas de la pantalla inicial de SIMULINK o sobre este mismo símbolo en el editor de modelos.

• Escriba en la ventana de comandos de MATLAB el nombre del archivo sin la extensión (*.mdl), se aclara que el archivo debe estar en la carpeta de trabajo de matlab.

Editor de Modelo. Cuando se abre un modelo o una librería SIMULINK despliega la ventana de Editor de Modelo, que consta de las siguientes partes:

• Barra de Menús: Esta contiene los comandos para crear, editar, ver y simular modelos. Dichos comandos son aplicados a los modelos que se encuentren desplegados dentro del editor.

• Barra de Herramientas: permite ejecutar al usuario los comandos de

SIMULINK usados con más frecuencia con solo un clic del ratón. Cuando se desee conocer el propósito del botón que este en esta barra solo es necesario colocar el cursor sobre este y así se mostrará automáticamente su función.

 

  85

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

• Canvas: Este es el lienzo donde se despliega el modelo que ha sido creado o llamado (abierto). El ratón y el teclado son utilizados para crear, conectar, seleccionar, mover y editar bloques.

• Barra de estado: Cuando una simulación está corriendo. Esta barra

despliega el estado de la simulación, incluyendo el tiempo actual de la simulación

Guardando un modelo. Se puede guardar un modelo escogiendo entre Save (guardar) y Save as (guardar como) de la barras de menús. SIMULINK guarda el modelo generando un tipo especial de archivo llamado model file (archivo modelo) con una extensión *.mdl, que contiene al diagrama de bloques y sus propiedades. Si se está guardando el archivo por primera vez se debe usar el comando Save y asignarle un nombre y una localización al archivo, si ya ha sido guardada este comando reemplazará el contenido del archivo. El comando Save as es usado para guardar el archivo con un nuevo nombre y localización y también usarlo para guardar el archivo en versiones anteriores de SIMULINK. Generando un reporte del modelo. Un reporte del modelo es un documento HTML, que describe el contenido y la estructura del modelo. El reporte incluye el diagrama de bloques del modelo y sus sub-sistemas y las características de los parámetros de los bloques. Para generar el reporte de un modelo actual se selecciona en la barra de menús Print details (imprimir detalles) y aparece la siguiente pantalla de diálogo:

Figura 44. Ventana de dialogo para realizar los reportes.

Fuente: Captura de Matlab versión trial (2008).l.

 

  86

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Se selecciona el tipo de reporte en la ventana de dialogo, print (imprimir); SIMULINK genera el reporte HTML y es mostrado en un navegador ordinario. Lección 13: Modelos  

En las siguientes secciones se describirá como crear, configurar y correr un modelo. Un modelo en SIMULINK es una representación de un modelo matemático de un sistema dinámico cualquiera pero como se ha mencionado esto se realiza empleando diagramas de bloques, el modelo matemático se encuentra descrito por un conjunto de ecuaciones que pueden ser del tipo algebraicas, diferenciales o de diferencias. Crear un nuevo modelo. Para crear un nuevo modelo se presiona el botón nuevo Modelo (figura 41) en la barra de herramientas de la pantalla inicial de SIMULINK y luego aparecerá la pantalla de edición de modelo.

Figura 45. Creando un nuevo modelo.

Fuente: Captura de Matlab versión trial (2008).l.

Añadir Bloques. Para crear cualquier modelo en SIMULINK se deben arrastrar los bloques que sean necesarios para el diseño del diagrama. El siguiente ejemplo servirá como guía para la construcción de modelos, en este se emplearán muchos de los comandos y acciones necesarias para este fin. El modelo propuesto tiene la función de integrar una onda seno se anexa un dispositivo de visualización para poder observar la respuesta. El diagrama de bloques del modelo es el siguiente:

 

  87

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 46. Diagrama de bloques del ejemplo

Fuente: Captura de Matlab versión trial (2008).l. Para crear este modelo, se necesitan copiar los bloques de las siguientes librerías de bloques:

• Source library (Librería de fuentes): El bloque de la onda seno • Sinks library (Librería de sumideros): El bloque de visualización de la

respuesta.

• Continuous library (Librería de bloques en tiempo continuo): El bloque integrador.

• Signal Routing Library (Libraria de enrutamiento de señal): El bloque Mux

Se copia el bloque de la onda seno de la librería de fuentes, usando el navegador de librerías, esto se logra expandiendo el árbol de opciones de la librería SIMULINK (figura 47), y luego se dirige a la librería de fuentes y finalmente se selecciona el bloque de la onda seno.

 

  88

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 47. Navegador de librerías

Fuente: Captura de Matlab versión trial (2008).l. Ahora se selecciona y se “arrastra” este bloque desde el navegador de librerías al editor de modelo. Otra forma de copiar este bloque es abriendo la ventana de librería de fuentes, esto se logra haciendo clic con el botón derecho del ratón sobre sources (fuentes) y luego sobre el botón de Open library (Abrir librería). Luego se selecciona y se arrastra este bloque desde la ventana de librerías y se “arrastra” en el editor de modelo. De manera similar se copian los demás elementos del ejemplo buscándolos en sus respectivas librerías en el navegador de librerías, arrastrándolos desde sus librerías hasta el editor de modelos, luego de tener todos los elementos se acomodan dentro de esta ventana usando las teclas de direccionamiento del teclado o con el ratón. Una vez se han organizado los bloques, el modelo debe lucir de la siguiente manera:

 

  89

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 48. Bloques organizados dentro del editor de modelo

Fuente: Captura de Matlab versión trial (2008).

Cabe anotar que dependiendo de la funcionalidad del bloque, este posee puertos de entrada o salida en uno o más de sus costados representados por símbolos ‘>’, si la punta de este símbolo se encuentra dirigida hacia el bloque, quiere decir que es de entrada, caso contrario se trata de un puerto de salida. (Figura 45)

Figura 49. Puerto de entrada y de salida.

Fuente: Captura de Matlab versión trial (2008).l.

Conectando los Bloques. Ahora se conectarán los bloques para poder completar el modelo. Se conecta la salida del bloque de la onda seno en la entrada superior del bloque de multiplexación (mux), para tal efecto se posiciona el puntero del ratón sobre el puerto de salida del bloque de la onda seno, el puntero cambia de forma automáticamente al ubicarse inmediatamente arriba de los puertos indicando que al hacer clic la conexión será realizada adecuadamente (ver figura 50).

Figura 50. Conexión de los bloques.

(a) (b) Fuente: Captura de Matlab versión trial (2008).l.

 

  90

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Ahora con el botón izquierdo del ratón sostenido se debe dirigir desde el puerto de salida hasta el puerto superior de entrada del bloque de multiplexación, el cursor cambia nuevamente de forma a una cruz doble al acercarse al segundo bloque, se debe soltar el botón y los bloques quedarán conectados. En la figura 51 se observa que la mayoría de las conexiones van de un puerto de salida de un bloque hasta un puerto de entrada de otro. Existe una línea que se ramifica, ésta conecta la salida de la onda seno con el bloque integrador a la vez que conecta también con una de las entradas del multiplexor, es decir, que la misma señal llega a dos bloques distintos. Para poder realizar esto se realizan los siguientes pasos: se ubica el cursor sobre la conexión ya hecha y se selecciona el punto donde se desea realizar la unión. Seguidamente se presiona la tecla ctrl (o el botón derecho del ratón). Presionando el botón izquierdo del ratón se arrastra el puntero hasta el puerto de entrada o sobre el bloque mismo, entonces se suelta el botón del ratón, SIMULINK dibujará la línea de conexión comenzando desde el punto que se escogió hasta el puerto de entrada del bloque.

Figura 51. Ramificación de una conexión.

(a) (b)

(c) Fuente: Captura de Matlab versión trial (2008). Para finalizar el ejemplo se deben realizar las demás conexiones completando el diagrama de bloque.

 

  91

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Configurando el modelo. Para realizar la simulación se debe configurar SIMULINK. Lo primero que debe realizarse es abrir la ventana de diálogos Configuration Parameters (Configuración de parámetros), esto se consigue dirigiéndose a la opción Simulation (simulación) en la barra de menús del editor de modelo. En el cuadro de dialogo ‘tiempo de simulación’, por lo pronto solo se configura el tiempo de detención de la simulación a los 10 segundos.

Figura 52. Cuadro de diálogo para la configuración de los parámetros de simulación

Fuente: Captura de Matlab versión trial (2008)

Corriendo el modelo. Finalmente se selecciona start (inicio) en Simulation (Simulación) en la barra de menús o en la barra de herramientas presionar el icono de start simulation (iniciar simulación)

Figura 53. Inicio y/o detención de la Simulación

Fuente: Captura de Matlab versión trial (2008)

 

  92

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

La simulación se detiene cuando se alcanza el tiempo de parada especificada en la ventana de diálogos de configuración de parámetros o cuando es detenida por el usuario haciendo uso del botón de parada en la barra de herramientas o dirigiéndose a stop en el menú simulation en la barra de menús. Para observar la respuesta de la simulación, se hace doble clic sobre el visualizador (Scope) (figura 54).

Figura 54. Respuesta de la simulación.

Fuente: Captura de Matlab versión trial (2008) Adicionando comentarios. Las anotaciones proveen información en forma de texto acerca del modelo con el que se esté trabajando. Se puede añadir un comentario en cualquier área que no esté ocupada por el diagrama de bloque. Para crear una anotación en el modelo, se debe hacer un doble clic en un área no ocupada del diagrama de bloque, un pequeño rectángulo aparecerá y el cursor cambia a un punto de inserción, se escribe el comentario en este espacio, cada línea escrita es centrada dentro del rectángulo que rodea al comentario, luego de finalizar la anotación o comentario se puede arrastrar hasta una nueva ubicación dentro del modelo.

 

  93

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 55. Anotaciones o comentarios.

Fuente: Captura de Matlab versión trial (2008) Lección 14: Subsistemas. Cuando se incrementa el tamaño y la complejidad del modelo, se pueden simplificar los bloques en subsistemas, estos poseen las siguientes ventajas:

• Reduce el número de bloques mostrados en la ventana de edición de modelos.

• Permite la agrupación de bloques funcionalmente relacionados. • Permite establecer un diagrama de bloques jerárquicos, donde el bloque del

subsistema está en una capa y los bloques que componen al subsistema están en otra capa.

Los subsistemas pueden ser creados de dos formas:

• Añadiendo un bloque de subsistemas al modelo, para luego abrirlo y adicionar en este los bloques que componen al subsistema en la ventana de subsistema.

• Añadir los bloques que componen el subsistema, luego agruparlos en un

subsistema.

 

  94

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Creando subsistemas por adición al bloque ‘subsistemas’. Para crear un subsistema, antes de agregar los bloques que los contiene, se añade un bloque ‘subsistema’ al modelo que se está diseñando, para tal efecto se debe copiar el bloque de la librería Ports & Subsystems (Puertos y Subsistemas), al editor de modelo. Luego se debe abrir el bloque haciendo doble clic sobre este; SIMULINK abre el subsistema en una ventana de edición de modelo nueva. Una vez abierto, se procede a ubicar y ‘cablear’ los bloques que hagan parte del subsistema, es importante incluir bloques o puertos de entrada y de salida, para representar las correspondientes entradas y salidas del subsistema. Por ejemplo, el siguiente esquema incluye un bloque de suma con sus correspondientes puertos de entrada y salida del subsistema.

Figura 56. Ejemplo del subsistema.

Fuente: Captura de Matlab versión trial (2008)

Creando subsistemas por agrupación de bloques existentes. Si se parte de un determinado modelo del que se desea utilizar una parte o todos los bloques para convertirlos en un subsistema, éste puede ser creado agrupando los bloques y todas las líneas de conexión, que deban estar dentro del subsistema con una ventana de selección, empleando el ratón, no se pueden especificar los bloques que deban estar seleccionándolos individualmente o usando el comando Select All (Seleccionar Todos). La figura 57 muestra un modelo que representa un contador, los bloques de suma y de retraso unitario son agrupados con sus respectivas conexiones, empleando una ventana de selección, ésta se realiza arrastrando el ratón mientras se mantiene el clic Izquierdo presionado formando un rectángulo de un tamaño adecuado, cuando se libera el botón del ratón, los dos bloques y todas las líneas de conexión, son seleccionados.

 

  95

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 57. Selección de bloques

(a) (b)

(c)

Fuente: Captura de Matlab versión trial (2008) En el menú Edit (Editar) se escoge Create Subsystem (Crear Subsistema), SIMULINK reemplaza lo bloques con un bloque de subsistema. La figura 57b muestra el modelo después de que se ha creado el subsistema con el comando descrito, éste redimensiona el bloque y etiqueta los puertos del nuevo subsistema. Si se abre el bloque del subsistema, SIMULINK muestra los bloques y conexiones que lo conforman (figura 57c). Se aclara que SIMULINK agrega automáticamente los bloques de entrada y salida que representan la entrada y la salida del subsistema. Controlando el acceso a los subsistemas. SIMULINK le permite al usuario controlar el acceso a los subsistemas que residen en la librería. Particularmente se puede evitar que se vea o modifique el contenido de una librería del subsistema, aunque permite al usuario su utilización. Para controlar el acceso a la librería del subsistema, se debe abrir la ventana de dialogo de los parámetros del subsistema y ajustar el parámetro Access Parameter (Parámetro de Acceso) a ReadOnly (solo lectura) o NoReadoWrite (No lectura o escritura). La primera opción permite al usuario ver el contenido de la librería de subsistemas y hace copias locales para prevenir que otro usuario modifique la copia original. La segunda opción evita que otro usuario vea el contenido de la librería, realice copias o modifique los permisos de la librería de subsistemas

 

  96

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Lección 15: Subsistemas condicionados en su ejecución. Un subsistema ejecutado condicionalmente, es el que su ejecución depende de un valor en una señal de entrada. La señal que controla si se ejecuta un subsistema es llamada señal de control. Estos subsistemas son muy útiles cuando se está construyendo un modelo complejo, en el cual el funcionamiento de ciertos componentes depende de otros. SIMULINK soporta los siguientes tipos de subsistemas ejecutados condicionalmente:

• Subsistema habilitado • Subsistema disparado

• Subsistema habilitado y disparado

• Subsistema con control de flujo

Subsistema habilitado. Este tipo de subsistema es ejecutado mientras la señal de control sea positiva. Su ejecución se inicia cuando la señal cruza por cero (del ciclo negativo al positivo) y continúa su ejecución siempre y cuando la señal se mantenga positiva. El subsistema tiene una sola señal de control, la cual puede ser de tipo o escalar o vector. Si la entrada es escalar, el sistema se ejecuta si el valor de la señal de control es mayor que cero. Si la entrada es un vector, el subsistema se ejecuta si aluno de los elementos del vector es mayor que cero. Por ejemplo si la señal de control es una onda seno, el subsistema estará alternando entre estar habilitado y deshabilitado, como se muestra en la siguiente figura, si la dirección de la flecha es ascendente se habilita y si es descendente se deshabilita.

Figura 58. Señal de habilitación de un subsistema.

Fuente: Armando Portela (2008).

 

  97

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

SIMULINK se basa en la pendiente en el cruce por cero para determinar cuando estará habilitado. Si la señal cruza por cero y la pendiente es positiva el subsistema se habilita y si existe el cruce por cero y la pendiente es negativa el subsistema se deshabilita. Para crear un subsistema de este tipo, se debe copiar el bloque Enable Block (bloque habilitado) de la librería Ports & Subsystems (Puertos y subsistemas), SIMULINK adiciona un símbolo de habilitado y un puerto de entrada de control en el bloque del subsistema.

• Ajuste de las salidas mientras el subsistema esté deshabilitado. Aunque un subsistema habilitado, no se ejecuta mientras esté deshabilitado, la señal de salida se encuentra disponible para otros bloques. Mientras el subsistema esté deshabilitado, se puede mantener la señal de salida en sus valores previos o volver a sus valores iniciales. Se debe abrir la ventana de diálogo para cada puerto de salida y seleccionar una de las opciones del parámetro Output when disabled (salida cuando esté deshabilitado), como se muestra en la figura 55.

Figura 59. Ventana de diálogo para el ajuste de las salidas.

Fuente: Captura de Matlab versión trial (2008)

 

  98

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

• Se escoge held (mantener) para conseguir que la salida mantenga su valor más reciente.

• Se escoge reset (reiniciar) para que la salida vuelva a sus valores

iniciales. Se ajusta Initial output (salida inicial) a los valores iniciales de la salida.

Ajuste de los estados cuando el sistema es habilitado. Cuando un subsistema habilitado se ejecuta, se puede elegir si mantiene los estados a sus valores previos o son fijados en sus condiciones iniciales. Para tal efecto se debe abrir la ventana de diálogo del bloque habilitado y seleccionar una de las opciones para el parámetro State when enabling (estado del subsistema cuando esté habilitado), como se muestra en la siguiente ventana de diálogo.

Figura 60. Ventana de diálogo para el ajuste de estados.

Fuente: Captura de Matlab versión trial (2008)

• Se escoge held (mantener) para conseguir que se conserven los valores

más recientes. • Se escoge reset (reiniciar) para revertir los estados a sus valores iniciales.

Extrayendo la señal de control. Es posible extraer la señal de control, esta es una opción de la ventana de diálogo del bloque habilitado (enable), que permite extraer la señal habilitadora de control. Esta característica permite apagar la señal de control, esto puede ser útil cuando la lógica del modelo cuando el subsistema se encuentra deshabilitado depende de los valores contenidos en la señal de control.

 

  99

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 61. Apagado de la señal de control.

Fuente: Captura de Matlab versión trial (2008)

Los bloques en un subsistema habilitado, pueden contener cualquier bloque ya sea continuo o discreto, los bloques discretos se ejecutan únicamente cuando el subsistema es ejecutado y el tiempo de muestreo está sincronizado con el tiempo de muestreo de la simulación. El subsistema habilitado y el modelo deben usar un reloj común. Por ejemplo en el sistema de la figura 58 se observa que contiene cuatro bloques discretos y una señal de control. Los bloques discretos son:

1. Bloque A, el cual tiene un tiempo de muestreo de 0.25 segundos. 2. Bloque B, el cual tiene un tiempo de muestreo de 0.5 segundos.

3. Bloque C, el cual está en el subsistema habilitado y tiene un tiempo de

muestreo de 0.125 segundos.

4. Bloque D, el cual está en el subsistema habilitado y tiene un tiempo de muestreo de 0.25 segundos.

La señal de control de habilitación es generada por un bloque Generador de pulsos, nombrado como signal E (señal E), el cual cambia de 0 a 1 a los 0.375 segundos y vuelve a cero a los 0.875segundos. La carta (Figura 59) muestra cuando el bloque discreto es ejecutado.

 

  100

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 62. Modelo de un subsistema habilitado.

Fuente: Captura de Matlab versión trial (2008)

Figura 63. Indicador del funcionamiento de cada bloque.

Fuente: Armando Portela (2008). Los bloques A y B se ejecutan independientemente de la señal de control porque no hacen parte del subsistema. Cuando la señal de control se convierte en positiva, los bloques B y C se ejecutan a sus tasas de muestreo hasta que la señal vuelva a cero. Cabe anotar que la señal del bloque C no se ejecuta a los 0.875 segundos cuando la señal de control cambia a cero. Subsistema disparado. Existen subsistemas que son ‘disparados’, éstos se ejecutan cada vez que un disparo ocurre. Un disparo puede ocurrir en la subida o la bajada de una señal de disparo, el cual puede ser continuo o discreto. Un subsistema disparado tiene una sola entrada de control, llamada trigger Input

 

  101

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

(señal de disparo), que determina el momento de la puesta en funcionamiento del subsistema, se puede escoger entre tres tipos de eventos de disparo para forzar al subsistema comenzar su ejecución.

1. Disparos en flanco ascendente: se ejecuta el subsistema en el instante en que la señal se va de un valor negativo o cero a un valor positivo (o cero si el valor inicial es negativo).

2. Disparos en Flanco descendente: se ejecuta el subsistema en el instante en que la señal disminuye o decrece de un valor positivo o cero a un valor negativo (o cero si el valor inicial es positivo).

3. Ambos: el subsistema se ejecuta cuando la señal de disparo es de flanco ascendente o descendente.

En el caso de sistemas discretos, una señal en ascenso o en descenso con referencia en cero es considerada un evento de disparo únicamente si la señal permanece en cero por más de un ciclo precediendo a una elevación o una caída. Esto elimina los falsos disparos ocasionados por el muestreo de la señal de control. Por ejemplo en la siguiente figura para un sistema discreto, no ocurre un disparo ascendente en el paso 3 porque la señal solamente se ha mantenido un solo paso antes de que la elevación ocurra.

Figura 64. Nivel de señal.

Fuente: Armando Portela (2008).

Un ejemplo de un subsistema de disparo se ilustra en la siguiente figura, este es disparado en el ciclo de ascenso de la señal cuadrada en la entrada de control,

 

  102

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 65. Subsistema activado por disparo.

Fuente: Captura de Matlab versión trial (2008)

Para crear un subsistema de este tipo, se debe copiar el bloque de disparo (Trigger Block) de la librería de Puertos y subsistemas (Ports &Subsystems) en un subsistema, SIMULINK adiciona automáticamente un símbolo de disparado y un puerto de entrada de control en el bloque del subsistema. Para seleccionar el tipo de disparo, En la ventana de diálogo se selecciona una de las opciones para el parámetro Trigger type (tipo de disparo), como se muestra en la figura 66.

Figura 66. Ventana de diálogo para la selección del disparo.

Fuente: Captura de Matlab versión trial (2008) SIMULINK utiliza diferentes símbolos de disparo en los bloques del subsistema para indicar si el disparo es de flanco ascendente, descendente o ambos. La siguiente figura muestra los distintos símbolos.

 

  103

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 67. Subsistema de ascenso, descenso o ambos.  

Fuente: Captura de Matlab versión trial (2008)

Salida y estados entre eventos de disparos. A diferencia de los subsistemas habilitados, los sistemas disparados siempre mantienen sus salidas entre cada evento de disparo, también este tipo de subsistemas no puede reiniciar sus estados, cuando ocurre un evento de disparo y los estados de cualquier bloque discreto son mantenidos entre eventos del mismo tipo. Extrayendo la señal de control de disparo. Una opción en la ventana de diálogo del bloque de disparo, permite extraer la señal de control, para poder realizar esto se habilita la opción Show output port (mostrar puerto de salida)

Figura 68. Mostrar el puerto de salida.

Fuente: Captura de Matlab versión trial (2008)

 

  104

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

El campo Output data type (tipo de dato de salida), le permite al usuario especificar el tipo de dato a la señal de salida, como, auto (automático), int (entero) o double (doble). La opción auto causa que el tipo de dato de la salida se ajuste al del puerto al cual está conectada la señal de salida. Todos los bloques en un subsistema disparado, deben haber heredado un tiempo de muestreo (-1) o constante (inf). Esto se usa para asegurar que los bloques utilizados dentro del subsistema de disparo solo sean activados cuando exista un disparo. Este requerimiento significa que este tipo de sistemas no pueden incluir bloques continuos, como por ejemplo un bloque integrador. Subsistema Disparado y Habilitado. Este tercer tipo de subsistema se ejecuta combinando ambos tipos de ejecución condicional, es decir se trata de un subsistema hibrido, habilitado y disparado. El diagrama de flujo de este subsistema se presenta en la siguiente figura 65.

Figura 69. Diagrama de flujo de un subsistema disparado y habilitado.

Fuente: Armando Portela (2008)

Estos sistemas contienen ambos tipos de puertos el habilitado y el del disparado. Cundo ocurre el evento de disparo; SIMULINK revisa el puerto de entrada de habilitación para evaluar la señal de control. Si su valor es más grande que cero, se ejecuta el subsistema. Si ambas señales son vectores el sistema se ejecuta al menos si un elemento de cada vector es mayor que cero. Para crear un

 

  105

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

subsistema de este tipo, se debe copiar los bloques de disparado (Trigger Block) y de habilitado (Enable Block) de la librería de Puertos y subsistemas (Ports & Subsystems) en un subsistema ya existente, SIMULINK adiciona el símbolo de disparado y habilitado y los puertos de entrada de control en el bloque del subsistema.

Figura 70. Símbolo del subsistema habilitado y disparado.  

Fuente: Captura de Matlab versión trial (2008)

Los valores de los estados y de las salidas cuando el subsistema está deshabilitado o rehabilitado, son ajustado como se describió en las secciones anteriores. En la siguiente figura se muestra un ejemplo de un subsistema habilitado y disparado.

Figura 71. Ejemplo de un subsistema disparado y habilitado.

Fuente: Captura de Matlab versión trial (2008)

 

  106

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Se pueden crear subsistemas que se ejecuten alternadamente, para conseguir esto se deben combinar subsistemas empleando el bloque Merge (mezclador), y así conseguir un conjunto de subsistemas ejecutados alternadamente, dependiendo del estado actual del modelo. La siguiente figura muestra un modelo que usa dos subsistemas habilitados con el bloque mezclador, para así crear un rectificador de onda completa.

Figura 72. Rectificador de onda completa

Fuente: Captura de Matlab versión trial (2008)

El bloque marcado con “pos” está habilitado cuando la onda AC es positiva, permitiendo su paso sin ninguna modificación. El bloque marcado “neg” se habilita cuando la onda AC es negativa; e invierte la onda. El bloque Merge permite el paso al multiplexor de la señal del bloque que está habilitado, el cual pasa la salida al visualizador con la señal en su forma original, el visualizador muestra la respuesta en pantalla.

Figura 73. Respuesta del ejemplo.

Fuente: Captura de Matlab versión trial (2008)

 

  107

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

ACTIVIDAD DE AUTOEVALUACIÓN UNIDAD 1

 

  108

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

FUENTES DOCUMENTALES UNIDAD 1 BIBLIOGRAFIA Comunicaciones Andrew Hopper. (1989). Diseño de redes locales. USA: Addison-Wesley. Carlson (1997). Sistema de comunicación. Colombia: McGraw Hill. Stremler (1993). Introducción a los sistemas de comunicación. USA: Addison Wesley. Tanenbaum. (1997). Redes de computadoras (3ra Ed). Mexico: Prentice Hall. Tomasi: (1996). Sistemas de comunicaciones electrónicas (2da Ed). Mexico: Prentice. Control Bolton W. Ingenieria de Control (2da Edición): Alfaomega Franklin Gene. Control de Sistemas con Retroalimentación: Iberoamericana. Kuo Benjamin. Sistemas de control automatico. (7ª Edición): Prentice Hall. Ogata katsuhiko. Ingenieria de control Moderna (4ª edición): Prentice Hall Matlab Etter Delores. Solución de Problemas de Ingeniería con Matlab. (2da Edición): Prentice hall Hahn Brian D. (2007). Essential Matlab for Engineers and Scientist. (Third Edition). Elsevier. Hunt Brian R. (2001), A guide to Matlab for beginners and experienced users. Cambridge University: Press.

 

  109

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

McMahon David. (2007). Matlab Demystified: McGraw-Hill. Ogata Katsuhiko. Problemas de Ingenieria de control Utilizando Matlab: Prentice Hall. Sayood Khalid. (2007). Learning Programing Using Matlab. (First Edition): Morgan & Claypool. Sigmon Kermit, (2002). Matlab Primer. (Sixth Edition). Chapman & Hall/CRC: Press. SITIOS WEB Matlab

Documentation for MathWorks Products.(2009). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.mathworks.es/access/helpdesk/help/helpdesk.shtml Indiana University. Matlab. (2009). [en Línea[. Recuperado el 19 de julio de 2009, de http://www.indiana.edu/~statmath/math/matlab/index.html Introducción a Matlab. (2001). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.ing.unlp.edu.ar/controlm/archivos/electronica/doc/apuntes/matlab.pdf Matlab Educational Sites. (2006). [en Linea]. Recuperado el 19 de Julio de 2009, de http://www.ece.umaine.edu/mm/matweb.html Minitutorial de Matlab. (2009). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.desi.iteso.mx/sys/matlab/matlab.htm The Mathworks. (2009). [en línea]. Recuperado el 19 de julio de 2009, de http://www.mathworks.es/ Tutorial de Matlab. (1997). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.angelfire.com/la/hmolina/matlab1.html Tutoriales de control con Matlab. (1996). [en Línea]. Recuperado el 19 de julio de 2009, de http://ib.cnea.gov.ar/~control2/Links/Tutorial_Matlab_esp/index.html Scilab

 

  110

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Introduction to Scilab. (2009). [en Línea]. Recuperado el 19 de julio, de http://pauillac.inria.fr/cdrom/www/scilab/doc/intro/index.html Scilab. (2009). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.scilab.org/ Welcome to Scilan.in (). [en Línea]. Recuperado el 19 de Julio de 2009, de http://scilab.in/index.php?title=Main_Page Descargas Aprenda matlab 7.0. (2005). [en Línea] . Recuperado el 19 de julio de 2009, de http://mat21.etsii.upm.es/ayudainf/aprendainf/Matlab70/matlab70primero.pdf Scilab 5.1.1. (20090. [en Línea]. Recuperado el 19 de julio de 2009 de, http://scilab.softonic.com/ TheMathWorks. (2009). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.mathworks.com/products/matlab/

 

  111

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

UUNNIIDDAADD 22.. SSIIMMUULLIINNKK INTRODUCCIÓN Simulink es una herramienta para el modelaje, análisis y simulación de una gran variedad de sistemas físicos y matemáticos, incluyendo sistemas no lineales y sistemas discretos. Simulink adiciona muchas características específicas a los sistemas dinámicos, mientras conserva toda la funcionalidad de propósito general de MatLab, de esta forma Simulink no es un programa separado de MatLab, sino un anexo a él. Para simplificar la definición del modelo Simulink usa diferentes clases de ventanas llamadas ventanas de diagramas de bloques. En estas ventanas se puede crear y editar un modelo gráficamente usando el mouse. Después de definir un modelo este puede ser analizado seleccionando una opción desde los menús de Simulink o entrando comandos desde la línea de comandos de MatLab. JUSTIFICACION En electrónica es fundamental el estudio y análisis de sistemas dinámicos lineales, no lineales, continuos, discretos o hibridos; de igual forma es relevante el estudio y análisis de sistemas de control, principalemente en estos elementos radica la importancia del estudio de herramientas que faciliten dichos estudios y analisis, de forma tal que se puedan poner a prueba sin que esto ocasiones efectos secundario en el sistema, que no sobrepasan un escritorio de estduio. INTENCIONALIDADES FORMATIVAS Propósitos Se pretende profundizar en el uso de la herramienta SIMULINK de Matlab, para desarrollar habilidades que le permitan al estudiante identificar y utilizar los aplicativos en el desarrollo de soluciones óptimas a la hora de abordar los problemas y actividades propuestos, al tiempo que se contribuye a generar

 

  112

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

esquemas mentales en el estudiante con los que podrá abordar por su propia cuenta tanto el diseño y desarrollo de soluciones a problemáticas planteadas. Objetivos Que el estudiante amplíe complemente y profundice en las características operativas, técnicas, los beneficios del aplicativo Matlab, desde el punto de vista del Simulink, para que así puedan emplear y aplicar dichos conocimiento en el análisis de sistemas de control y cualquier tipo de sistema dinámico. Competencias El estudiante conoce las características y posibilidades que le brinda SIMULINK de Matlab, además conoce los procedimientos sistemáticos para interactuar con éstos y dar soluciones a partir de sus implementación en problemas electrónicos. Metas de aprendizaje El estudiante aprenderá de forma individual las temáticas del módulo del curso para que así pueda aplicar lo aprendido en cada tema mediante ejercicios y actividades tanto individuales como grupales en las que se desarrollen pequeños programas o aplicaciones en donde el estudiante se valga de toda la información disponible, de su espíritu investigativo y del trabajo en grupo para buscar la manera de generar las soluciones más óptimas y funcionales ante las problemáticas planteadas. Denominación de Capítulos Capítulo 1. Modelar con Simulink Capítulo 2. Navegar por los Modelos Capítulo 3. Bloques, señales y funciones

 

  113

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

CAPITULO 1: MODELAR CON SIMULINK  

Introducción. Simulink es una herramienta que permite realizar fácilmente el modelado de sistemas dinámicos, tiene dos fases: la definición del modelo y el análisis del modelo. La definición del modelo significa construir el modelo a partir de elementos básicos construidos previamente, tal como, integradores, bloques de ganancia o controladores. El análisis del modelo significa realizar la simulación, linealización y determinar el punto de equilibrio del modelo  

Lección 1. Modelar Ecuaciones Para explicar de qué forma se modelan ecuaciones, se hará uso de dos ejemplos: En el primer ejemplo se realizará la conversión de grados Celsius a Fahrenheit, el modelo de esta conversión está definido por la siguiente la ecuación:

3259

+= TCTF

Donde TF es la temperatura en grados Fahrenheit y TC la temperatura en grados Celsius. Primero se considerarán los bloques que son necesarios para construir el modelo:

1. Un bloque de rampa para la señal de entrada de temperatura de la librería de fuentes (Sources Library).

2. Un bloque de constante, para definir el valor de la constante 32, también de la librería de fuentes (Sources Library).

3. Un bloque de ganancia para multiplicar la señal de entrada por 9/5, de la librería de matemáticas (Math Library).

4. Un bloque de suma para sumar las dos cantidades, también de la librería de matemáticas (Math Library).

5. Un bloque visualizador (Scope) para mostrar la respuesta de librería de sumideros (Sinks Library).

 

  114

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Se organizan los bloques en la ventana de edición de modelos. Y se asignan los valores de las constantes y la ganancia, para tal efecto se hace doble clic sobre el bloque correspondiente para así asignar el valor adecuado en la ventana de diálogo desplegada, seguidamente se cierra dicha ventana.

Figura 74. Bloques del ejemplo de conversión de unidades.

Fuente: Captura de Matlab versión trial (2008) Ahora se conectan los bloques

Figura 75. Bloques conectados.

Fuente: Captura de Matlab versión trial (2008) El bloque rampa emula la entrada de temperatura en grados Celsius, se abre el bloque y se cambia el parámetro de Initial Output (Salida inicial) a cero. El bloque de ganancia multiplica la temperatura por una constante de 9/5 y el bloque sumador le añade un valor de 32 al resultado y a la salida se obtiene el valor de la temperatura en grados Fahrenheit. Para observar los resultados se abre el visualizador y se inicia la simulación. El segundo ejemplo es el modelado de un sistema continuo basado en una ecuación diferencial:

 

  115

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

)()(2)(' tutxtx +−=

Donde u(t) es una onda cuadrada con amplitud 1 y frecuencia de 1rad/sec. Se emplea un bloque integrador que actúa sobre la entrada x’ para producir x. Otros bloques son necesarios en este modelo incluyendo un bloque de ganancia y uno de suma. Para generar la onda cuadrada, se utiliza un bloque de generación de señales seleccionando la forma de onda cuadrada; se deben cambiar las unidades por defecto a radians/sec y nuevamente el bloque de visualización. En este modelo, la dirección inversa del bloque de ganancia inferior se logra seleccionándolo y luego usar el comando Flip Block (voltear bloque) del menú Format (formato)

Figura 76. Diagrama de bloques de la ecuación diferencial.

Fuente: Captura de Matlab versión trial (2008) Un importante concepto en este modelo es lazo que incluye el bloque de suma, el integrador y el de ganancia. En esta ecuación, x es la salida del bloque integrador y también es la entrada de los bloques que calculan x’. Esta relación es implementada usando un lazo de retroalimentación. El visualizador muestra el valor de x.

 

  116

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 77. Visualización de la respuesta de la ecuación diferencial.

Fuente: Captura de Matlab versión trial (2008)

La ecuación del ejemplo también puede ser expresada como una función de transferencia, el modelo usa el bloque Transfer Fcn (Función de transferencia), el cual acepta a u como entrada y x como salida, entonces el bloque a implementar es x/u, si se sustituye sx por x’ y la ecuación anterior se convierte en:

uxsx +−= 2

Despejando x

2+=

sux

Ó

21+

=su

x

El bloque de función de transferencia usa como parámetros los coeficientes del numerador y denominador. En este caso el numerador es 1 y el denominador es s+2. Ambos términos son especificados como vectores de coeficientes de potencias sucesivas decrecientes en el dominio de s. En este caso el numerador es [1] (o simplemente 1) y el denominador es [1 2].

 

  117

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 78. Modelo del ejemplo como función de transferencia.

Fuente: Captura de Matlab versión trial (2008)

Los resultados de esta simulación son idénticos a los proporcionados por el diagrama de bloques realizado previamente. Evitando Lazos Inválidos. SIMULINK permite conectar directa o indirectamente la salida de los bloques a las entradas de otros bloques, los lazos pueden ser muy útiles, por ejemplo en los casos de modelado empleando ecuaciones diferenciales como en el ejemplo anterior o en los modelos de control con lazos de retroalimentación. Sin embargo es posible crear lazos que no pueden ser simulados. Los tipos comunes de lazos inválidos son:

• Lazos que crean conexiones inválidas o intentan modificar los argumentos de entrada y salida de una función llamada.

• Subsistemas auto disparados y lazos que contienen subsistemas

disparados sin señal de disparo.

• Lazos que contengan subsistemas que estén en funcionamiento. Para detectar si el modelo diseñado contiene lazos inválidos, seleccione el comando Update diagram (actualizar diagrama) del menú Edit (editar). Si el modelo contiene lazos inválidos, SIMULINK ilumina el lazo y muestra un mensaje de error en el Observador de diagnóstico de simulación (Simulation Diagnostic Viewer).

 

  118

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 79. Diagnóstico de un lazo inválido

Fuente: Captura de Matlab versión trial (2008) Lección 2: Modelar con Control de Flujo Condicional Los bloques de control de flujo son utilizados en SIMULINK para implementar las sentencias de control de flujo que se usa en lenguaje C, estas sentencias son:

• For (para) • If-else (si-sino) • Switch (interruptor) • While (incluye las sentencias while (mientras que) y do while (haga hasta))

Aunque todas las sentencias pueden ser implementadas en la librería Stateflow de MATLAB, estos bloques proveen a los usuarios de SIMULINK de herramientas para la implementación de requerimientos de una lógica simple. Se pueden realizar sentencias de control de flujo como las existentes en C, usando subsistemas ordinarios y los siguientes bloques de la librería de subsistemas.

Tabla 16. Relación entre sentencias en C y bloques de SIMULINK I

Sentencia en C Bloque If-else If , Action port (puerto de acción) Switch Switch case Action port (puerto de acción)

 

  119

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Sentencia if-else (si-sino) Para el Control de Flujo. El siguiente diagrama describe una forma generalizada para la implementación de esta sentencia en SIMULINK

Figura 80. Implementación de la sentencia si-sino en SIMULINK.

Fuente: Captura de Matlab versión trial (2008) Para construir esta sentencia se debe hacer lo siguiente:

1. Se deben proporcionar las entradas de datos al bloque if para la construcción de las condiciones if-else. Las entradas del bloque if son ajustadas en la ventana de diálogo de propiedades. Internamente son designadas como u1, u2,…, un y son usadas para construir las condiciones de salida.

2. Ajustar las condiciones if-else de los puertos de salida para el bloque if.

Los puertos de salida del bloque if también son ajustados en la ventana de diálogo de propiedades. Se usan los valores de entrada u1, u2,…, un para expresar las condiciones del campo if en la ventana de diálogo de las sentencias if, elseif, else. Se pueden seleccionar múltiples condiciones elseif al habilitar la condición else.

3. Se deben conectar cada puerto de condición a un subsistema. Cada puerto de salida de condición if, elseif, else del bloque if es conectado a un subsistema para que sea ejecutado cuando la condición de dicho puerto sea cierta. Se crean esos subsistemas añadiéndole un bloque de Action Port (Puerto de acción) al subsistema, esto crea un modulo de subsistema

 

  120

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

con puerto llamado Action, donde se conecta la condición del bloque if, aunque también existe un bloque llamado If action subsystem en el que hay que añadir el subsistema. Una vez conectado este se comporta como un subsistema habilitado.

Todos los bloques en un subsistema Action controlados por un bloque if o switch deben correr a la misma tasa de muestreo que el bloque de control. Ejemplo: Se desea obtener un sistema cuya señal de salida sea controlada por una señal de reloj, de tal manera que en el tiempo bajo de la señal de reloj, se observe en la salida una señal senosoidal y en el tiempo alto de la señal de reloj una señal diente de sierra . Como se requiere una condición para controlar la salida, lo más conveniente es utilizar un if-else. Se llevan los bloques necesarios al espacio de trabajo, teniendo en cuenta que para aplicar un if- else se deben llevar dos bloques, el primero donde se coloca la condición (se encuentra en la librería Ports & Subsystems), y el segundo donde se escriben como un subsistema los comandos a ejecutar en caso de cumplir o no la condición, (este bloque es denominado If Action Subsystem), esto se puede apreciar en la figura 81. Para acceder a la programación de estos subsistemas basta con dar doble clik sobre el bloque y aparecerá una nueva ventana en la cual se colocan las instrucciones.

 

  121

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 81. Utilización de If- Else

Fuente: Captura de Matlab versión trial (2008) En la figura 82 se observa los diagramas internos en cada uno de los subsistemas If – Action.

Figura 82. Diagrama del subsistema If – Action

Fuente: Captura de Matlab versión trial (2008)

 

  122

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Sentencia de Control de Flujo Switch. El siguiente diagrama describe una forma generalizada para la implementación de esta sentencia en SIMULINK

Figura 83. Implementación de la sentencia Switch en SIMULINK.

Fuente: Captura de Matlab versión trial (2008)

Para construir esta sentencia se debe hacer lo siguiente:

1. Se deben proporcionar los datos de entrada al argumento de entrada del bloque Switch case. La entrada a este bloque es el argumento de la sentencia switch para el control de flujo. Este valor determina el caso apropiado a ejecutar. Entradas de valores no enteros son truncados.

2. Se adicionan los casos al bloque Switch case basados en valores

numéricos del argumento de entrada. Se pueden añadir casos al bloque Switch case a través de la ventana de diálogo de propiedades de este bloque. Los casos deben ser sencillos o multi-evaluados, se puede añadir opcionalmente un caso por defecto, el cual es verdadero si los demás casos son falsos. Una vez añadidos los casos aparecen como salidas del bloque Switch case.

3. Se deben conectar cada puerto de cada caso a un subsistema. Cada puerto de salida del bloque switch case es conectado a un subsistema para que sea ejecutado cuando la condición de dicho puerto sea cierta. Se crean esos subsistemas añadiéndole un bloque de Action Port (Puerto de acción) al subsistema, esto crea un modulo de subsistema con puerto llamado Action, donde se conecta la condición del bloque if, aunque también existe

 

  123

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

un bloque llamado If action subsystem en el que hay que añadir el subsistema. Una vez conectado el subsistema este se comporta como un subsistema habilitado.

Lección 3: Modelar con control de flujo Iterativo. Se pueden realizar sentencias de control de flujo como las empleadas en C, usando subsistemas ordinarios y los siguientes bloques de la librería de subsistemas.

Tabla 17. Relación entre sentencias en C y bloques de SIMULINK II.

Sentencia en C Bloque Do-while (haga hasta) While Iterator (mientras que) For (para) For Iterator (para) While (Mientras que) While Iterator (mientras que)

Fuente: Armando Portela (2008) Sentencia de control de flujo While (Mientras que). El siguiente diagrama describe una forma generalizada para la implementación de esta sentencia en SIMULINK

Figura 84. Implementación de la sentencia While en SIMULINK

Fuente: Captura de Matlab versión trial (2008)

 

  124

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

En SIMULINK una sentencia de control de flujo while cuando es ejecutada por el bloque While Iterator, itera (ejecuta) el contenido del subsistema While. Para construir esta sentencia se debe hacer lo siguiente:

1. Se coloca el bloque While Iterator en un subsistema huésped, éste se convierte automáticamente en uno con control de flujo While como indica su nueva etiqueta (while {…}) y se comporta como un subsistema disparado.

2. Se proporcionan los datos de entrada para la condición inicial en el puerto

de entrada de datos del bloque While Iterator. Este bloque requiere una entrada de datos de condición inicial (etiquetada como IC), para su primera iteración. Esta debe ser originada fuera del subsistema While. Si este valor es diferente de cero la primera iteración se ejecuta.

3. Se proveen los datos de entrada para los puertos de condición del bloque While Iterator. Las condiciones para las iteraciones restantes son pasadas al puerto de entrada etiquetados con cond. La entrada a este puerto debe ser generada dentro del subsistema While.

4. Ajustar la salida del valor de iteración del bloque While Iterator, a través de la ventana de diálogos de las propiedades del bloque. El valor de iteración es 1 para la primera iteración y es incrementada en 1 para las subsecuentes iteraciones.

5. Cambiar el tipo de iteración del bloque While iterator a do while (Haga hasta) a través de la ventana de diálogos de las propiedades del bloque. La etiqueta del subsistema huésped cambia a do{…}while. Con una iteración de este tipo no se requiere de condición inicial, porque todos los bloques en el subsistema son ejecutados una vez el puerto de condición (etiquetados con cond) es comprobado.

Sentencia de Control de Flujo For (para). En SIMULINK una sentencia de control de flujo for ejecutada por el bloque for Iterator, itera (ejecuta) el contenido del subsistema. El siguiente diagrama describe una forma generalizada para la implementación de esta sentencia en SIMULINK

 

  125

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 85. Implementación de la sentencia For en SIMULINK.

Fuente: Captura de Matlab versión trial (2008)

Para construir esta sentencia se debe realizar lo siguiente:

1. LLevar un bloque subsistema For Iterator del navegador de librería, hacia el modelo que se está construyendo.

2. Se puede ajustar el bloque For Iterator, para tomar como entrada el número

de iteraciones a ejecutar de forma externa o interna. A través de la ventana de diálogo de las propiedades del bloque se pueden ajustar si el puerto de entrada etiquetado con N, es el que va a ser empleado para indicar el número de iteraciones. la entrada a este puerto debe venir de forma externa al subsistema.

3. Ajustar directamente en la ventana de diálogo de las propiedades del bloque el número de iteraciones.

4. Ajustar la salida del valor de iteración del bloque For Iterator, a través de la ventana de diálogos de las propiedades del bloque. El valor de iteración es 1 para la primera iteración y es incrementada en 1 para las subsecuentes iteraciones.     

 

  126

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Ejemplo: Construir un programa que calcule el factorial de un número. El factorial de un número es la multiplicación del mismo por los números que lo preceden, por ejemplo el factorial de 4 conocido como 4! = 1*2*3*4=24. Se implementa un for tal como se observa en la figura 86. El bloque de la sentencia For lo encuentra en la librería Ports & Subsystems, y se accede con doble clic sobre el mismo, aparece una nueva ventana donde se colocan las instrucciones sobre las cuales debe actuar el ciclo. La programación de este se observa en la figura 87.

Figura 86. Factorial de un número en Matlab.

Fuente: Captura de Matlab versión trial (2008) En este ejemplo hay que tener especial cuidado con el bloque 1/z, donde hay que darle la condición inicial como 1, ya que el valor por defecto es 0, y por tanto calcula el factorial de 4 como 4! = 0*1*2*3*4= 0, dando un resultado erróneo.

 

  127

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 87. Programación de un For en Simulink

Fuente: Captura de Matlab versión trial (2008) Lección 4: Ejemplos de Modelado. Ejemplo 1. Simular la respuesta temporal del sistema de orden 1

128.4

84.2)(+

=s

sG , ante una señal de entrada escalón, rampa y senosoidal.

Se utiliza un mux para seleccionar la señal de entrada que se desea observar en el osciloscopio, esta selección se hace mediante una constante que indica el número de la señal de entrada que se aplica al sistema, como se observa en la figura 88 en donde se esta aplicando al sistema la señal escalón.

 

  128

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 88. Simulación de un sistema de orden 1.

Fuente: Captura de Matlab versión trial (2008) Ejemplo 2. Dado el sistema mecánico de la figura 89, que está compuesto por una masa M=5, unida a un muelle de constante elástica K=10, y con un rozamiento viscoso B=2. La entrada al sistema es una fuerza externa f(t) es la entrada al sistema, y la salida del mismo está dada por el desplazamiento x(t) de la masa es la salida. La ecuación diferencial que rige el comportamiento del sistema es:

)()( 2

2

tKxdtdxB

dtxdMtf ++=  

  La simulación en simulink se puede hacer de dos formas, la primera simulando la ecuación diferencial y la segunda determinando la Función de Transferencia del sistema. En este ejemplo se toma la primera opción.

 

  129

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Se despeja la derivada de mayor orden de la ecuación diferencial

2

2

)()(dt

xdMtKxdtdxBtf =−−  

 

2

2

))()((*1dt

xdtKxdtdxBtf

M=−−⎟

⎠⎞

⎜⎝⎛

Figura 89. Sistema Mecánico.

Fuente: Ingeniería de Control Moderno. Katsuhiko Ogata 3ª Edición. Ed Prentice Hall 1998. En la figura 90 se muestra el diagrama de bloques que representa a la ecuación diferencial del sistema mecánico y la respuesta del sistema ante una señal escalón. La señal escalón representa una fuerza aplicada al sistema de amplitud constante, y la señal de salida representa el desplazamiento x(t), que en principio es oscilatorio y posteriormente se estabilizada alcanzando un valor final de aproximadamente 0.1.

 

  130

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 90. Simulación Sistema Mecánico.

Fuente: Captura de Matlab versión trial (2008) Ejemplo 3. Simular el comportamiento transitorio del voltaje en el Capacitor en un circuito RLC serie, donde R=10 ohmios, L=0.1 Henrio y C= 10 uF, utilizar como entrada una señal escalon unitario.

Figura 91. Circuito RLC serie

Fuente: Ingeniería de Control Moderno. Katsuhiko Ogata 3ª Edición. Ed Prentice Hall 1998.

 

  131

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

La ecuación diferencial que representa al sistema es :

)(1)()( tiCdt

diLtiRtv ∫++=

Aplicando Transformada de Laplace a la ecuación :

)(1)()()( sICs

sLsIsIRsV ++=

La función de Transferencia del sistema es:

11

)()()( 2 ++==

RCsLCssVisVosG

La simulación del sistema RLC serie se observa en la figura 92.

Figura 92. Simulación sistema RLC serie

Fuente: Captura de Matlab versión trial (2008)

 

  132

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Lección 5: Consejos para la Construcción de Modelos. Estos son una serie de consejos para la construcción de modelos y así evitar errores en la simulación.

• Uso de memorias, en general a más memoria mejor funcionamiento. • El uso de jerarquías, modelos más complejos a menudo se benefician con

el uso de jerarquías de subsistemas en el modelo. Agrupar bloques simplifican el modelo del nivel superior y así hacerlo más fácil de leer y de entender.

• Creación de modelos documentados y ordenados, un modelo bien organizado y documentado, es más fácil de leer y entender. Nombrar las señales y anotaciones en los modelos, pueden ayudar a describir que está sucediendo en el modelo.

• Estrategias de modelado, si los modelos que se estén diseñando tienden a utilizar los mismos bloques, es más fácil “ahorrar” bloques agrupándolos en un modelo. Entonces cuando se construye un nuevo modelo, apenas abra este modelo, copie los bloques comúnmente usados de este modelo. Se puede crear una librería de bloques colocándolos en un mismo sistema y guardándolo. Se puede tener acceso al sistema digitando el nombre en la ventana de comandos de MATLAB.

• Generalmente, cuando se construye un modelo, es preferible diseñarlo en papel, para luego construirlo usando SIMULINK, luego de esto se añaden todos los bloques necesarios al modelo antes de conectarlos y con esto se reduce el estar revisando entre las diferentes librerías.

CAPITULO 2. NAVEGAR POR LOS MODELOS

Introducción. El entorno de SIMULINK permite acceso fácil a los modelos ya existentes, a través de ayudas como el explorador, el buscador y el navegador se puede localizar un modelo, un bloque especifico o navegar por un modelo, lo cual hace que el entorno gráfico sea bastante amigable al usuario y hace que SIMULINK sea la herramienta preferida de Matlab.  

 

 

  133

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Lección 6: Explorar, Buscar y Navegar por los Modelos. En las siguientes secciones se describirán las herramientas que ayudan a una navegación rápida en un modelo desde cualquier punto y encontrar y modificar objetos en este. El Explorador de Modelos. El explorador de modelo le permite una rápida localización, visualización y modificación de cualquier modelo en SIMULINK. Para desplegar este modelo, selecciones Model Explorer (explorador de modelo) del menú View (ver) del editor de modelo (figura 86) o seleccione un objeto el diagrama de bloques y seleccione Explore (explorar) desde su menú de contexto (haciendo clic derecho sobre el objeto) y el explorador de modelo aparece.

Figura 93. Editor de modelo.

Fuente: Captura de Matlab versión trial (2008)

El explorador de modelo incluye los siguientes componentes:

• Panel de jerarquías: Este panel despliega una vista de estructura de árbol de la jerarquía del modelo

 

  134

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 94. Árbol de jerarquía.

Fuente: Captura de Matlab versión trial (2008)

o Raíz de SIMULINK (SIMULINK Root): El primer nodo representa la raíz de este “árbol”, al expandir este nodo se despliega el espacio de trabajo de MATLAB (El espacio de trabajo de base de SIMULINK) y cada modelo y librería cargada en la sesión actual.

o Espacio de trabajo de base (Base Workspace): Este nodo representa el espacio de trabajo de MATLAB. Este espacio es la base para dicho espacio en SIMULINK. Las variables definidas en este espacio son visibles al abrir todos los modelos de SIMULINK.

o Preferencias de configuración (Configuration preferences): Se selecciona este nodo para desplegar la configuración preferida para los nuevos modelos en los paneles adyacentes.

o Nodo de modelos (Model Nodes): este representa los ajustes de la configuración, subsistemas de niveles superiores, referencia de modelos, cartas de flujo de estados (stateflow charts).

o Desplegando el contenido de los nodos (Displaying node contents): para desplegar el contenido de un objeto mostrado en el panel de jerarquías en el panel adyacente de contenido (contents), seleccionando el objeto. Para abrir un objeto gráfico en una ventana de edición, hacer clic derecho con el ratón y se selecciona Open (abrir).

o Expandiendo modelo de referencias (Expanding model references): para hacer esto se abre el modelo referenciado, luego hacer clic

 

  135

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

derecho con el ratón y se selecciona Open Model (abrir modelo). No se puede editar el contenido de un modo de referencia, sin embargo, para editar un modelo se debe expandir este nodo.

• Panel de contenidos (contents pane): este panel muestra dos pestañas, la

pestaña de contents (contenido) de los objetos seleccionados en el panel de Jerarquía de modelo, la pestaña de Search result (resultados de búsqueda), muestra los resultados de la búsqueda.

Figura 95. Panel de contenido.

Fuente: Captura de Matlab versión trial (2008)

• Panel de diálogo (Dialog pane): Muestra el dialogo del objeto seleccionado

en el panel de contenido • Barra de herramientas principal (Main toolbar): esta barra aparece en la

parte superior, debajo de la barra de menús de la ventana del explorador de modelo.

Figura 96. Barra de menú principal.

Fuente: Captura de Matlab versión trial (2008)

 

  136

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

• Barra de búsqueda (Search bar): Esta barra permite, configurar e iniciar búsquedas de los objetos seleccionados en el panel de jerarquía del modelo, esta aparece en parte superior de la ventana de explorador de modelo. Para mostrar u ocultar esta barra, comprobar o no el menú de view (vista) en la ventana del explorador.

Figura 97. Barra de búsqueda.

Fuente: Captura de Matlab versión trial (2008)

Esta barra contiene los siguientes controles:

Figura 98. Controles de la barra de búsqueda.

Fuente: Captura de Matlab versión trial (2008)

El Buscador (The finder). El buscador localiza bloques, señales, estados y otros objetos en un modelo. Para desplegar el buscador, se selecciona Find (buscar) del menú Edit (editar), entonces la siguiente ventana aparece.

 

  137

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 99. El buscador.

Fuente: Captura de Matlab versión trial (2008)

Se usan los paneles Filter options (opciones de filtrado) y Search criteria (criterios de búsqueda), para especificar las características de los objetos que se desean buscar. Luego si se tiene más de sistema o subsistema abierto, se selecciona alguno de estos para iniciar la búsqueda, esto se logra seleccionando de la lista start in system (Iniciar en el sistema), finalmente se presiona el botón find (buscar). SIMULINK busca en los modelos seleccionados los objetos que cumplen con los criterios que se han especificado. Opciones de Filtrado (Filter Options) Este panel permite especificar los tipos de objetos para y donde buscar.

Figura 100. Opciones de filtrado.

Fuente: Captura de Matlab versión trial (2008)

 

  138

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

• Lista de los tipos de objetos (Object type list). Muestra los tipos de objeto que SIMULINK puede buscar.

• Buscar dentro de subsistemas enmascarados (Look inside masked subsystem). Seleccionando esta opción, SIMULINK busca objetos dentro de sistemas enmascarados.

• Buscar dentro de sistemas relacionados (Look inside linked system). Seleccionando esta opción, SIMULINK busca objetos dentro de sistemas relacionados con las librerías.

Criterios de Búsqueda (Search Criteria). Este panel permite especificar los criterios que los objetos deben satisfacer la petición de búsqueda:

• Básicos. Permite buscar un objeto en el que su nombre coincida con una cadena de texto. La cadena de texto se ingresa en el campo Find what (Buscar que) de este panel.

• Avanzado. Permite especificar un conjunto de características (hasta 7) que los objetos deben cumplir para satisfacer la búsqueda.

Figura 101. Panel de búsqueda avanzado.

Fuente: Captura de Matlab versión trial (2008)

Para especificar una propiedad, ingrese su nombre en uno de los espacios en la columna de propiedad (property) del panel de búsqueda avanzado o seleccione la propiedad de la lista que puede ser desplegada. Luego se debe ingresar el valor de la propiedad en la columna Valor (value).

 

  139

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

El navegador del modelo. Este navegador proporciona las siguientes opciones:

• Navegar en un modelo jerárquicamente. • Abre los sistemas en un modelo. • Determina los bloques contenidos en un modelo.

Para desplegar el navegador de modelo, se debe seleccionar Model Browser Options > Model Browser (Opciones del navegador de modelo > Navegador de modelo) del menú view (vista) de SIMULINK.

Figura 102. Navegador de modelo.

Fuente: Captura de Matlab versión trial (2008)

La ventana se divide en dos paneles. El panel izquierdo muestra un navegador con estructura de árbol, mostrando el diagrama de bloques que se encuentra en el panel derecho. Lección 7: Ejecutar la Simulación del modelo. En los siguientes apartados se revisará los temas de cómo simular y ajustar las características de la simulación en SIMULINK.

 

  140

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Nociones Básicas de la Simulación. Para simular un modelo simplemente, solo se necesita hacer clic en el botón de start (iniciar), en el editor de modelos. Sin embargo antes de iniciar la simulación, se deben especificar ciertas opciones de la simulación, tales como el tiempo de inicio y detención, y el tipo de solucionador utilizado para resolver el modelo en cada base de tiempo de dicha simulación. El hecho de especificar las opciones de simulación se conoce como configuración del modelo. SIMULINK permite crear múltiples modelos de configuración, llamar y modificar ajustes de configuración ya existentes. Una vez definido o seleccionado el ajuste de configuración que se ajuste a los requerimientos, se puede iniciar la simulación. Entonces SIMULINK corre la simulación desde el tiempo de inicio y detención especificados. Mientras la simulación esté en curso, se pude interactuar con esta de diversas maneras, detenerla o pausarla, y simular otros modelos. Si un error ocurre dentro de la simulación. Si un error ocurre durante la simulación, SIMULINK detiene la simulación y lanza el observador de diagnóstico, para ayudar a determinar la causa del error.

• Controlando la Ejecución de la Simulación. La interfaz gráfica de SIMULINK incluye un menú de comandos y unos botones en la barra de herramientas, que permite iniciar, pausar y culminar una simulación. Para ejecutar la simulación de un modelo, se selecciona Start (iniciar), del menú simulation (simulación), del editor de modelo. Se puede utilizar un atajo por medio del teclado, utilizando la combinación de las teclas ctrl+T para iniciar la simulación. Un error común es iniciar la simulación mientras la ventana de la librería de bloques de SIMULINK está activa, se debe asegurar que la ventana que está activa sea la del editor de modelo. SIMULINK inicia la ejecución del modelo en el tiempo que se especificó en la ventana de Configuración de parámetros (Configuration Parameters), hasta alcanzar el tiempo de detención especificado en esta misma ventana.

 

  141

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 103. Localización del botón de inicio

Fuente: Captura de Matlab versión trial (2008)

Mientras la simulación este corriendo, una barra de progreso en la parte inferior de la ventana de modelo muestra el nivel de progreso de la simulación. Un comando de stop (parada) remplaza el comando Start (iniciar), del menú simulation (simulación), del editor de modelo. Un comando de Pause (pausa) en la barra de herramientas reemplaza el botón de Start (iniciar).

Figura 104. Localización del botón de parada, pausa y la barra de progreso de la simulación.

Fuente: Captura de Matlab versión trial (2008)

 

  142

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Se puede parar o pausar una simulación, utilizando los botones de la barra de herramientas, mientras esté pausada la simulación puede continuarse utilizando el botón de iniciar. Interactuando con una Simulación en Curso. Se pueden realizar ciertos tipos de operaciones interactivamente mientras una simulación se esté ejecutando. Se puede: o Modificar algunos parámetros de la configuración, incluyendo el tiempo de

detención y el máximo tamaño del paso temporal. o Hacer clic sobre una línea de conexión para observar en una pantalla la señal

que esté en ese momento. o Modificar los parámetros de un bloque, mientras no se cambie:

o Número de estados, entradas y salidas. o Tiempo de muestreo o Número de cruces por cero. o Longitud del vector de cualquier parámetro de cualquier bloque. o Longitud del vector interno de trabajo de un bloque

Lección 8: Importar y Exportar Datos. SIMULINK permite importar señales de entrada y datos de estado inicial del espacio de trabajo de MATLAB (workspace) y exportar señales de salida y datos de estado al workspace. Esta capacidad permite usar funciones de MATLAB estándares o hechas por el usuario para generar señales de entrada para la simulación de sistemas y graficar, analizar y otros post-procesos con las señales de salidas de los modelos. Importar Datos del Workspace de MATLAB. SIMULINK puede aplicar entradas creadas en el espacio de trabajo de MATLAB (workspace) al modelo en los puertos de entrada de un nivel superior durante la simulación. Para llevar a cabo esto se selecciona la ventana input (entrada) en el área load from workspace (cargando desde el espacio de trabajo) del panel Data Import/Export (importar/exportar datos). Entonces se ingresa la especificación de la entrada externa en la ventana de edición adyacente (edit box) y haciendo clic sobre Apply (aplicar). Los datos pueden tomar cualquiera de las siguientes formas.

 

  143

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

• Importar Arreglos de datos (Arrays): Este formato de importación consiste de matrices de valores reales (no complejos) del tipo doble. La primera columna de la matriz debe ser un vector de tiempo valores ascendentes. Las columnas restantes especifican los valores de entradas. En particular, cada columna representa la señal de entrada para diferentes bloques de importación (en orden secuencial) y cada fila es el valor de entrada para el correspondiente valor de tiempo. El número total de columnas de la matriz de entrada debe ser igual a n+1, donde n es el número total de señales ingresando al modelo por los puertos de entrada.

• Usar una expresión temporal de MATLAB para importar datos: Se pueden

importar datos desde el espacio de trabajo de MATLAB usando una expresión temporal. Para usar expresiones de tiempo, ingrese la expresión como una cadena (incluido en apostrofes) en el campo input (entrada) del panel Data Import/Export (importar/exportar datos). La expresión de tiempo puede ser cualquiera expresión de MATLAB que evalúa un vector fila de igual longitud que al número de señales ingresando al modelo por los puertos de entrada.

• Importar estructura de datos: SIMULINK puede leer datos del espacio de

trabajo en forma de estructura, el cual su nombre es especificado en el campo de entrada (Input). Se puede importar estructuras que incluyan únicamente datos de señal o ambos señal y datos de tiempo. Para tal efecto se selecciona la opción structure with time (estructura con tiempo) opción que se encuentra en la lista de Format (formato) en el panel Data Import/Export (importar/exportar datos).

La estructura de datos tiene dos tipos de niveles: tiempo y señal. El campo de tiempo contiene un vector columna con los tiempos de simulación. El campo de señales contiene un arreglo de subestructuras, cada una corresponde a un puerto de entrada del modelo. Cada subestructura de señal debe contener dos campos llamados values (valores) y dimensions (dimensiones), respectivamente. El campo de valores debe contener un arreglo de entradas para los correspondientes puertos de entradas, donde cada entrada corresponde a un punto temporal especificado por el campo del tiempo. El campo de las dimensiones especifica las dimensiones de la entrada. Si cada entrada es un escalar o un vector (arreglo de 1D) de valores, el campo de las dimensiones debe ser un valor escalar que especifique el tamaño del vector (1 si es escalar). Si cada entrada es una matriz (arreglo de 2D), el campo de las dimensiones debe ser un vector de dos elementos, donde el primero

 

  144

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

especifica el número de filas y el segundo el número de columnas de la matriz. Si la entradas para un puerto es un escalar o un vector, el campo de valores debe ser un arreglo de M x N, donde M es el número de puntos de tiempo especificados por el campo de tiempo y N es la longitud de cada vector de valor.

Por ejemplo el siguiente código crea una estructura de entrada para cargar 11 muestras de tiempo de un vector de señal de 2 elementos, del tipo int8, a un modelo con un solo puerto de entrada. a.time = (0:0.1:1)'; c1 = int8([0:1:10]'); c2 = int8([0:10:100]'); a.signals(1).values = [c1 c2]; a.signals(1).dimensions = 2;

Para cargar esto a un puerto del modelo, se selecciona la opción Input (entrada), en el panel Data Import/Export (importar/exportar datos), e ingrese ‘a’ (sin los apostrofes) en el campo de entrada expression (expresión). Si la entrada de los puertos son matrices, el campo de valores debe ser un arreglo M x N x T donde M y N son las dimensiones de cada matriz de entrada y T es el número puntos de tiempos. Por ejemplo suponiendo que se desean 51 muestras de tiempo de una matriz de señal de 4x5 a los puertos de entrada del modelo, luego entonces el correspondiente campo de dimensiones de la estructura del workspace debe ser igual [4 5] y los arreglos del campo de valores deben ser 5x4x51. Como otro ejemplo considere el siguiente modelo:

Figura 105. Modelo con dos entradas.

Fuente: Captura de Matlab versión trial (2008)

 

  145

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Suponiendo que se desea una entrada de una onda seno para el primer puerto de entrada y una onda coseno para el segundo, para hacer esto se define un vector a, como sigue: a.time = (0:0.1:1)'; a.signals(1).values = sin(a.time); a.signals(1).dimensions = 1; a.signals(2).values = cos(a.time); a.signals(2).dimensions = 1;

Se debe seleccionar la ventana de entradas (input), para este modelo se ingresa a en el campo de texto adyacente (adjacent text) y seleccione StructureWithTime (Estructura con tiempo) como el formato de entrada y salida (I/O format) Exportando Datos al Workspace de MATLAB. Se pueden seleccionar las variables de retorno seleccionando Times (tiempos), states (estados) y/o Outputs señalándolas en el área Save to workspace (Guardar en el espacio de trabajo) del panel de la ventana de diálogo, esto ocasiona que los valores antes mencionados, tantos como se hayan escogido, sean almacenados en el espacio de trabajo. Para asignar valores a las diferentes variables, se deben especificar esos nombres de variables en los campos a la derecha de la ventana de comprobación. Para escribir más de una variable, los nombres de esta deben ir separados por comas. SIMULINK guarda los tiempos de simulación en el vector especificado en el área Save to workspace (Guardando en el espacio de trabajo). Las opciones de guardado (save options) habilitan el formato y restringen la cantidad de variable de salidas posibles. Los formatos de salida son los siguientes:

• Arreglos (Arrays): Si se selecciona esta opción, SIMULINK guarda los estados y las salidas del modelo en un arreglo para cada uno. La matriz de estados tiene el nombre especificado en el área Save to workspace (Guardando en el espacio de trabajo) (por ejemplo xout). Cada fila de la matriz de estado corresponde a un tiempo de muestra de los estados del modelo. Cada columna a un elemento de un estado. Por ejemplo un modelo tiene dos estados continuos, cada uno de los cuales es un vector de dos elementos, entonces los primeros dos elementos de cada fila de la matriz de estados contiene una muestra de tiempo del primer vector de estados. Los últimos dos elementos de cada fila contienen una muestra de tiempo del segundo vector de estados. La matriz de salidas tiene el nombre

 

  146

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

especificado en el área Save to workspace (Guardando en el espacio de trabajo)(por ejemplo yout), donde cada columna corresponde a un puerto de salida del modelo , cada fila de la salidas a un tiempo específico. Se pueden guardar los datos de esta forma si y solo sí todas las salidas y los estados son valores escalares o vectores (o todas matrices para los estados), son todos reales o todos complejos, y todos del mismo tipo.

• Estructuras con tiempo (structure with time): Si se selecciona esta opción, SIMULINK guarda los estados y las salidas del modelo en estructuras teniendo los nombre especificados en el área Save to workspace (Guardando en el espacio de trabajo) (por ejemplo xout y yout). La estructura para guardar estas salidas tiene dos niveles: tiempo y señales. El campo de tiempo contiene un vector con los tiempos de simulación. El campo de señales contiene un arreglo de las subestructuras cada una de las cuales corresponde a cada uno de los puertos de salida. Cada subestructura tiene cuatro campos: valores (values), dimensiones (dimensions), etiqueta (label) y nombre del bloque (blockName). El campo de valores contiene las salidas para el correspondiente puerto de salida, si las salidas son escalares o vectores, el campo de valores es una matriz en la cual las filas representan una salida a un tiempo específico por el correspondiente elemento del vector de tiempo. Si las salidas son matrices (arreglos 2D), el campo de valores en un arreglo 3D de dimensiones MxNxT donde MxN es la dimensión de la señal de salida y T es el números de muestras de salidas. El campo de dimensiones especifica la dimensión de la señal de salida. El campo de etiqueta especifica la etiqueta (nombre) de la señal conectada al puerto de salida o al tipo de estado (continuo o discreto). El campo de nombre de bloque especifica el nombre correspondiente al puerto de salida o el bloque con estados.

La estructura para guardar los estados es similar a la de salidas La estructura para guardar estos estados tiene dos niveles: tiempo y señales. El campo de tiempo contiene un vector con los tiempos de simulación. El campo de señales contiene un arreglo de las subestructuras cada una de las cuales corresponde a un estado del modelo. Cada subestructura tiene cuatro campos: valores (values), dimensiones (dimensions), etiqueta (label) y nombre del bloque (blockName). El campo de valores contiene muestras de tiempo de un estado del bloque especificados por el campo de nombre

 

  147

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

de bloque. El campo de etiqueta para los bloques incorporados indica el tipo de estado CSTATE (estado continuo) y DSTATE (estado discreto). Las muestras de tiempo de un estado son guardadas en el campo de valores como una matriz de valores. Cada fila representa una muestra de tiempo. Cada elemento de una fila corresponde a un elemento del estado. Si el estado es una matriz, esta es almacenada en el arreglo de valores en orden de la columna principal. Por ejemplo un modelo que incluye una matriz de estado de 2x2 y que SIMULINK registre 51 muestras del estado durante la simulación. El campo de valores para este estado debería contener una matriz de 51x4 donde cada fila corresponde a una muestra de tiempo del estado y donde los dos primeros elementos de cada fila corresponden a la primera columna de la muestra y los dos últimos corresponde a la segunda columna de la muestra.

Lección 9: Establecer la Configuración de la Simulación. Esto es un conjunto de valores, para los parámetros de los modelos, como el tipo de solucionador y el tiempo de inicio y detención de la simulación. Cada nuevo modelo es creado con un conjunto de configuración por defecto, llamado configuración, inicialmente especifica valores para los parámetros de los modelos. Se pueden crear y modificar ajustes de configuración y asociarlos con un modelo. Los ajustes asociados a un modelo pueden cada uno especificar diversos valores para cualquier parámetro del modelo dado. Componentes del Ajuste de la Configuración. Un ajuste de configuración abarca a grupos de parámetros relacionados llamados los componentes. Cada elemento de la configuración incluye los siguientes componentes:

• Solucionador (solver). • Importar/Exportar datos (Data import/export) • Optimización • Diagnóstico • Implementación de hardware • Referenciar modelos.

El ajuste de Configuración Activo. Solamente un ajuste de la configuración asociado a un modelo es activo en un momento dado. El ajuste activo determina

 

  148

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

los valores actuales de los parámetros del modelo. El cambio del valor de un parámetro en el explorador de modelo cambia el valor en el ajuste activo. SIMULINK permite se cambie el ajuste activo en cualquier momento (excepto al ejecutar el modelo). De esta manera, se puede configurar de nuevo rápidamente un modelo para diversos propósitos, o aplicar los ajustes estándar de la configuración a los modelos nuevos. Mostrando los Ajustes de la Configuración. Para exhibir el ajuste de configuración asociado con un modelo, abriendo el explorador de modelo. El ajuste de la configuración asociado con el modelo aparece en un nodo con forma de engranaje en el panel de jerarquía de modelo, en el explorador de modelo. El panel de contenido del explorador de modelo muestra los componentes del ajuste de la configuración seleccionada. El panel de dialogo del explorador muestra un diálogo para fijar los parámetros del grupo seleccionado.

Figura 106. Explorador de modelo para el ajuste de la configuración.

Fuente: Captura de Matlab versión trial (2008)

Lección 10: Resultados de la Simulación. En la presente sección se explican las herramientas de SIMULINK empleadas para analizar los resultados de la simulación. Las trayectorias de de salida de SIMULINK pueden ser graficadas usando uno de los tres siguientes métodos.

 

  149

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

• Alimentar un bloque de visualización (Scope) o de Graficas XY (XY Graph). • Escribir las salidas en variables de retorno y usar los comandos de

MATLAB para realizar las gráficas. • Escribir las salidas usando los bloques de espacio de trabajo (workspace) y

usar los comandos de MATLAB para realizar las gráficas. Utilizando el Bloque de Visualización. Se puede mostrar la trayectoria de salida con un bloque de visualización (Scope), durante la simulación como está ilustrado en el siguiente modelo.

Figura 107. Modelo para observar el uso del Scope.  

Fuente: Captura de Matlab versión trial (2008)

La pantalla en el Scope muestra la trayectoria de salida. Este bloque habilita al usuario para acercarse al área de la gráfica que sea del interés de este o guardar los datos al workspace. El bloque XY Graph permite graficar una señal Vs otra. Utilizando Variables de Retorno. Son usadas para retornar tiempo o historial de salida, luego usando los comandos de MATLAB, estos datos pueden ser graficados y/o almacenados en la trayectoria de salida.

Figura 108. Modelo para observar el uso de las variables de retorno.

Fuente: Captura de Matlab versión trial (2008)

 

  150

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

El bloque etiquetado con Out es un puerto de salida de la librería Ports & Subsystem. Utilizando el bloque de Workspace. Este bloque puede ser empleado para retornar las trayectorias de salida al espacio de trabajo de MATLAB. El siguiente modelo ilustra su forma de uso.

Figura 109. Modelo para observar el uso del bloque Workspace.

Fuente: Captura de Matlab versión trial (2008)

Las variables y y t, aparecen en el espacio de trabajo (workspace), cuando la simulación se completa. Se puede almacenar el vector de tiempos para alimentar el bloque clock (reloj) hacia el bloque de workspace. Diagnosticando Errores de Simulación. Si un error ocurre durante la simulación, SIMULINK detiene la simulación, abre el subsistema que causa el error (si es necesario) y muestra los errores en el visor de diagnóstico de simulación (Simulation Diagnostic Viewer). A continuación La siguiente sección explica como usar el visor de Diagnóstico de Simulación (Simulation Diagnostic Viewer) para determinar la causa del error. Este visor abarca un panel con el sumario de errores (Error Sumary) y un panel de mensajes de error (Error Message).

 

  151

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 110. Visor de diagnóstico de la simulación.

Fuente: Captura de Matlab versión trial (2008)

• Panel de resumen de errores.

El panel superior muestra una lista de errores que causaron que la simulación de SIMULINK terminara. El panel muestra la siguiente información por cada error.

o Mensaje (Message): Tipo de mensaje (por ejemplo, error de bloque, advertencia, registro).

o Fuente (Source): Nombre del elemento del modelo (por ejemplo, un bloque) que causó el error.

o Reportado por (Reported by): Componente que mostré el error (por ejemplo: SIMULINK, Flujo de estados (stateflow)).

o Resumen (Summary): Mensaje de error, abreviado para que quepa en la columna.

Se puede remover cualquiera de esas columnas de información para hacer más espacio para las otras. Para removerlas se selecciona la opción vista (view) del visor y se remueven las selecciones del ítem correspondiente.

 

  152

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

• Panel de mensaje de error (Error Message pane). El panel inferior inicialmente tiene los contenidos del primer mensaje listado en el panel superior. Se puede desplegar los demás contenidos de los demás mensaje haciendo clic sobre cada uno de estos. Adicional a esto SIMULINK abre (en caso de necesidad) el subsistema que contiene la primera fuente del error y destaca la fuente

Figura 111. Bloque que genera el error.

Fuente: Captura de Matlab versión trial (2008)

CAPÍTULO 3 BLOQUES, SEÑALES Y FUNCIONES S Introducción. Los bloques, señales y las funciones s forman una parte primordial de un modelo en SIMULINK en este capítulo se desglosan con más detalle sus principales características funcionales y de configuración. Lección 11: Bloques y Señales. Bloques. Los bloques son los elementos de los cuales se construyen los modelos de SIMULINK. Se puede modelar virtualmente cualquier sistema dinámico creando y/o interconectando bloques ya existentes de forma adecuada para cada aplicación.

 

  153

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Cuando se crean modelos, se debe tener en cuenta que los bloques de SIMULINK se organizan en dos grandes categorías, los virtuales y los no virtuales. Los bloques no virtuales tienen un papel activo en la simulación de un sistema. Si se añade o se remueve un bloque de este tipo se cambia el comportamiento del modelo. Los bloques virtuales por el contrario no tienen un papel activo en la simulación, estos ayudan a organizar un modelo gráficamente. Algunos bloques son virtuales en algunas circunstancias y no virtuales en otras, son llamados bloques virtuales condicionales. En la siguiente tabla se presenta una clasificación de los bloques virtuales.

Tabla 18. Bloques virtuales. Nombre del Bloque Condición bajo la cual el bloque es virtual Bus selector Virtual si la entrada al bus es virtual Demux Siempre virtual Enable Virtual a menos que esté conectado directamente a un

puerto de salida de un bloque. From Siempre virtual Goto Siempre virtual Goto tag visibility Siempre virtual Ground Siempre virtual Import Virtual a menos que el bloque en el que esté sea un

subsistema condicionalmente ejecutado y tenga conexión directa al puerto de salida del bloque.

Mux Siempre virtual Outport Virtual cuando el bloque en el que esté sea un subsistema

(condicionado o no) y no reside en la raíz (máximo nivel) de la ventana de SIMULINK.

Selector Virtual excepto en el modo de Matriz Signal specification Siempre virtual Subsystem Virtual a menos que el bloque sea condicionalmente

ejecutado y la opción del bloque treat as Atomic Unit (tratarlo como unidad atómica.) está seleccionada.

Terminator Siempre virtual Trigger Virtual cuando el puerto de salida no está presente Fuente: Armando Portela (2008)

 

  154

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

• Parámetros del Bloque. Cada bloque de SIMULINK tiene un conjunto de atributos, llamados propiedades o parámetros, que gobierna su apariencia y su comportamiento durante la simulación. Algunos tipos de atributos son comunes para todos los bloques, por ejemplo todos los bloques tienen el atributo de nombre, otros atributos son específicos a cada tipo de bloque como el bloque ganancia (Gain) que es el único que tiene el parámetro de ganancia. SIMULINK permite especificar los valores para muchos de los atributos del bloque, permitiendo personalizar la apariencia y comportamiento del bloque en el modelo que se está diseñando. SIMULINK proporciona los siguientes medios para especificar los parámetros del bloque:

o Menú Format (formato).

o El menú de formato del editor de modelo permite especificar atributos del bloque seleccionado actualmente que son visibles en el diagrama de bloques, tales como nombre y color.

o Ventana de diálogo Block Propierties (propiedades del bloque) o Especifica varios atributos que son comunes en todos los bloques,

para mostrar esta ventana de diálogo, se selecciona el bloque en la ventana de modelo, seguidamente se selecciona Block propierties del menú Edit.

Figura 112. Ventana de diálogo de propiedades del bloque.

Fuente: Captura de Matlab versión trial (2008)

 

  155

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

La ventana de diálogo contiene las siguientes pestañas:

o General pane (panel general): permite ajustar las siguientes propiedades:

Desciption (Descripción). Permite una breve descripción para

el propósito del bloque. Priority (Prioridad). Permite seleccionar la prioridad de

ejecución de un bloque con respecto a los demás bloques del modelo.

Tag (Etiqueta). Es el texto asignado en el parámetro Tag y guardado con el modelo del bloque. Esta opción permite crear etiquetas propias del usuario específicas para un bloque.

o Panel de Block annotation (Anotaciones del bloque): Este panel

permite desplegar los valores de parámetros seleccionados de un bloque en una anotación que aparece debajo del icono del bloque.

Figura 113. Ventana de diálogo de anotaciones del bloque.

Fuente: Captura de Matlab versión trial (2008)

Se Ingresa el texto de la anotación que aparece en el lado derecho del panel. Ejemplo, se seleccionan las propiedades Name y priority, y a continuación SIMULINK muestra estas propiedades con sus respectivos valores. Ejemplo:

 

  156

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 114. Bloque mostrando sus propiedades.

Fuente: Captura de Matlab versión trial (2008)

o Panel Callbacks (llamados): Este panel permite especificar implementaciones para el llamado de bloques. Para tal efecto se selecciona el llamado en la lista de llamados del lado izquierdo del panel. Entonces se ingresan los comandos de MATLAB que se desean llamar en el campo del lado derecho.

Figura 115. Ventana de diálogo de llamados del bloque.

Fuente: Captura de Matlab versión trial (2008)

 

  157

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

- Ventana de diálogo Block parameter (parámetros del bloque). - Cada bloque tiene una ventana de diálogo que permite especificar valores

para los atributos que son específicos a ese tipo de bloque. Para mostrar esta pantalla se debe hacer doble clic en el modelo o en la ventana de librerías.

- Explorador de modelo. - Este permite encontrar y ajustar rápidamente las propiedades de uno o más

bloques, facilitando los cambios globales en un modelo, por ejemplo cambiando la ganancia de todos los bloques en el modelo.

- El comando Set_param - Habilita utilizar la programación y escritura de los archivos M (M-files) para

especificar los atributos del bloque.

• Librería de Bloques. A continuación se describirán las librerías básicas de SIMULINK, con algunos de sus componentes. Es tarea del estudiante revisar el resto de las muchísimas opciones que presenta este paquete.

Tabla 19. Librerías y bloques de SIMULINK de uso común.  

Librería Bloque Función Derivative (Derivada) Derivar la señal de entrada

Integrator (Integrador) Integra la señal de entrada, se le deben proporcionar los parámetros de límite superior e inferior y la condición inicial

Transfer Fcn (Función de transferencia)

Le proporciona al usuario la posibilidad de expresar una función de transferencia en función de s. los parámetros son los coeficientes que acompañan la variable en el numerador y el denominador.

Transoport Delay (Retraso de transporte)

La salida del bloque está retrasada con respecto a la señal de entrada

Continuous (Continua): Bloques que pueden representar funciones continúas en el tiempo.

Zero-Pole (Polos y ceros)

Función de transferencia expresada en valores de ganancias en estado estable

Math (Matemáticas): Bloque que realizan operaciones matemáticas con la señal o señales de entrada

Abs Calcula el valor absoluto de la señal de entrada.

Gain (Ganancia) Aplica un valor de ganancia constante a la señal de entrada.

Fuente: Armando Portela (2008)

 

  158

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Señales. SIMULINK define señales como las salidas de los sistemas dinámicos representados por los bloques en un diagrama y por el diagrama en sí mismo. Las líneas en los diagramas de bloques representan relaciones matemáticas entre las señales definidas por el diagrama de bloque. Por ejemplo, una línea que conecta la salida del bloque A con la entrada del bloque B indica que la salida de la señal de salida de B depende de la señal de salida generada en A. Se puede pensar que las señales que viajan por las conexiones realizadas en un diagrama de bloques, son señales de tipo eléctrico como las que viajan en un cable telefónico, aunque esta analogía es un poco engañosa porque sugiere que el diagrama de bloque representa la conexión física de bloques lo cual no es cierto. Las señales de SIMULINK son entidades matemáticas no físicas y las líneas en un diagrama de bloque representan relaciones matemáticas no físicas entre señales. Lección 12: Tipos de datos Los tipos de datos se refiere a la forma en que una computadora representa los números en memoria. Un tipo de dato determina la cantidad de almacenamiento asignada para un determinado número, el método empleado para codificar el valor del número como un patrón de digito binarios, y las operaciones disponibles para manipular los distintos tipo. La mayoría de las computadoras proveen las opciones de tipos datos para representar números, cada una con ventajas en términos de precisión, rango dinámico, rendimiento y uso de memoria. Para proporcionarle al usuario la ventaja de poder emplear cualquier tipo de dato, MATLAB permite especificar el tipo de variables a utilizar y SIMULINK hereda esta capacidad para especificar el tipo de dato en las señales y los parámetros de los bloques. Esta habilidad es particularmente útil en los modelos de tiempo real. Por ejemplo, permite que un modelo de SIMULINK especifique los tipos de datos óptimos a utilizar para representar señales y parámetros de bloques en un código generado por la herramienta de generación de código automática (Real-time Workshop disponible de Mathworks), escoger el tipo de datos más apropiado para señales y bloques del modelo puede incrementar dramáticamente el funcionamiento y aminorar el tamaño del código generado por el modelo. SIMULINK realiza una extensa comprobación antes y durante la simulación para asegurar que el modelo utilice los tipos de datos correctos y así el código generado del modelo no se desbordará o se quedará bloqueado, produciendo

 

  159

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

resultados indeseados. Los modelos de SIMULINK utilizan por defecto el tipo de dato doble. SIMULINK soporta la mayoría de tipos de datos que el MATLAB soporta excepto int64 y uint64. La siguiente tabla representa los datos soportados por SIMULINK.

Tabla 20. Tipo de datos soportados por SIMULINK.

Nombre Descripción Double Punto flotante de doble precisión Single Punto flotante de precisión simple Int8 Entero de 8 bits con signo Uint8 Entero de 8 bits sin signo Int16 Entero de 16 bits con signo Uint16 Entero de 16 bits sin signo Int32 Entero de 32 bits con signo Uint32 Entero de 32 bits sin signo

Fuente: Armando Portela (2008) Lección 13: Funciones S Una función S, es una descripción en algún lenguaje computacional de un bloque de SIMULINK. Estas pueden ser escritas en MATLAB, C, C++, ADA o FORTRAN, dichas funciones son compiladas como archivos MEX (MEX-files), este tipo de archivos son la manera para hacer el llamado de rutinas creadas en C o FORTRAN directamente desde MATLAB como si fueran funciones propias o creadas en este. Las principales razones para escribir un archivo MEX son:

• La habilidad de MATLAB para llamar códigos de gran tamaño escritos en C y FORTRAN, así, no tener que reescribirlos de nuevo en MATLAB.

• Velocidad; se pueden reescribir cálculos que generan ‘cuellos de botella’ (como por ejemplo lazos for) como un archivo MEX para ganar en eficiencia.

 

  160

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Los archivos MEX, no son apropiados para todas las aplicaciones, dado que MATLAB es un sistema de alta productividad el cual está especializado en eliminar el consumo de tiempo. En general la mayoría de la programación debe ser relizada en MATLAB, no se debe usar este tipo de archivos a menos que la aplicación lo requiera. Una función de este tipo usa una sintaxis especial de llamado que habilita al usuario para interactuar con los solucionadores de SIMULINK. Esta interacción es muy similar a la interacción que toma lugar entre los solucionadores y el interior de los bloques. La forma de una función S es muy versátil y puede ser del tipo continuo, discreto o híbrido. Esta función permite al usuario añadir sus propios bloques a los modelos diseñados. Se pueden crear funciones S, en los lenguajes de programación antes mencionados, siguiendo una serie de reglas. Lección 14: Usar Funciones S en los modelos Para incorporar una función S a un modelo, se debe arrastrar el bloque desde la librería de SIMULINK definida por el usuario hacia el modelo. Luego se especifica el nombre de la función S en el campo S-function name (Nombre de la función S), como se ilustra en la siguiente figura. En este ejemplo, el modelo contiene dos instancias de un bloque de función S. ambos bloques son referentes al mismo archivo fuente (mysfun) el cual puede ser un archivo C-MEX o un archivo M. Si ambos archivos tienen el mismo nombre, el C-MEX toma precedencia y es el archivo que la función S usa.

 

  161

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 116. Relación entre un bloque de función S, su ventana de diálogo y el archivo fuente que define el comportamiento del bloque.

Fuente: Captura de Matlab versión trial (2008) Asignando Parámetros a las Funciones S. El campo S-function parameter (parámetros de la función S) de los bloques función S, permite especificar los valores de los parámetros que puedan ser asignados a la correspondiente función S. se debe usar este campo conociendo los parámetros que dicha función requiere (si no se conocen se puede consultar la documentación del autor del bloque o su código fuente). Se deben ingresar los parámetros separados por coma, en el orden que sean requeridos por la función. Los parámetros pueden ser constantes, nombres de variables definidas en el espacio de trabajo, o expresiones de MATLAB. El siguiente ejemplo ilustra el uso del campo de parámetros de la función para ingresar los parámetros definidos por el usuario.

 

  162

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 117. Parámetros de la S- función

. Fuente: Captura de Matlab versión trial (2008)

El modelo en este ejemplo incorpora limintm, una muestra de una S-función de ejemplo que incluye el SIMULINK. El código fuente de esta función puede encontrarse en toolbox/simulink/blocks. La función limintm acepta tres parámetros: una banda inferior, una banda superior y una condición inicial. Su salida es la integral de la señal de entrada, esta integral está definida entre la banda inferior (como límite inferior) y la banda superior (como límite superior). La ventana de diálogo en este ejemplo especifica una banda inferior, superior y una condición inicial con valores de 2,3 y 2.5 respectivamente. El visualizador muestra la salida resultante cuando su entrada es una onda seno de amplitud 1. ¿Cuándo usar una función-S?. El uso más habitual de una S-función es crear bloques de SIMULINK a medida. Se pueden usar en una variedad de aplicaciones incluyendo:

• Añadir nuevos bloques de propósito general. • Añadir bloques que representen drivers de dispositivos de hardware. • Incorporar un código fuente escrito en C. • Describir un sistema como un conjunto de ecuaciones matemáticas. • Usar animaciones gráficas

 

  163

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Lección 15: Como trabaja una función S y como se escribe en MATLAB Para crea s-funciones es necesario saber cómo trabaja. Para entender como funciona es necesario saber como SIMULINK simula un modelo y para poder lograr esto se requiere entender la matemática de los bloques. Matemática de los bloques. Un bloque de SIMULINK consiste en un conjunto de entradas, estados y salidas, donde las salidas están en función de muestras de tiempo, de las entradas y de los estados del bloque.

Figura 118. Esquema de la relación Matemática de los bloques

Fuente: Captura de Matlab versión trial (2008)

Las siguientes ecuaciones expresan la relación matemática entre las entradas, los estados y las salidas.

),,(0 uxtfy = (Salidas)

),,( uxtfx d=•

(Derivativo) ),,(

1uxtfx udh

=+ (Actualizado)

Etapas de la simulación. La ejecución de un modelo en SIMULINK es hecha en etapas. Primero viene la etapa de inicialización, en esta fase SIMULINK incorpora la librería de los bloques, caminos de propagación, tipos de datos y muestras de tiempo, evalúa los parámetros de los bloques, determina el orden de ejecución de los bloques y asigna los espacios de memoria. Entonces SIMULINK ingresa en un lazo de simulación (simulation loop). En cada ciclo de la simulación, SIMULINK ejecuta todos los bloques de los modelos en el orden que fueron determinados durante la inicialización, para cada bloque se invoca funciones que calculan los estados y salidas del bloque para el tiempo actual. Esto continúa hasta que se complete el tiempo de simulación. La siguiente figura ilustra las etapas de la simulación.

 

  164

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 119. Como SIMULINK ejecuta una simulación.

Fuente: Armando Portela (2008) Escribir funciones S en MATLAB. SIMULINK provee una Interfaz de Programación de Aplicaciones (Application Programming Interface (API)), que permite crear bloques en donde las propiedades y comportamiento de estos están definidos por programas realizados en MATLAB (M-files) llamados M-files S-function. El nivel 2 de M-files S-function le permite al usuario crear bloques que tengan todas las características y capacidades de los bloques de SIMULINK, incluyendo múltiples puertos de entrada y de salida, la habilidad para permitir la señales tanto en forma de vector como de matriz para cualquier tipo de datos soportado por SIMULINK, señales reales o complejas y la habilidad para operar a diferente tasas de muestreo.

 

  165

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

ACTIVIDAD DE AUTOEVALUACIÓN UNIDAD 2

 

  166

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

FUENTES DOCUMENTALES UNIDAD 2 BIBLIOGRAFIA Modelamiento Matemático Allen Angel. (1992). Álgebra intermedia. Mexico: Prentice Hall. Ayres, Jr. (1991). Cálculo diferencial e integral (3ra Ed). España: McGraw Hill. Granville. (1996). Cálculo diferencial e integral. Mexico: Limusa. Grossman (1996). Álgebra lineal. Colombia: McGraw Hill. Larson. (1994). Introducción al Algebra Lineal. Mexico: Limusa. Señales y Sistemas Arnold. (1992). Sistema moderno de procesamiento de datos. Mexico: Limusa. Irarrazaval. (1999). Análisis de señales. Chile: McGraw Hill. Papoulis (1986). Sistemas digitales y analógicos, transformadas en FOURIER, estimación espectral. España: Marcombo. Simulación Hilario Pérez. (2000). Simulación y electrónica analógica. Prácticas y problemas. Colombia: Alfaomega. Raczynski (1993). Simulación por Computadoras. Mexico: Noriega. Ross. (1999). Simulación (2da Ed). Mexico: Prentice Hall. Simulación, Un enfoque practico. Coss. Limusa. 1992. Mexico Stanley Wolf. (1980). Guía para mediciones electrónicas y practicas de laboratorio. Mexico: Prentice Hall.

 

  167

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Matlab Etter Delores. Solución de Problemas de Ingeniería con Matlab. (2da Edición): Prentice hall Hahn Brian D. (2007). Essential Matlab for Engineers and Scientist. (Third Edition). Elsevier. Hunt Brian R. (2001), A guide to Matlab for beginners and experienced users. Cambridge University: Press. McMahon David. (2007). Matlab Demystified: McGraw-Hill. Ogata Katsuhiko. Problemas de Ingenieria de control Utilizando Matlab: Prentice Hall. Sayood Khalid. (2007). Learning Programing Using Matlab. (First Edition): Morgan & Claypool. Sigmon Kermit, (2002). Matlab Primer. (Sixth Edition). Chapman & Hall/CRC: Press. SITIOS WEB Matlab

Documentation for MathWorks Products.(2009). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.mathworks.es/access/helpdesk/help/helpdesk.shtml Indiana University. Matlab. (2009). [en Línea[. Recuperado el 19 de julio de 2009, de http://www.indiana.edu/~statmath/math/matlab/index.html Introducción a Matlab. (2001). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.ing.unlp.edu.ar/controlm/archivos/electronica/doc/apuntes/matlab.pdf Matlab Educational Sites. (2006). [en Linea]. Recuperado el 19 de Julio de 2009, de http://www.ece.umaine.edu/mm/matweb.html Minitutorial de Matlab. (2009). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.desi.iteso.mx/sys/matlab/matlab.htm The Mathworks. (2009). [en línea]. Recuperado el 19 de julio de 2009, de http://www.mathworks.es/

 

  168

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Tutorial de Matlab. (1997). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.angelfire.com/la/hmolina/matlab1.html Tutoriales de control con Matlab. (1996). [en Línea]. Recuperado el 19 de julio de 2009, de http://ib.cnea.gov.ar/~control2/Links/Tutorial_Matlab_esp/index.html Scilab Introduction to Scilab. (2009). [en Línea]. Recuperado el 19 de julio, de http://pauillac.inria.fr/cdrom/www/scilab/doc/intro/index.html Scilab. (2009). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.scilab.org/ Welcome to Scilan.in (). [en Línea]. Recuperado el 19 de Julio de 2009, de http://scilab.in/index.php?title=Main_Page Programación Algoritmos. (1997). [en línea]. Recuperado el 19 de julio de 2009 de, http://www.monografias.com/trabajos15/algoritmos/algoritmos.shtml Arquitectura de Ordenadores I. [en Línea]. Recuperado el 19 de Julio de 2009, de http://www-gist.det.uvigo.es/~martin/ao1/lec11.pdf Conceptos de Lenguajes de Programación. (2005). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.mailxmail.com/curso/informatica/programacionestructurada/capitulo4.htm Ensamblador Lenguaje de Bajo Nivel (2004). [en Línea]. Recuperado el 19 de julio de 2009, de http://mx.geocities.com/alfonsoaraujocardenas/ensamblador.html Técnicas de Diseño de Algorimos. (2000). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.lcc.uma.es/~av/Libro/indice.html Descargas Aprenda matlab 7.0. (2005). [en Línea] . Recuperado el 19 de julio de 2009, de http://mat21.etsii.upm.es/ayudainf/aprendainf/Matlab70/matlab70primero.pdf

 

  169

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Scilab 5.1.1. (20090. [en Línea]. Recuperado el 19 de julio de 2009 de, http://scilab.softonic.com/ TheMathWorks. (2009). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.mathworks.com/products/matlab/

 

  170

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

UUNNIIDDAADD 33.. LLAABBVVIIEEWW Introducción “Es una herramienta usada por científicos e ingenieros para medir y automatizar el universo que nos rodea” LABVIEW (Laboratory Virtual Instrument Engineering Workbench), es un lenguaje y un entorno gráfico de programación que usa iconos en lugar líneas de comando para crear aplicaciones. A diferencia de otros lenguajes donde las instrucciones determinan el flujo de programa, en LabVIEW el flujo de datos a través de los nodos en el diagrama de bloques determina el orden de ejecución de los instrumentos virtuales VI (Virtual Instrument) y funciones. Los instrumentos virtuales o VI’s son los programas hechos en LabVIEW que imitan instrumentos físicos o paneles de control de muy diversos sistemas. Esta herramienta fue desarrollada por National Instruments, su desarrollo comenzó en el año de 1.983 y la primera versión fue lanzada en el año de 1.986 LabVIEW para Macintosh y en 1.990 la segunda versión. La versión utilizada como referencia para este curso es la 8.6. Justificación LabVIEW es un lenguaje de programación gráfico diseñado para ingenieros y científicos para desarrollar aplicaciones de pruebas, control y medidas. La naturaleza intuitiva de la programación gráfica de LabVIEW lo hace fácil de usar por educadores e investigadores para incorporar el software a varios cursos y aplicaciones. Con LabVIEW, los educadores e investigadores pueden usar un enfoque de diseño de sistemas gráficos para diseñar, generar prototipos y desplegar sistemas embebidos. Combina la potencia de la programación gráfica con hardware para simplificar y acelerar drásticamente el desarrollo de diseños.

Por que usar Labview. (2009).[ en línea], recuperado el 20 de julio de2009, de http://www.ni.com/academic/why_labview/esa/

 

  171

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Intencionalidades Formativas Propósitos Conocer y utilizar Labview como una herramienta de diseño y puesta a prueba de sistemas donde se requiere adquirir información, procesar, tomar decisiones a parti de ciertos resultados, todo a partir del desglose del manejo general de paquetes, además desarrollar habilidades que le permitan al estudiante identificar su potencial uso en el desarrollo de soluciones óptimas a problemas en el campo de la ingeniería electrónica. Objetivos Que el estudiante amplíe complemente y profundice en las características operativas, técnicas, los beneficios de Labview para que así puedan realizar una serie de actividades, tendientes a solucionar problemas de carácter electrónico, identificables en el quehacer diario del campo ingenieril. Competencias El estudiante conoce las características y posibilidades que le brindan los software analizados en el curso, además conoce los procedimientos sistemáticos para interactuar con éstos manejando los comandos básicos, formas de representación de los datos y expresiones características. Sabe buscar en las ayudas de los software los comandos específicos que sirvan para resolver una determinada tarea así como para conocer la sintaxis adecuada a la hora de programar. Puede depurar la programación en la búsqueda de errores de programación y puntos del programa donde no se realiza lo que en realidad se requiere, sabe ejecutar los programas realizados para asegurarse que cumplan los requerimientos y resuelvan adecuadamente una problemática dada. A su vez el estudiante sabe documentar los programas realizados para posibles utilizaciones posteriores o como referente para posible uso de otros. Aplicando los conocimientos adquiridos el estudiante puede realizar algoritmos, programas y funciones que sirvan para simular, analizar, modelar, generar gráficas, tablas de datos, estadísticas, procesado y filtrado de información, generar sistemas de instrumentación i/o adquisición de datos empleando Matlab, Scilab Simulink y Labview así como generar funciones o sub-funciones que le ayuden en

 

  172

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

labores especificas, para las cuales no exista un comando definido que resuelva la problemática planteada y que dichas funciones puedan ser empleadas como bloques constitutivos de una programa o aplicación mayor. Metas de aprendizaje El estudiante aprenderá de forma individual las temáticas del módulo del curso para que así pueda aplicar lo aprendido en cada tema mediante ejercicios y actividades tanto individuales como grupales en las que se desarrollen pequeños programas o aplicaciones en donde el estudiante se valga de toda la información disponible, de su espíritu investigativo y del trabajo en grupo para buscar la manera de generar las soluciones más óptimas y funcionales ante las problemáticas planteadas. El estudiante aplicará una metodología adecuada para el correcto diseño e implementación de algoritmos en la programación y simulación de soluciones a problemas de ingeniería y modelado de sistemas.

CAPITULO 1. CONCEPTOS BASICOS DE LABVIEW Introducción. En este capítulo se tratan los aspectos necesarios para familiarizarse con el uso de LabVIEW, incluyendo las ventanas Panel y Diagram, menús de LabVIEW y la ventana de jerarquía. Asimismo se presentan otros aspectos necesarios como el uso de los modos edit y run, y un ejemplo donde se crea, ejecuta y depura un Instrumento Virtual (VI). Lección 1: Características y Aplicaciones Labview es un programa enfocado hacia la instrumentación virtual, por lo que cuenta con numerosas herramientas de presentación, en gráficas, botones, indicadores y controles, los cuales son muy esquemáticos y ofrecen multiples opciones de presentación. Cuenta con librerías especializadas para manejos de DAQ, Redes, Comunicaciones, Análisis Estadístico, Comunicación con Bases de Datos. Como se programa creando subrutinas en módulos de bloques, se pueden usar otros

 

  173

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

bloques creados anteriormente. Además permite pasar las aplicaciones entre diferentes plataformas como Macintosh y seguir funcionando. LabVIEW se diferencia de otros lenguajes de programación, ya que no se basa en líneas de texto para crear el código fuente del programa, sino en la programación gráfica o lenguaje G para crear programas basados en diagramas de bloques. LabVIEW posee extensas librerías de funciones y subrutinas. Además de las funciones básicas de todo lenguaje de programación, LabVIEW incluye librerías específicas para la adquisición de datos, control de instrumentación VXI, GPIB y comunicación serie, análisis presentación y guardado de datos. Los programas desarrollados mediante LabVIEW se denominan Instrumentos Virtuales (VIs), porque su apariencia y funcionamiento imitan los de un instrumento real. Sin embargo son análogos a las funciones creadas con los lenguajes de programación convencionales. Los VIs tienen una parte interactiva con el usuario y otra parte de código fuente, y aceptan parámetros procedentes de otros Vis, a la parte interactiva se le conoce como Panel Frontal y a el código fuente como Diagrama de Bloques. Algunas de las ventajas que se obtienen al utilizar Labview son:

• Se reduce el tiempo de desarrollo de las aplicaciones al menos de 4 a 10 veces, ya que es muy intuitivo y fácil de aprender.

• Dota de gran flexibilidad al sistema, permitiendo cambios y actualizaciones

tanto del hardware como del software.

• Da la posibilidad a los usuarios de crear soluciones completas y complejas.

• Con un único sistema de desarrollo se integran las funciones de adquisición, análisis y presentación de datos.

• El sistema está dotado de un compilador gráfico para lograr la máxima

velocidad de ejecución posible.

• Tiene la posibilidad de incorporar aplicaciones escritas en otros lenguajes.

 

  174

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

• Puede interactuar con otro software como por ejemplo llamar archivos desde Excel o llamar rutinas desde Matlab.

Para el empleo de LabVIEW no se requiere gran experiencia en programación, ya que se emplean iconos y se apoya sobre símbolos gráficos en lugar de lenguaje escrito para construir las aplicaciones. Además posee extensas librerías de funciones y subrutinas. Además de las funciones básicas de todo lenguaje de programación. Las aplicaciones de LabVIEW pueden ser: prueba de dispositivos electrónicos, control de sistemas y maquinaria, monitoreo de condiciones en un ambiente industrial, realización de prototipos de lógica en los dispositivos biomédicos, entre una infinidad de otras aplicaciones. Labview permite para cada aplicación hacer mediciones físicas, entradas, salidas, procesamiento de señal, toma de decisiones complejas, registro de datos, generación de reportes, comunicación, etc. Lección 2: Entorno de Trabajo. Panel Frontal. Al comenzar el programa, se despliega la pantalla inicial que permite acceder a la información fundamental como Iniciar con LabVIEW (Getting started with LabVIEW), la ayuda (LabVIEW Help), información y nuevas características, además de los íconos correspondientes para generar nuevos VI’s o abrir alguno existente. Ver Figura 120. Un instrumento virtual consta principalmente de dos componentes: un diagrama de bloques (Figura 121 a), que es donde se desarrolla el código gráfico en forma de diagrama de bloques, además se cuenta con una interfaz de usuario que pude ser personalizada con objetos como perillas (Figura 121 b), indicadores y botones para formar el panel de control y/o monitoreo de los instrumentos virtuales .

 

  175

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 120. Pantalla inicial de LabVIEW.

Fuente: Captura de Labview 8.6 Versión Trial 2009

Figura 121. Ventanas del Instrumento Virtual, a) Diagrama de Bloques, b) Panel Frontal. Fuente: Captura de Labview 8.6 Versión Trial 2009

 

  176

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Las paletas, herramientas y menús de LabVIEW, son utilizados para construir el panel frontal y el diagrama de bloques de los VIs, realizando conexiones entre los diferentes elementos incluidos en tres paletas: la paleta de control, de funciones y de herramientas. Los instrumentos virtuales son entidades realizadas con el LabVIEW, en apariencia y operación imitan los instrumentos físicos, como osciloscopios, multímetros o paneles de control de cualquier tipo. Cada VI emplea funciones que manipulan las entradas de una interfase con el usuario u otras fuentes como sensores, tarjetas de adquisición, puertos de comunicación del PC, etc. Esta información puede ser presentada por pantalla en forma numérica o gráfica o puede ser procesada internamente para obtener resultados específicos, también se puede almacenar o transferir hacia otras computadoras. Un instrumento virtual contiene los siguientes componentes:

• Panel Frontal (Front Panel): Este se emplea como interfaz de usuario. • Diagrama de Bloques (Block diagram): Contiene el código fuente gráfico

que define la funcionalidad del VI.

• Íconos y panel de conexiones (Icon and connector panel): Identifica la interfase del VI con el fin de que éste pueda ser empleado en otro VI. Un VI que es utilizado en el interior de otro VI se conoce como un subVI. Un subVI es análogo a una subrutina en un lenguaje de programación basado en líneas de código.

Panel Frontal. El panel frontal se construye empleando controles e indicadores, los cuales representan respectivamente entradas interactivas y elementos de salida de un VI. Los controles pueden ser perillas, botones, diales que simulan mecanismos de entrada y control, generalmente se emplean como fuente de datos para el diagrama de bloques del VI. Los indicadores pueden ser gráficos, LEDs indicadores numéricos, etc. que simulen mecanismos de salida y visualización, éstos presentan datos que el diagrama de bloques adquiere o genera. Generalmente este panel es diseñado antes que el diagrama de bloques. Para desplegar la paleta de controles se selecciona en la barra de menús View>>Controls Palette, y se escogen los indicadores, perillas, etc que estarán en la ventana donde se construye el panel frontal (Figura 122). Los tipos de controles e indicadores, incluyen:

 

  177

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

• Numéricos: barras deslizables, perillas, gráficos, cartas. • Boléanos: Botones y switches, cadena de caracteres, arreglos, grupo de

opciones (Clusters), caja de listas (Listbox), árbol de controles. Visualizadores numéricos, Barras deslizables y de desplazamiento, perillas, diales y cronómetros. Se usan los objetos numéricos localizados en las paletas Numeric y Classic Numeric, entre estos se pueden encontrar barras deslizables y de desplazamiento, perillas, diales, y visualizadores numéricos, también incluye caja de colores para ajustar el color del indicador. Estos son utilizados para ingresar y mostrar los datos numéricos.

Figura 122. Paleta de Controles.

Fuente: Captura de Labview 8.6 Versión Trial 2009

Controles e Indicadores numéricos. Es la forma más simple para ingresar y desplegar datos numéricos, se pueden redimensionar estos objetos en el panel

 

  178

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

frontal para poder tener una mayor cantidad de dígitos (Ver Figura 123). Por defecto LabVIEW, muestra y almacena los números como una calculadora, este cambia automáticamente a una notación exponencial si el valor del número supera los 6 dígitos. Para variar e valor por defecto de un indicador, se puede digitar valores con el teclado o utilizar las flechas de incremento o decremento.

Figura 123. Controles e indicadores Numéricos.

Fuente: Captura de Labview 8.6 Versión Trial 2009

• Controles e indicadores deslizables (Slide) y de desplazamiento (Scroll). Estos son indicadores numéricos con una escala, pueden ser tanto verticales como horizontales, un tanque o un termómetro. Los valores por defecto de estos son variados haciendo clic y arrastrando hasta el nivel que se desea. Se puede añadir más de un indicador de desplazamiento haciendo clic derecho sobre el indicador y seleccionar Add Slider. El tipo de dato de un control con múltiples Slider es un grupo que contiene cada uno de los datos numéricos.

Figura 124. Controles e indicadores deslizables.

Fuente: Captura de Labview 8.6 Versión Trial 2009

 

  179

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

• Controles e indicadores giratorios (Rotary). Estos incluyen botones, diales, medidores y contadores. Los objetos giratorios funcionan de manera similar a los controles e indicadores deslizables, porque dependiendo de su posición representan valores numéricos en una escala de valores. Para cambiar el valor de los controles giratorios se hace clic sobre la aguja y se arrastra hasta su nueva posición. Se puede añadir más de una aguja (Neddle) haciendo clic derecho sobre el indicador y seleccionar Add Neddle. El tipo de dato de un control con múltiples Neddles es un grupo que contiene cada uno de los datos numéricos.

Figura 125. Controles e indicadores giratorios.

Fuente: Captura de Labview 8.6 Versión Trial 2009

• Cronómetros, controles e indicadores de tiempo. Son utilizados para enviar y recibir valores de tiempo y el dato registrado en esos instantes, este valor puede ser modificado haciendo clic sobre este ícono.

Figura 126. Controles e indicadores de tiempo.

Fuente: Captura de Labview 8.6 Versión Trial 2009 Botones, interruptores y luces. Estos indicadores y controles se encuentran localizados en las paletas Boolean y Classic Boolean y sirven para crear botones,

 

  180

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

interruptores y luces. Estos son utilizados para el ingreso y despliegue de valores booleanos (Verdadero/falso). Por ejemplo si se está monitoreando la temperatura de un experimento, se puede colocar una luz de advertencia booleana en el panel frontal para indicar cuando la temperatura excede este valor. Los controles booleanos poseen seis tipos de acción mecánica que le permiten al usuario personalizar esta clase de objetos para así crear panel frontales que en lo posible se emulen al máximo el comportamiento físico de los instrumentos.

Figura 127. Paleta de los controles e indicadores booleanos.

Fuente: Captura de Labview 8.6 Versión Trial 2009

 

  181

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

• Controles de opción (Radio Buttons). Estos deben ser utilizados para brindar a los usuarios una lista de opciones, de las cuales se puede escoger solo una por vez. Cajas de entrada de textos (Text Entry boxes), Marquillas (Labels). Estos indicadores y controles se encuentran localizados en las paletas String & Path y Classic String & path son manejados con cadenas de caracteres, se emplean para introducir cajas de entrada de texto, marquillas y para ingresar o retornar la localización de un archivo o directorio.

Figura 128. Paleta de Cadena de Caracteres.

Fuente: Captura de Labview 8.6 Versión Trial 2009 Indicadores y controles de arreglos (Arrays), matrices (Matrix) y grupos (Clusters). Se encuentran localizados en la paletas Array, Matrix & Cluster y Classic Arrays, Matrix & Cluster (Figura 129). Un arreglo (Array) son datos del mismo tipo. Un Cluster son datos de diferente tipo. Un grupo de matrices son filas y columnas de datos complejos o escalares para realizar operaciones matemáticas, como por ejemplo las del algebra lineal.

 

  182

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 129. Paleta de Arrays, Matrix and Cluster.

Fuente: Captura de Labview 8.6 Versión Trial 2009 Caja de listas (Listboxes), árbol de control y Tablas. Esta paleta está localizada en List & Table y Classic List & Table

• Caja de listas (Listboxes).

Estas pueden ser configuradas para aceptar una o múltiples selecciones. Se usan las cajas de listas multi-columnas para desplegar más información acerca de cada opción, como el tamaño y el momento en que fue creado.

• Árbol de Controles (Tree Control).

Este es utilizado cuando se requiere brindar al usuario una lista jerárquica de opciones de la cuales puede escoger. Cuando se organizan los elementos de esta manera las opciones aparecen al hacer clic sobre el nodo, y se colapsan o desaparecen si se vuelve a oprimir el nodo.

• Tablas. Se utilizan para crear tablas en el panel frontal.

 

  183

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 130. Paleta de List & Table.

Fuente: Captura de Labview 8.6 Versión Trial 2009 Controles e indicadores para Nombres de entradas y salidas (I/O). Esta paleta se encuentra en I/O y en Classic I/O, se utiliza para nombrar los canales del DAQ (Sistema de adquisición de datos), así como los recursos VISA y nombres de la lógica IVI.

• VISA: (Virtual Instrument Software Architecture) o en español: Arquitectura Software del Instrumento Virtual, Se trata de una interfaz sencilla para controlar una serie de dispositivos para adquisición de señales.

• IVI: (Interchangeable Virtual Instrument) en español: Instrumento Virtual

Intercambiable, Es un estándar de software para crear una interfaz común (API) para simular instrumentos de pruebas y medidas, que permite configurar las entradas y las salidas de los VIs para comunicarlo con un instrumento o un dispositivo DAQ.

Los nombres de las constantes están localizados en la paleta de funciones (Functions). Una constante es una terminal de datos en el diagrama de bloques que suministra valores fijos, éstos serán empleados por los demás elementos del diagrama para realizar operaciones especificas.

 

  184

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Control en la Forma de Onda (Waveform): Sirve para manipular los datos de los elementos de un de forma de onda. Lleva el control de la forma de onda de los datos, hora de inicio, y el delta t de una forma de onda. Control de la Forma de Onda Digital: Es utilizado para manipular los elementos individuales de una forma de onda digital. Configurando los Objetos en el Panel Frontal. Se usa la caja de dialogo de propiedades, para configurar como aparecerán y se comportarán los controles e indicadores, esto se logra haciendo clic con el botón derecho del mouse y llegar a propiedades (Properties), mientras las simulación este corriendo no puede hacerse uso de esta opción. Mostrar u Ocultar Elementos Opcionales. Los controles e indicadores del panel frontal tienen elementos opcionales que se pueden mostrar u ocultarse, tales como, marquillas, leyendas y visualizadores digitales. Intercambiando Controles a Indicadores e Indicadores a Controles. LabVIEW inicialmente configura los objetos en la paleta de controles (Controls) como controles o indicadores basados en su uso típico. Por ejemplo si se coloca un interruptor de palanca (toggle switch) en el panel de control, este aparece como un control porque por lo general es una entrada del mecanismo (físico). Si se coloca un LED este aparece como un indicador, porque usualmente es utilizado como in dispositivo de salida. Algunas paletas contienen un control y un indicador para el mismo tipo de objeto. Por ejemplo, la paleta de numéricos (Numeric) contiene un control y un indicador numérico porque se pueden tener entradas numéricas y salidas numéricas. Se puede cambiar un control a un indicador haciendo clic con el botón derecho sobre el objeto y se selecciona cambiar a indicador (Change to Indicator) y se va a cambiar un indicador a un control se repite el procedimiento anterior y se selecciona cambiar a control (Change to Control).

 

  185

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Reemplazar Objetos del Panel Frontal. Se puede reemplazar un control o un indicador del panel frontal con uno diferente. Para hacer esto se hace clic con el botón derecho del mouse y se selecciona reemplazar (Replace) y aparecerá temporalmente una paleta de control (Controls) donde se escoge el indicador o control con el que se va a reemplazar. Lección 3: Entorno de Trabajo. Diagrama de Bloques. Luego de estar construido el panel frontal, el código del programa es añadido usando representaciones gráficas de funciones para controlar los objetos del panel de control. El diagrama de bloques contiene este código gráfico, también llamado como G-Code o código de diagrama de bloques. Objetos de los diagramas de bloques. Los objetos en el diagrama de bloques incluyen terminales y nodos, y se conectan por medio de cables (wires). El color y símbolo de cada terminal indica el tipo de dato del correspondiente control o indicador. Las constantes son terminales que suministran valores fijos en el diagrama de bloques Terminales del diagrama de bloques. Los objetos creados en el panel frontal aparecen como terminales en el diagrama de bloques. Se puede hacer doble clic en la terminal del diagrama de bloque para resaltar el correspondiente objeto del panel frontal. Las terminales son puertos de entrada y salida que intercambian información entre el panel frontal y el diagrama de bloques. Los valores de los datos que son ingresados en el primero de estos ingresan al segundo por las terminales de control. Durante la ejecución, el flujo de datos de salida de la terminal del indicador, sale del diagrama de bloques y reingresa al panel frontal y aparece en los indicadores de este. LabVIEW tiene terminales de control e indicación, terminales de nodo, constantes y terminales especializadas, para interconexión de las terminales se usan cables y

 

  186

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

los datos fluyen de una terminal a otra. Para poder desplegarlas se hace clic con el botón derecho y se selecciona Visible Items>>Terminals (Opciones visibles>>Terminales) y se oculta se repitiendo el procedimiento. Se pueden configurar los controles o indicadores del panel frontal para que aparezcan como iconos o terminales del tipo de datos en el diagrama de bloques. Por defecto son terminales iconos, por ejemplo una terminal ícono de perilla, se muestra como sigue (figura 131), representa a un control de perilla en el panel frontal.

Figura 131. Terminal ícono de una perilla

Fuente: Captura de Labview 8.6 Versión Trial 2009 Controles e Indicadores del Tipo Dato. Un control e indicador del tipo dato incluye numérico de punto flotante, numérico entero, marcas de tiempo, enumerados, booleanos, cadena de caracteres (string), arreglos (arrays), grupos (clusters), dinámicos. Valores Numéricos Simbólicos. Un valor inesperado o indefinido invalida las operaciones subsiguientes a esta. Las operaciones efectuadas en punto flotante retornan los dos siguientes valores simbólicos que indican un error en los cálculos.

• NaN (Not a Number): No es un número, por ejemplo el cálculo de la raíz cuadrada de un número negativo el punto flotante.

• Inf (Infinity): Infinito, representa que el valor calculado en punto flotante se

encuentra fuera el rango de operación.

 

  187

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Constantes. Como se ha dicho con anterioridad las constantes son terminales que proporcionan valores fijos en el diagrama de bloques. Las constantes universales siempre son valores fijos como pi (π) e infinito (∞). Los valores constantes definidos por el usuario se definen y editan antes de correr el VI, esto se consigue haciendo clic derecho sobre el terminal y se selecciona Create>>Constants. Nodos en el Diagrama de Bloques. Los Nodos son objetos del diagrama de bloques que tienen entradas y/o salidas y realizan las operaciones cuando se ejecuta un VI. Son análogas a las declaraciones (statements), operadores, funciones y subrutinas en la programación basada en texto. LabVIEW incluye los siguientes tipos de Nodos:

• Funciones: Inmersas dentro de los elementos, comparables con un operador, función o declaración.

• SubVI: Es un VI usado como un bloque dentro de otro VI, comparable con

la subrutinas.

• Express VIs: Son SubVIs diseñados para añadir tareas a medida.

• Estructuras (Strucutures): Elementos de control de ejecución, como ciclos para (for), mientras que (While), estructuras diversas como, en caso de (Case), secuenciales, temporales y eventuales.

Funciones. Las funciones son lo elemento esenciales para el funcionamiento de LabVIEW, los íconos de las funciones se encuentran en la paleta de funciones (Functions) y tienen un color amarillo pálido y de fondo y negro en los bordes. Las funciones no tienen panel frontal o diagrama de bloques pero si paneles de conexión, estos no se pueden ni abrir ni editar

 

  188

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Añadiendo terminales a la función. Esta es una opción que permite cambiar el número de terminales de algunas funciones. Por ejemplo, para construir un arreglo con 10 elementos se deben tener 10 terminales. Se pueden añadir terminales a la función posicionando el puntero de mouse sobre el borde y arrastrarlo arriba o abajo y eliminarlos repitiendo el procedimiento, aunque no se pueden borrar terminales que estén “cableadas” por lo que si se desea eliminar se debe primero borrar la conexión. Conectar los Objetos en el Diagrama de Bloques. La transferencia de datos en el diagrama de bloque se realiza a través de “cables” (wire). Cada cable tiene una sola fuente de datos pero pueden conectarse tantos cables sobre el primero para así tener el mismo dato y procesarlo en diferentes elementos de un diagrama. Apariencia y Estructura de los Cables. Los cables son de diferente color estilo y grosor dependiendo de que tipo de datos estén fluyendo sobre este, de manera similar al color y símbolo de un terminal. Un cable roto aparece como una línea punteada con una X de color rojo en el medio, esto ocurre por una diversidad de razones, como cuando se intentan conectar dos objetos con datos incompatibles. Las flechas al lado de la X indican la dirección del flujo de datos y el color el tipo de datos que fluye sobre este.

Figura 132. Segmento Curva y Unión.

Fuente: Captura de Labview 8.6 Versión Trial 2009

 

  189

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Flujo de datos en el diagrama de bloques. LabVIEW sigue un modelo de flujo de datos para el funcionamiento de los VIs. Un nodo en el diagrama de bloques se ejecuta cuando recibe todas las entradas requeridas, cuando esto sucede, se producen unos datos de salida y pasan al siguiente nodo. El movimiento de datos a través de los nodos determina el orden de ejecución de los VIs y funciones en el diagrama de bloques. Otros programas que siguen el modelo de control de flujo son JAVA, Visual Basic, C++, aunque estos son lenguajes de programación basado en texto. En el control de flujo, el orden secuencial de los elementos del programa determina el orden de ejecución. En LabVIEW, el flujo de datos está determinado por el orden de los objetos en el diagrama de bloques por lo tanto, se pueden crear diagramas de bloques que se hagan operaciones simultáneas. Por ejemplo, puede ejecutar simultáneamente dos bucles para mostrar los resultados y sobre el panel frontal, como se muestra en el siguiente diagrama de bloques.

 

  190

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 133. Ejecución de dos bloques simultáneamente.

Fuente: Captura de Labview 8.6 Versión Trial 2009 Dependencia de los Datos. La ejecución del modelo de control de flujo depende de la instrucción, y la ejecución del flujo de datos es manejada por los datos o dependiente de los datos. Un nodo que recibe datos de otro nodo siempre se ejecuta después que el primero ha terminado su ejecución. Los nodos no conectados en el diagrama de bloques se ejecutan en cualquier orden, pero se pueden controlar a través del paso de parámetros, mientras la dependencia de datos no exista. Se usa una estructura secuencial para conseguir este objetivo mientras el paso de parámetros no esté disponible.

 

  191

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Diseñando un Diagrama de Bloques. Estas son una serie de sugerencias para el diseño de diagrama de bloques:

• Los objetos en el diagrama de bloques se organizan de izquierda a derecha y de arriba hacia abajo, sin embargo la ubicación no determina el orden de ejecución. Se debe evitar el cableado de derecha a izquierda para evitar confusiones, haciendo se hace un diagrama organizado y fácil de entender.

• Evitar crear un diagrama que ocupe más de una o dos pantallas (Screen), si

un diagrama se vuelve grande y complejo, puede ser difícil de entender y de depurar.

• Si se decide reutilizar algunos componentes del diagrama en otros VIs o si

una sección de dicho diagrama trabaja como un componente lógico, se debe dividir en SubVIs que realicen tareas específicas, el uso de estos ayuda a manejar cambios y depuraciones del diagrama rápidamente.

• Utilice el manejo de errores de los VIs, las funciones y los parámetros para

la gestión de errores en el diagrama de bloques.

• Evitar cablear bajo el borde de una estructura o traslapar objetos, porque LabVIEW podría esconder algunos segmentos de un cable resultante.

• Evite colocar objetos encima de los cables porque aparecería como si

existiese una conexión cuando no la hay.

• Se deben usar las etiquetas para documentar el código en el diagrama de bloques.

Lección 4: Ejecutar y Depurar un Instrumento Virtual. Para poder hacer ejecutar un VI, se debe tener cableado todas las funciones, subVIs y estructuras con los tipos correctos de datos desde y hacia los terminales de los diferentes componentes. Algunos VIs producen datos o funcionan de una forma inesperada, pero se puede hace uso de LabVIEW para identificar los problemas ejecutando un VI paso a paso y analizando el flujo de datos a través del diagrama de bloques.

 

  192

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Corriendo un VI. Al correr un VI se ejecuta la operación para la que fue diseñado, se puede ejecutar o correr el programa si en la barra de herramientas aparece una flecha de color blanco solida, como lo muestra la siguiente figura (figura 134):

Figura 134. Botón de correr (run)

Fuente: Captura de Labview 8.6 Versión Trial 2009

Mientras la simulación este corriendo el botón de la figura anterior cambia a una flecha oscura tal y como se muestra a continuación:

Figura 135. Botón de correr (run) mientras se ejecute la simulación

Fuente: Captura de Labview 8.6 Versión Trial 2009 La simulación se detiene cuando se completa el flujo de los datos, pero si se presiona el botón de Corra continuamente (Run Continuously) (figura 136) la simulación se detendrá cuando el usuario lo decida, es decir, manualmente.

Figura 136. Botón de correr continuamente (run continuously)

Fuente: Captura de Labview 8.6 Versión Trial 2009

 

  193

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Si un VI no corre el botón de correr (figura 135) se muestra como una flecha rota (figura 137). La razón es porque faltan conexiones o hay alguna que no es adecuada, normalmente esto ocurre al intentar unir elementos de diferentes tipos, o simplemente el VI es inejecutable. Si tiene completamente cableado el diagrama de bloque y aun aparece el botón de esta forma es porque el VI está dañado.

Figura 137. Botón de correr roto

Fuente: Captura de Labview 8.6 Versión Trial 2009 Las advertencias que se generan en la simulación de un VI no impiden la ejecución de este, estas están diseñadas para prevenir potenciales problemas. Pero los errores si lo pueden hacer, así que es necesario hacer las correcciones del caso si se desea correr el VI. Para encontrar las causas de que un VI esté dañado se presiona el botón de correr (figura 137) o se selecciona en la barra de menús View>>Error List, la ventana que aparece muestra la lista de los errores. Para saber en qué bloque específicamente se encuentra el error, se hace doble clic sobre la descripción del error y el área donde este se encuentra se ilumina ya sea en el panel frontal o en el diagrama de bloques. Las causas más comunes de un VI dañado son las siguientes:

• El diagrama de bloques tiene un cable roto porque existe incompatibilidades entre los datos que circulan por este.

• Una terminal necesaria en el diagrama de bloques no cableada.

• Un subVI está dañado, o se edito el panel de conexiones después de que

se ubicó el ícono en el diagrama de bloque del VI.

 

  194

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Depurando un VI. Existe una diversidad de técnicas para identificar y corregir los problemas con un VI o el flujo de datos en el diagrama de bloques a continuación se muestran una de ellas. Se puede ver una animación de la ejecución del diagrama de bloques haciendo clic sobre el botón Ejecución iluminada (Highligth Execution) (figura 138),

Figura 138. Botón de Ejecución iluminada (Highligth Execution)

Fuente: Captura de Labview 8.6 Versión Trial 2009 Esta herramienta muestra el movimiento de los datos en el diagrama de bloques de un nodo a otro usando burbujas que se mueven a través de los cables. Se usa esto junto con la herramienta de un paso a la vez (Single Stepping) (figura 139) para observar como los valores de los datos fluyen de un nodo a otro dentro del VI. (Esto reduce sustancialmente la velocidad de ejecución del VI)

Figura 139. Botón de Ejecución de un paso a la vez (single stepping)

Fuente: Captura de Labview 8.6 Versión Trial 2009

Manejo de Errores. No importa que tan cuidadoso sea el diseñador al crear un VI, no se puede predecir los errores que se puedan encontrar. Sin un mecanismo para chequear los errores, lo único que se podría saber es que el VI no funciona apropiadamente. El chequeo de errores es la herramienta que indica la razón y ubicación de los errores.

 

  195

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Por defecto LabVIEW, maneja los errores suspendiendo la ejecución e iluminando el subVI o funciones donde a ocurrido el error, y mostrándolo en una caja de dialogo. Lección 5: Ejemplos. • A continuación se describe a detalle la creación de un instrumento virtual

bastante sencillo, realiza la suma y la resta de dos números, visualizando los resultados.

Los pasos que describen la creación de un VI son :

1. Abrir un nuevo instrumento virtual luego de haber iniciado LabView. 2. Se deben redimensionar las ventanas del panel de control y del diagrama

de bloques 3. En la ventana de panel de control en la ventana flotante de controles

(Controls) ir a la subpaleta Modern>>Numeric (figura 140), Modern>>Boolean y Modern>>String & Path

 

  196

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 140. Subpaleta Numeric

Fuente: Captura de Labview 8.6 Versión Trial 2009

Figura 141. Subpaleta Modern>>String & Path

Fuente: Captura de Labview 8.6 Versión Trial 2009

 

  197

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

4. De estas paleta escoger y arrastrar un control numérico (Numeric Control), un control de cadena de caracteres (String Control) y un botón de presión (Push Button) según corresponda.

Figura 142. Panel de control con los elementos escogidos

Fuente: Captura de Labview 8.6 Versión Trial 2009

Como es de esperarse los elementos que están en el panel de control tiene su ícono correspondiente en el diagrama de bloques. Cabe destacar que las terminales numéricas de punto flotante (Floating point numeric) son naranjas (los enteros son azules), las cadenas de caracteres son rosadas y los valores booleanos son verdes.

5. Para cambiar el control numérico a indicador numérico se hace clic derecho sobre el ícono y sobre el menú desplegado se escoge la opción Change to indicator (Cambiar a indicador). Nótese como cambia el ícono en el panel frontal (las flechas de arriba y abajo desaparecen), obsérvese también que el ícono del diagrama de bloques cambia (el borde es mucho más delgado en los indicadores). Se debe hacer este ejercicio en repetidas ocasiones para que se puedan reconocer las diferencias.

6. En este ejercicio se borran los ícono que no se van a necesitar String Control y Push Button.

7. Nuevamente en el panel de control se escoge un control numérico y dos indicadores numéricos y se posicionan como muestra la figura 143.

 

  198

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 143. Controles e indicadores numéricos

Fuente: Captura de Labview 8.6 Versión Trial 2009

8. En la ventana del diagrama de bloques pueda que sea necesario reposicionar alguna de las terminales. A continuación en el menú flotante de funciones escoger matemáticas (Functions>>Mathematics) y en esta subpaleta escoger y arrastrar los íconos de add (sumar) y substract (restar). Figura 144. Utilizando la herramienta de cableado para conectar las terminales debe quedar de la siguiente manera figura 143.

Figura 144. Subpaleta de Functions>>Mathematics

Fuente: Captura de Labview 8.6 Versión Trial 2009

 

  199

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 145. Diagrama de bloques conectado.

Fuente: Captura de Labview 8.6 Versión Trial 2009

9. Por último en la ventana del panel de control presionar el botón de arriba y hacia abajo o digitar los números y luego presionar el botón correr (Run) para observar los resultados.

Figura 146. Instrumento Virtual Funcionando

Fuente: Captura de Labview 8.6 Versión Trial 2009 • Realizar un VI que muestre grafica y numéricamente el nivel de un tanque, el

cual es alimentado por una bomba. Además debe poseer indicadores luminosos para visualizar si el nivel del tanque esta dentro de un rango permitido o si ha sobrepasado el nivel de alarma.

Como se explico anteriormente, se abre un nuevo archivo de trabajo y en el panel frontal se colocan los instrumentos necesarios tales como controladores e indicadores y en el diagrama de bloques se insertan las funciones matematicas o lógicas que se requieran, tal como se observa en la figura 147 y 147.

 

  200

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 147. Panel frontal tanque.vi

Fuente: Captura de Labview 8.6 Versión Trial 2009

Figura 148. Diagrama de bloques tanque.vi

Fuente: Captura de Labview 8.6 Versión Trial. 2009

 

  201

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Se procede a realizar las conexiones y a verificar el funcionamiento del VI, como se observa en la figura 149.

Figura 149. Conexiones en el Diagrama de Bloques tanque.vi

Fuente: Captura de Labview 8.6 Versión Trial. 2009.

• Construir y graficar las señales seno y coseno, a las cuales se les pueda controlar la amplitud, la frecuencia y el nivel DC.

Para generar las señales senosoidal y cosenosoidal se utiliza la función Simulate Signal que se encuentra en la librería Signal Procesing/ Waveform Generation (Ver Figura 150). Esta función permite el control de 4 Variables: Amplitud, Frecuencia, Nivel DC y Fase.

 

  202

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 150. Ubicación de la Función Simulate Signal.

Fuente: Captura de Labview 8.6 Versión Trial 2009. En el diagrama de bloques se colocan 6 controladores, los cuales servirán para manipular las variables Amplitud, Frecuencia y Nivel DC de las señales generadas. Asi mismo se inserta una Waveform Graph que se encuentra en la librería Graph. El aspecto final del Diagrama de bloques puede apreciarse en la Figura 151.

 

  203

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 151. Aspecto Final del Panel Frontal. Generación de Señales Seno y Coseno.

Fuente: Captura de Labview 8.6 Versión Trial 2009. La Figura 152 muestra la programación en el diagrama de bloques.

Figura 152. Aspecto final Diagrama de Bloques. Generación de Señales Seno y Coseno

Fuente: Captura de Labview 8.6 Versión Trial 2009.

 

  204

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

CAPITULO 2. PROGRAMACION ESTRUCTURADA. Introducción. Cuando se está programando, algunas veces es necesario ejecutar un conjunto de sentencias varias veces, o que estas se repitan de acuerdo a si se cumple una condición o no. Para facilitar estas rutinas LabView posee varias estructuras como son: Sequence, Case, For Loop, While Loop, Event, Formula Node, Timed Estructure etc, algunas de ellas se explican en este capítulo. Lección 6: Estructuras Case y Sequence. Estructura Case Esta estructura posee varios subdiagramas, que se superponen de tal manera que solamente uno es visible a la vez. En la parte superior del subdiagrama aparece una pequeña ventana que muestra el identificador del subdiagrama que se está en pantalla. A ambos lados de este identificador aparecen unas flechas que permiten pasar de un subdiagrama a otro. En este caso el identificador es un valor que selecciona el subdiagrama que se debe ejecutar en cada momento. La estructura Case tiene al menos dos subdiagramas (True y False). Únicamente se ejecutará el contenido de uno de ellos, dependiendo del valor de lo que se conecte al selector. Se utiliza en situaciones en las que se presentan varias alternativas a ejecutar. En la figura 1513 se muestra una estructura Case, Consta de un selector ubicado en la parte izquierda y unas ventanas de trabajo llamadas subdiagramas, donde se insertan las instrucciones. se encuentra el selector

 

  205

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 153. Estructura Case

Fuente: Captura de Labview 8.6 Versión Trial 2009 Ejemplo: Realizar un programa que realice la integral y la derivada de una señal triangular de acuerdo a un selector, y visualice la señal resultante. Se usa una estructura case controlada por un botón selector, como se observa en el panel frontal, figura 154.

Figura 154. Ejemplo de la Estructura Case. Panel Frontal.

Fuente: Captura de Labview 8.6 Versión Trial 2009 El diagrama de bloques se presenta en la figura 155.

 

  206

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 155. Ejemplo de la Estructura Case. Diagrama de Bloques.

Fuente: Captura de Labview 8.6 Versión Trial 2009 Estructura Sequence Este tipo de estructuras presenta varios subdiagramas, superpuestos de manera similar a case se puede visualizar solamente una en pantalla. También poseen un identificador del subdiagrama mostrado en su parte superior, con posibilidad de avanzar o retroceder a otros subdiagramas. Esta estructura ejecuta los comandos en estricto orden. Primero ejecutará el subdiagrama de la hoja (frame) nº0, después el de la nº 1, y así sucesivamente. Para adicionar una un frame o una hoja en la secuencia se pulsa el botón derecho del mouse y se elige Add Frame after o Add Frame Before y para pasar datos de una hoja a otra se pulsa el botón derecho del ratón sobre el borde de la estructura, seleccionando la opción Add sequence local, ver figura 156.

 

  207

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 156. Esquema general estructura Sequence.

Fuente: Captura de Labview 8.6 Versión Trial 2009 Ejemplo: Realizar las siguientes operaciones de manera secuencial entre dos números aleatorios: suma, multiplicación y división. Visualizarlas en un indicador gráfico.

Se inserta en el Panel Frontal tres indicadores para visualiuzar los resultados (Ver figura 157).

Figura 157. Panel frontal. Estructura Sequence.

Fuente: Captura de Labview 8.6 Versión Trial 2009

 

  208

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

En el diagrama de bloques se inserta la estructura, se adicionan dos hojas más, y en cada una de las hojas se hace la programación de suma, multipliocación y división respectivamente, como se muestra en la siguiente figura.

Figura 158. Diagrama de Bloques. Estructura Sequence.

Fuente: Captura de Labview 8.6 Versión Trial 2009 Lección 7: Estructuras Iterativas For, While. Estructura For Es el equivalente al bucle for en los lenguajes de programación convencionales. Ejecuta el código dispuesto en su interior un número determinado de veces.

 

  209

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Para pasar valores de una iteración a otra se emplean los shift registers. Para crear uno, se pulsa el botón derecho del ratón mientras éste se halla situado sobre el borde del for, seleccionando la opción Add Shift Register. El shift register consta de dos terminales, situados en los bordes del bloque. El terminal izquierdo almacena el valor obtenido en la iteración anterior. El terminal derecho guarda el dato correspondiente a la iteración actual, por tanto. Al colocar un For Loop en la ventana Diagram (Figura 159) se observan dos terminales:

Figura 159. Estructura General de un For.

Fuente: Captura de Labview 8.6 Versión Trial 2009

1. Terminal contador: Contiene el número de veces que se ejecutará el subdiagrama creado en el interior de la estructura. El valor del contador se fijará externamente. 2. Terminal de iteración: Indica el número de veces que se ha ejecutado la estructura: Cero durante la primera iteración, uno durante la segunda y así hasta N-1. Ambos terminales son accesibles desde el interior de la estructura, es decir, sus valores podrán formar parte del subdiagrama pero no se pueden modificar. Ejemplo. Crear un programa que genere 100 números aleatorios y los grafique en un plano xy.

 

  210

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

En el Panel frontal se coloca una grafica tipo xy como en la figura 160, en el Diagrama de bloques se coloca la estructura For y dentro de ella las instrucciones Ver figura 161.

Figura 160. Panel Frontal. Ejemplo Estructura For

Fuente: Captura de Labview 8.6 Versión Trial 2009

Figura 161. Diagrama de Bloques. Ejemplo Estructura For.

Fuente: Captura de Labview 8.6 Versión Trial 2009 Estructura While. Es el equivalente al bucle while empleado en los lenguajes de programación convencionales En la estructura While se ejecutan las instrucciones que esten dentro del ciclo mientras que se cumpla una condición. La forma general de While se observa en la figura 162, tiene dos terminales:

 

  211

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

1. Terminal Iteración: indica el número de veces que se ha ejecutado la estructura. 2. Terminal Loop Condition: que es la terminal para controlar el fin del ciclo, este puede seleccionarse de tal manera que el ciclo se termine cuando se cumpla una condición true o cuando no se cumpla false.

Figura 162. Forma General de la Estructura While.

Fuente: Captura de Labview 8.6 Versión Trial 2009 Con esta estructura también se pueden emplear los shift registers para tener disponibles los datos obtenidos en iteraciones anteriores (es decir, para memorizar valores obtenidos). Ejemplo: Generar números aletorios entre 0 y 5, hasta cuando el número generado sea mayor que 3. Visualizar los números aleatorios y el número de iteraciones. En el Panel frontal se colocan dos indicadores como se observa en la figura 163.

Figura 163. Panel Frontal. Ejemplo de un While.

Fuente: Captura de Labview 8.6 Versión Trial 2009

 

  212

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

En la figura 164 se encuentra el diagrama de bloques, consta de la estructura while, la programación para generar y visualizar el número y la condición para parar el ciclo.

Figura 164. Diagrama de Bloques. Ejemplo de un while.

Fuente: Captura de Labview 8.6 Versión Trial 2009 Lección 8: Estructura Formula Node. Formula Node o Nodo de Formula es una función seimilar a las estructuras anteriores, pero en lugar de contener un subdiagrama, tiene una o más formulas separadas por un punto y coma. Se encuentra en la librería Programing/ Estructures. Formula Node se emplea para introducir en el diagrama de bloques fórmulas de un modo directo. Resulta de gran utilidad cuando la ecuación tiene muchas variables o es relativamente compleja. Por ejemplo, se desea implementar la ecuación: y = 5x + 3 Para definir una fórmula mediante este estructura, se deben seguir los siguientes pasos:

 

  213

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

1. Definir las variables de entrada y las de salida. Para ello, se pulsa con el botón derecho del ratón sobre el borde de la formula node. A continuación se seleccionará Add Input o Add Output, según se trate de una entrada o una salida, respectivamente. Aparecerá un rectángulo, en el que se debe escribir el nombre de la variable (se distingue entre mayúsculas y minúsculas), tal como en la figura 165. Todas las variables que se empleen deben estar declaradas como entradas o salidas.

Figura 165. Definición de Variables en Formula Node

Fuente: Captura de Labview 8.6 Versión Trial 2009 2. Escribir la o las fórmulas en el interior del recuadro (para ello se emplea la labeling tool). Cada fórmula debe finalizar con un “;”. Ver figura 167. En el Panel frontal se colocan indicadores para poder visualizar los resultados.

Figura 166. Panel Frontal. Ejemplo Formula Node.

Fuente: Captura de Labview 8.6 Versión Trial 2009

 

  214

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 167. Diagrama de Bloques Ejemplo Formula Node.

Fuente: Captura de Labview 8.6 Versión Trial 2009 Lección 9: Variables Locales y Globales. Las variables son fundamentales en cualquier software de programación, ya que permiten almacenar la información necesaria para ejecutar otras instrucciones En LabVIEW todos los controles introducidos en el Panel Frontal que generan un terminal en la ventana Diagrama de Bloques son variables, identificabas por el nombre asignado en la etiqueta. Pero si se quiere utilizar el valor de cierta variable en otro subdiagrama o en otro Vi o, se desea guardar un resultado intermedio, la forma más sencilla de generar variables locales y/o globales dependiendo de la aplicación. Variables Locales En las variables locales los datos se almacenan en los controles o indicadores existentes en el Panel Frontal de¡ Vi creado; es por eso que estas variables no sirven para intercambiar datos entre VI's. La principal utilidad de estas variables es que una vez creada la variable local no importa que proceda de un indicador o de un control, se puede utilizar en un mismo Diagrama múltiples veces.

 

  215

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Las variables locales están disponibles en el menú Programing /Estructures. Tienen el siguiente menú: • Visible Items: Oculta o visualiza la identificación de la variable.

• Find: encuentra el control y la terminal del cual procede la variable local.

• Change To Read Local o Change To Write Local: Permite escoger entre leer o

escribir en el control. • Select Item: Visualiza una lista con el nombre de todos los controles existentes

en el Panel Frontal y de ella se escoge el control al cual hace referencia la variable local.

• Description: Permite añadir comentarios.

• Replace: Sustituye la variable local por cualquier otra función. Variables Globales. Las variables globales son un tipo especial de VI, que únicamente dispone de Panel Frontal, en el cual se define el tipo de dato de la variable y el nombre de identificación imprescindible para después referirse a ella. Cuando se escoge la función Global del menú Programing /Estructures se crea un nuevo terminal en el Diagrama; este terminal corresponde a un VI que inicialmente no contiene ninguna variable. Para insertarlas se pulsa dos veces en el terminal y se abre el panel frontal. Una vez abierto, las variables se definen igual que cualquier control o indicador de un VI normal. Se puede crear un Vi para cada variable global o definirlas todas en el mismo. Una vez colocadas todas las variables se graba el VI y se cierra. Estas variables constan con un menú similar al de las variables locales, ver figura 168

 

  216

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 168. Menu Variables globales.

Fuente: Captura de Labview 8.6 Versión Trial 2009. Lección 10: Sub VIs Una de las ventajas de Labview es la de poder trabajar con aplicaciones que se pueden ejecutar dentro de otras, a estas se les denomina SubVIs. Los SubVIs tienen las mismas características y propiedades de un VI, solo reciben este nombre porque son llamados desde un Vi superior. Para crear un VI se debe crear un icono y un conector, el icono se crea dando clic sobre el icono que se encuentra en la parte superior derecha de la ventana y con clic derecho se escoge la opción edit icon, ver figura 169, y para crear el conector se debe hacer lo mismo pero solamente se activa en el panel frontal.

 

  217

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 169. Crear icono en un subVI.

Fuente: Captura de Labview 8.6 Versión Trial 2009 Ejemplo: Crear un subVI que genere y visualice en la misma ventana a. una señal senosoidal de amplitud y frecuencia modificable de acuerdo a valores de entrada definidos por el usuario. b. Una señal escalada en amplitud y frecuencia tomando como base la señal creada anteriormente. 1. Se realiza la programación como si se tratara de un VI normal, en la figura 170 y 170 se observan el panel frontal y el diagrama de bloques respectivamente.

Figura 170. Panel Frontal Ejemplo de un SubVI.

Fuente: Captura de Labview 8.6 Versión Trial 2009

 

  218

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 171. Diagrama de Bloques Ejemplo de un subVi.

Fuente: Captura de Labview 8.6 Versión Trial 2009 2. Una vez creado el Vi, se selecciona la parte que se desea convertir a subVI, y en la paleta Edit se elige crear subVI, como se observa en la figura 172, automáticamente la selección cambia a un icono, ver figura 173.

Figura 172. Creación del subVI en la paleta Edit

Fuente: Captura de Labview 8.6 Versión Trial 2009

 

  219

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 173. Icono que representa al subVI.

Fuente: Captura de Labview 8.6 Versión Trial 2009

En el panel frontal se da clic derecho sobre el icono de subVI, y se elige show conector, este icono cambia de forma como se observa en la figura 174.

Figura 174. Icono del subVi seleccionando show conector.

Fuente: Captura de Labview 8.6 Versión Trial 2009

Aparece la herramienta de conexión para que se definan las variables de entrada y salida del subVI, esto se hace dando clic sobre el icono del subVI e inmediatamente después sobre la variable de entrada. El icono del subvi cambia

 

 

  220

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

colocando color en las casillas de acuerdo al número de variables de entrada/salida.

Figura 175. Icono del subVI con adición de variables entrada/salida.

Fuente: Captura de Labview 8.6 Versión Trial 2009 Por último se guarda el subVI con la opción Save o Save as en el menú File. Para utilizar el SubVI en un archivo debe llamarse desde la ventana Functions/ Select a VI del Diagram de bloques (Ver figura 176), y permite seleccionar la ruta donde se encuentra guardado el SubVI.

Figura 176. Llamando un SubVI.

Fuente: Captura de Labview 8.6 Versión Trial 2009 Al seleccionar el SubVI, aparece en el diagrama de bloques el icono correspondiente, con las respectivas terminales de entrada/salida para realizar las conexiones a los indicadores y controladores.

 

  221

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 177. Icono del subVI en el Diagrama de Bloques.

Fuente: Captura de Labview 8.6 Versión Trial 2009 En el panel frontal se insertan los controladores para manipular las variables de entrada y el visualizador de la forma de onda (Ver figura 178). En el diagrama de bloques se realizan las conexiones correspondientes ( Ver figura 179).

Figura 178. Utilización de un SubVI, Panel Frontal

Fuente: Captura de Labview 8.6 Versión Trial 2009

 

  222

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 179. Utilización de un SubVI, Diagrama de bloques.

Fuente: Captura de Labview 8.6 Versión Trial 2009

CAPITULO 3. APLICACIONES EN LABVIEW Introducción. Las aplicaciones en Labview son extensas, desde nivel educativo hasta nivel industrial, este software permite adquisición y procesamiento de datos que pueden ser tomados desde cualquier área. Sus aplicaciones pueden abarcar campos como el de la biología, electrónica, química, física, procesamiento de voz e imágenes, automatización industrial, hasta la medicina. Lección 11: Filtrado de señales. Labview posee herramientas para el análisis y procesado de señales, tales como generación de formas de onda (seno, triangular, diente de sierra, aleatorias, ruidos etc), filtrado, mezcladores, analizadores de espectros y otros. Filtrado de señales: En la figura 180 y 181 se muestra un ejemplo donde se mezcla una señal senosoidal con un ruido y posteriormente se utiliza una herramienta de filtrado para obtener la señal original nuevamente. En el Panel frontal se colocan dos visualizadores, uno para la señal con ruido y el otro para la señal filtrada. En el diagrama de bloques se utilizan herramientas como Simulate signal, filtering signal que se encuentran en la librería Procesing Signals.

 

  223

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 180. Panel Frontal Ejemplo extraer el seno.vi

Fuente: Captura de Labview 8.6 Versión Trial. 2009

Figura 181. Diagrama de bloques Ejemplo extraer el seno.vi

Fuente: Captura de Labview 8.6 Versión Trial. 2009

 

  224

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Lección 12: Análisis Espectral En el VI mostrado en las figuras 182 y 183 se observa la utilización del cálculo de la Transformada Rápida de Fourier que permite a Labview realizar análisis espectral de una señal. En el Panel Frontal existen dos ventanas gráficas una para ver las señales en el tiempo y la otra para ver su espectro, además de un controlador para manipular las frecuencias. En el diagrama de bloques se aprecia el uso de las herramientas filtros pasa bajos, pasa altos, pasa banda y Medidas espectrales.

Figura 182. Diagrama de bloques. Cálculo de Transformada rápida de Fourier.

Fuente: Captura de Labview 8.6 Versión Trial. 2009

 

  225

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 183. Diagrama de bloques. Cálculo de Transformada rápida de Fourier.

Fuente: Captura de Labview 8.6 Versión Trial. 2009

Lección 13: Generación de Tablas en Labview para presentación de datos. Las figuras 184 y 185 muestran como utilizar Labview para generar tablas, esta herramienta permite obtener los datos fácilmente para almacenarlos de manera ordenada. En el Panel frontal se coloca una tabla la cual se encuentra en el menú modern / list & Table.

Figura 184. Panel Frontal. Generación de Tablas.

Fuente: Captura de Labview 8.6 Versión Trial. 2009

 

  226

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 185. Diagrama de Bloques. Generación de Tablas.

Fuente: Captura de Labview 8.6 Versión Trial. 2009 Lección 14: Manipulación de puertos.

Labview permite importar y exportar datos a través de los puertos del equipo, esta herramienta se encuentra en Conectivity/ ports I/O y en Data Comunications/ Protocols. En las figuras 186 y 187 se muestran los diagramas de un ejemplo sencillo para enviar datos hacia el puerto paralelo.

Figura 186. Panel Frontal. Envio de datos al puerto paralelo.

Fuente: Captura de Labview 8.6 Versión Trial. 2009

 

  227

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

En el diagrama de bloques se observa un ciclo for que envía la iteración hacia el puerto paralelo, en este icono debe indicarse el número correspondiente a la dirección del puerto y el dato.

Figura 187. Diagrama de Bloques. Envio de datos al puerto paralelo.

Fuente: Captura de Labview 8.6 Versión Trial. 2009 Lección 15: Leer y escribir archivos desde Labview. Labview presenta varias opciones para guardar o leer datos desde un archivo, estas opciones se encuentran en el menú programing / File I/O, como se muestra en la figura 188.

Figura 188. Paleta Opciones Leer/escribir archivos

Fuente: Captura de Labview 8.6 Versión Trial. 2009

 

  228

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

De igual manera si se tiene instaladas las herramientas de Generar reporte (ver figura 189) se puede realizar fácilmente un reporte, el cual por defecto genera un archivo de extensión lvm que se puede abrir desde cualquier editor de texto u hoja de cálculo.

Figura 189. Menú Programing/ Report Generation

Fuente: Captura de Labview 8.6 Versión Trial. 2009 Para generar un reporte lvm en el diagrama de bloques se inserta la herramienta Write to Measurement, esta permite escoger la ruta en la cual se va a guardar y el nombre del archivo, si no se selecciona nada lo guarda por defecto en el directorio Mis Documentos / Labview data con el nombre test.lvm. Esta aplicación puede observarse en la figura 190. Este archivo test.lvm se puede abrir con una hoja de cálculo como Excel o con un procesador de texto.

 

  229

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Figura 190. Uso de Report Generation.

Fuente: Captura de Labview 8.6 Versión Trial. 2009

 

  230

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

ACTIVIDAD DE AUTOEVALUACIÓN UNIDAD 3

 

  231

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

FUENTES DOCUMENTALES UNIDAD 3 BIBLIOGRAFIA Labview Antonio Manuel, Domingo Biel. Instrumentación Virtual. Adquisición, procesado y análisis de señales: alfaomega Antonio Manuel Lazaro. Labview 6i. Programación gráfica para el control de instrumentación. Travis Jeffrey. (2006). LabVIEW for Everyone: Graphical Programming Made Easy and Fun (Third Edition): Prentice Hall. SITIOS WEB   Labview Labview for Dummies. (2009). [en Línea]. Recuperado el 19 de Julio de 2009, de thttp://www.iit.edu/~labview/Dummies.html Learnlabview. (2009). [en Línea]. Recuperado el 19 de julio de 2009, de http://learnlabview.blogspot.com/ National Instruments. Labview. (2009). [en Línea]. Recuperado el 19 de julio de 2009, http://www.ni.com/labview/ Tutorial in G. (2009). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.cipce.rpi.edu/programs/remote_experiment/labview/ Tutoriales Labview. (2002). [en Línea]. Recuperado el 19 de julio de 2009, de http://perso.wanadoo.es/jovilve/tutoriales.html Tutorial Series. (2009). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.mech.uwa.edu.au/jpt/tutorial/ieindex.html  

 

  232

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNADESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA CONTENIDO DIDÁCTICO DEL CURSO: 208008 – CAD AVANZADO PARA ELECTRÓNICA 

Programación Algoritmos. (1997). [en línea]. Recuperado el 19 de julio de 2009 de, http://www.monografias.com/trabajos15/algoritmos/algoritmos.shtml Arquitectura de Ordenadores I. [en Línea]. Recuperado el 19 de Julio de 2009, de http://www-gist.det.uvigo.es/~martin/ao1/lec11.pdf Conceptos de Lenguajes de Programación. (2005). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.mailxmail.com/curso/informatica/programacionestructurada/capitulo4.htm Ensamblador Lenguaje de Bajo Nivel (2004). [en Línea]. Recuperado el 19 de julio de 2009, de http://mx.geocities.com/alfonsoaraujocardenas/ensamblador.html Técnicas de Diseño de Algorimos. (2000). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.lcc.uma.es/~av/Libro/indice.html   Descargas Aprenda matlab 7.0. (2005). [en Línea] . Recuperado el 19 de julio de 2009, de http://mat21.etsii.upm.es/ayudainf/aprendainf/Matlab70/matlab70primero.pdf Scilab 5.1.1. (20090. [en Línea]. Recuperado el 19 de julio de 2009 de, http://scilab.softonic.com/ TheMathWorks. (2009). [en Línea]. Recuperado el 19 de julio de 2009, de http://www.mathworks.com/products/matlab/