Vous êtes sur la page 1sur 253

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA PROGRAMA INGENIERIA ELECTRNICA

208008 CAD AVANZADO PARA ELECTRNICA JUAN OLEGARIO MONROY VASQUEZ


(Director Nacional)

FABIAN BOLIVAR MARIN


(Acreditador)

SOGAMOSO Enero 2010

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

ThisworkislicensedunderaCreativeCommonsAttributionNoDerivs2.5License.

CURSO: CAD PARA ELECTRNICA @Copyright Universidad Nacional Abierta y a Distancia ISBN 2010 Vicerrectora de Medios y Mediaciones

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

ASPECTOS DE PROPIEDAD INTELECTUAL Y VERSIONAMIENTO El presente mdulo fue diseado en el ao 2008 por el Ing. Electrnico Armando Portela Duarte, integrante de la Fundacin Internacional Para La Investigacin de la Cultura y la Participacin. El presente mdulo ha tenido una actualizacin, desarrollada en Julio de 2009 por los Ingenieros Juan Olegario Monroy Vsquez y Sandra Isabel Vargas Lpez, tutores de la UNAD en el CEAD Sogamoso. El Ingeniero Monroy se desempea actualmente como director del curso a nivel Nacional. En este mismo ao el Ing. Oscar Donaldo Rodrguez, tutor del CEAD Pereira, apoy el proceso de revisin de estilo del mdulo y dio aportes disciplinares, didcticos y pedaggicos en el proceso de acreditacin de material didctico desarrollado en Julio de 2009.

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

INTRODUCCIN CAD Avanzado para Electrnica es un curso metodolgico de 3 crditos enmarcados en un campo de formacin disciplinario, cuya intencionalidad es la de formar las bases tericas y prcticas en el estudiante para que ste pueda implementar y ejecutar algoritmos en diferentes software de procesamiento numrico y de herramientas grficas, mediante el uso de lenguajes de alto nivel. Esta temtica 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 anlisis y operaciones numricas, simulaciones en el tiempo de modelos matemticos de sistemas reales obteniendo informacin valiosa como datos estadsticos o grficos que pueden representar infinidad de variables durante determinados procesos de diseo o investigacin cientfica. Para tal efecto el curso cosiste en 3 unidades didcticas, 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 caractersticas tcnicas, operativas y ventajas de empleo de dicho software. En la Segunda Unidad se presentan de forma general las herramientas avanzadas para aplicaciones especficas del Matlab, en especial se analiza el entorno grfico o SIMULINK, herramienta potente al momento de hacer simulacin de modelos de sistemas. Finaliza con el estudio del Labview, que es un entorno interactivo que emplea un lenguaje de programacin muy novedoso conocido como programacin grfica o programacin G altamente empleado en aplicaciones de adquisicin de datos, instrumentacin virtual y control industrial. Los contenidos del curso sern presentados al estudiante empleando documentos digitales que podrn 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 acompaamiento
4

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

tutorial en foros y sesiones de Chat predefinidas, la evaluacin del curso se realizar a partir de la gua de actividades en donde el estudiante tambin entrar a interactuar con sus compaeros en grupos para la realizacin de ciertas actividades, dejando evidenciar la importancia de la participacin 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 autoevaluacin que busca identificar puntos crticos donde es necesario hacer refuerzos o ampliar las consultas. CAD Avanzado para electrnica sienta pues las bases primordiales en el estudiante para que aplique sus conocimientos matemticos as como en sistemas informticos para la programacin de diferentes algoritmos y aplicaciones especficas que simplificarn ampliamente su trabajo en infinidad de aplicaciones donde se requiera el anlisis numrico y modelado de sistemas.

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

INDICE DE CONTENIDO

UNIDAD 1. HERRAMIENTAS DE MATLAB CAPITULO 1: ENTRADA/SALIDA Y FUNCIONES DE MATLAB Leccin 1: Manejo de archivos Leccin 2: Archivos *.m Leccin 3: Grficas Bidimensionales. Leccin 4: Grficas Tridimensionales Leccin 5: Funciones. CAPITULO 2: TOOLBOX DE MATLAB Leccin 6: Introduccin a los Toolbox de Matlab. Leccin 7: Toolbox de Comunicaciones. Leccin 8: Simulacin de un Sistema de Comunicaciones Leccin 9: Toolbox de Sistemas de Control. Leccin 10: Simulacin de un sistema de control CAPITULO 3: SIMULINK. CONCEPTOS BASICOS Leccin 11: Caractersticas Leccin 12: Entorno de trabajo en Simulink Leccin 13: Modelos Leccin 14: Subsistemas. Leccin 15: Subsistemas condicionados en su ejecucin.
6

1 2 3 6 9 12 15 18 19 23 37 43 75 80 80 82 86 93 96

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

ACTIVIDAD DE AUTOEVALUACIN UNIDAD 1 FUENTES DOCUMENTALES UNIDAD 1 UNIDAD 2. SIMULINK CAPITULO 1: MODELAR CON SIMULINK Leccin 1. Modelar Ecuaciones Leccin 2: Modelar con Control de Flujo Condicional Leccin 3: Modelar con control de flujo Iterativo. Leccin 4: Ejemplos de Modelado. Leccin 5: Consejos para la Construccin de Modelos. CAPITULO 2. NAVEGAR POR LOS MODELOS Leccin 6: Explorar, Buscar y Navegar por los Modelos. Leccin 7: Ejecutar la Simulacin del modelo. Leccin 8: Importar y Exportar Datos. Leccin 9: Establecer la Configuracin de la Simulacin. Leccin 10: Resultados de la Simulacin. CAPTULO 3 BLOQUES, SEALES Y FUNCIONES S

107 108 111 113 113 118 123 127 132 132 133 139 142 147 148 152 152 158 159 160 163

Leccin 11: Bloques y Seales. Leccin 12: Tipos de datos Leccin 13: Funciones S Leccin 14: Usar Funciones S en los modelos Leccin 15: Como trabaja una funcin S y como se escribe en MATLAB

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

ACTIVIDAD DE AUTOEVALUACIN UNIDAD 2 FUENTES DOCUMENTALES UNIDAD 2 UNIDAD 3. LABVIEW

165 166 170 172 172 174 185 191 195 204 204 208 212 214 216 222 222 224 225 226 227

CAPITULO 1. CONCEPTOS BASICOS DE LABVIEW Leccin 1: Caractersticas y Aplicaciones Leccin 2: Entorno de Trabajo. Panel Frontal. Leccin 3: Entorno de Trabajo. Diagrama de Bloques. Leccin 4: Ejecutar y Depurar un Instrumento Virtual. Leccin 5: Ejemplos. CAPITULO 2. PROGRAMACION ESTRUCTURADA. Leccin 6: Estructuras Case y Sequence. Leccin 7: Estructuras Iterativas For, While. Leccin 8: Estructura Formula Node. Leccin 9: Variables Locales y Globales. Leccin 10: Sub VIs CAPITULO 3. APLICACIONES EN LABVIEW Leccin 11: Filtrado de seales. Leccin 12: Anlisis Espectral Leccin 13: Generacin de Tablas en Labview para presentacin de datos. Leccin 14: Manipulacin de puertos. Leccin 15: Leer y escribir archivos desde Labview.

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

ACTIVIDAD DE AUTOEVALUACIN UNIDAD 3 FUENTES DOCUMENTALES UNIDAD 3

230 231

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

LISTADO DE TABLAS Tabla 1. Funciones bsicas para crear grficas en 2D. Tabla 2. Funciones para modificacin de las grficas. Tabla 3. Otras Funciones graficas bidimensionales. Tabla 4. Otras Funciones grficas tridimensionales Tabla 5. Tipos de modulacin analgica que soporta el toolbox. 9 10 11 14 27

Tabla 6. Sintaxis de los distintos Tipos de modulacin analgica que soporta el toolbox. 28 Tabla 7. Tipos de modulacin digital que soporta el toolbox. Tabla 8. Sintaxis de los distintos Tipos de modulacin digital que soporta el toolbox. Tabla 9. Tipos de filtros Tabla 10. Comandos empleados para Modelar sistemas de control. 29

30 37 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. Tabla 13. Sintaxis y ejemplos de comandos empleados para el anlisis de sistemas de control.

56

64

Tabla 14. Sintaxis y ejemplos de comandos empleados para el anlisis de la respuesta en frecuencia de sistemas de control. 68

10

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Tabla 15. Parmetros de un Motor de Corriente Continua Tabla 16. Relacin entre sentencias en C y bloques de SIMULINK I Tabla 17. Relacin entre sentencias en C y bloques de SIMULINK II. Tabla 18. Bloques virtuales. Tabla 19. Libreras y bloques de SIMULINK de uso comn. Tabla 20. Tipo de datos soportados por SIMULINK.

76 118 123 153 157 159

11

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

LISTADO DE GRFICOS Y FIGURAS Figura 1. Editor de Archivos *.m. Figura 2. Funcin complejo.m en el editor de Archivos de Matlab Figura 3. Ejecucin del script complejo.m Figura 4. Ejecucin del comando plotyy() Figura 5. Grafica de la funcin Seno. Figura 6. Utilizacin del comando subplot. Figura 7. Grfica de una hlice. Figura 8. Grafica de la superficie con el comando mesh. Figura 9. Grafica de la superficie con el comando surf. Figura 10. Escritura de la Funcin raices2.m Figura 11. Uso de la Funcin raices2.m. Figura 12. Esquema general de los toolboxes. Figura 13. Utilizacin de imread y imshow del Toolbox Procesamiento de Imagenes. Figura 14. Ventana Figure Matlab. Imagen a color 7 8 8 9 10 11 12 13 14 17 17 20

21 21

Figura 15. Utilizacin de rg2gray del Toolbox Procesamiento de Imagenes. 22 Figura 16. Ventana Figure Matlab . Imagen en escala de grises. Figura 17. Modulacin y demodulacin por amplitud.
12

22 29

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 18. Diagrama de dispersin. Figura 19. Primeros 40 datos binarios. Figura 20. Primeros 10 Smbolos Figura 21. Respuesta al impulso del sistema. Figura 22. Patrn de ojo de la seal filtrada Figura 23. Seal recibida antes y despus del filtrado. Figura 24. Interconexin en paralelo de dos modelos LTI. Adicin y sustraccin Figura 25. Interconexin en serie Figura 26. Modelo compuesto. Figura 27. Ejemplo de interconexin de sistemas Figura 28. Interconexin de un sistema en paralelo Figura 29. Interconexin de un sistema en serie Figura 30. Interconexin de un sistema con retroalimentacin negativa Figura 31. Diagrama generalizado de un sistema retroalimentado Figura 32. Respuesta al impulso del sistema. Figura 33. Respuesta al sistema al escaln unitario Figura 34. Diagrama de bode del sistema.

34 38 39 40 41 42

53 54 56 58 61 62 62 63 66 68 70

Figura 35. Diagrama del sistema con una el rango de frecuencia ampliado. 70 Figura 36. Comparacin de los diagramas de Bodes continuo y discretos 71

13

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 37. Diagrama de Nyquist del sistema Figura 38. Lazos de retroalimentacin Figura 39. Diagrama del lugar geomtrico de las races del sistema Figura 40. Esquema del circuito elctrico y diagrama mecnico rotacional Figura 41. Acceso a SIMULINK. Figura 42. Pantalla inicial de SIMULINK

72 73 75 75 83 83

Figura 43. Ventana de Insercin de bloques y simulacin, Editor de Modelos. 84 Figura 44. Ventana de dialogo para realizar los reportes. Figura 45. Creando un nuevo modelo. Figura 46. Diagrama de bloques del ejemplo Figura 47. Navegador de libreras Figura 48. Bloques organizados dentro del editor de modelo Figura 49. Puerto de entrada y de salida. Figura 50. Conexin de los bloques. Figura 51. Ramificacin de una conexin. Figura 52. Cuadro de dilogo para la configuracin de los parmetros de simulacin Figura 53. Inicio y/o detencin de la Simulacin Figura 54. Respuesta de la simulacin. Figura 55. Anotaciones o comentarios.
14

85 86 87 88 89 89 89 90

91 91 92 93

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 56. Ejemplo del subsistema. Figura 57. Seleccin de bloques Figura 58. Seal de habilitacin de un subsistema. Figura 59. Ventana de dilogo para el ajuste de las salidas. Figura 60. Ventana de dilogo para el ajuste de estados. Figura 61. Apagado de la seal de control. Figura 62. Modelo de un subsistema habilitado. Figura 63. Indicador del funcionamiento de cada bloque. Figura 64. Nivel de seal. Figura 65. Subsistema activado por disparo. Figura 66. Ventana de dilogo para la seleccin del disparo. Figura 67. Subsistema de ascenso, descenso o ambos. Figura 68. Mostrar el puerto de salida. Figura 69. Diagrama de flujo de un subsistema disparado y habilitado. Figura 70. Smbolo del subsistema habilitado y disparado. Figura 71. Ejemplo de un subsistema disparado y habilitado. Figura 72. Rectificador de onda completa Figura 73. Respuesta del ejemplo. Figura 74. Bloques del ejemplo de conversin de unidades. Figura 75. Bloques conectados.
15

94 95 96 97 98 99 100 100 101 102 102 103 103 104 105 105 106 106 114 114

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 76. Diagrama de bloques de la ecuacin diferencial. Figura 77. Visualizacin de la respuesta de la ecuacin diferencial. Figura 78. Modelo del ejemplo como funcin de transferencia. Figura 79. Diagnstico de un lazo invlido Figura 80. Implementacin de la sentencia si-sino en SIMULINK. Figura 81. Utilizacin de If- Else Figura 82. Diagrama del subsistema If Action Figura 83. Implementacin de la sentencia Switch en SIMULINK. Figura 84. Implementacin de la sentencia While en SIMULINK Figura 85. Implementacin de la sentencia For en SIMULINK. Figura 86. Factorial de un nmero en Matlab. Figura 87. Programacin de un For en Simulink Figura 88. Simulacin de un sistema de orden 1. Figura 89. Sistema Mecnico. Figura 90. Simulacin Sistema Mecnico. Figura 91. Circuito RLC serie Figura 92. Simulacin sistema RLC serie Figura 93. Editor de modelo. Figura 94. rbol de jerarqua. Figura 95. Panel de contenido.
16

115 116 117 118 119 121 121 122 123 125 126 127 128 129 130 130 131 133 134 135

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 96. Barra de men principal. Figura 97. Barra de bsqueda. Figura 98. Controles de la barra de bsqueda. Figura 99. El buscador. Figura 100. Opciones de filtrado. Figura 101. Panel de bsqueda avanzado. Figura 102. Navegador de modelo. Figura 103. Localizacin del botn de inicio

135 136 136 137 137 138 139 141

Figura 104. Localizacin del botn de parada, pausa y la barra de progreso de la simulacin. 141 Figura 105. Modelo con dos entradas. Figura 106. Explorador de modelo para el ajuste de la configuracin. Figura 107. Modelo para observar el uso del Scope. Figura 108. Modelo para observar el uso de las variables de retorno. Figura 109. Modelo para observar el uso del bloque Workspace. Figura 110. Visor de diagnstico de la simulacin. Figura 111. Bloque que genera el error. Figura 112. Ventana de dilogo de propiedades del bloque. Figura 113. Ventana de dilogo de anotaciones del bloque. Figura 114. Bloque mostrando sus propiedades. 144 148 149 149 150 151 152 154 155 156

17

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 115. Ventana de dilogo de llamados del bloque.

156

Figura 116. Relacin entre un bloque de funcin S, su ventana de dilogo y el archivo fuente que define el comportamiento del bloque. 161 Figura 117. Parmetros de la S- funcin Figura 118. Esquema de la relacin Matemtica de los bloques Figura 119. Como SIMULINK ejecuta una simulacin. Figura 120. Pantalla inicial de LabVIEW. 162 163 164 175

Figura 121. Ventanas del Instrumento Virtual, a) Diagrama de Bloques, b) Panel Frontal. 175 Figura 122. Paleta de Controles. Figura 123. Controles e indicadores Numricos. Figura 124. Controles e indicadores deslizables. Figura 125. Controles e indicadores giratorios. Figura 126. Controles e indicadores de tiempo. Figura 127. Paleta de los controles e indicadores booleanos. Figura 128. Paleta de Cadena de Caracteres. Figura 129. Paleta de Arrays, Matrix and Cluster. Figura 130. Paleta de List & Table. Figura 131. Terminal cono de una perilla Figura 132. Segmento Curva y Unin. Figura 133. Ejecucin de dos bloques simultneamente.
18

177 178 178 179 179 180 181 182 183 186 188 190

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 134. Botn de correr (run) Figura 135. Botn de correr (run) mientras se ejecute la simulacin Figura 136. Botn de correr continuamente (run continuously) Figura 137. Botn de correr roto Figura 138. Botn de Ejecucin iluminada (Highligth Execution) Figura 139. Botn de Ejecucin de un paso a la vez (single stepping) Figura 140. Subpaleta Numeric Figura 141. Subpaleta Modern>>String & Path Figura 142. Panel de control con los elementos escogidos Figura 143. Controles e indicadores numricos Figura 144. Subpaleta de Functions>>Mathematics Figura 145. Diagrama de bloques conectado. Figura 146. Instrumento Virtual Funcionando Figura 147. Panel frontal tanque.vi Figura 148. Diagrama de bloques tanque.vi Figura 149. Conexiones en el Diagrama de Bloques tanque.vi Figura 150. Ubicacin de la Funcin Simulate Signal.

192 192 192 193 194 194 196 196 197 198 198 199 199 200 200 201 202

Figura 151. Aspecto Final del Panel Frontal. Generacin de Seales Seno y Coseno. 203 Figura 152. Aspecto final Diagrama de Bloques. Generacin de Seales Seno y Coseno 203
19

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 153. Estructura Case Figura 154. Ejemplo de la Estructura Case. Panel Frontal. Figura 155. Ejemplo de la Estructura Case. Diagrama de Bloques. Figura 156. Esquema general estructura Sequence. Figura 157. Panel frontal. Estructura Sequence. Figura 158. Diagrama de Bloques. Estructura Sequence. Figura 159. Estructura General de un For. Figura 160. Panel Frontal. Ejemplo Estructura For Figura 161. Diagrama de Bloques. Ejemplo Estructura For. Figura 162. Forma General de la Estructura While. Figura 163. Panel Frontal. Ejemplo de un While. Figura 164. Diagrama de Bloques. Ejemplo de un while. Figura 165. Definicin de Variables en Formula Node Figura 166. Panel Frontal. Ejemplo Formula Node. Figura 167. Diagrama de Bloques Ejemplo Formula Node. Figura 168. Menu Variables globales. Figura 169. Crear icono en un subVI. Figura 170. Panel Frontal Ejemplo de un SubVI. Figura 171. Diagrama de Bloques Ejemplo de un subVi. Figura 172. Creacin del subVI en la paleta Edit
20

205 205 206 207 207 208 209 210 210 211 211 212 213 213 214 216 217 217 218 218

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 173. Icono que representa al subVI. Figura 174. Icono del subVi seleccionando show conector. Figura 175. Icono del subVI con adicin de variables entrada/salida. Figura 176. Llamando un SubVI. Figura 177. Icono del subVI en el Diagrama de Bloques. Figura 178. Utilizacin de un SubVI, Panel Frontal Figura 179. Utilizacin de un SubVI, Diagrama de bloques. Figura 180. Panel Frontal Ejemplo extraer el seno.vi Figura 181. Diagrama de bloques Ejemplo extraer el seno.vi Figura 182. Diagrama de bloques. Clculo de Transformada rpida de Fourier. Figura 183. Diagrama de bloques. Clculo de Transformada rpida de Fourier. Figura 184. Panel Frontal. Generacin de Tablas. Figura 185. Diagrama de Bloques. Generacin de Tablas. Figura 186. Panel Frontal. Envio de datos al puerto paralelo. Figura 187. Diagrama de Bloques. Envio de datos al puerto paralelo. Figura 188. Paleta Opciones Leer/escribir archivos Figura 189. Men Programing/ Report Generation Figura 190. Uso de Report Generation.

219 219 220 220 221 221 222 223 223

224

225 225 226 226 227 227 228 229

21

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

UNIDAD 1. HERRAMIENTAS DE MATLAB

INTRODUCCIN 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 caractersticas tcnicas, operativas y ventajas de empleo de dicho software.

JUSTIFICACION En electrnica es de gran relevancia esta temtica puesto que los lenguajes de alto nivel forman parte de las herramientas diarias de trabajo tanto de estudiantes como de profesionales y tcnicos en el rea. Estos tipos de software son empleados en infinidad de aplicaciones que requieren el manejo de complejos modelos matemticos o en su defecto de operaciones iterativas que en un momento dado pueden servir de apoyo en el diseo, simulacin y anlisis tanto de circuitos anlogos como digitales as como en el modelado de sistemas de control, de telecomunicaciones, de audio, etc.

INTENCIONALIDADES FORMATIVAS

Propsitos 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 diseo y desarrollo de soluciones a problemticas planteadas como el aprendizaje de otras herramientas software.

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Objetivos Que el estudiante ample complemente y profundice en las caractersticas operativas, tcnicas, 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 anlisis numrico sobre el desarrollo manual.

Competencias El estudiante conoce las caractersticas y posibilidades que le brindan las herramientas E/S y los toolbox de Matlab, adems conoce los procedimientos sistemticos para interactuar con stos y dar soluciones a partir de su implementacin en problemas electrnicos.

Metas de aprendizaje El estudiante aprender de forma individual las temticas del mdulo 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 pequeos programas o aplicaciones en donde el estudiante se valga de toda la informacin disponible, de su espritu investigativo y del trabajo en grupo para buscar la manera de generar las soluciones ms ptimas y funcionales ante las problemticas planteadas.

Denominacin de Captulos Captulo 1. Entrada/Salida y funciones de Matlab Captulo 2. Toolbox de Matlab Captulo 3. Simulink Conceptos Bsicos

CAPITULO 1: ENTRADA/SALIDA Y FUNCIONES DE MATLAB Introduccin. MATLAB es una poderosa herramienta de programacin 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
2

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

escribirlos, MATLAB dispone de funciones de lectura/escritura anlogas, similares a las del lenguaje C que facilitan la importacin/exportacin de los datos.

Leccin 1: Manejo de archivos La introduccin 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 funcin 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 nmero de identificacin del archivo, este ser usado para escribir y/o leer del archivo. Los tipos de interaccin con el archivo son: r: si se desea abrir un archivo slo para leer. w: si se desea abrir un archivo slo para escribir. r+: si se desea abrir un archivo para leer y escribir. a: si se desea aadir la salida del programa a un archivo. En el caso de que no exista MATLAB crear el archivo. Si el archivo existe MATLAB aadir 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)

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 quedara. >>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 nmero de datos que desean ser ledos. Ejemplos de la especificacin 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 nmeros 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, especificacin de formatos) Ejemplo: Se posee un archivo llamado datos.txt (archivo creado en un editor de texto) que contiene los nmeros 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.
4

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 sera: >> 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 funcin es fprintf, el formato para su ejecucin 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.

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Por ejemplo si se escribe A=5 >>fprintf(identificador, %d, A) En el archivo que se especfico 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 aplicacin original y depositarlos entre los corchetes de una matriz o vector, en una lnea 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 ledos 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 estn 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 numricos y que estn separados por comas.

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

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 extensin *.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 diseador escribir los archivos en texto ASCII con la extensin *.m (aunque pueden ser creados con cualquier otro editor de textos ASCII), estos contienen el conjunto de comandos o la definicin 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 cdigos, sino, que tambin 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 versin trial (2008). A continuacin se muestra la escritura de un archivo script que calcula la magnitud y el ngulo de un nmero 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.

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 2. Funcin complejo.m en el editor de Archivos de Matlab

Fuente: Captura de Matlab versin 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 automticamente arroja el resultado en las variables m y ang. Figura 3. Ejecucin del script complejo.m

Fuente: Captura de Matlab versin trial (2008).


8

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Leccin 3: Grficas Bidimensionales. Las grficas en 2D de MATLAB estn orientadas a la representacin grfica de vectores y matrices. Para realizar todas las operaciones grficas 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 bsicas para crear grficos 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 bsicas para crear grficas en 2D.
Comando plot() plotyy () loglog() semilogx () semilogx () Polar() Descripcin Crea un grfico a partir de vectores y matrices, con escalas lineales sobre ambos ejes Dibuja dos funciones sobre una misma ventana grfica con escalas lineales independientes en el eje de las ordenadas una a la derecha y otra a la izquierda de la figura. Figura 4 Genera grficos con escalas logartmicas en ambos ejes Crea grficos con una escala logartmica en el eje de las abscisas y lineal en el de las ordenadas Genera grficos con una escala lineal en el eje de las abscisas y logartmica en el de las ordenadas Crea un grafico en coordenadas polares

Fuente: Armando Portela (2008) Figura 4. Ejecucin del comando plotyy()


200 150 100 50 0 -50 -100 -150 -200 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 20

10

12

14

16

18

Fuente: Captura de Matlab versin trial (2008).


9

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Existen otras funciones utilizadas para modificar las grficas generadas aadindole ttulos a las grficas y a los ejes, etc. Estos comandos son: Tabla 2. Funciones para modificacin de las grficas.
Comando title(ttulo) xlabel(ejeX) xlabel(ejeY) text(x,y,texto) gtext(texto) grid() Descripcin Le coloca ttulo al grfico Le proporciona un ttulo al eje de las abscisas. Con xlabel off desaparece. Le proporciona un ttulo al eje de las ordenadas. Con ylabel off desaparece. Introduce texto en lugar establecido por las coordenadas x e y, si estos son vectores, el texto se repetir cada par de elementos . Introduce el texto en la posicin en el que el puntero del ratn se encuentre en la grfica y se haga clic Activa la introduccin de una cuadrcula sobre la grfica. Con el comando grid off este se desactiva.

Fuente: Armando Portela (2008) Ejemplo: Graficar la funcin seno, en el intervalo de -10 a 10, colocndole un ttulo y una marquilla, y activndole la funcin de cuadrcula (grid) (Figura 5). >> x=[-10: 0.1:10]; >> y=sin(x); >> plot(x,y) >> grid >> gtext('Grfica de seno') >> title('Seno de x') Figura 5. Grafica de la funcin Seno.
Seno de x 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -10 -8 -6 -4 -2 0 2 4 6 8 10 Grfica de seno

Fuente: Captura de Matlab versin trial (2008).


10

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

El comando subplot permite dividir una ventana grfica en m particiones horizontales y n verticales, con el propsito de representar mltiples grficos en ella. Cada una de estas subventanas tiene sus propios ejes y conservan algunas caractersticas comunes con las otras subventanas. La forma general de este comando es: subplot(m,n,i), donde m y n son el nmero de subdivisiones en filas y columnas, e i es la subdivisin 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 grficos en la misma ventana Figura 6. Utilizacin del comando subplot.

Fuente: Captura de Matlab versin Trial (2008). Otras funciones grficas bidimensionales son mencionadas en la tabla 3. Tabla 3. Otras Funciones graficas bidimensionales.
Comando bar() barh() bar3() bar3h() pie() pie3() area() errorbar() compass() Descripcin Crea diagramas de barras Realiza diagramas de barras horizontales Realiza diagramas de barras con aspecto 3-D Crea diagramas de barras horizontales con aspecto 3-D Genera grficos con forma de tarta Genera grficos con forma de tarta y aspecto 3-D similar plot(), pero rellenando en ordenadas de 0 a y representa sobre una grfica mediante barras valores de errores Dibuja los elementos de un vector complejo como un conjunto de vectores partiendo de un origen comn

Fuente: Armando Portela (2008)


11

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Leccin 4: Grficas Tridimensionales MATLAB posee varias posibilidades para realizar grficas tridimensionales. Una de las maneras de realizar esto es la utilizacin del comando plot3, que es la analoga de la funcin plot en los grficos 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 hlice. (ver Figura 7). >> X = [-2:0.01:2]; % Define el primer vector >> plot3 (cos(2*pi*X), sin(2*pi*X), X); % En esta lnea se definen los otros 2 vectores y se grafica la funcin. >> grid

Figura 7. Grfica de una hlice.

3 2 1 0 -1 -2 -3 1 0.5 0 -0.5 -1 -1 -0.5 0.5 0 1

Fuente: Captura de Matlab versin trial (2008).

12

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Para dibujar superficies en un espacio tridimensional hay dos comandos bsicos: 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 funcin 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 grfica >> Z = X.2 - Y.2; >> mesh(X, Y, Z)

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

4 3 2 1 0 -1 -2 -3 -4 2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -2 -1.5 -0.5 -1 0 0.5 1.5 1 2

Fuente: Captura de Matlab versin trial (2008). La diferencia de esta con la grfica (ver Figura 9.) anterior radica en el comando que se utiliz en la ltima lnea del cdigo anterior, se cambi mesh por surf.

13

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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

4 3 2 1 0 -1 -2 -3 -4 2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -2 -1.5 -0.5 -1 0 0.5 1.5 1 2

Fuente: Captura de Matlab versin trial (2008). Otras funciones de grficas tridimensionales son relacionadas en la tabla 4 Tabla 4. Otras Funciones grficas tridimensionales
Comando trisurf meshz trimesh surfl Light colorbar sphere Cylinder Descripcin Similar a surf, dibuja una superficie 3-D a partir de los valores de una funcin en una malla de tringulos. mesh con plano de referencia en el valor mnimo y una especie de cortina en los bordes del dominio de la funcin Similar a mesh, dibuja una superficie 3-D a partir de los valores de una funcin en una malla de tringulos. Utilizada para controlar la iluminacin determinando la posicin e intensidad de un foco de luz. 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 posicin. Adiciona el mapa de colores activo a la figura, redimensionando los ejes para hacerle un lugar. se puede colocar horizontal o verticalmente. Dibuja una esfera 3-D de radio unidad. Dibuja una superficie cilndrica de radio 1 y altura 1, con 20 facetas laterales.

Fuente: Armando Portela (2008)

14

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Leccin 5: Funciones. Las funciones de MATLAB se asemejan a las funciones matemticas, en la medida en que representan una regla que modifica una variable de entrada transformndola en una variable de salida. La funcin 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 estn 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 cdigo escritas y guardadas de una forma determinada en archivos con extensin *.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 cmo debe ser creada y posteriormente empleada una funcin. Reglas para escribir funciones. Para elaborar funciones, se debe generar un nuevo archivo de texto con un nombre adecuado para reconocer la funcin, el archivo debe tener la extensin *.m, para que MATLAB lo reconozca. La creacin de funciones en MATLAB presenta algunas diferencias respecto de la elaboracin de programas. La ms relevante es la siguiente: Una funcin incluye en la primera lnea del archivo una cabecera donde se especifica su nombre, cules y cuntos argumentos tiene, y cules y cuntos valores retorna. Dicha cabecera se identifica, adems, 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 funcin de nombre producto, que tiene dos argumentos (x e y) y devuelve un valor en la variable a.

15

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

La primera lnea es llamada lnea de definicin de funcin, donde se le proporciona el nombre, el nmero y el orden de los argumentos de entradas y salidas. Siguiendo la lnea de definicin de funcin, se debe realizar comentarios anteponindoles el smbolo porcentual (%). Esas lneas son llamadas texto de ayuda y son mostradas en respuesta del comando help seguido del nombre de la funcin. Las siguientes lneas constituyen el cuerpo de la funcin; 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 smbolo de porcentaje), todas las sentencias deben culminarse con un punto y coma (;) para suprimir la salida de cada comando. Estos archivos pueden tener mltiples entradas y mltiples salidas. El cuerpo de la funcin contiene las sentencias que sean necesarias para calcular los valores que la funcin va a retornar. Para calcular dichos valores se utilizarn tanto los argumentos de la funcin 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 funcin (es decir, no toman valores desde el espacio de trabajo de MATLAB), y por tanto debern ser inicializadas en sta. Adems hay que tener en cuenta que las funciones nunca modifican las variables o argumentos de entrada, a no ser que se incluyan tambin como valores de retorno. Si el usuario las modifica dentro de la funcin, automticamente 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 funcin que calcule las races de un polinomio de orden dos, ingresando los coeficientes a,b,c correspondientes al polinomio ax2+bx+c=0. Se escribe la funcin 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 funcin, el argumento y el valor de retorno. Se guarda la funcin en el directorio de trabajo de matlab y se procede a llamarla desde la ventana de trabajo del programa.

16

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 10. Escritura de la Funcin raices2.m

Fuente: Captura de Matlab versin trial (2008).. Una vez creada la funcin, 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 clculo de las races del polinomio x2+2x+3=0, mediante el llamado de la funcin races2.m e ingresando los parmetros de entrada a, b, c, que en este caso corresponden a los nmeros 1,2,3. Figura 11. Uso de la Funcin raices2.m.

Fuente: Captura de Matlab versin trial (2008)..

17

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Funciones de MATLAB. MATLAB contiene una gran cantidad de funciones las categoras incluyen: Elfun: Estos son las funciones matemticas elementales, incluyen las funciones trigonomtricas, logartmicas y exponenciales, funciones para la manipulacin de los nmeros complejos, funciones modulares y funciones para el redondeo de nmeros. Specfun: son comandos de funciones matemticas ms especializadas como funciones de Bessel, gamma y otras tantas usadas en el tratamiento analtico de sistemas. Tambin incluye funciones para la creacin de factores primos, otras para chequear que un nmero sea primo, funciones para encontrar el mnimo comn mltiplo y el mximo comn divisor y funciones para la conversin de coordenadas. Matfun: Estas son las funciones de las matrices. Datafun: son las funciones utilizadas en los anlisis de datos, pueden determinar el valor mximo o mnimo dentro de una serie de nmeros, incluyen funciones usadas en anlisis estadsticos. Existen funciones para simular filtros y manipulacin de archivos de sonido. Polyfun: Incluye funciones de interpolacin para anlisis geomtrico, para derivar y multiplicar polinomios. Tambin incluye funciones para encontrar las races de los polinomios. Funfun: son un grupo de funciones que resuelven ecuaciones diferenciales. Tambin incluye funciones usadas para la integracin numrica y funciones grficas. 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 Introduccin. Matlab posee libreras especializadas que agrupan un determinado nmero de funciones que poseen caractersticas similares y tienen aplicaciones especficas. A estas libreras se les denomina Toolbox, que traduce literalmente caja de herramientas, gracias a estas cajas de herramientas especializadas, se evita la escritura de cdigos extensos y poco eficientes.

18

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Leccin 6: Introduccin a los Toolbox de Matlab. Los Toolbox o cajas de herramientas son una coleccin especializada de archivos .m diseada para trabajar problemas especficos en ciertas reas de Ingeniera, como Sistemas de Comunicaciones, Procesamiento de Seales, Redes neuronales, anlisis Financiero entre otras. Algunos de los Toolbox de Matlab son: Procesamiento de Seales Matemtica Simblica Lgica Difusa Redes neuronales Procesamiento de Imgenes Comunicaciones Ecuaciones Derivadas parciales Sistemas de Control Identificacin de sistemas Optimizacin Diseo de filtros Bioinformtica Estadstica Anlisis Financiero

Caractersticas. Entre las caractersticas que poseen los toolbox se tiene: Son grupos de comandos con caractersticas similares. Ayudan a simplificar los clculos de ciertas aplicaciones. Facilitan la escritura de algoritmos. Esquema general de los Toolbox. Como se ha dicho los toolbox son libreras especializadas, los comandos ah presentes se encuentran organizadas por orden alfabtico y por categoras, para observar la organizacin 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 organizacin (Figura 12), aunque existen tems comunes para todos que son:

19

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Getting started (Inicio): Realizan una breve descripcin 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 categoras): Se observan los comandos organizados en categoras particulares de cada toolbox. Functions Alphabetical List (Funciones Lista alfabtica): Los comandos estn organizados alfabticamente. Releases Notes (Notas relacionadas o de actualizacin): Muestra todas las notas relacionadas con el toolbox y todas las actualizaciones que existentes para este. Printable Documentation (Informacin imprimible) (PDF): Este es un hipervnculo donde se muestra la informacin del toolbox en un formato de documento portable. Product Page (Pagina del producto): Este es un hipervnculo que dirige al usuario a la pgina de Mathworks, referente al toolbox. Figura 12. Esquema general de los toolboxes.

Fuente: Captura de Matlab versin trial (2008). Ejemplo. Con ayuda del Toolbox de procesamiento de Imgenes tomar una fotografa 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 travs de los comandos imread y imshow se lee, se guarda en la variable imagen1 y se muestra la imagen en la ventana Figure.
20

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 13. Uso de imread e imshow del Toolbox Procesamiento de Imgenes.

Fuente: Captura de Matlab versin trial (2008). Figura 14. Ventana Figure Matlab. Imagen a color

Fuente: Captura de Matlab versin 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.

21

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 15. Utilizacin de rg2gray del Toolbox Procesamiento de Imgenes.

Fuente: Captura de Matlab versin 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 versin trial (2008). Mediante el comando imwrite se genera un archivo denominado ricardogris.jpg con la imagen en escala de grises. imwrite(b,'ricardogris','jpg')

22

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Leccin 7: Toolbox de Comunicaciones. El toolbox de comunicaciones es una extensin de MATLAB, con funciones, comandos grficos e interfaces empleadas para explorar, disear, analizar y simular algoritmos con las diferentes etapas de un sistema de comunicacin. Las caractersticas esenciales de este toolbox son: Contiene funciones para disear las capas fsicas de un enlace de comunicacin, incluyendo codificacin de fuente, codificacin de canal, modulacin, modelos de canal y ecualizacin. Comando de graficacin para la visualizacin de las seales de comunicacin. Interfaces graficas de usuario para comparar la tasa de error de bit de cualquier sistema con una amplia variedad de resultados analticos probados. Datos del tipo Galois para la construccin de algoritmos de comunicacin. Nociones Bsicas del toolbox. Este toolbox implementa una variedad de comandos relacionados con las comunicaciones. Muchas de las funciones realizan clculos asociados a un componente particular de un sistema de comunicaciones, como demoduladores o ecualizadores. Otras funciones que estn enfocadas en el diseo y el anlisis de diferentes sistemas. Categoras de los comandos de los toolbox. Las funciones y comandos se encuentran organizadas por categoras, estas son: Fuentes de seal: Comandos que crean fuentes de seales aleatorias. Evaluacin del desempeo: Analiza y visualiza la respuesta de un sistema, al ruido inherente al mundo real y a los componentes de dicho sistema. El desempeo es evaluado mediante el uso de grficas y as determinar si cumple con los requerimientos. BER Tool: Comandos utilizados para medir la tasa de error de bit. Codificacin de fuente: Tambin conocido como cuantizacin o formateo de seal, es la forma de reducir la redundancia de los datos o prepararla para su posterior procesamiento. La conversin de datos anlogo/digital y la compresin de datos son formas de codificacin de fuente. Modulacin/Demodulacin: Comandos para modular/demodular las seales tanto analgica como digital.

23

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Codificacin del control de error: Son tcnicas que detectan y posiblemente corrigen errores cuando son transmitidos en un sistema de comunicacin digital. Para conseguir esto, el codificador no solo transmite los smbolos del mensaje si no que tambin transmite smbolos redundantes, el decodificador usa los smbolos redundantes para detectar y posiblemente corregir los errores. Filtrado: Comandos que sirven para la seleccin de seales dentro de cualquier rango de frecuencias. Interleaving (Entrelazador o entramador): Este permuta los smbolos de acuerdo a un mapeo, y el desentramado utiliza el mapeo inverso para recuperar la secuencia original de smbolos. El entramado y el desentramado son tiles para reducir los errores causados por rfagas en un sistema de comunicaciones. Canales: Los canales de comunicaciones introducen, ruido desvanecimiento, interferencias y otras distorsiones a las seales que son transmitidas por estos. La simulacin de un sistema de comunicacin involucra el modelado de un canal basado en descripciones matemticas del canal. Los diversos medios de transmisin tienen diferentes propiedades y son modelados con caractersticas diferentes. Ecualizadores: los canales dispersivos en funcin del tiempo pueden causar interferencia inter-simblica (ISI), por ejemplo en un ambiente dispersivo multitrayecto, el receptor observa versiones retrasadas de los smbolos transmitidos, los cuales pueden interferir con los otros smbolos transmitidos. Un ecualizador intenta mitigar el ISI y as incrementar el desempeo del receptor. Campos computacionales de Galois: Es un campo algebraico que tiene un nmero finito de miembros. Los campos de Gaolis tienen 2m miembros que son utilizados para el control de codificacin de error y son denotados GF(2m).

Fuentes de Seales. Cada sistema de comunicaciones contiene una o ms fuentes de seal, se puede usar este toolbox para generar seales aleatorias, lo cual es muy til cuando se necesita simular ruido, errores o fuentes de seal. Las secciones son las siguientes: Ruido blanco gausiano: Esta funcin (wgn) genera matrices usando una distribucin 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.

24

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

La estructura de este comando es la 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) Smbolos aleatorios: (randsrc) Este comando crea matrices aleatorias, independientes del alfabeto que el usuario especifique pero con una distribucin 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 4 6 2 2 2 2 4 2 2 2 6 4 6 4 4 6 4 2 6

Donde la estructura de este comando sera la siguiente; Variable = randsrc (M,N, Alfabeto) este comando crea una matriz aleatoria M x N con los elementos del alfabeto que se especific.

25

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 1 7 4 9 6 8 5 4 2 2 7 4 6 2 7 4 9 9 6 5 9 9 7 9 7 4 3 4 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. Modulacin y Demodulacin.

En la mayora de los medios de comunicacin, solo un rango de frecuencias est disponible para la transmisin. Una forma de comunicar un mensaje cuya seal no se encuentre en el rango de frecuencias disponibles, es modificando la frecuencia hasta alcanzar una que este en concordancia con el sistema de comunicacin, esta modificacin de la frecuencia es lo que se llama modulacin y el volver la seal a un estado muy cercano al original se llama demodulacin. MATLAB posee herramientas que permiten hacer tanto modulacin analgica como digital. Dada una tcnica de modulacin, existes dos formas para simularlo, bandabase y pasabanda. La simulacin bandabase tambin conocida el mtodo equivalente pasabaja requiere menos clculos computacionales. En esteToolbox la simulacin bandabase es utilizada para la modulacin digital mientras que para la modulacin analgica se utiliza la simulacin pasabanda. Los mtodos disponibles que contiene este Toolbox para realizar la modulacin de un sistema de comunicacin dependen del tipo de seal de entrada al sistema ya

26

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

sea anlogo o digital. La siguiente tabla muestra las tcnicas que soporta el toolbox: Tabla 5. Tipos de modulacin analgica que soporta el toolbox.
Comando para la modulacin ammod fmmod pmmod ssbmod Comando para la demodulacin amdemod fmdemod pmdemod ssbdemod

Mtodo de modulacin analgica Modulacin de amplitud (con supresin o transmisin de portadora) Modulacin de frecuencia Modulacin de fase Modulacion de amplitud de banda simple

Acrnimo AM FM PM SSB

Fuente: Armando Portela (2008) Argumentos necesarios para realizar la modulacin/demodulacin analgica comunes para todos los tipos: x: mensaje a modular y: mensaje modulado Fc: Frecuencia de la seal portadora (Hz) Fs: Frecuencia de muestreo (Hz) Ini_phase: fase inicial en la seal modulada (radianes)

27

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Tabla 6. Sintaxis de los distintos Tipos de modulacin analgica que soporta el toolbox.
Modulacin Sintaxis del comando de modulacin 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 Sintaxis del comando de demodulacin 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,n um,den) carramp: amplitud de la portadora num, den: establecen el numerador y el denominador del filtro pasabajas usado en la demodulacin(radianes) z = fmdemod(y,Fc,Fs,freqdev) z = fmdemod(y,Fc,Fs,freqdev,ini_phase) freqdev: es la constante desviacin de frecuencia (Hz) de la seal modulada. z = pmmod(y,Fc,Fs,phasedev) z = pmmod(y,Fc,Fs,phasedev,ini_phase) phasedev: es la constante desviacin de fase (radianes) de la seal modulada. 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

AM

FM

y= fmmod(x,Fc,Fs,freqdev) y = fmmod(x,Fc,Fs,freqdev,ini_phase freqdev: es la constante desviacin de frecuencia (Hz) de la seal modulada. y = pmmod(x,Fc,Fs,phasedev)
y = pmmod(x,Fc,Fs,phasedev,ini_phase)

PM

phasedev: es la constante desviacin de fase (radianes) de la seal 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 modulacin

el denominador del filtro pasabajas usado en la demodulacin(radianes)

Ejemplo: Modular y demodular una seal con el mtodo de modulacin 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); % Representacin de la seal y = ammod(x,Fc,Fs); % Modulacin de x para producir y yruidoso = awgn(y,15,'measured'); %Transmisin a travs de un canal ruidoso [num,den] = butter(10,Fc*2/Fs); % Definicin del filtro pasabajas z = amdemod(yruidoso,Fc,Fs,0,0,num,den); % Demodulacin. figure; subplot(3,1,1); plot(t,x); % Dibuja la seal de entrada(Superior).
28

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

subplot(3,1,2); plot(t,yruidoso)% % Dibuja la seal modulada y transmitida(Medio). subplot(3,1,3); plot(t,z); % Dibuja la seal demodulada(Inferior). Figura 17. Modulacin y demodulacin por amplitud.
1 0 -1 2 0 -2 2 0 -2

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

0.1

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

0.1

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

0.1

Fuente: Captura de Matlab versin trial (2008).. Tabla 7. Tipos de modulacin digital que soporta el toolbox.
Mtodo de modulacin digital Modulacin por desplazamiento diferencial de fase Modulacin por desplazamiento de frecuencia Modulacin por desplazamiento mnimo Modulacin por desplazamiento en cuadratura compensada Modulacin por desplazamiento de fase Modulacin por amplitud de pulso Modulacin por amplitud en cuadratura Acrnimo DPSK FSK MSK OQPSK PSK PAM QAM Comando para la modulacin dpskmod fskmod mskmod oqpskmod pskmod pammod qammod Comando para la demodulacin dpskdemod fskdemod mskdemod oqpskdemod pskdemod pamdemod qamdemod

Fuente: Armando Portela (2008)


29

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Tabla 8. Sintaxis de los distintos Tipos de modulacin digital que soporta el toolbox.
Modulac Sintaxis del comando de modulacin 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 mltiple columnas y filas MATLAB procesa las columnas independientemente. M: es el tamao del alfabeto y debe ser entero. phaserot: especifica la rotacin de fases en radianes. En este caso el desplazamiento de fase total por smbolo es la suma del valor asignado en este argumento, ms la fase generada por la modulacin diferencial. symbol_order: especifica como la funcin asignar las palabras binarias correspondientes a los enteros.

Sintaxis del comando de demodulacin z = dpskdemod(y,M) z = dpskdemod(y,M,phaserot)


z = dpskdemod(y,M,phaserot,symbol_order)

DPSK

y: mensaje modulado M: es el tamao del alfabeto y debe ser entero. phaserot: especifica la rotacin de fases en radianes. En este caso el desplazamiento de fase total por smbolo es la suma del valor asignado en este argumento, ms la fase generada por la modulacin diferencial. symbol_order: especifica como la funcin asignar las palabras binarias correspondientes a los enteros.

y = fskmod(x,M,freq_sep,nsamp) y = fskmod(x,M,freq_sep,nsamp,Fs) y = fskmod(x,M,freq_sep,nsamp,Fs,phase_co nt)


y = fskmod(x,M,freq_sep,nsamp,Fs,phase_cont,sy mbol_order) x: mensaje que consiste de enteros entre 0 y M 1, si este fuera una matriz con mltiple columnas y filas MATLAB procesa las columnas independientemente. M: es el tamao del alfabeto y debe ser entero en potencias de 2. freq_sep: es la separacin deseada entre dos frecuencias sucesivas. nsamp: Es el nmero de muestras por smbolo en la seal modulada y debe ser un nmero positivo y mucho ms grande que 1. Por el teorema de muestreo de Nyquist , el valor de freq_sep y M deben satisfacer la condicin 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 travs de los lmites de los smbolos. discont obliga una discontinuidad en la fase, por defecto es cont. symbol_order: especifica como la funcin 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,symbo l_order)


y: mensaje modulado freq_sep: es la separacin deseada entre dos frecuencias sucesivas. nsamp: Es el nmero de muestras por smbolo en la seal modulada y debe ser un numero positivo y mucho ms grande que 1. Por el teorema de muestreo de Nyquist , el valor de freq_sep y M deben satisfacer la condicin de (M-1)*freq_sep <=Fs. symbol_order: especifica como la funcin asignar las palabras binarias correspondientes a los enteros

FSK

30

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Tabla 8. Sintaxis de los distintos Tipos de modulacin digital que soporta el toolbox. (Continuacin)
Modulac Sintaxis del comando de modulacin 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 mltiple columnas y filas MATLAB procesa las columnas independientemente. nsamp: denota el nmero de muestras por smbolo en la seal modulada y debe ser un numero positivo. dataenc: especfica el mtodo de codificacin de los datos para la MSK, diff para la codificacin diferencial y nondiff para codificacin no diferencial. Ini_phase: Especifica la fase inicial del modulador MSK, este es un vector columna el cual su longitud es el nmero de canales y el cual sus valores son mltiplos enteros de de pi/2. Para evitar el anulamiento se del valor de dataenc se debe ajustar a un valor especfico.

Sintaxis del comando de demodulacin z = mskdemod(y,nsamp) z = mskdemod(y,nsamp,dataenc) z = mskdemod(y,nsamp,dataenc,ini_phase) z = mskdemod(y,nsamp,dataenc,ini_phase,in i_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 mltiple columnas y filas MATLAB procesa las columnas independientemente. nsamp: denota el nmero de muestras por smbolo en la seal modulada y debe ser un nmero positivo. dataenc: especfica el mtodo de codificacin de los datos para la MSK, diff para la codificacin diferencial y nondiff para codificacin no diferencial. Ini_phase: Especifica la fase inicial del modulador MSK, este es un vector columna el cual su longitud es el nmero de canales y el cual sus valores son mltiplos enteros de de pi/2. Para evitar el anulamiento se del valor de dataenc se debe ajustar a un valor especfico. Ini_state: Especifica el estado inicial del demodulador, contiene la mitad del smbolo de la seal recibida previamente

Esta lnea 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 codificacin diferencial MSK. phaseout: tiene las mismas dimensiones que ini_phase y asume los valores de 0, pi/2, pi y 3*pi/2 MSK

y = oqpskmod(x) y = oqpskmod(x,ini_phase)

* Esta lnea retorna el valor final de la fase de y. esto es til para demodular una seal 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 demodulacin del primer smbolo de una seal futura. Tiene las mismas dimensiones de ini_state. z = oqpskdemod(y) z = oqpskdemod(y,ini_phase)
y: el mensaje modulado, si este fuera una matriz con mltiple columnas y filas MATLAB procesa las columnas independientemente.

OQPSK

x: el mensaje debe consistir valores enteros comprendidos entre 0 y 3, si este fuera una matriz con mltiple columnas y filas MATLAB procesa las columnas independientemente.

Ini_phase: Determina la compensacin de fase de la seal modulada en radianes.

Ini_phase: Determina la compensacin de fase de la seal modulada en radianes.

31

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Tabla 8. Sintaxis de los distintos Tipos de modulacin digital que soporta el toolbox.
Modulac Sintaxis del comando de modulacin 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 mltiple columnas y filas MATLAB procesa las columnas independientemente. M: es el tamao del alfabeto y debe ser entero en potencias de 2.

Sintaxis del comando de demodulacin 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 mltiple columnas y filas MATLAB procesa las columnas independientemente. M: es el tamao del alfabeto y debe ser entero en potencias de 2.

PSK

Ini_phase: Determina la fase inicial de la modulacin en radianes.


Symbol_order: especifica como la funcin asignar las palabras binarias correspondientes a los enteros.

Ini_phase: Determina la fase inicial de la modulacin en radianes.


Symbol_order: especifica como la funcin asignar las palabras binarias correspondientes a los enteros.

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 mltiple columnas y filas MATLAB procesa las columnas independientemente. M: es el tamao del alfabeto y debe ser entero en potencias de 2.

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 mltiple columnas y filas MATLAB procesa las columnas independientemente. M: es el tamao del alfabeto y debe ser entero en potencias de 2.

PAM

Ini_phase: Determina la fase inicial de la modulacin en radianes.


Symbol_order: especifica como la funcin asignar las palabras binarias correspondientes a los enteros.

Ini_phase: Determina la fase inicial de la modulacin en radianes.


Symbol_order: especifica como la funcin asignar las palabras binarias correspondientes a los enteros

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 mltiple columnas y filas MATLAB procesa las columnas independientemente. M: es el tamao del alfabeto y debe ser entero en potencias de 2.

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 mltiple columnas y filas MATLAB procesa las columnas independientemente. M: es el tamao del alfabeto y debe ser entero en potencias de 2.

QAM

Ini_phase: Determina la fase inicial de la modulacin en radianes.


Symbol_order: especifica como la funcin asignar las palabras binarias correspondientes a los enteros.

Ini_phase: Determina la fase inicial de la modulacin en radianes.


Symbol_order: especifica como la funcin asignar las palabras binarias correspondientes a los enteros

Fuente: Armando Portela (2008)

32

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Ejemplo de un sistema de Modulacin y demodulacin digital: Modular una seal aleatoria con la tcnica de QAM, transmitirla a travs de un canal ruidoso, recuperar la seal y medir la tasa de error de smbolo: %Se crea una seal aleatoria M = 32; % Tamao del alfabeto de smbolos x = randint(5000,1,M); % Mensaje seal aleatoria % Usar Modulacin 32-QAM. y = qammod(x,M); % Transmisin de los datos a travs de un canal AWGN yruidoso = awgn(y,15,'measured'); % Se crea el diagrama de dispersin de los datos ruidosos scatterplot(yruidoso); % Demodular para recuperar el mensaje. z = qamdemod(ynoisy,M); % Verifica la tasa de error de smbolo. [num,rt]= symerr(x,z) % %num: es el nmero de smbolos errados %rt: Es la relacin entre los smbolos errados y los datos transmitidos

33

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 18. Diagrama de dispersin.

Scatter plot 6 4 2 Quadrature 0 -2 -4 -6 0 2 In-Phase Fuente: Captura de Matlab versin trial (2008).. -6 -4 -2 4 6

Este es el resultado de la medicin de tasa de error de smbolos, los resultados pueden variar en cada simulacin debido la aleatoriedad de la fuente, y del ruido. num = 601 rt = 0.1202

34

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Filtrado. En los sistemas de comunicacin es necesario eliminar o atenuar las seales que no sean convenientes para el sistema y maximizar las que si lo hagan, por lo que se hace necesario filtrar las seales, esta tarea puede llevarse a cabo filtrando las seales de forma analgica o digital dependiendo de la aplicacin. MATLAB ofrece un toolbox especfico solo para el filtrado de seales. 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 seales. Filtros con la transformada de Hilbert. Para disear 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 caracterizacin cuantitativa del filtro utilizando un modelo de funcin 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 funcin hilbiir disea, como tambin 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 diseo en particular, el ndice de tolerancia es de 0.05. El diagrama tambin muestra la respuesta de un filtro ideal de la transformada de Hilbert con retraso de grupo de 1 segundo.

35

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 tambin 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 disea. hilbiir(ts,dly,bandwidth), es igual a la sintaxis descrita anteriormente, excepto que se especifica el ancho de banda (bandwidth) supuesto de la seal de entrada y el diseo del filtro debe usar el compensador para la seal 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: valor singular truncado < tol valor singular mximo 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 mnimo la Interferencia entre Smbolos (ISI). La funcin rcosine disea (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 raz cuadrada. Filtro de coseno alzado IIR de raz 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)
36

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

num = rcosine(Fd,Fs): disea un filtro de coseno alzado de respuesta finita al impulso (FIR) y retorna su funcion de transferencia. La seal de entrada digital tiene una frecuencia de muestreo Fd. La frecuencia de muestreo para el filtro es Fs. La relacion Fs/Fd debe ser un entero positivo ms 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): disea un filtro de coseno alzado usando como directiva la cadena de variable type_flag. Los tipos de filtro estn en la tabla 9 Tabla 9. Tipos de filtros
Tipo de filtro con respuesta al impulso finito FIR con respuesta al impulso infinito IIR de coseno alzado FIR de raz cuadrada. de coseno alzado IIR de raz cuadrada. Valor de Type_flag default o fir/normal iir o iir/normal sqrt o fir/sqrt iir/sqrt

Fuente: Armano Portelo (2008) El valor por defecto de la tolerancia en el diseo 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 diseo del filtro est dado por delay/Fd segundos. [num,den] = rcosine(Fd,Fs,type_flag,r,delay,tol): Especifica la tolerancia en el diseo del filtro IIR. El diseo del filtro FIR no necesita este argumento.

Leccin 8: Simulacin de un Sistema de Comunicaciones La siguiente secuencia de comandos en Matlab muestra la Simulacin de un sistema de Comunicaciones Digitales. Primero se definen los parmetros bsicos y la fuente de seal con los que se va a trabajar, posteriormente se aplica modulacin de tipo 16QAM, se filtra la seal y por ltimo se procede al proceso de Demodulacin.
37

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

%%SISTEMA DE COMUNICACIN COMPLETO %% Tomado del toolbox de comunicaciones de MATLAB (Editado) % Definicin de los parmetros. M = 16; % Tamao de la constelacin k = log2(M); % Nmero de Bits por smbolo n = 3e4; % Nmero de bits a procesar. nsamp = 1; % Tasa de Sobremuestreo

%% Fuente de Seal % 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.


Bits Aleatorios 1 0.9 0.8 0.7 Valor Binario 0.6 0.5 0.4 0.3 0.2 0.1 0 0 5 10 15 20 Indice de Bit 25 30 35 40

Fuente: Captura de Matlab versin trial (2008)..


%% Mapeo de Bit a Smbolo % Transforma los bits en x en k-bits smbolos xsym = bi2de(reshape(x,k,length(x)/k).','left-msb'); %Modifica Forma Matriz

38

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

%% Diagrama de Smbolos % Dibuja los primeros 10 smbolo figure; % Crea una nueva ventana de figure stem(xsym(1:10)); title('Smbolos Aleatorios'); xlabel('ndices de Smbolos'); ylabel('Valor entero');

Figura 20. Primeros 10 Smbolos


Smbolos Aleatorios 14

12

10 Valor entero

0 1

5 6 Indices de Smbolos

10

Fuente: Captura de Matlab versin trial (2008)..

%DEFINICIN DEL FILTRO DE COSENO ALZADO nsamp = 4; % Modificacin de la tasa de muestreo para el filtro % Definicin del filtro % Se definen los parmetros 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 raz cuadrada rrcfilter = rcosine(1,nsamp,'fir/sqrt',rolloff,delay);

% Dibuja la respuesta al impulso figure; impz(rrcfilter,1)

39

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 21. Respuesta al impulso del sistema.


Impulse Response 0.6

0.5

0.4

Amplitude

0.3

0.2

0.1

-0.1

10

15

20 n (samples)

25

30

35

40

Fuente: Captura de Matlab versin trial (2008)..


%% Modulacin % Modular 16 QAM y = qammod(xsym,M); %% Seal Transmitida % Muetreo elevado y aplicacin del filtro de coseno alzado de raz cuadrada ytx = y; ytx = rcosflt(y,1,nsamp,'filter',rrcfilter); % Crea el patrn de ojo de la seal filtrada eyediagram(ytx(1:2000),nsamp*2);

40

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 22. Patrn de ojo de la seal filtrada


Eye Diagram for In-Phase Signal 3 2 Amplitude 1 0 -1 -2 -3 -0.5 0 Time Eye Diagram for Quadrature Signal 3 2 Amplitude 1 0 -1 -2 -3 -0.5 0 Time 0.5 0.5

Fuente: Captura de Matlab versin trial (2008)..


%% Canal % Enva la seal sobre un canal AWGN. EbNo = 10; % In dB snr = EbNo + 10*log10(k) - 10*log10(nsamp); ynoisy = awgn(ytx,snr,'measured'); %%Seal recibida % Seal filtrada recibida usando un filtro de coseno alzado de raz 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 dispersin % Crea un diagrama de dispersin de la seal antes y despus 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('Seal Recibida, Antes y despus del filtrado'); legend('Antes del filtrado','Despues del filtrado'); axis([-5 5 -5 5]); % Ajusta el rango de la axisas

41

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 23. Seal recibida antes y despus del filtrado.


Seal Recibida, Antes y despus del filtrado 5 4 3 2 Quadrature 1 0 -1 -2 -3 -4 -5 -5 0 In-Phase 5 Antes del filtrado Despues del filtrado

Fuente: Captura de Matlab versin trial (2008)..


% Demodulacin % Demodular la seal usando 16-QAM zsym = qamdemod(yrx,M); % Mapeo de smbolo a bit % Deshace el mapeo de bit a smbolo 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); %% Clculo del BER % Compara x y z para obtener el nmero de errores y la tasa de error de bit [number_of_errors,bit_error_rate] = biterr(x,z)

Respuesta de MATLAB para el clculo del BER number_of_errors = 75 bit_error_rate = 0.0025


42

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Leccin 9: Toolbox de Sistemas de Control. Es una herramienta donde se agrupan los comandos que son utilizados para una aplicacin en especfico que simplifica la escritura de los algoritmos. Nociones Bsicas del toolbox. MATLAB posee una gran cantidad de funciones matemtica tiles para los sistemas de control. Este producto es una coleccin de algoritmos escritos mayormente como archivos *.m que implementan sistemas de control sencillos, tcnicas de anlisis 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 tcnicas de control clsico 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 ubicacin de polos, control ptimo y estimaciones. Por ltimo permite la posibilidad de crear archivos *.m para una aplicacin particular. Categoras del Toolbox de Control. MATLAB posee una gran librera para la creacin y la manipulacin de modelos, tanto de control analgico como digital. Se encuentra organizada de la siguiente manera: Modelos LTI: Introduce al usuario en los conceptos claves sobre la representacin de sistemas LTI (Sistemas lineales invariantes en el tiempo), incluyendo objetos LTI, reglas de precedencia para operaciones y una analoga entre sistemas LTI y matrices. Tambin contiene comandos bsicos para ser usados sobre los objetos LTI. Operaciones en los modelos LTI: Realiza operaciones bsicas de las matrices como adicin, multiplicacin o concatenacin en los modelos LTI. Tambin se maneja mtodos de discretizacin. Herramientas para el Anlisis de modelos: Muestra las funciones que caracterizan a los modelos, tales como pares de entrada/salida, anlisis de modelos dinmicos, como localizacin de polos y ceros y la transformacin de sistemas en variables de estado en modelos de representaciones cannicas. 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.

43

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Modelando Sistemas LTI. Tpicamente los ingenieros de control comienzan por desarrollar una descripcin matemtica del sistema dinmico que se desea controlar, el sistema que se quiere controlar se llama planta. El toolbox de control ofrece una extensiva librera 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 multipleinput/multiple-output (MIMO). Para crear modelos LTI existen una serie de funciones que sirven para generar los parmetros de diferentes tcnicas 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 Funcin de transferencia Ganancia de polos y ceros Modelo de variable de estado Respuesta en frecuencia Fuente: Armando Portela (2008) Tabla 11. Sintaxis y ejemplos de comandos empleados para Modelar sistemas de control.
Modelo tf SISO una funcin de transferencia est definida por : MIMO 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.

Comando tf zpk ss frd

h( s ) =

n( s ) d (s)

Est caracterizada por un numerador n(s) y un denominador d(s) ambos polinomios estn en funcin de la variable de Laplace (s). Existen dos formas de especificar una funcin 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

44

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA estn 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 funcin de transferencia:

H ( s) = 2 s
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);

s 1 s +1 s+2 + 4s + 5

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

s h( s ) = 2 s + 3s + 7

Se puede especificar H(s) por la concatenacin deentradasSISO:

La sintaxis para crear la concatenacin de las funciones es la siguiente: H= [h11; h21] Esta sintaxis imita la matriz de concatenacin estndar y tiende a ser ms fcil y legible para sistemas MIMO con muchas entradas y/o salidas. Alternativamente para definir una funcin 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

Como una expresin racional en funcin de la variable de Laplace. 1. Definiendo la variable s como un modelo especial de TF s = tf ( s ); 2. Ingresando la funcin de transferencia como una expresin racional en trminos de s. Por ejemplo una vez definida la variable se escribe la funcin de transferencia de la siguiente forma: H=s/(s^2+3*s+7). Esto reporta transferencia. la misma funcin de

s 1 s +1 D( s ) = 2 N (s) = s + 2 s + 4s + 5
Se puede especificar esta funcin 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 de

45

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

1 0 G= 2 1
zpk Los modelos de tiempo continuo tienen la forma: Como en el modelo de funcin de transferencia se puede crear un sistema MIMO concatenando sistemas SISO como entradas. Tambin 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)

h( s ) = k

( s z1 )...( s z m ) ( s p1 )...( s p n )

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 funcin de transferencia h(s). Este modelos esta cercanamente relacionado con la representacin de los modelos por funcin de transferencia: los ceros son las races del numerador y los polos las races 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 expresin racional en funcin de la variable de laplace S 1. Definiendo la variable s como un modelo especial de ZPK s = zpk ( s ); 2. Ingresando la funcin de transferencia como una expresin racional en trminos de s. Por ejemplo ya definido s con zpk

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

46

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA H = -2s/((s - 2)*(s^2 + 2*s + 2)); Esto genera transferencia la misma funcin de Donde se ha creado el modelo de dos entradas y dos salidas.

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

3( s + 5) ( s + 1) 2 0

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:

dx = Ax + Bu dt y = Cx + Du

Donde x es el vector de estado y u e y son los vectores de entrada y salida, estas ecuaciones pueden surgir de la fsica, de la identificacin de las variables de estado o por realizacin de los sistemas de funcin de transferencia. Se usa el comando ss, para crear el modelo de funcin 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 elctrico:

d 2 d +2 + 5 = 3I 2 dt dt

47

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Donde es el desplazamiento angular del roto e I la corriente manejadora. La relacin entre la entrada de corriente u = I y la velocidad angular y=d/dt est descrita por las ecuaciones de variables de estado:
dx = Ax + Bu dt y = Cx

Donde

x = d dt

1 0 A= 5 2

0 B= 3

C = [0

1]

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

48

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Los modelos de respuesta en frecuencia (FRD), en algunas ocasiones solo tienen los datos de la frecuencia muestreada, en lugar de una funcin de transferencia o un modelo de variable de estado para el sistema que se desea analizar o controlar. Por ejemplo: se supone la funcin de respuesta en frecuencia, para el sistema SISO que se desea modelar es G(w), adems 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 continuacin:

Seal de entrada sin sin wit


Sea de salida

yi (t )

Funcin de transferencia G(w)

Aqu

frecuencia de entrada de cada sinusoide, i=1,n y G ( w) = G ( w) exp( jG ( w)) . La respuesta de la salida en estado estable de este wi

es

la

sistema satisface y i (t ) = G ( wi ) sin( wi t + G ( wi )); 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 bsica 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.
49

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 nmero de salidas, m es el nmero de entradas y Nf es el nmero de puntos de datos de frecuencias (la duracin de la frecuencia). La creacin de modelos en tiempo discreto es muy parecida a la creacin 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 aade 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)

50

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 bsicas de las matrices, como multiplicacin, adicin o concatenacin. 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 retroalimentacin opera sobre ms de un sistema a la vez, si eso modelos LTI son representados como diferentes tipos de objetos (Por ejemplo la primera operacin es sobre un objeto TF y el segundo sobre un objeto SS), entonces no es obvio que tipo de modelo sera el resultante (TF o SS). Esta serie de conflictos se resuelven con la regla de precedencia. Los objetos TF, ZPK, SS y FRD, estn organizados por una jerarqua de precedencia. FRD > SS > ZPK > TF Entonces ZPK toma precedencia sobre TF, SS toma precedencia sobre TF y ZPK y as sucesivamente. Cualquier operacin 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 ningn objeto FRD est presente y por lo menos un objete SS est en el sistema. Un objeto ZPK, sin ningn 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

51

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 supremaca de la regla de precedencia y forzar el resultado de la operacin se puede:

Convertir todos los operandos antes de ejecutar la operacin. Convertir el resultado despus de ejecutar la operacin.

Otra cuestin es la regla de herencia, que es, que las propiedades de los operandos pasan sus propiedades al resultado de la operacin. 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 mayora 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 aritmticas pueden ser aplicadas en los modelos LTI, de la siguiente manera:

Adicin y sustraccin: Sumar modelos LTI es equivalente a conectarlos en paralelo. Por ejemplo: sys = sys1 + sys2 La representacin de la interconexin en paralelo es la siguiente:

52

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 24. Interconexin en paralelo de dos modelos LTI. Adicin y sustraccin

y1 sys1 u sys2 + + y2 y

sys u

sys1 y1 + y

sys2 sys

_ y2

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 sera:
A1 0 0 , A2 B1 B , 2

[C1

C 2 ] ,

D1 + D2

Tambin 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 comando para conectar los sistemas en paralelo es: parallel(sys1,sys2)
53

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Multiplicacin. La multiplicacin de dos modelos LTI es conectarlos en serie. Especficamente sys = sys1 * sys2 MATLAB retorna un modelo LTI sys conectado en serie como se muestra: Figura 25. Interconexin en serie
u sys1 v sys2 y

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 sera:
A1 0

B1C 2 , A2

B1 D2 B , 2

[C1

D1C 2 ] ,

D1 D2

Inversin y operaciones relacionadas. La inversin de modelos LTI , invierte la relacin entre entradas y salidas

y = Hu u = H 1 y

Esta operacin es definida nicamente para sistemas cuadrados, est determinada por: inv(sys)
54

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

El modelo inverso resultante es del mismo tipo que sys. Las operaciones relacionadas incluyen: o Divisin izquierda sys1\sys2, lo cual es equivalente inv(sys1)*sys2 o Divisin 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:

A BD 1C ,

BD 1 ,

D 1C ,

D 1

Transposicin. Se puede transponer un sistema LTI usando: sys. Esta es una operacin 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 transposicin 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 nmero de funciones que ayudan a modelar y construir procesos. Eso incluye las funciones para la interconexin de modelos, estas funciones son tiles para modelos de lazo abierto y cerrado.

55

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Tabla 12. Sintaxis y ejemplos de comandos empleados para interconectar modelos.


Operador de interconexin [,] [;] append Descripcin Concatena los modelos horizontalmente Concatena los modelos verticalmente Agrega modelos en una configuracin de bloque diagonal, la sintaxis de este comando es la siguiente: sys=append(sys1, sys2,,sysN). Aade las entradas y salida de los modelos LTI sys1,,sysN, para formar un modelo aumentado, como se describe a continuacin

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 funcin de transferencia.

L 0 0 H 1 ( s) 0 H 2 (s) 0 M M M O 0 L 0 H N ( s ) 0
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.

A 1 x = 1 x 0 2
y1 C1 y = 0 2

0 x1 B1 + A2 x2 0
0 x1 D1 + C2 x2 0

0 y1 B2 y2
0 u1 D2 u 2

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

56

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA estticas, 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 lmite 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 b= x1 x2 c= y1 y2 y3 d= y1 y2 y3 u1 0 0 0 u2 u3 0 0 10.00000 0 0 4.00000 x1 x2 1.00000 0 0 0 0 3.00000 u1 1.00000 0 u2 0 0 u3 0 2.00000 x1 0 0 x2 0 1.00000

Continuous-time system. connect Deriva el modelo de variables de estado a partir de la descripcin del diagrama de bloques. La sintaxis del comando es la siguiente: sysc = connect(sys, Q, inputs, outputs ) Los sistemas dinmicos complejos se dan a menudo como diagrama de bloques. Para sistemas de complejidad moderada puede ser bastante difcil encontrar un modelo de variable de estado requerido para analizar y disear las herramientas para usarlo. Comenzando con la descripcin 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,

57

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA 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 interconexin total. Los argumentos Q, inputs, outputs tiene el siguiente propsito: La matriz Q indica como estn conectados los bloques en el diagrama. Tiene una fila por cada entrada de sys, donde el primer elemento de cada fila es el nmero 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 unin. Dado sys y Q se calcula un modelo de variables de estado para la interconexin con las mismas entradas y salidas que sys (que es la concatenacin 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 funcin connect no soporta retrasos.

Ejemplo:

Figura 27. Ejemplo de interconexin 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'})

58

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA sys3 = zpk(-1,-2,2) A continuacin se aaden 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 b= x1 x2 x3 x4 c= ? y1 y2 ? d= ? y1 y2 ? uc 0 0 0 0 u1 0 -0.5476 -0.6459 0 u2 ? 0 0 -0.141 0 0.2958 0 0 2 x1 2.5 0 0 0 x2 0 -3.2897 -13.501 0 x3 x4 0 0 2.4544 0 18.075 0 0 -1.4142 uc 4 0 0 0 u1 0 -0.5112 -0.002 0 u2 ? 0 0 0.5362 0 -1.847 0 0 1.4142 x1 -5 0 0 0 x2 0 -9.0201 -1.6943 0 x3 x4 0 0 17.779 0 3.2138 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 salidas 1 y 4 en la entrada 3 (u2) y la salida 3 (y2) en la entrada 4. La matriz de interconexin 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)

59

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA MATLAB retorna: a= x1 x1 -5 x2 0.84223 x3 -2.9012 x4 0.65708 b= x1 x2 x3 x4 c= y1 y2 d= y1 y2 uc 0 0 u1 -0.66204 -0.40582 x1 -0.22148 0.46463 x2 x3 x4 -5.6818 5.6568 -0.12529 -8.4826 11.356 0.26283 uc 4 0 0 0 u1 0 -0.076001 -1.5011 -0.57391

x2 x3 x4 0 0 0 0.076636 5.6007 0.47644 -33.029 45.164 -1.6411 -11.996 16.06 -1.6283

Parallel

Continuous-time system Cabe notar que las entradas y salidas son como se buscaba. Conecta dos modelos LTI, la sintaxis de este comando es: sys = parallel(sys1,sys2) sys = parallel(sys1,sys2,inp1,inp2,out1,out2) Esta funcin acepta cualquier tipo de modelo LTI. Los dos sistemas deben ser continuos o discretos con el mismo tiempo de muestreo. Las ganancias estticas 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 conexin del sistema se describe a continuacin:

60

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 28. Interconexin de un sistema en paralelo

Fuente: Armando Portela (2008). Es la forma ms general de la interconexin en paralelo. Los ndices de los vectores inp1 e inp2 especifican cual entrada u1 de sys1 y cual entrada u2 de sys2 estn conectadas. Similarmente los ndices de los vectores out1 y out2 especifican cual de las salidas y1 de sys1 y cul de las salidas y2 de sys2 estn 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 funcin acepta cualquier tipo de modelo LTI. Los dos sistemas deben ser continuos o discretos con el mismo tiempo de muestreo. Las ganancias estticas 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 ms general de la conexin en serie. Esta conexin esta descrita en la siguiente figura:

61

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 29. Interconexin 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. 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 retroalimentacin negativa

feedback

Figura 30. Interconexin de un sistema con retroalimentacin 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 retroalimentacin negativa, se usa la sintaxis sys = feedback(sys1,sys2,+1)

62

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA Por defecto el commando feedback asume una retroalimentacin 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 ms 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 estn involucradas en lazo de retroalimentacin. Similarmente feedout especifica cuales salidas y de sys1 son usadas para la retroalimentacin. El modelo resultante tiene las mismas entradas y salidas como sys1 (con el mismo orden). La retroalimentacin negativa es aplicada por defecto. Para aplicar una retroalimentacin positiva se utilizara 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); sysc = d2c(sysd); % Ts = Periodo de muestreo en segundos

63

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

La conversin de tiempo discreto a continuo utiliza un retenedor de orden cero ZOH, por defecto. Herramientas para el anlisis de sistemas de control. Estas herramientas pueden usarse para determinar las caractersticas como el nmero 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 anlisis pueden ser hechos en el dominio del tiempo o en el dominio de la frecuencia. Los comandos para el anlisis en el dominio del tiempo son los siguientes:

Tabla 13. Sintaxis y ejemplos de comandos empleados para el anlisis de sistemas de control.
Comando impulse Sintaxis 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 asignacin, esta funcin 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 multientrada es la coleccin de las respuestas impulsos para cada canal de entrada. La duracin de la simulacin est determinada automticamente para mostrar el comportamiento transiente de la respuesta. impulse(sys,t):ajusta los lmites de la simulacin. 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 tiempo muestreado del modelo de simulacin discretizado, para asegurarse que se escoja un dt lo suficientemente pequeo para capturar el fenmeno 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)

64

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA Cuando son utilizados los argumentos del lado izquierdo del lado de la asignacin 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 simulacin, y las trayectorias de estado x. No realiza ningn 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 dimensin de y, las dimensiones de y son: (Longitud de t ) X (nmero de salidas) X (nmero de entradas) Ejemplo: Dibujar la respuesta al impulso del modelo de variable de estado de segundo orden.

0.5572 0.7814 x 1 1 u 1 1 1 x = + x 2 0 2 u 2 0 x 0.7814 2


x y = [1.9691 6.4493] 1 x2
Usandolossiguientescomandos:
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:

65

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 32. Respuesta al impulso del sistema.


Impulse Response From: In(1) 12 10 8 6 4 2 0 -2 -4 -6 From: In(2)

Amplitude

10

15

20 0 Time (sec)

10

15

20

step

Fuente: Captura de Matlab versin trial (2008).. Calcula la respuesta de los modelos LTI al escaln 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 asignacin, esta funcin dibuja la respuesta al escaln en pantalla. step(sys): Grafica la respuesta escaln 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 coleccin de las respuestas escaln para cada canal de entrada. La duracin de la simulacin est determinada automticamente para mostrar el comportamiento transiente de la respuesta. step(sys,t):ajusta los lmites de la simulacin. 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 tiempo muestreado del modelo de simulacin discretizado, para asegurarse que se escoja un dt lo suficientemente pequeo para capturar el fenmeno del transiente. Para dibujar la respuesta al impulso de muchos modelos LTI, en una sola figura se usa:

66

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA step(sys1,sys2,...,sysN) step(sys1,sys2,...,sysN,t) Cuando son utilizados los argumentos del lado izquierdo del lado de la asignacin 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 simulacin, y la trayectoria de estado x. No realiza ningn 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 dimensin de y, las dimensiones de y son: (Longitud de t ) X (nmero de salidas) X (nmero de entradas) Ejemplo: Dibujar la respuesta al escaln unitario del modelo de variable de estado de segundo orden.

0.5572 0.7814 x 1 1 u 1 1 1 x = + x 2 0 2 u 2 0 x 0.7814 2


x y = [1.9691 6.4493] 1 x2
Usandolossiguientescomandos:
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:

67

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 33. Respuesta al sistema al escaln unitario


Step Response From: In(1) 12 10 8 6 Amplitude 4 2 0 -2 -4 0 5 10 15 20 0 Time (sec) 5 10 15 20 From: In(2)

Fuente: Captura de Matlab versin trial (2008)..

Fuente: Armando Portela (2008). Para el anlisis de sistemas a nivel de respuesta en frecuencia tenemos los siguientes comandos: Tabla 14. Sintaxis y ejemplos de comandos empleados para el anlisis de la respuesta en frecuencia de sistemas de control.
Comando Bode Sintaxis 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 asignacin el comando produce un diagrama de Bode en la pantalla. La magnitud es dibujada en decibeles (dB) y la fase en grados. El clculo de los decibeles como: 20 log 10 H ( j ) donde H ( j ) 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:

68

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA 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 automticamente por el sistema de polos y ceros. bode(sys,w): se especifica explcitamente el rango de frecuencias o los puntos de frecuencias que sern 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 logartmicamente 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 nmero de entradas y de salidas pero puede ser una combinacin de modelos continuos y discretos. Esta sintaxis es til para comparar la respuesta de mltiples sistemas.

Cuando son invocados los argumentos del lado izquierdo de la asignacin: [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 dimensin, se puede hacer la conversin 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:

H (s) =

s 2 + 0.1s + 7.5 s 4 + 0.12s 3 + 9 s 2

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

69

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 34. Diagrama de bode del sistema.


Bode Diagram 0

M a g n itu d e(d B ) P h a s e(d e g )

-10

-20

-30

-40 -45

-90

-135

-180

10

10 Frequency (rad/sec)

Fuente: Captura de Matlab versin trial (2008).. Para dibujar la frecuencia en un rango ms 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.
Bode Diagram 40 20 M a g n itu d e(d B ) 0 -20 -40 -60 -80 -45

P h a s e(d e g )

-90

-135

-180

10

-1

10

10 Frequency (rad/sec)

10

Fuente: Captura de Matlab versin 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--')

70

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 36. Comparacin de los diagramas de Bodes continuo y discretos


Bode Diagram 40 20 Magnitude (dB) Phase (deg) 0 -20 -40 -60 -80 0

-90

-180

-270

10

-1

10

10

Frequency (rad/sec)

Fuente: Captura de Matlab versin 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 asignacin 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 estabilidad, la 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 automticamente por el sistema de polos y ceros. nyquist(sys,w): se especifica explcitamente el rango de frecuencias o los puntos de frecuencias que sern 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 logartmicamente espaciados. todas las frecuencia deben ser dadas en radian/sec.

71

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA 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 nmero de entradas y de salidas pero puede ser una combinacin de modelos continuos y discretos. Esta sintaxis es til para comparar la respuesta de mltiples sistemas.

Cuando son invocados los argumentos del lado izquierdo de la asignacin: [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 :

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

2 s 2 + 5s + 1 s 2 + 2s + 3

Figura 37. Diagrama de Nyquist del sistema


Nyquist Diagram 2

1.5

0.5 Imaginary Axis

-0.5

-1

-1.5

-2 -1

-0.5

0.5

1 Real Axis

1.5

2.5

Fuente: Captura de Matlab versin trial (2008)..

72

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

El lugar geomtrico de las races de Evans (quin en 1948 propuso algunas reglas para esbozar el grfico) es realizado por el comando rlocus en un modelo SISO de lazo abierto. El lugar geomtrico de las races brinda las trayectorias de lazo cerrado como funcin de la ganancia de la trayectoria de retroalimentacin k (asumiendo una retroalimentacin negativa). Este grfico es usado para estudiar los efectos de la variacin de las ganancias en la retroalimentacin en la localizacin de los polos en un lazo cerrado. A su vez esos lugares proporcionan una informacin 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 geomtrico de las races del modelo SISO de lazo abierto sys. esta funcin puede ser aplicada a los siguientes lazos de retroalimentacin negativo, ajustando las caractersticas del modelo sys apropiadamente. Figura 38. Lazos de retroalimentacin

Fuente: Armando Portela (2008).

73

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Si sys tiene la funcin de transferencia:

h( s ) =
Los polos del lazo cerrados son las races de:

n( s ) d (s)

d ( s) + kn( s) = 0

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 geomtrico de las races. rlocus(sys1,sys2,...), diagrama el lugar geomtrico de las races de mltiples modelos LTI, en un solo diagrama. Cuando son invocados los argumentos del lado izquierdo de la asignacin: [r,k] = rlocus(sys) r = rlocus(sys,k) Retorna el vector k de las ganancias seleccionadas y los lugares de las races complejas r para esas ganancias. Ejemplo: Diagrame el lugar geomtrico de las races para el siguiente sistema:

H ( s) =

2 s 2 + 5s + 1 s 2 + 2s + 3

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

74

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 39. Diagrama del lugar geomtrico de las races del sistema
Root Locus 1.5

0.5 Imaginary Axis

-0.5

-1

-1.5 -2.5

-2

-1.5 Real Axis

-1

-0.5

Fuente: Captura de Matlab versin trial (2008)..

Leccin 10: Simulacin de un sistema de control Modelado de un motor de corriente de continua.

Figura 40. Esquema del circuito elctrico y diagrama mecnico rotacional

Fuente: Armando Portela (2008).

75

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Para el modelo del motor se consideraron los parmetros dados en la Tabla 15. Tabla 15. Parmetros de un Motor de Corriente Continua Parmetro Momento de inercia del sistema Coeficiente de friccin Constante de fuerza electromotriz (FEM) Resistencia de armadura Entrada: fuente de tensin Posicin del eje Fuente: Armando Portela (2008). Se suponen rotor y ejes rgidos, El torque (T) se relaciona con la corriente de armadura y la fem (e) con la velocidad de rotacin, segn las siguientes ecuaciones: Smbolo J b K=Ke=Kt R V Valor kgm 2 0.01 2 s 0.1Nms Nm 0.01 A 1 0 .5 H

T = K t i (1)

e = K e (2)

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

J + b = K i (3)
L i + R i = V K (4)

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

s ( J s + b) ( s ) = K i (5) ( L s + R) I ( s ) = V K s ( s ) (6)

76

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Igualando las ecuaciones 5 y 6 y despejando se obtiene:

K = (7) V ( J s + b) ( L s + R ) + K 2

Que es la funcin de transferencia del sistema. El modelo de variables de estado es el siguiente:


b d J = dt i K L K 0 J + 1 v (8) R i L L

Cdigo en MATLAB:
%%MOTOR DE CORRIENTE CONTINUA CC %Definicin de los parmetros J=0.01; b=0.1; K=0.01; R=1; L=0.5; %Creacin de la funcin 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 escaln en lazo abierto figure; step(sys) title('Respuesta al escaln en lazo abierto'); grid; xlabel('Tiempo'); ylabel('Amplitud'); 77

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

%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 escaln en lazo abierto figure; step(sysss) title('Respuesta al escaln 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 disear el controlador PID se debe recordar la funcin de transferencia de este controlador, la cual es:

KP +

KI K s2 + KD s + KI (9) + KD s = D s s

78

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 cdigo se pueden hacer pruebas para el controlador.
%Funcin 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 funcin del sistema retroalimentado numa=conv(num,numc); dena=conv(den,denc); [numac,denac]=cloop(numa,dena); figure; step(numac,denac)

'); '); ');

El lugar geomtrico de las races, es utilizado para controlar el sistema, realizando una compensacin esto se logra agregando polos y ceros, con tal de que el sistema en lazo cerrado, se comporte como se desea. Para conseguir esta compensacin se agrega un compensador por atraso de fase, cuya funcin de transferencia es:

s +1 (10) s + 0.01
%Utilizando el lugar geomtrico de las races 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')

79

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

%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 lnea de comandos k=ans; [numc,denc]=cloop(k*numb,denb,-1); figure; step(numc,denc) title('Respuesta escaln con un compensador')

CAPITULO 3: SIMULINK. CONCEPTOS BASICOS Introduccin. SIMULINK es un paquete software utilizado para modelar simular y analizar sistemas dinmicos, 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 grficas que a diferencia de la programacin normal se basa en la unin de diferentes bloques funcionales para realizar modelado y simulacin de sistemas.

Leccin 11: Caractersticas SIMULINK es un entorno de simulacin multi-dominio basado en modelos para sistemas dinmicos y embebidos. Proporciona un entorno grfico interactivo y ajustable con un conjunto de libreras de bloques que le permiten, disear, simular, implementar y probar una variedad de sistemas variables en el tiempo, incluyendo comunicaciones, control, procesamiento de seales, procesamiento de vdeo, y procesamiento de imgenes. 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 seales, parmetros y datos de prueba. Con este programa se puede ir ms all de los modelos lineales ideales, para explorar modelos no lineales, ms reales, teniendo en cuenta diferentes factores como friccin, resistencia del aire, detenciones bruscas, entre otros que describen mejor los fenmenos del mundo real. SIMULINK convierte un PC en un laboratorio para el modelado y anlisis de sistemas que en la realidad simplemente no sera posible y/o prctico.
80

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Las caractersticas fundamentales que definen a este entorno de simulacin son las siguientes:

Gran cantidad de libreras de bloques que pueden ampliarse. Editor grfico interactivo para el ensamble y manejo de diagramas de bloques. Habilidad para manejar diseos complejos segmentando los modelos en jerarquas de componentes. Explorador de modelos para navegar, crear, configurar y buscar todas las seales, propiedades y cdigo generado asociado con un modelo. Posee interfaces de programacin de aplicaciones (APIs), que permiten conectarse con otros programas de simulacin. Posee bloques de funcin con MATLAB embebido, para ser usadas en sistemas de esta caracterstica. Modos de simulacin (normal, acelerado o rpidamente acelerado), para correr simulaciones interpretativamente o compiladas. Depurador grfico para examinar resultados de las simulaciones y diagnosticar la ejecucin y comportamientos inesperados. Acceso total a MATLAB, para analizar y visualizar resultados, ajustar el entorno de modelado, y definir seales, parmetros y datos de pruebas. Anlisis de modelos y herramientas de diagnstico para asegurar la consistencia del modelo e identificacin de errores.

Las aplicaciones de SIMULINK son similares a las de MATLAB, por lo que a continuacin se describirn las ms importantes. Diseo de sistemas de control: Para el diseo de sistemas embebidos (empotrados), esta herramienta es utilizada para la creacin de modelos, muy empleados en diferentes reas como la industria aeroespacial, procesos de control, equipos industriales, etc. Procesamiento de seal y telecomunicaciones: El diseo basado en simulacin de modelos, permite un desarrollo de aplicaciones ms rpido y econmico, la simulacin dinmica elimina la necesidad de prototipos fsicos. Un mtodo de pruebas integrado ayuda a corregir los errores, y mejorar la calidad de los diseos. Procesamiento de imagen: Este entorno posee herramientas para el procesamiento de imgenes y video, adems proporciona a los ingenieros,

81

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

cientficos, investigadores una interfaz intuitiva y flexible para resolver complejos problemas de procesamiento de imgenes. SIMULINK ofrece a los usuarios una gran librera de ayuda que contiene explicaciones del uso de los comandos, los parmetros necesarios para su correcta utilizacin y una serie de ejemplos que ilustran de una manera didctica la utilizacin de los diferentes bloques. Leccin 12: Entorno de trabajo en Simulink SIMULINK est diseado para que el usuario pueda empezar su estudio implementando aplicaciones sencillas de prueba con fines didcticos, se puede partir construyendo nuevos modelos fcilmente, o bien adoptar un modelo ya existente y aadirle diferentes caractersticas, aprovechando el hecho de que se puede tener acceso a todas las herramientas del MATLAB. El SIMULINK proporciona una interfaz grfica de usuario (GUI), para la construccin de modelos como diagramas de bloques, brindando un entorno grfico de simulacin en el que solo es necesario arrastrar los diferentes bloques funcionales sobre una plantilla, estos bloques prediseados poseen parmetros que pueden ser modificados de acuerdo con las caractersticas que el usuario necesita para su simulacin, luego dichos bloques son interconectados creando un flujo de informacin a travs de las conexiones. Iniciando el SIMULINK. Podra considerarse al SIMULINK como un toolbox de MATLAB, en el que se puede programar grficamente. 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 librera 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.
82

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Se inicia con un nuevo modelo de SIMULINK, haciendo clic sobre nuevo en la pantalla inicial, haciendo clic sobre file en la barra de mens, luego sobre new y por ltimo sobre New model o presionado ctrl+n simultneamente con esto aparecer la ventana de insercin de bloques y simulacin. Ver Figura 42. Figura 41. Acceso a SIMULINK.

Fuente: Captura de Matlab versin trial (2008).l. Figura 42. Pantalla inicial de SIMULINK

Fuente: Captura de Matlab versin trial (2008).


83

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 43. Ventana de Insercin de bloques y simulacin, Editor de Modelos.

Fuente: Captura de Matlab versin 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 smbolo de abrir, en la barra de herramientas de la pantalla inicial de SIMULINK o sobre este mismo smbolo en el editor de modelos. Escriba en la ventana de comandos de MATLAB el nombre del archivo sin la extensin (*.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 librera SIMULINK despliega la ventana de Editor de Modelo, que consta de las siguientes partes:

Barra de Mens: 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 ms frecuencia con solo un clic del ratn. Cuando se desee conocer el propsito del botn que este en esta barra solo es necesario colocar el cursor sobre este y as se mostrar automticamente su funcin.
84

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Canvas: Este es el lienzo donde se despliega el modelo que ha sido creado o llamado (abierto). El ratn y el teclado son utilizados para crear, conectar, seleccionar, mover y editar bloques. Barra de estado: Cuando una simulacin est corriendo. Esta barra despliega el estado de la simulacin, incluyendo el tiempo actual de la simulacin

Guardando un modelo. Se puede guardar un modelo escogiendo entre Save (guardar) y Save as (guardar como) de la barras de mens. SIMULINK guarda el modelo generando un tipo especial de archivo llamado model file (archivo modelo) con una extensin *.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 localizacin 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 localizacin y tambin 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 caractersticas de los parmetros de los bloques. Para generar el reporte de un modelo actual se selecciona en la barra de mens Print details (imprimir detalles) y aparece la siguiente pantalla de dilogo: Figura 44. Ventana de dialogo para realizar los reportes.

Fuente: Captura de Matlab versin trial (2008).l.

85

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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.

Leccin 13: Modelos

En las siguientes secciones se describir como crear, configurar y correr un modelo. Un modelo en SIMULINK es una representacin de un modelo matemtico de un sistema dinmico cualquiera pero como se ha mencionado esto se realiza empleando diagramas de bloques, el modelo matemtico 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 botn nuevo Modelo (figura 41) en la barra de herramientas de la pantalla inicial de SIMULINK y luego aparecer la pantalla de edicin de modelo. Figura 45. Creando un nuevo modelo.

Fuente: Captura de Matlab versin trial (2008).l.

Aadir Bloques. Para crear cualquier modelo en SIMULINK se deben arrastrar los bloques que sean necesarios para el diseo del diagrama. El siguiente ejemplo servir como gua para la construccin de modelos, en este se emplearn muchos de los comandos y acciones necesarias para este fin. El modelo propuesto tiene la funcin de integrar una onda seno se anexa un dispositivo de visualizacin para poder observar la respuesta. El diagrama de bloques del modelo es el siguiente:

86

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 46. Diagrama de bloques del ejemplo

Fuente: Captura de Matlab versin trial (2008).l. Para crear este modelo, se necesitan copiar los bloques de las siguientes libreras de bloques:

Source library (Librera de fuentes): El bloque de la onda seno Sinks library (Librera de sumideros): El bloque de visualizacin de la respuesta. Continuous library (Librera de bloques en tiempo continuo): El bloque integrador. Signal Routing Library (Librera de enrutamiento de seal): El bloque Mux

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

87

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 47. Navegador de libreras

Fuente: Captura de Matlab versin trial (2008).l. Ahora se selecciona y se arrastra este bloque desde el navegador de libreras al editor de modelo. Otra forma de copiar este bloque es abriendo la ventana de librera de fuentes, esto se logra haciendo clic con el botn derecho del ratn sobre sources (fuentes) y luego sobre el botn de Open library (Abrir librera). Luego se selecciona y se arrastra este bloque desde la ventana de libreras y se arrastra en el editor de modelo. De manera similar se copian los dems elementos del ejemplo buscndolos en sus respectivas libreras en el navegador de libreras, arrastrndolos desde sus libreras 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 ratn. Una vez se han organizado los bloques, el modelo debe lucir de la siguiente manera:

88

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 48. Bloques organizados dentro del editor de modelo

Fuente: Captura de Matlab versin trial (2008). Cabe anotar que dependiendo de la funcionalidad del bloque, este posee puertos de entrada o salida en uno o ms de sus costados representados por smbolos >, si la punta de este smbolo 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 versin trial (2008). Conectando los Bloques. Ahora se conectarn los bloques para poder completar el modelo. Se conecta la salida del bloque de la onda seno en la entrada superior del bloque de multiplexacin (mux), para tal efecto se posiciona el puntero del ratn sobre el puerto de salida del bloque de la onda seno, el puntero cambia de forma automticamente al ubicarse inmediatamente arriba de los puertos indicando que al hacer clic la conexin ser realizada adecuadamente (ver figura 50). Figura 50. Conexin de los bloques.

(a) Fuente: Captura de Matlab versin trial (2008).


89

(b)

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Ahora con el botn izquierdo del ratn sostenido se debe dirigir desde el puerto de salida hasta el puerto superior de entrada del bloque de multiplexacin, el cursor cambia nuevamente de forma a una cruz doble al acercarse al segundo bloque, se debe soltar el botn y los bloques quedarn conectados. En la figura 51 se observa que la mayora de las conexiones van de un puerto de salida de un bloque hasta un puerto de entrada de otro. Existe una lnea que se ramifica, sta conecta la salida de la onda seno con el bloque integrador a la vez que conecta tambin con una de las entradas del multiplexor, es decir, que la misma seal llega a dos bloques distintos. Para poder realizar esto se realizan los siguientes pasos: se ubica el cursor sobre la conexin ya hecha y se selecciona el punto donde se desea realizar la unin. Seguidamente se presiona la tecla ctrl (o el botn derecho del ratn). Presionando el botn izquierdo del ratn se arrastra el puntero hasta el puerto de entrada o sobre el bloque mismo, entonces se suelta el botn del ratn, SIMULINK dibujar la lnea de conexin comenzando desde el punto que se escogi hasta el puerto de entrada del bloque. Figura 51. Ramificacin de una conexin.

(a)

(b)

(c) Fuente: Captura de Matlab versin trial (2008). Para finalizar el ejemplo se deben realizar las dems conexiones completando el diagrama de bloque.

90

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Configurando el modelo. Para realizar la simulacin se debe configurar SIMULINK. Lo primero que debe realizarse es abrir la ventana de dilogos Configuration Parameters (Configuracin de parmetros), esto se consigue dirigindose a la opcin Simulation (simulacin) en la barra de mens del editor de modelo. En el cuadro de dialogo tiempo de simulacin, por lo pronto solo se configura el tiempo de detencin de la simulacin a los 10 segundos. Figura 52. Cuadro de dilogo para la configuracin de los parmetros de simulacin

Fuente: Captura de Matlab versin trial (2008) Corriendo el modelo. Finalmente se selecciona start (inicio) en Simulation (Simulacin) en la barra de mens o en la barra de herramientas presionar el icono de start simulation (iniciar simulacin) Figura 53. Inicio y/o detencin de la Simulacin

Fuente: Captura de Matlab versin trial (2008)


91

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

La simulacin se detiene cuando se alcanza el tiempo de parada especificada en la ventana de dilogos de configuracin de parmetros o cuando es detenida por el usuario haciendo uso del botn de parada en la barra de herramientas o dirigindose a stop en el men simulation en la barra de mens. Para observar la respuesta de la simulacin, se hace doble clic sobre el visualizador (Scope) (figura 54). Figura 54. Respuesta de la simulacin.

Fuente: Captura de Matlab versin trial (2008) Adicionando comentarios. Las anotaciones proveen informacin en forma de texto acerca del modelo con el que se est trabajando. Se puede aadir un comentario en cualquier rea que no est ocupada por el diagrama de bloque. Para crear una anotacin en el modelo, se debe hacer un doble clic en un rea no ocupada del diagrama de bloque, un pequeo rectngulo aparecer y el cursor cambia a un punto de insercin, se escribe el comentario en este espacio, cada lnea escrita es centrada dentro del rectngulo que rodea al comentario, luego de finalizar la anotacin o comentario se puede arrastrar hasta una nueva ubicacin dentro del modelo.

92

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 55. Anotaciones o comentarios.

Fuente: Captura de Matlab versin trial (2008)

Leccin 14: Subsistemas. Cuando se incrementa el tamao y la complejidad del modelo, se pueden simplificar los bloques en subsistemas, estos poseen las siguientes ventajas:

Reduce el nmero de bloques mostrados en la ventana de edicin de modelos. Permite la agrupacin de bloques funcionalmente relacionados. Permite establecer un diagrama de bloques jerrquicos, donde el bloque del subsistema est en una capa y los bloques que componen al subsistema estn en otra capa.

Los subsistemas pueden ser creados de dos formas:

Aadiendo un bloque de subsistemas al modelo, para luego abrirlo y adicionar en este los bloques que componen al subsistema en la ventana de subsistema. Aadir los bloques que componen el subsistema, luego agruparlos en un subsistema.

93

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Creando subsistemas por adicin al bloque subsistemas. Para crear un subsistema, antes de agregar los bloques que los contiene, se aade un bloque subsistema al modelo que se est diseando, para tal efecto se debe copiar el bloque de la librera 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 edicin 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 versin trial (2008) Creando subsistemas por agrupacin 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 lneas de conexin, que deban estar dentro del subsistema con una ventana de seleccin, empleando el ratn, no se pueden especificar los bloques que deban estar seleccionndolos 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 seleccin, sta se realiza arrastrando el ratn mientras se mantiene el clic Izquierdo presionado formando un rectngulo de un tamao adecuado, cuando se libera el botn del ratn, los dos bloques y todas las lneas de conexin, son seleccionados.
94

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 57. Seleccin de bloques

(a)

(b)

(c) Fuente: Captura de Matlab versin 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 despus 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 automticamente 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 librera. Particularmente se puede evitar que se vea o modifique el contenido de una librera del subsistema, aunque permite al usuario su utilizacin. Para controlar el acceso a la librera del subsistema, se debe abrir la ventana de dialogo de los parmetros del subsistema y ajustar el parmetro Access Parameter (Parmetro de Acceso) a ReadOnly (solo lectura) o NoReadoWrite (No lectura o escritura). La primera opcin permite al usuario ver el contenido de la librera de subsistemas y hace copias locales para prevenir que otro usuario modifique la copia original. La segunda opcin evita que otro usuario vea el contenido de la librera, realice copias o modifique los permisos de la librera de subsistemas

95

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Leccin 15: Subsistemas condicionados en su ejecucin. Un subsistema ejecutado condicionalmente, es el que su ejecucin depende de un valor en una seal de entrada. La seal que controla si se ejecuta un subsistema es llamada seal 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 seal de control sea positiva. Su ejecucin se inicia cuando la seal cruza por cero (del ciclo negativo al positivo) y contina su ejecucin siempre y cuando la seal se mantenga positiva. El subsistema tiene una sola seal 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 seal 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 seal de control es una onda seno, el subsistema estar alternando entre estar habilitado y deshabilitado, como se muestra en la siguiente figura, si la direccin de la flecha es ascendente se habilita y si es descendente se deshabilita. Figura 58. Seal de habilitacin de un subsistema.

Fuente: Armando Portela (2008).


96

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

SIMULINK se basa en la pendiente en el cruce por cero para determinar cuando estar habilitado. Si la seal 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 librera Ports & Subsystems (Puertos y subsistemas), SIMULINK adiciona un smbolo 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 seal de salida se encuentra disponible para otros bloques. Mientras el subsistema est deshabilitado, se puede mantener la seal de salida en sus valores previos o volver a sus valores iniciales. Se debe abrir la ventana de dilogo para cada puerto de salida y seleccionar una de las opciones del parmetro Output when disabled (salida cuando est deshabilitado), como se muestra en la figura 59. Figura 59. Ventana de dilogo para el ajuste de las salidas.

Fuente: Captura de Matlab versin trial (2008)

97

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Se escoge held (mantener) para conseguir que la salida mantenga su valor ms 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 dilogo del bloque habilitado y seleccionar una de las opciones para el parmetro State when enabling (estado del subsistema cuando est habilitado), como se muestra en la siguiente ventana de dilogo. Figura 60. Ventana de dilogo para el ajuste de estados.

Fuente: Captura de Matlab versin trial (2008)

Se escoge held (mantener) para conseguir que se conserven los valores ms recientes. Se escoge reset (reiniciar) para revertir los estados a sus valores iniciales.

Extrayendo la seal de control. Es posible extraer la seal de control, esta es una opcin de la ventana de dilogo del bloque habilitado (enable), que permite extraer la seal habilitadora de control. Esta caracterstica permite apagar la seal de control, esto puede ser til cuando la lgica del modelo cuando el subsistema se encuentra deshabilitado depende de los valores contenidos en la seal de control.

98

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 61. Apagado de la seal de control.

Fuente: Captura de Matlab versin 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 simulacin. El subsistema habilitado y el modelo deben usar un reloj comn. Por ejemplo en el sistema de la figura 58 se observa que contiene cuatro bloques discretos y una seal 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 seal de control de habilitacin es generada por un bloque Generador de pulsos, nombrado como signal E (seal 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.

99

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 62. Modelo de un subsistema habilitado.

Fuente: Captura de Matlab versin trial (2008) Figura 63. Indicador del funcionamiento de cada bloque.

Fuente: Armando Portela (2008). Los bloques A y B se ejecutan independientemente de la seal de control porque no hacen parte del subsistema. Cuando la seal de control se convierte en positiva, los bloques B y C se ejecutan a sus tasas de muestreo hasta que la seal vuelva a cero. Cabe anotar que la seal del bloque C no se ejecuta a los 0.875 segundos cuando la seal 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 seal de disparo, el cual puede ser continuo o discreto. Un subsistema disparado tiene una sola entrada de control, llamada trigger Input
100

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

(seal 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 ejecucin. 1. Disparos en flanco ascendente: se ejecuta el subsistema en el instante en que la seal 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 seal 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 seal de disparo es de flanco ascendente o descendente. En el caso de sistemas discretos, una seal en ascenso o en descenso con referencia en cero es considerada un evento de disparo nicamente si la seal permanece en cero por ms de un ciclo precediendo a una elevacin o una cada. Esto elimina los falsos disparos ocasionados por el muestreo de la seal de control. Por ejemplo en la siguiente figura para un sistema discreto, no ocurre un disparo ascendente en el paso 3 porque la seal solamente se ha mantenido un solo paso antes de que la elevacin ocurra. Figura 64. Nivel de seal.

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 seal cuadrada en la entrada de control,

101

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 65. Subsistema activado por disparo.

Fuente: Captura de Matlab versin trial (2008) Para crear un subsistema de este tipo, se debe copiar el bloque de disparo (Trigger Block) de la librera de Puertos y subsistemas (Ports &Subsystems) en un subsistema, SIMULINK adiciona automticamente un smbolo de disparado y un puerto de entrada de control en el bloque del subsistema. Para seleccionar el tipo de disparo, En la ventana de dilogo se selecciona una de las opciones para el parmetro Trigger type (tipo de disparo), como se muestra en la figura 66. Figura 66. Ventana de dilogo para la seleccin del disparo.

Fuente: Captura de Matlab versin trial (2008) SIMULINK utiliza diferentes smbolos 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 smbolos.

102

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 67. Subsistema de ascenso, descenso o ambos.

Fuente: Captura de Matlab versin 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, tambin 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 seal de control de disparo. Una opcin en la ventana de dilogo del bloque de disparo, permite extraer la seal de control, para poder realizar esto se habilita la opcin Show output port (mostrar puerto de salida) Figura 68. Mostrar el puerto de salida.

Fuente: Captura de Matlab versin trial (2008)

103

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

El campo Output data type (tipo de dato de salida), le permite al usuario especificar el tipo de dato a la seal de salida, como, auto (automtico), int (entero) o double (doble). La opcin auto causa que el tipo de dato de la salida se ajuste al del puerto al cual est conectada la seal 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 ejecucin 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 habilitacin para evaluar la seal de control. Si su valor es ms grande que cero, se ejecuta el subsistema. Si ambas seales son vectores el sistema se ejecuta al menos si un elemento de cada vector es mayor que cero. Para crear un
104

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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

Figura 70. Smbolo del subsistema habilitado y disparado.

Fuente: Captura de Matlab versin 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 versin trial (2008)

105

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 versin trial (2008) El bloque marcado con pos est habilitado cuando la onda AC es positiva, permitiendo su paso sin ninguna modificacin. 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 seal del bloque que est habilitado, el cual pasa la salida al visualizador con la seal en su forma original, el visualizador muestra la respuesta en pantalla. Figura 73. Respuesta del ejemplo.

Fuente: Captura de Matlab versin trial (2008)


106

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

ACTIVIDAD DE AUTOEVALUACIN UNIDAD 1 Para autoevaluar la unidad se propone dos actividades: Actividad 1 1. Tomese una fotografia a una resolucin 8x 2. Leer el archivo desde Matlab (recuerde que este debe estar almacenado en el espacio de trabajo de Matlab) 3. Almacenar la foto en la matriz A 4. Convertirla en escala degrises 5. Guardar en un archivo la foto en esa escala de grises. Actividad 2 1. Elija una ecuacin diferencial cualquiera 2. Obtenga la funcin de transferencia 3. Halle la respuesta del sistema ante un funcin impulso 4. Halle la respuesta del sistema ante un funcin escaln

107

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

FUENTES DOCUMENTALES UNIDAD 1

BIBLIOGRAFIA

Comunicaciones Andrew Hopper. (1989). Diseo de redes locales. USA: Addison-Wesley. Carlson (1997). Sistema de comunicacin. Colombia: McGraw Hill.

Stremler (1993). Introduccin a los sistemas de comunicacin. USA: Addison Wesley. Tanenbaum. (1997). Redes de computadoras (3ra Ed). Mexico: Prentice Hall. Tomasi: (1996). Sistemas de comunicaciones electrnicas (2da Ed). Mexico: Prentice.

Control Bolton W. Ingenieria de Control (2da Edicin): Alfaomega Franklin Gene. Control de Sistemas con Retroalimentacin: Iberoamericana. Kuo Benjamin. Sistemas de control automtico. (7 Edicin): Prentice Hall. Ogata katsuhiko. Ingenieria de control Moderna (4 edicin): Prentice Hall

Matlab Etter Delores. Solucin de Problemas de Ingeniera con Matlab. (2da Edicin): Prentice hall Hahn Brian D. (2007). Edition). Elsevier. Essential Matlab for Engineers and Scientist. (Third

Hunt Brian R. (2001), A guide to Matlab for beginners and experienced users. Cambridge University: Press.
108

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

McMahon David. (2007). Matlab Demystified: McGraw-Hill. Ogata Katsuhiko. Problemas de Ingeniera 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 Lnea]. Recuperado el 19 de julio de 2009, de http://www.mathworks.es/access/helpdesk/help/helpdesk.shtml Indiana University. Matlab. (2009). [en Lnea]. Recuperado el 19 de julio de 2009, de http://www.indiana.edu/~statmath/math/matlab/index.html Introduccin a Matlab. (2001). [en Lnea]. 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 Lnea]. Recuperado el 19 de julio de 2009, de http://www.desi.iteso.mx/sys/matlab/matlab.htm The Mathworks. (2009). [en lnea]. Recuperado el 19 de julio de 2009, de http://www.mathworks.es/ Tutorial de Matlab. (1997). [en Lnea]. Recuperado el 19 de julio de 2009, de http://www.angelfire.com/la/hmolina/matlab1.html Tutoriales de control con Matlab. (1996). [en Lnea]. Recuperado el 19 de julio de 2009, de http://ib.cnea.gov.ar/~control2/Links/Tutorial_Matlab_esp/index.html

Scilab

109

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Introduction to Scilab. (2009). [en Lnea]. Recuperado el 19 de julio, de http://pauillac.inria.fr/cdrom/www/scilab/doc/intro/index.html Scilab. (2009). [en Lnea]. Recuperado el 19 de julio de 2009, de http://www.scilab.org/ Welcome to Scilan.in (). [en Lnea]. Recuperado el 19 de Julio de 2009, de http://scilab.in/index.php?title=Main_Page

Descargas Aprenda matlab 7.0. (2005). [en Lnea].Recuperado el 19 de julio de 2009, de http://mat21.etsii.upm.es/ayudainf/aprendainf/Matlab70/matlab70primero.pdf Scilab 5.1.1. (20090. [en Lnea]. Recuperado el 19 de julio de 2009 de, http://scilab.softonic.com/ TheMathWorks. (2009). [en Lnea]. Recuperado el 19 de julio de 2009, de http://www.mathworks.com/products/matlab/

110

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

UNIDAD 2. SIMULINK

INTRODUCCIN Simulink es una herramienta para el modelaje, anlisis y simulacin de una gran variedad de sistemas fsicos y matemticos, incluyendo sistemas no lineales y sistemas discretos. Simulink adiciona muchas caractersticas especficas a los sistemas dinmicos, mientras conserva toda la funcionalidad de propsito general de MatLab, de esta forma Simulink no es un programa separado de MatLab, sino un anexo a l. Para simplificar la definicin del modelo Simulink usa diferentes clases de ventanas llamadas ventanas de diagramas de bloques. En estas ventanas se puede crear y editar un modelo grficamente usando el mouse. Despus de definir un modelo este puede ser analizado seleccionando una opcin desde los mens de Simulink o entrando comandos desde la lnea de comandos de MatLab.

JUSTIFICACION En electrnica es fundamental el estudio y anlisis de sistemas dinmicos lineales, no lineales, continuos, discretos o hbridos; de igual forma es relevante el estudio y anlisis de sistemas de control, principalmente en estos elementos radica la importancia del estudio de herramientas que faciliten dichos estudios y anlisis, de forma tal que se puedan poner a prueba sin que esto ocasiones efectos secundario en el sistema, que no sobrepasan un escritorio de estudio.

INTENCIONALIDADES FORMATIVAS

Propsitos 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
111

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

esquemas mentales en el estudiante con los que podr abordar por su propia cuenta tanto el diseo y desarrollo de soluciones a problemticas planteadas.

Objetivos Que el estudiante ample complemente y profundice en las caractersticas operativas, tcnicas, los beneficios del aplicativo Matlab, desde el punto de vista del Simulink, para que as puedan emplear y aplicar dichos conocimiento en el anlisis de sistemas de control y cualquier tipo de sistema dinmico.

Competencias El estudiante conoce las caractersticas y posibilidades que le brinda SIMULINK de Matlab, adems conoce los procedimientos sistemticos para interactuar con stos y dar soluciones a partir de su implementacin en problemas electrnicos.

Metas de aprendizaje El estudiante aprender de forma individual las temticas del mdulo 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 pequeos programas o aplicaciones en donde el estudiante se valga de toda la informacin disponible, de su espritu investigativo y del trabajo en grupo para buscar la manera de generar las soluciones ms ptimas y funcionales ante las problemticas planteadas.

Denominacin de Captulos Captulo 1. Modelar con Simulink Captulo 2. Navegar por los Modelos Captulo 3. Bloques, seales y funciones

112

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

CAPITULO 1: MODELAR CON SIMULINK

Introduccin. Simulink es una herramienta que permite realizar fcilmente el modelado de sistemas dinmicos, tiene dos fases: la definicin del modelo y el anlisis del modelo. La definicin del modelo significa construir el modelo a partir de elementos bsicos construidos previamente, tal como, integradores, bloques de ganancia o controladores. El anlisis del modelo significa realizar la simulacin, linealizacin y determinar el punto de equilibrio del modelo

Leccin 16. Modelar Ecuaciones Para explicar de qu forma se modelan ecuaciones, se har uso de dos ejemplos: En el primer ejemplo se realizar la conversin de grados Celsius a Fahrenheit, el modelo de esta conversin est definido por la siguiente la ecuacin:

9 TF = TC + 32 5

Donde TF es la temperatura en grados Fahrenheit y TC la temperatura en grados Celsius. Primero se considerarn los bloques que son necesarios para construir el modelo: 1. Un bloque de rampa para la seal de entrada de temperatura de la librera de fuentes (Sources Library). 2. Un bloque de constante, para definir el valor de la constante 32, tambin de la librera de fuentes (Sources Library). 3. Un bloque de ganancia para multiplicar la seal de entrada por 9/5, de la librera de matemticas (Math Library). 4. Un bloque de suma para sumar las dos cantidades, tambin de la librera de matemticas (Math Library). 5. Un bloque visualizador (Scope) para mostrar la respuesta de librera de sumideros (Sinks Library).

113

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Se organizan los bloques en la ventana de edicin 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 dilogo desplegada, seguidamente se cierra dicha ventana. Figura 74. Bloques del ejemplo de conversin de unidades.

Fuente: Captura de Matlab versin trial (2008) Ahora se conectan los bloques Figura 75. Bloques conectados.

Fuente: Captura de Matlab versin trial (2008) El bloque rampa emula la entrada de temperatura en grados Celsius, se abre el bloque y se cambia el parmetro 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 aade 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 simulacin. El segundo ejemplo es el modelado de un sistema continuo basado en una ecuacin diferencial:
114

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

x ' (t ) = 2 x(t ) + u (t )

Donde u(t) es una onda cuadrada con amplitud 1 y frecuencia de 1rad/sec. Se emplea un bloque integrador que acta 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 generacin de seales seleccionando la forma de onda cuadrada; se deben cambiar las unidades por defecto a radians/sec y nuevamente el bloque de visualizacin. En este modelo, la direccin inversa del bloque de ganancia inferior se logra seleccionndolo y luego usar el comando Flip Block (voltear bloque) del men Format (formato) Figura 76. Diagrama de bloques de la ecuacin diferencial.

Fuente: Captura de Matlab versin trial (2008) Un importante concepto en este modelo es lazo que incluye el bloque de suma, el integrador y el de ganancia. En esta ecuacin, x es la salida del bloque integrador y tambin es la entrada de los bloques que calculan x. Esta relacin es implementada usando un lazo de retroalimentacin. El visualizador muestra el valor de x.

115

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 77. Visualizacin de la respuesta de la ecuacin diferencial.

Fuente: Captura de Matlab versin trial (2008) La ecuacin del ejemplo tambin puede ser expresada como una funcin de transferencia, el modelo usa el bloque Transfer Fcn (Funcin 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 ecuacin anterior se convierte en:

sx = 2 x + u
Despejando x
x= u s+2

1 x = u s+2

El bloque de funcin de transferencia usa como parmetros los coeficientes del numerador y denominador. En este caso el numerador es 1 y el denominador es s+2. Ambos trminos 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].

116

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 78. Modelo del ejemplo como funcin de transferencia.

Fuente: Captura de Matlab versin trial (2008) Los resultados de esta simulacin son idnticos a los proporcionados por el diagrama de bloques realizado previamente. Evitando Lazos Invlidos. 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 retroalimentacin. Sin embargo es posible crear lazos que no pueden ser simulados. Los tipos comunes de lazos invlidos son:

Lazos que crean conexiones invlidas o intentan modificar los argumentos de entrada y salida de una funcin llamada. Subsistemas auto disparados y lazos que contienen subsistemas disparados sin seal de disparo. Lazos que contengan subsistemas que estn en funcionamiento.

Para detectar si el modelo diseado contiene lazos invlidos, seleccione el comando Update diagram (actualizar diagrama) del men Edit (editar). Si el modelo contiene lazos invlidos, SIMULINK ilumina el lazo y muestra un mensaje de error en el Observador de diagnstico de simulacin (Simulation Diagnostic Viewer).

117

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 79. Diagnstico de un lazo invlido

Fuente: Captura de Matlab versin trial (2008)

Leccin 17: 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 librera Stateflow de MATLAB, estos bloques proveen a los usuarios de SIMULINK de herramientas para la implementacin de requerimientos de una lgica simple. Se pueden realizar sentencias de control de flujo como las existentes en C, usando subsistemas ordinarios y los siguientes bloques de la librera de subsistemas. Tabla 16. Relacin entre sentencias en C y bloques de SIMULINK I Sentencia en C If-else Switch Bloque If , Action port (puerto de accin) Switch case Action port (puerto de accin)

118

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Sentencia if-else (si-sino) Para el Control de Flujo. El siguiente diagrama describe una forma generalizada para la implementacin de esta sentencia en SIMULINK Figura 80. Implementacin de la sentencia si-sino en SIMULINK.

Fuente: Captura de Matlab versin trial (2008) Para construir esta sentencia se debe hacer lo siguiente: 1. Se deben proporcionar las entradas de datos al bloque if para la construccin de las condiciones if-else. Las entradas del bloque if son ajustadas en la ventana de dilogo 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 tambin son ajustados en la ventana de dilogo de propiedades. Se usan los valores de entrada u1, u2,, un para expresar las condiciones del campo if en la ventana de dilogo de las sentencias if, elseif, else. Se pueden seleccionar mltiples condiciones elseif al habilitar la condicin else. 3. Se deben conectar cada puerto de condicin a un subsistema. Cada puerto de salida de condicin if, elseif, else del bloque if es conectado a un subsistema para que sea ejecutado cuando la condicin de dicho puerto sea cierta. Se crean esos subsistemas aadindole un bloque de Action Port (Puerto de accin) al subsistema, esto crea un modulo de subsistema
119

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

con puerto llamado Action, donde se conecta la condicin del bloque if, aunque tambin existe un bloque llamado If action subsystem en el que hay que aadir 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 seal de salida sea controlada por una seal de reloj, de tal manera que en el tiempo bajo de la seal de reloj, se observe en la salida una seal senosoidal y en el tiempo alto de la seal de reloj una seal diente de sierra . Como se requiere una condicin para controlar la salida, lo ms 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 condicin (se encuentra en la librera Ports & Subsystems), y el segundo donde se escriben como un subsistema los comandos a ejecutar en caso de cumplir o no la condicin, (este bloque es denominado If Action Subsystem), esto se puede apreciar en la figura 81. Para acceder a la programacin de estos subsistemas basta con dar doble clic sobre el bloque y aparecer una nueva ventana en la cual se colocan las instrucciones.

120

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 81. Utilizacin de If- Else

Fuente: Captura de Matlab versin 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 versin trial (2008)

121

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Sentencia de Control de Flujo Switch. El siguiente diagrama describe una forma generalizada para la implementacin de esta sentencia en SIMULINK Figura 83. Implementacin de la sentencia Switch en SIMULINK.

Fuente: Captura de Matlab versin 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 numricos del argumento de entrada. Se pueden aadir casos al bloque Switch case a travs de la ventana de dilogo de propiedades de este bloque. Los casos deben ser sencillos o multi-evaluados, se puede aadir opcionalmente un caso por defecto, el cual es verdadero si los dems casos son falsos. Una vez aadidos 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 condicin de dicho puerto sea cierta. Se crean esos subsistemas aadindole un bloque de Action Port (Puerto de accin) al subsistema, esto crea un modulo de subsistema con puerto llamado Action, donde se conecta la condicin del bloque if, aunque tambin existe
122

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

un bloque llamado If action subsystem en el que hay que aadir el subsistema. Una vez conectado el subsistema este se comporta como un subsistema habilitado.

Leccin 18: 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 librera de subsistemas. Tabla 17. Relacin entre sentencias en C y bloques de SIMULINK II. Sentencia en C Do-while (haga hasta) For (para) While (Mientras que) Fuente: Armando Portela (2008) Sentencia de control de flujo While (Mientras que). El siguiente diagrama describe una forma generalizada para la implementacin de esta sentencia en SIMULINK Figura 84. Implementacin de la sentencia While en SIMULINK Bloque While Iterator (mientras que) For Iterator (para) While Iterator (mientras que)

Fuente: Captura de Matlab versin trial (2008)

123

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 husped, ste se convierte automticamente 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 condicin inicial en el puerto de entrada de datos del bloque While Iterator. Este bloque requiere una entrada de datos de condicin inicial (etiquetada como IC), para su primera iteracin. Esta debe ser originada fuera del subsistema While. Si este valor es diferente de cero la primera iteracin se ejecuta. 3. Se proveen los datos de entrada para los puertos de condicin 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 iteracin del bloque While Iterator, a travs de la ventana de dilogos de las propiedades del bloque. El valor de iteracin es 1 para la primera iteracin y es incrementada en 1 para las subsecuentes iteraciones. 5. Cambiar el tipo de iteracin del bloque While iterator a do while (Haga hasta) a travs de la ventana de dilogos de las propiedades del bloque. La etiqueta del subsistema husped cambia a do{}while. Con una iteracin de este tipo no se requiere de condicin inicial, porque todos los bloques en el subsistema son ejecutados una vez el puerto de condicin (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 implementacin de esta sentencia en SIMULINK

124

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 85. Implementacin de la sentencia For en SIMULINK.

Fuente: Captura de Matlab versin trial (2008) Para construir esta sentencia se debe realizar lo siguiente: 1. LLevar un bloque subsistema For Iterator del navegador de librera, hacia el modelo que se est construyendo. 2. Se puede ajustar el bloque For Iterator, para tomar como entrada el nmero de iteraciones a ejecutar de forma externa o interna. A travs de la ventana de dilogo 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 nmero de iteraciones. la entrada a este puerto debe venir de forma externa al subsistema. 3. Ajustar directamente en la ventana de dilogo de las propiedades del bloque el nmero de iteraciones. 4. Ajustar la salida del valor de iteracin del bloque For Iterator, a travs de la ventana de dilogos de las propiedades del bloque. El valor de iteracin es 1 para la primera iteracin y es incrementada en 1 para las subsecuentes iteraciones.
125

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Ejemplo: Construir un programa que calcule el factorial de un nmero. El factorial de un nmero es la multiplicacin del mismo por los nmeros 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 librera 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 programacin de este se observa en la figura 87. Figura 86. Factorial de un nmero en Matlab.

Fuente: Captura de Matlab versin trial (2008) En este ejemplo hay que tener especial cuidado con el bloque 1/z, donde hay que darle la condicin 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 errneo.

126

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 87. Programacin de un For en Simulink

Fuente: Captura de Matlab versin trial (2008)

Leccin 19: Ejemplos de Modelado. Ejemplo 1. Simular la respuesta temporal del sistema de orden 1

G ( s )=

2.84 , ante una seal de entrada escaln, rampa y senosoidal. 4.28s + 1

Se utiliza un mux para seleccionar la seal de entrada que se desea observar en el osciloscopio, esta seleccin se hace mediante una constante que indica el nmero de la seal de entrada que se aplica al sistema, como se observa en la figura 88 en donde se esta aplicando al sistema la seal escaln.

127

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 88. Simulacin de un sistema de orden 1.

Fuente: Captura de Matlab versin trial (2008) Ejemplo 2. Dado el sistema mecnico de la figura 89, que est compuesto por una masa M=5, unida a un muelle de constante elstica 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 ecuacin diferencial que rige el comportamiento del sistema es:

f (t ) = M

dx d 2x + B + Kx(t ) 2 dt dt

La simulacin en simulink se puede hacer de dos formas, la primera simulando la ecuacin diferencial y la segunda determinando la Funcin de Transferencia del sistema. En este ejemplo se toma la primera opcin.

128

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Se despeja la derivada de mayor orden de la ecuacin diferencial

f (t ) B

d 2x dx Kx (t ) = M 2 dt dt

1 M

dx d x Kx(t )) = 2 * ( f (t ) B dt dt
2

Figura 89. Sistema Mecnico.

Fuente: Ingeniera de Control Moderno. Katsuhiko Ogata 3 Edicin. Ed Prentice Hall 1998. En la figura 90 se muestra el diagrama de bloques que representa a la ecuacin diferencial del sistema mecnico y la respuesta del sistema ante una seal escaln. La seal escaln representa una fuerza aplicada al sistema de amplitud constante, y la seal de salida representa el desplazamiento x(t), que en principio es oscilatorio y posteriormente se estabilizada alcanzando un valor final de aproximadamente 0.1.

129

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 90. Simulacin Sistema Mecnico.

Fuente: Captura de Matlab versin 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 seal escaln unitario. Figura 91. Circuito RLC serie

Fuente: Ingeniera de Control Moderno. Katsuhiko Ogata 3 Edicin. Ed Prentice Hall 1998.

130

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

La ecuacin diferencial que representa al sistema es :

v(t ) = R i (t ) + L

di 1 + i (t ) dt C

Aplicando Transformada de Laplace a la ecuacin :

V ( s) = R I ( s) + LsI ( s ) +

1 I (s) Cs

La funcin de Transferencia del sistema es:

G(s) =

Vo( s ) 1 = 2 Vi ( s ) LCs + RCs + 1

La simulacin del sistema RLC serie se observa en la figura 92. Figura 92. Simulacin sistema RLC serie

Fuente: Captura de Matlab versin trial (2008)


131

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Leccin 20: Consejos para la Construccin de Modelos. Estos son una serie de consejos para la construccin de modelos y as evitar errores en la simulacin.

Uso de memorias, en general a ms memoria mejor funcionamiento. El uso de jerarquas, modelos ms complejos a menudo se benefician con el uso de jerarquas de subsistemas en el modelo. Agrupar bloques simplifican el modelo del nivel superior y as hacerlo ms fcil de leer y de entender. Creacin de modelos documentados y ordenados, un modelo bien organizado y documentado, es ms fcil de leer y entender. Nombrar las seales y anotaciones en los modelos, pueden ayudar a describir que est sucediendo en el modelo. Estrategias de modelado, si los modelos que se estn diseando tienden a utilizar los mismos bloques, es ms fcil ahorrar bloques agrupndolos en un modelo. Entonces cuando se construye un nuevo modelo, apenas abra este modelo, copie los bloques comnmente usados de este modelo. Se puede crear una librera de bloques colocndolos en un mismo sistema y guardndolo. Se puede tener acceso al sistema digitando el nombre en la ventana de comandos de MATLAB. Generalmente, cuando se construye un modelo, es preferible disearlo en papel, para luego construirlo usando SIMULINK, luego de esto se aaden todos los bloques necesarios al modelo antes de conectarlos y con esto se reduce el estar revisando entre las diferentes libreras.

CAPITULO 2. NAVEGAR POR LOS MODELOS Introduccin. El entorno de SIMULINK permite acceso fcil a los modelos ya existentes, a travs 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 grfico sea bastante amigable al usuario y hace que SIMULINK sea la herramienta preferida de Matlab.

132

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Leccin 21: Explorar, Buscar y Navegar por los Modelos. En las siguientes secciones se describirn las herramientas que ayudan a una navegacin rpida en un modelo desde cualquier punto y encontrar y modificar objetos en este. El Explorador de Modelos. El explorador de modelo le permite una rpida localizacin, visualizacin y modificacin 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 versin trial (2008) El explorador de modelo incluye los siguientes componentes:

Panel de jerarquas: Este panel despliega una vista de estructura de rbol de la jerarqua del modelo

133

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 94. rbol de jerarqua.

Fuente: Captura de Matlab versin trial (2008) o Raz de SIMULINK (SIMULINK Root): El primer nodo representa la raz 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 librera cargada en la sesin 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 configuracin (Configuration preferences): Se selecciona este nodo para desplegar la configuracin preferida para los nuevos modelos en los paneles adyacentes. o Nodo de modelos (Model Nodes): este representa los ajustes de la configuracin, 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 jerarquas en el panel adyacente de contenido (contents), seleccionando el objeto. Para abrir un objeto grfico en una ventana de edicin, hacer clic derecho con el ratn y se selecciona Open (abrir). o Expandiendo modelo de referencias (Expanding model references): para hacer esto se abre el modelo referenciado, luego hacer clic
134

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

derecho con el ratn 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 pestaas, la pestaa de contents (contenido) de los objetos seleccionados en el panel de Jerarqua de modelo, la pestaa de Search result (resultados de bsqueda), muestra los resultados de la bsqueda.

Figura 95. Panel de contenido.

Fuente: Captura de Matlab versin trial (2008)

Panel de dilogo (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 mens de la ventana del explorador de modelo.

Figura 96. Barra de men principal.

Fuente: Captura de Matlab versin trial (2008)


135

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Barra de bsqueda (Search bar): Esta barra permite, configurar e iniciar bsquedas de los objetos seleccionados en el panel de jerarqua 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 bsqueda.

Fuente: Captura de Matlab versin trial (2008) Esta barra contiene los siguientes controles: Figura 98. Controles de la barra de bsqueda.

Fuente: Captura de Matlab versin trial (2008) El Buscador (The finder). El buscador localiza bloques, seales, estados y otros objetos en un modelo. Para desplegar el buscador, se selecciona Find (buscar) del men Edit (editar), entonces la siguiente ventana aparece.

136

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 99. El buscador.

Fuente: Captura de Matlab versin trial (2008) Se usan los paneles Filter options (opciones de filtrado) y Search criteria (criterios de bsqueda), para especificar las caractersticas de los objetos que se desean buscar. Luego si se tiene ms de sistema o subsistema abierto, se selecciona alguno de estos para iniciar la bsqueda, esto se logra seleccionando de la lista start in system (Iniciar en el sistema), finalmente se presiona el botn 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 versin trial (2008)


137

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 opcin, SIMULINK busca objetos dentro de sistemas enmascarados. Buscar dentro de sistemas relacionados (Look inside linked system). Seleccionando esta opcin, SIMULINK busca objetos dentro de sistemas relacionados con las libreras.

Criterios de Bsqueda (Search Criteria). Este panel permite especificar los criterios que los objetos deben satisfacer la peticin de bsqueda:

Bsicos. 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 caractersticas (hasta 7) que los objetos deben cumplir para satisfacer la bsqueda.

Figura 101. Panel de bsqueda avanzado.

Fuente: Captura de Matlab versin trial (2008) Para especificar una propiedad, ingrese su nombre en uno de los espacios en la columna de propiedad (property) del panel de bsqueda 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).

138

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

El navegador del modelo. Este navegador proporciona las siguientes opciones:

Navegar en un modelo jerrquicamente. 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 versin 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.

Leccin 22: Ejecutar la Simulacin del modelo. En los siguientes apartados se revisar los temas de cmo simular y ajustar las caractersticas de la simulacin en SIMULINK.

139

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Nociones Bsicas de la Simulacin. Para simular un modelo simplemente, solo se necesita hacer clic en el botn de start (iniciar), en el editor de modelos. Sin embargo antes de iniciar la simulacin, se deben especificar ciertas opciones de la simulacin, tales como el tiempo de inicio y detencin, y el tipo de solucionador utilizado para resolver el modelo en cada base de tiempo de dicha simulacin. El hecho de especificar las opciones de simulacin se conoce como configuracin del modelo. SIMULINK permite crear mltiples modelos de configuracin, llamar y modificar ajustes de configuracin ya existentes. Una vez definido o seleccionado el ajuste de configuracin que se ajuste a los requerimientos, se puede iniciar la simulacin. Entonces SIMULINK corre la simulacin desde el tiempo de inicio y detencin especificados. Mientras la simulacin 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 simulacin. Si un error ocurre durante la simulacin, SIMULINK detiene la simulacin y lanza el observador de diagnstico, para ayudar a determinar la causa del error.

Controlando la Ejecucin de la Simulacin.

La interfaz grfica de SIMULINK incluye un men de comandos y unos botones en la barra de herramientas, que permite iniciar, pausar y culminar una simulacin. Para ejecutar la simulacin de un modelo, se selecciona Start (iniciar), del men simulation (simulacin), del editor de modelo. Se puede utilizar un atajo por medio del teclado, utilizando la combinacin de las teclas ctrl+T para iniciar la simulacin. Un error comn es iniciar la simulacin mientras la ventana de la librera de bloques de SIMULINK est activa, se debe asegurar que la ventana que est activa sea la del editor de modelo. SIMULINK inicia la ejecucin del modelo en el tiempo que se especific en la ventana de Configuracin de parmetros (Configuration Parameters), hasta alcanzar el tiempo de detencin especificado en esta misma ventana.

140

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 103. Localizacin del botn de inicio

Fuente: Captura de Matlab versin trial (2008) Mientras la simulacin este corriendo, una barra de progreso en la parte inferior de la ventana de modelo muestra el nivel de progreso de la simulacin. Un comando de stop (parada) remplaza el comando Start (iniciar), del men simulation (simulacin), del editor de modelo. Un comando de Pause (pausa) en la barra de herramientas reemplaza el botn de Start (iniciar). Figura 104. Localizacin del botn de parada, pausa y la barra de progreso de la simulacin.

Fuente: Captura de Matlab versin trial (2008)


141

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Se puede parar o pausar una simulacin, utilizando los botones de la barra de herramientas, mientras est pausada la simulacin puede continuarse utilizando el botn de iniciar. Interactuando con una Simulacin en Curso. Se pueden realizar ciertos tipos de operaciones interactivamente mientras una simulacin se est ejecutando. Se puede: o Modificar algunos parmetros de la configuracin, incluyendo el tiempo de detencin y el mximo tamao del paso temporal. o Hacer clic sobre una lnea de conexin para observar en una pantalla la seal que est en ese momento. o Modificar los parmetros de un bloque, mientras no se cambie: o Nmero de estados, entradas y salidas. o Tiempo de muestreo o Nmero de cruces por cero. o Longitud del vector de cualquier parmetro de cualquier bloque. o Longitud del vector interno de trabajo de un bloque

Leccin 23: Importar y Exportar Datos. SIMULINK permite importar seales de entrada y datos de estado inicial del espacio de trabajo de MATLAB (workspace) y exportar seales de salida y datos de estado al workspace. Esta capacidad permite usar funciones de MATLAB estndares o hechas por el usuario para generar seales de entrada para la simulacin de sistemas y graficar, analizar y otros post-procesos con las seales 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 simulacin. 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 especificacin de la entrada externa en la ventana de edicin adyacente (edit box) y haciendo clic sobre Apply (aplicar). Los datos pueden tomar cualquiera de las siguientes formas.

142

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Importar Arreglos de datos (Arrays): Este formato de importacin 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 seal de entrada para diferentes bloques de importacin (en orden secuencial) y cada fila es el valor de entrada para el correspondiente valor de tiempo. El nmero total de columnas de la matriz de entrada debe ser igual a n+1, donde n es el nmero total de seales ingresando al modelo por los puertos de entrada. Usar una expresin temporal de MATLAB para importar datos: Se pueden importar datos desde el espacio de trabajo de MATLAB usando una expresin temporal. Para usar expresiones de tiempo, ingrese la expresin como una cadena (incluido en apostrofes) en el campo input (entrada) del panel Data Import/Export (importar/exportar datos). La expresin de tiempo puede ser cualquiera expresin de MATLAB que evala un vector fila de igual longitud que al nmero de seales 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 seal o ambos seal y datos de tiempo. Para tal efecto se selecciona la opcin structure with time (estructura con tiempo) opcin 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 seal. El campo de tiempo contiene un vector columna con los tiempos de simulacin. El campo de seales contiene un arreglo de subestructuras, cada una corresponde a un puerto de entrada del modelo. Cada subestructura de seal 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 tamao 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

143

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

especifica el nmero de filas y el segundo el nmero 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 nmero de puntos de tiempo especificados por el campo de tiempo y N es la longitud de cada vector de valor. Por ejemplo el siguiente cdigo crea una estructura de entrada para cargar 11 muestras de tiempo de un vector de seal 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 opcin Input (entrada), en el panel Data Import/Export (importar/exportar datos), e ingrese a (sin los apostrofes) en el campo de entrada expression (expresin). 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 nmero puntos de tiempos. Por ejemplo suponiendo que se desean 51 muestras de tiempo de una matriz de seal 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 versin trial (2008)


144

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 sealndolas en el rea Save to workspace (Guardar en el espacio de trabajo) del panel de la ventana de dilogo, 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 comprobacin. Para escribir ms de una variable, los nombres de esta deben ir separados por comas. SIMULINK guarda los tiempos de simulacin 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 opcin, 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

145

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 especfico. 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 opcin, 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 seales. El campo de tiempo contiene un vector con los tiempos de simulacin. El campo de seales 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 especfico 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 dimensin de la seal de salida y T es el nmeros de muestras de salidas. El campo de dimensiones especifica la dimensin de la seal de salida. El campo de etiqueta especifica la etiqueta (nombre) de la seal 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 seales. El campo de tiempo contiene un vector con los tiempos de simulacin. El campo de seales 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

146

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 simulacin. El campo de valores para este estado debera 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.

Leccin 24: Establecer la Configuracin de la Simulacin. Esto es un conjunto de valores, para los parmetros de los modelos, como el tipo de solucionador y el tiempo de inicio y detencin de la simulacin. Cada nuevo modelo es creado con un conjunto de configuracin por defecto, llamado configuracin, inicialmente especifica valores para los parmetros de los modelos. Se pueden crear y modificar ajustes de configuracin y asociarlos con un modelo. Los ajustes asociados a un modelo pueden cada uno especificar diversos valores para cualquier parmetro del modelo dado. Componentes del Ajuste de la Configuracin. Un ajuste de configuracin abarca a grupos de parmetros relacionados llamados los componentes. Cada elemento de la configuracin incluye los siguientes componentes:

Solucionador (solver). Importar/Exportar datos (Data import/export) Optimizacin Diagnstico Implementacin de hardware Referenciar modelos.

El ajuste de Configuracin Activo. Solamente un ajuste de la configuracin asociado a un modelo es activo en un momento dado. El ajuste activo determina
147

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

los valores actuales de los parmetros del modelo. El cambio del valor de un parmetro 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 rpidamente un modelo para diversos propsitos, o aplicar los ajustes estndar de la configuracin a los modelos nuevos. Mostrando los Ajustes de la Configuracin. Para exhibir el ajuste de configuracin asociado con un modelo, abriendo el explorador de modelo. El ajuste de la configuracin asociado con el modelo aparece en un nodo con forma de engranaje en el panel de jerarqua de modelo, en el explorador de modelo. El panel de contenido del explorador de modelo muestra los componentes del ajuste de la configuracin seleccionada. El panel de dialogo del explorador muestra un dilogo para fijar los parmetros del grupo seleccionado. Figura 106. Explorador de modelo para el ajuste de la configuracin.

Fuente: Captura de Matlab versin trial (2008)

Leccin 25: Resultados de la Simulacin. En la presente seccin se explican las herramientas de SIMULINK empleadas para analizar los resultados de la simulacin. Las trayectorias de de salida de SIMULINK pueden ser graficadas usando uno de los tres siguientes mtodos.

148

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Alimentar un bloque de visualizacin (Scope) o de Graficas XY (XY Graph). Escribir las salidas en variables de retorno y usar los comandos de MATLAB para realizar las grficas. Escribir las salidas usando los bloques de espacio de trabajo (workspace) y usar los comandos de MATLAB para realizar las grficas.

Utilizando el Bloque de Visualizacin. Se puede mostrar la trayectoria de salida con un bloque de visualizacin (Scope), durante la simulacin como est ilustrado en el siguiente modelo. Figura 107. Modelo para observar el uso del Scope.

Fuente: Captura de Matlab versin trial (2008) La pantalla en el Scope muestra la trayectoria de salida. Este bloque habilita al usuario para acercarse al rea de la grfica que sea del inters de este o guardar los datos al workspace. El bloque XY Graph permite graficar una seal 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 versin trial (2008)

149

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

El bloque etiquetado con Out es un puerto de salida de la librera 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 versin trial (2008) Las variables y y t, aparecen en el espacio de trabajo (workspace), cuando la simulacin se completa. Se puede almacenar el vector de tiempos para alimentar el bloque clock (reloj) hacia el bloque de workspace. Diagnosticando Errores de Simulacin. Si un error ocurre durante la simulacin, SIMULINK detiene la simulacin, abre el subsistema que causa el error (si es necesario) y muestra los errores en el visor de diagnstico de simulacin (Simulation Diagnostic Viewer). A continuacin La siguiente seccin explica como usar el visor de Diagnstico de Simulacin (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).

150

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 110. Visor de diagnstico de la simulacin.

Fuente: Captura de Matlab versin trial (2008)

Panel de resumen de errores. El panel superior muestra una lista de errores que causaron que la simulacin de SIMULINK terminara. El panel muestra la siguiente informacin 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 informacin para hacer ms espacio para las otras. Para removerlas se selecciona la opcin vista (view) del visor y se remueven las selecciones del tem correspondiente.

151

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 dems contenidos de los dems 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 versin trial (2008)

CAPTULO 3

BLOQUES, SEALES Y FUNCIONES S

Introduccin. Los bloques, seales y las funciones s forman una parte primordial de un modelo en SIMULINK en este captulo se desglosan con ms detalle sus principales caractersticas funcionales y de configuracin.

Leccin 26: Bloques y Seales. Bloques. Los bloques son los elementos de los cuales se construyen los modelos de SIMULINK. Se puede modelar virtualmente cualquier sistema dinmico creando y/o interconectando bloques ya existentes de forma adecuada para cada aplicacin.

152

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Cuando se crean modelos, se debe tener en cuenta que los bloques de SIMULINK se organizan en dos grandes categoras, los virtuales y los no virtuales. Los bloques no virtuales tienen un papel activo en la simulacin de un sistema. Si se aade 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 simulacin, estos ayudan a organizar un modelo grficamente. Algunos bloques son virtuales en algunas circunstancias y no virtuales en otras, son llamados bloques virtuales condicionales. En la siguiente tabla se presenta una clasificacin de los bloques virtuales. Tabla 18. Bloques virtuales.

Nombre del Bloque Bus selector Demux Enable From Goto Goto tag visibility Ground Import Mux Outport Selector Signal specification Subsystem Terminator Trigger

Condicin bajo la cual el bloque es virtual Virtual si la entrada al bus es virtual Siempre virtual Virtual a menos que est conectado directamente a un puerto de salida de un bloque. Siempre virtual Siempre virtual Siempre virtual Siempre virtual Virtual a menos que el bloque en el que est sea un subsistema condicionalmente ejecutado y tenga conexin directa al puerto de salida del bloque. Siempre virtual Virtual cuando el bloque en el que est sea un subsistema (condicionado o no) y no reside en la raz (mximo nivel) de la ventana de SIMULINK. Virtual excepto en el modo de Matriz Siempre virtual Virtual a menos que el bloque sea condicionalmente ejecutado y la opcin del bloque treat as Atomic Unit (tratarlo como unidad atmica.) est seleccionada. Siempre virtual Virtual cuando el puerto de salida no est presente

Fuente: Armando Portela (2008)

153

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Parmetros del Bloque.

Cada bloque de SIMULINK tiene un conjunto de atributos, llamados propiedades o parmetros, que gobierna su apariencia y su comportamiento durante la simulacin. Algunos tipos de atributos son comunes para todos los bloques, por ejemplo todos los bloques tienen el atributo de nombre, otros atributos son especficos a cada tipo de bloque como el bloque ganancia (Gain) que es el nico que tiene el parmetro 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 diseando. SIMULINK proporciona los siguientes medios para especificar los parmetros 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 dilogo Block Propierties (propiedades del bloque) o Especifica varios atributos que son comunes en todos los bloques, para mostrar esta ventana de dilogo, se selecciona el bloque en la ventana de modelo, seguidamente se selecciona Block properties del men Edit. Figura 112. Ventana de dilogo de propiedades del bloque.

Fuente: Captura de Matlab versin trial (2008)


154

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

La ventana de dilogo contiene las siguientes pestaas: o General pane (panel general): permite ajustar las siguientes propiedades: Description (Descripcin). Permite una breve descripcin para el propsito del bloque. Priority (Prioridad). Permite seleccionar la prioridad de ejecucin de un bloque con respecto a los dems bloques del modelo. Tag (Etiqueta). Es el texto asignado en el parmetro Tag y guardado con el modelo del bloque. Esta opcin permite crear etiquetas propias del usuario especficas para un bloque.

o Panel de Block annotation (Anotaciones del bloque): Este panel permite desplegar los valores de parmetros seleccionados de un bloque en una anotacin que aparece debajo del icono del bloque. Figura 113. Ventana de dilogo de anotaciones del bloque.

Fuente: Captura de Matlab versin trial (2008) Se Ingresa el texto de la anotacin que aparece en el lado derecho del panel. Ejemplo, se seleccionan las propiedades Name y priority, y a continuacin SIMULINK muestra estas propiedades con sus respectivos valores. Ejemplo:
155

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 114. Bloque mostrando sus propiedades.

Fuente: Captura de Matlab versin 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 dilogo de llamados del bloque.

Fuente: Captura de Matlab versin trial (2008)

156

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Ventana de dilogo Block parameter (parmetros del bloque). Cada bloque tiene una ventana de dilogo que permite especificar valores para los atributos que son especficos a ese tipo de bloque. Para mostrar esta pantalla se debe hacer doble clic en el modelo o en la ventana de libreras. Explorador de modelo. Este permite encontrar y ajustar rpidamente las propiedades de uno o ms 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 programacin y escritura de los archivos M (M-files) para especificar los atributos del bloque.

Librera de Bloques.

A continuacin se describirn las libreras bsicas de SIMULINK, con algunos de sus componentes. Es tarea del estudiante revisar el resto de las muchsimas opciones que presenta este paquete. Tabla 19. Libreras y bloques de SIMULINK de uso comn.

Librera Bloque Derivative (Derivada) Integrator (Integrador) Continuous (Continua): Bloques que pueden representar funciones continas en el tiempo. Funcin Derivar la seal de entrada Integra la seal de entrada, se le deben proporcionar los parmetros de lmite superior e inferior y la condicin inicial Le proporciona al usuario la posibilidad de expresar una funcin de transferencia en funcin de s. los parmetros son los coeficientes que acompaan la variable en el numerador y el denominador. La salida del bloque est retrasada con respecto a la seal de entrada y Funcin de transferencia expresada en valores de ganancias en estado estable Calcula el valor absoluto de la seal de entrada. Aplica un valor de ganancia constante a la seal de entrada.

Transfer Fcn (Funcin de transferencia) Transoport Delay (Retraso de transporte) Zero-Pole (Polos ceros)

Math (Matemticas): Bloque que realizan operaciones matemticas con la seal o seales de entrada

Abs

Gain (Ganancia)

Fuente: Armando Portela (2008)


157

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Seales. SIMULINK define seales como las salidas de los sistemas dinmicos representados por los bloques en un diagrama y por el diagrama en s mismo. Las lneas en los diagramas de bloques representan relaciones matemticas entre las seales definidas por el diagrama de bloque. Por ejemplo, una lnea que conecta la salida del bloque A con la entrada del bloque B indica que la salida de la seal de salida de B depende de la seal de salida generada en A. Se puede pensar que las seales que viajan por las conexiones realizadas en un diagrama de bloques, son seales de tipo elctrico como las que viajan en un cable telefnico, aunque esta analoga es un poco engaosa porque sugiere que el diagrama de bloque representa la conexin fsica de bloques lo cual no es cierto. Las seales de SIMULINK son entidades matemticas no fsicas y las lneas en un diagrama de bloque representan relaciones matemticas no fsicas entre seales.

Leccin 27: Tipos de datos Los tipos de datos se refieren a la forma en que una computadora representa los nmeros en memoria. Un tipo de dato determina la cantidad de almacenamiento asignada para un determinado nmero, el mtodo empleado para codificar el valor del nmero como un patrn de digito binarios, y las operaciones disponibles para manipular los distintos tipos. La mayora de las computadoras proveen las opciones de tipos datos para representar nmeros, cada una con ventajas en trminos de precisin, rango dinmico, 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 seales y los parmetros 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 seales y parmetros de bloques en un cdigo generado por la herramienta de generacin de cdigo automtica (Real-time Workshop disponible de Mathworks), escoger el tipo de datos ms apropiado para seales y bloques del modelo puede incrementar dramticamente el funcionamiento y aminorar el tamao del cdigo generado por el modelo. SIMULINK realiza una extensa comprobacin antes y durante la simulacin para asegurar que el modelo utilice los tipos de datos correctos y as el cdigo generado del modelo no se desbordar o se quedar bloqueado, produciendo

158

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

resultados indeseados. Los modelos de SIMULINK utilizan por defecto el tipo de dato doble. SIMULINK soporta la mayora 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 Double Single Int8 Uint8 Int16 Uint16 Int32 Uint32 Descripcin Punto flotante de doble precisin Punto flotante de precisin simple Entero de 8 bits con signo Entero de 8 bits sin signo Entero de 16 bits con signo Entero de 16 bits sin signo Entero de 32 bits con signo Entero de 32 bits sin signo

Fuente: Armando Portela (2008)

Leccin 28: Funciones S Una funcin S, es una descripcin en algn 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 cdigos de gran tamao escritos en C y FORTRAN, as, no tener que reescribirlos de nuevo en MATLAB. Velocidad; se pueden reescribir clculos que generan cuellos de botella (como por ejemplo lazos for) como un archivo MEX para ganar en eficiencia.

159

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 mayora de la programacin debe ser realizada en MATLAB, no se debe usar este tipo de archivos a menos que la aplicacin lo requiera. Una funcin de este tipo usa una sintaxis especial de llamado que habilita al usuario para interactuar con los solucionadores de SIMULINK. Esta interaccin es muy similar a la interaccin que toma lugar entre los solucionadores y el interior de los bloques. La forma de una funcin S es muy verstil y puede ser del tipo continuo, discreto o hbrido. Esta funcin permite al usuario aadir sus propios bloques a los modelos diseados. Se pueden crear funciones S, en los lenguajes de programacin antes mencionados, siguiendo una serie de reglas.

Leccin 29: Usar Funciones S en los modelos Para incorporar una funcin S a un modelo, se debe arrastrar el bloque desde la librera de SIMULINK definida por el usuario hacia el modelo. Luego se especifica el nombre de la funcin S en el campo S-function name (Nombre de la funcin S), como se ilustra en la siguiente figura. En este ejemplo, el modelo contiene dos instancias de un bloque de funcin 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 funcin S usa.

160

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 116. Relacin entre un bloque de funcin S, su ventana de dilogo y el archivo fuente que define el comportamiento del bloque.

Fuente: Captura de Matlab versin trial (2008) Asignando Parmetros a las Funciones S. El campo S-function parameter (parmetros de la funcin S) de los bloques funcin S, permite especificar los valores de los parmetros que puedan ser asignados a la correspondiente funcin S. se debe usar este campo conociendo los parmetros que dicha funcin requiere (si no se conocen se puede consultar la documentacin del autor del bloque o su cdigo fuente). Se deben ingresar los parmetros separados por coma, en el orden que sean requeridos por la funcin. Los parmetros 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 parmetros de la funcin para ingresar los parmetros definidos por el usuario.

161

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 117. Parmetros de la S- funcin

. Fuente: Captura de Matlab versin trial (2008) El modelo en este ejemplo incorpora limintm, una muestra de una S-funcin de ejemplo que incluye el SIMULINK. El cdigo fuente de esta funcin puede encontrarse en toolbox/simulink/blocks. La funcin limintm acepta tres parmetros: una banda inferior, una banda superior y una condicin inicial. Su salida es la integral de la seal de entrada, esta integral est definida entre la banda inferior (como lmite inferior) y la banda superior (como lmite superior). La ventana de dilogo en este ejemplo especifica una banda inferior, superior y una condicin 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. Cundo usar una funcin-S?. El uso ms habitual de una S-funcin es crear bloques de SIMULINK a medida. Se pueden usar en una variedad de aplicaciones incluyendo:

Aadir nuevos bloques de propsito general. Aadir bloques que representen drivers de dispositivos de hardware. Incorporar un cdigo fuente escrito en C. Describir un sistema como un conjunto de ecuaciones matemticas. Usar animaciones grficas

162

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Leccin 30: Como trabaja una funcin S y como se escribe en MATLAB Para crea s-funciones es necesario saber cmo trabaja. Para entender como funciona es necesario saber como SIMULINK simula un modelo y para poder lograr esto se requiere entender la matemtica de los bloques. Matemtica de los bloques. Un bloque de SIMULINK consiste en un conjunto de entradas, estados y salidas, donde las salidas estn en funcin de muestras de tiempo, de las entradas y de los estados del bloque. Figura 118. Esquema de la relacin Matemtica de los bloques

Fuente: Captura de Matlab versin trial (2008) Las siguientes ecuaciones expresan la relacin matemtica entre las entradas, los estados y las salidas.

y = f 0 (t , x, u ) (Salidas)

x = f d (t , x, u )
x d h + 1 = f u (t , x , u )

(Derivativo) (Actualizado)

Etapas de la simulacin. La ejecucin de un modelo en SIMULINK es hecha en etapas. Primero viene la etapa de inicializacin, en esta fase SIMULINK incorpora la librera de los bloques, caminos de propagacin, tipos de datos y muestras de tiempo, evala los parmetros de los bloques, determina el orden de ejecucin de los bloques y asigna los espacios de memoria. Entonces SIMULINK ingresa en un lazo de simulacin (simulation loop). En cada ciclo de la simulacin, SIMULINK ejecuta todos los bloques de los modelos en el orden que fueron determinados durante la inicializacin, para cada bloque se invoca funciones que calculan los estados y salidas del bloque para el tiempo actual. Esto contina hasta que se complete el tiempo de simulacin. La siguiente figura ilustra las etapas de la simulacin.
163

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 119. Como SIMULINK ejecuta una simulacin.

Fuente: Armando Portela (2008) Escribir funciones S en MATLAB. SIMULINK provee una Interfaz de Programacin de Aplicaciones (Application Programming Interface (API)), que permite crear bloques en donde las propiedades y comportamiento de estos estn definidos por programas realizados en MATLAB (M-files) llamados M-files Sfunction. El nivel 2 de M-files S-function le permite al usuario crear bloques que tengan todas las caractersticas y capacidades de los bloques de SIMULINK, incluyendo mltiples puertos de entrada y de salida, la habilidad para permitir la seales tanto en forma de vector como de matriz para cualquier tipo de datos soportado por SIMULINK, seales reales o complejas y la habilidad para operar a diferente tasas de muestreo.

164

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

ACTIVIDAD DE AUTOEVALUACIN UNIDAD 2 Para autoevaluar la unidad se propone dos actividades: Actividad 1 Realice un modelo en simulink que permita visualizar en un display los nmero que el usuario determine dentro de un rango definido por l, de igual forma l debe poder determinar si los nmero los visualizar en orden ascendente descendente con un intervalo x entre un nmero y otro Actividad 2 Consulte la forma de generar un nmero aleatorio inferior a un lmite dado, y a partir de sta consulta Realice un modelo en Simulink que permita generar un nmero aleatorio y dependiendo si el nmero es primo o no se encender un led rojo o verde, rojo para primo y verde para no primo.

165

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

FUENTES DOCUMENTALES UNIDAD 2

BIBLIOGRAFIA

Modelamiento Matemtico Allen Angel. (1992). lgebra intermedia. Mexico: Prentice Hall. Ayres, Jr. (1991). Clculo diferencial e integral (3ra Ed). Espaa: McGraw Hill. Granville. (1996). Clculo diferencial e integral. Mexico: Limusa. Grossman (1996). lgebra lineal. Colombia: McGraw Hill. Larson. (1994). Introduccin al Algebra Lineal. Mexico: Limusa.

Seales y Sistemas Arnold. (1992). Sistema moderno de procesamiento de datos. Irarrazaval. (1999). Anlisis de seales. Chile: McGraw Hill. Papoulis (1986). Sistemas digitales y analgicos, transformadas en FOURIER, estimacin espectral. Espaa: Marcombo. Mexico: Limusa.

Simulacin Hilario Prez. (2000). Simulacin y electrnica analgica. Prcticas y problemas. Colombia: Alfaomega. Raczynski (1993). Simulacin por Computadoras. Mexico: Noriega. Ross. (1999). Simulacin (2da Ed). Mexico: Prentice Hall. Simulacin, Un enfoque practico. Coss. Limusa. 1992. Mexico Stanley Wolf. (1980). Gua para mediciones electrnicas y practicas de laboratorio. Mexico: Prentice Hall.
166

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Matlab Etter Delores. Solucin de Problemas de Ingeniera con Matlab. (2da Edicin): Prentice hall Hahn Brian D. (2007). Edition). Elsevier. Essential Matlab for Engineers and Scientist. (Third

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 Ingeniera 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 Lnea]. Recuperado el 19 de julio de 2009, de http://www.mathworks.es/access/helpdesk/help/helpdesk.shtml Indiana University. Matlab. (2009). [en Lnea]. Recuperado el 19 de julio de 2009, de http://www.indiana.edu/~statmath/math/matlab/index.html Introduccin a Matlab. (2001). [en Lnea]. 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 Lnea]. Recuperado el 19 de julio de 2009, de http://www.desi.iteso.mx/sys/matlab/matlab.htm The Mathworks. (2009). [en lnea]. Recuperado el 19 de julio de 2009, de http://www.mathworks.es/
167

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Tutorial de Matlab. (1997). [en Lnea]. Recuperado el 19 de julio de 2009, de http://www.angelfire.com/la/hmolina/matlab1.html Tutoriales de control con Matlab. (1996). [en Lnea]. 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 Lnea]. Recuperado el 19 de julio, de http://pauillac.inria.fr/cdrom/www/scilab/doc/intro/index.html Scilab. (2009). [en Lnea]. Recuperado el 19 de julio de 2009, de http://www.scilab.org/ Welcome to Scilan.in (). [en Lnea]. Recuperado el 19 de Julio de 2009, de http://scilab.in/index.php?title=Main_Page

Programacin Algoritmos. (1997). [en lnea]. Recuperado el 19 de julio de 2009 de, http://www.monografias.com/trabajos15/algoritmos/algoritmos.shtml Arquitectura de Ordenadores I. [en Lnea]. Recuperado el 19 de Julio de 2009, de http://www-gist.det.uvigo.es/~martin/ao1/lec11.pdf Conceptos de Lenguajes de Programacin. (2005). [en Lnea]. Recuperado el 19 de julio de 2009, de http://www.mailxmail.com/curso/informatica/programacionestructurada/capitulo4.ht m Ensamblador Lenguaje de Bajo Nivel (2004). [en Lnea]. Recuperado el 19 de julio de 2009, de http://mx.geocities.com/alfonsoaraujocardenas/ensamblador.html Tcnicas de Diseo de Algoritmos. (2000). [en Lnea]. Recuperado el 19 de julio de 2009, de http://www.lcc.uma.es/~av/Libro/indice.html

Descargas Aprenda matlab 7.0. (2005). [en Lnea]. Recuperado el 19 de julio de 2009, de http://mat21.etsii.upm.es/ayudainf/aprendainf/Matlab70/matlab70primero.pdf

168

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Scilab 5.1.1. (20090. [en Lnea]. Recuperado el 19 de julio de 2009 de, http://scilab.softonic.com/ TheMathWorks. (2009). [en Lnea]. Recuperado el 19 de julio de 2009, de http://www.mathworks.com/products/matlab/

169

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

UNIDAD 3.

LABVIEW

Introduccin Es una herramienta usada por cientficos e ingenieros para medir y automatizar el universo que nos rodea LABVIEW (Laboratory Virtual Instrument Engineering Workbench), es un lenguaje y un entorno grfico de programacin que usa iconos en lugar lneas 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 travs de los nodos en el diagrama de bloques determina el orden de ejecucin de los instrumentos virtuales VI (Virtual Instrument) y funciones. Los instrumentos virtuales o VIs son los programas hechos en LabVIEW que imitan instrumentos fsicos o paneles de control de muy diversos sistemas. Esta herramienta fue desarrollada por National Instruments, su desarrollo comenz en el ao de 1.983 y la primera versin fue lanzada en el ao de 1.986 LabVIEW para Macintosh y en 1.990 la segunda versin. La versin utilizada como referencia para este curso es la 8.6.

Justificacin LabVIEW es un lenguaje de programacin grfico diseado para ingenieros y cientficos para desarrollar aplicaciones de pruebas, control y medidas. La naturaleza intuitiva de la programacin grfica de LabVIEW lo hace fcil 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 diseo de sistemas grficos para disear, generar prototipos y desplegar sistemas embebidos. Combina la potencia de la programacin grfica con hardware para simplificar y acelerar drsticamente el desarrollo de diseos.
Por que usar Labview. (2009). [en lnea], recuperado el 20 de julio de2009, de http://www.ni.com/academic/why_labview/esa/

170

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Intencionalidades Formativas

Propsitos Conocer y utilizar Labview como una herramienta de diseo y puesta a prueba de sistemas donde se requiere adquirir informacin, procesar, tomar decisiones a partir de ciertos resultados, todo a partir del desglose del manejo general de paquetes, adems desarrollar habilidades que le permitan al estudiante identificar su potencial uso en el desarrollo de soluciones ptimas a problemas en el campo de la ingeniera electrnica.

Objetivos Que el estudiante ample complemente y profundice en las caractersticas operativas, tcnicas, los beneficios de Labview para que as puedan realizar una serie de actividades, tendientes a solucionar problemas de carcter electrnico, identificables en el quehacer diario del campo ingenieril.

Competencias El estudiante conoce las caractersticas y posibilidades que le brindan los software analizados en el curso, adems conoce los procedimientos sistemticos para interactuar con stos manejando los comandos bsicos, formas de representacin de los datos y expresiones caractersticas. Sabe buscar en las ayudas de los software los comandos especficos que sirvan para resolver una determinada tarea as como para conocer la sintaxis adecuada a la hora de programar. Puede depurar la programacin en la bsqueda de errores de programacin 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 problemtica 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 grficas, tablas de datos, estadsticas, procesado y filtrado de informacin, generar sistemas de instrumentacin i/o adquisicin de datos empleando Matlab, Scilab Simulink y Labview as como generar funciones o sub-funciones que le ayuden en
171

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

labores especificas, para las cuales no exista un comando definido que resuelva la problemtica planteada y que dichas funciones puedan ser empleadas como bloques constitutivos de una programa o aplicacin mayor.

Metas de aprendizaje El estudiante aprender de forma individual las temticas del mdulo 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 pequeos programas o aplicaciones en donde el estudiante se valga de toda la informacin disponible, de su espritu investigativo y del trabajo en grupo para buscar la manera de generar las soluciones ms ptimas y funcionales ante las problemticas planteadas. El estudiante aplicar una metodologa adecuada para el correcto diseo e implementacin de algoritmos en la programacin y simulacin de soluciones a problemas de ingeniera y modelado de sistemas.

CAPITULO 1. CONCEPTOS BASICOS DE LABVIEW Introduccin. En este captulo se tratan los aspectos necesarios para familiarizarse con el uso de LabVIEW, incluyendo las ventanas Panel y Diagram, mens de LabVIEW y la ventana de jerarqua. 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).

Leccin 31: Caractersticas y Aplicaciones

Labview es un programa enfocado hacia la instrumentacin virtual, por lo que cuenta con numerosas herramientas de presentacin, en grficas, botones, indicadores y controles, los cuales son muy esquemticos y ofrecen mltiples opciones de presentacin. Cuenta con libreras especializadas para manejos de DAQ, Redes, Comunicaciones, Anlisis Estadstico, Comunicacin con Bases de Datos. Como se programa creando subrutinas en mdulos de bloques, se pueden usar otros
172

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

bloques creados anteriormente. Adems permite pasar las aplicaciones entre diferentes plataformas como Macintosh y seguir funcionando. LabVIEW se diferencia de otros lenguajes de programacin, ya que no se basa en lneas de texto para crear el cdigo fuente del programa, sino en la programacin grfica o lenguaje G para crear programas basados en diagramas de bloques. LabVIEW posee extensas libreras de funciones y subrutinas. Adems de las funciones bsicas de todo lenguaje de programacin, LabVIEW incluye libreras especficas para la adquisicin de datos, control de instrumentacin VXI, GPIB y comunicacin serie, anlisis presentacin 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 anlogos a las funciones creadas con los lenguajes de programacin convencionales. Los VIs tienen una parte interactiva con el usuario y otra parte de cdigo fuente, y aceptan parmetros procedentes de otros VIs, a la parte interactiva se le conoce como Panel Frontal y el cdigo 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 fcil 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 adquisicin, anlisis y presentacin de datos. El sistema est dotado de un compilador grfico para lograr la mxima velocidad de ejecucin posible. Tiene la posibilidad de incorporar aplicaciones escritas en otros lenguajes.

173

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 programacin, ya que se emplean iconos y se apoya sobre smbolos grficos en lugar de lenguaje escrito para construir las aplicaciones. Adems posee extensas libreras de funciones y subrutinas. Adems de las funciones bsicas de todo lenguaje de programacin. Las aplicaciones de LabVIEW pueden ser: prueba de dispositivos electrnicos, control de sistemas y maquinaria, monitoreo de condiciones en un ambiente industrial, realizacin de prototipos de lgica en los dispositivos biomdicos, entre una infinidad de otras aplicaciones. Labview permite para cada aplicacin hacer mediciones fsicas, entradas, salidas, procesamiento de seal, toma de decisiones complejas, registro de datos, generacin de reportes, comunicacin, etc.

Leccin 32: Entorno de Trabajo. Panel Frontal. Al comenzar el programa, se despliega la pantalla inicial que permite acceder a la informacin fundamental como Iniciar con LabVIEW (Getting started with LabVIEW), la ayuda (LabVIEW Help), informacin y nuevas caractersticas, adems de los conos correspondientes para generar nuevos VIs 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 cdigo grfico en forma de diagrama de bloques, adems 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.

174

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 120. Pantalla inicial de LabVIEW.

Fuente: Captura de Labview 8.6 Versin Trial 2009 Figura 121. Ventanas del Instrumento Virtual, a) Diagrama de Bloques, b) Panel Frontal.

Fuente: Captura de Labview 8.6 Versin Trial 2009


175

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Las paletas, herramientas y mens 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 operacin imitan los instrumentos fsicos, como osciloscopios, multmetros 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 adquisicin, puertos de comunicacin del PC, etc. Esta informacin puede ser presentada por pantalla en forma numrica o grfica o puede ser procesada internamente para obtener resultados especficos, tambin 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 cdigo fuente grfico 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 anlogo a una subrutina en un lenguaje de programacin basado en lneas de cdigo.

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 grficos, LEDs indicadores numricos, etc. que simulen mecanismos de salida y visualizacin, stos presentan datos que el diagrama de bloques adquiere o genera. Generalmente este panel es diseado antes que el diagrama de bloques. Para desplegar la paleta de controles se selecciona en la barra de mens View>>Controls Palette, y se escogen los indicadores, perillas, etc que estarn en la ventana donde se construye el panel frontal (Figura 122). Los tipos de controles e indicadores, incluyen:
176

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Numricos: barras deslizables, perillas, grficos, cartas. Bolanos: Botones y switches, cadena de caracteres, arreglos, grupo de opciones (Clusters), caja de listas (Listbox), rbol de controles.

Visualizadores numricos, Barras deslizables y de desplazamiento, perillas, diales y cronmetros. Se usan los objetos numricos localizados en las paletas Numeric y Classic Numeric, entre estos se pueden encontrar barras deslizables y de desplazamiento, perillas, diales, y visualizadores numricos, tambin incluye caja de colores para ajustar el color del indicador. Estos son utilizados para ingresar y mostrar los datos numricos. Figura 122. Paleta de Controles.

Fuente: Captura de Labview 8.6 Versin Trial 2009 Controles e Indicadores numricos. Es la forma ms simple para ingresar y desplegar datos numricos, se pueden redimensionar estos objetos en el panel
177

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

frontal para poder tener una mayor cantidad de dgitos (Ver Figura 123). Por defecto LabVIEW, muestra y almacena los nmeros como una calculadora, este cambia automticamente a una notacin exponencial si el valor del nmero supera los 6 dgitos. 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 Numricos.

Fuente: Captura de Labview 8.6 Versin Trial 2009

Controles e indicadores deslizables (Slide) y de desplazamiento (Scroll).

Estos son indicadores numricos con una escala, pueden ser tanto verticales como horizontales, un tanque o un termmetro. Los valores por defecto de estos son variados haciendo clic y arrastrando hasta el nivel que se desea. Se puede aadir ms de un indicador de desplazamiento haciendo clic derecho sobre el indicador y seleccionar Add Slider. El tipo de dato de un control con mltiples Slider es un grupo que contiene cada uno de los datos numricos. Figura 124. Controles e indicadores deslizables.

Fuente: Captura de Labview 8.6 Versin Trial 2009

178

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 posicin representan valores numricos 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 posicin. Se puede aadir ms de una aguja (Neddle) haciendo clic derecho sobre el indicador y seleccionar Add Neddle. El tipo de dato de un control con mltiples Neddles es un grupo que contiene cada uno de los datos numricos. Figura 125. Controles e indicadores giratorios.

Fuente: Captura de Labview 8.6 Versin Trial 2009

Cronmetros, 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 Versin 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,
179

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 accin mecnica que le permiten al usuario personalizar esta clase de objetos para as crear panel frontales que en lo posible se emulen al mximo el comportamiento fsico de los instrumentos. Figura 127. Paleta de los controles e indicadores booleanos.

Fuente: Captura de Labview 8.6 Versin Trial 2009

180

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Controles de opcin (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 localizacin de un archivo o directorio. Figura 128. Paleta de Cadena de Caracteres.

Fuente: Captura de Labview 8.6 Versin 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 matemticas, como por ejemplo las del algebra lineal.

181

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 129. Paleta de Arrays, Matrix and Cluster.

Fuente: Captura de Labview 8.6 Versin 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 mltiples selecciones. Se usan las cajas de listas multi-columnas para desplegar ms informacin acerca de cada opcin, como el tamao y el momento en que fue creado.

rbol de Controles (Tree Control).

Este es utilizado cuando se requiere brindar al usuario una lista jerrquica 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.

182

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 130. Paleta de List & Table.

Fuente: Captura de Labview 8.6 Versin 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 adquisicin de datos), as como los recursos VISA y nombres de la lgica IVI.

VISA: (Virtual Instrument Software Architecture) o en espaol: Arquitectura Software del Instrumento Virtual, Se trata de una interfaz sencilla para controlar una serie de dispositivos para adquisicin de seales. IVI: (Interchangeable Virtual Instrument) en espaol: Instrumento Virtual Intercambiable, Es un estndar de software para crear una interfaz comn (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 estn localizados en la paleta de funciones (Functions). Una constante es una terminal de datos en el diagrama de bloques que suministra valores fijos, stos sern empleados por los dems elementos del diagrama para realizar operaciones especificas.

183

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 aparecern y se comportarn los controles e indicadores, esto se logra haciendo clic con el botn derecho del mouse y llegar a propiedades (Properties), mientras las simulacin este corriendo no puede hacerse uso de esta opcin. 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 tpico. 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 (fsico). 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 numricos (Numeric) contiene un control y un indicador numrico porque se pueden tener entradas numricas y salidas numricas. Se puede cambiar un control a un indicador haciendo clic con el botn 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).

184

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 botn 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.

Leccin 33: Entorno de Trabajo. Diagrama de Bloques. Luego de estar construido el panel frontal, el cdigo del programa es aadido usando representaciones grficas de funciones para controlar los objetos del panel de control. El diagrama de bloques contiene este cdigo grfico, tambin llamado como G-Code o cdigo 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 smbolo 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 informacin 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 ejecucin, 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 indicacin, terminales de nodo, constantes y terminales especializadas, para interconexin de las terminales se usan cables y
185

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

los datos fluyen de una terminal a otra. Para poder desplegarlas se hace clic con el botn 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 Versin Trial 2009

Controles e Indicadores del Tipo Dato. Un control e indicador del tipo dato incluye numrico de punto flotante, numrico entero, marcas de tiempo, enumerados, booleanos, cadena de caracteres (string), arreglos (arrays), grupos (clusters), dinmicos.

Valores Numricos Simblicos. Un valor inesperado o indefinido invalida las operaciones subsiguientes a esta. Las operaciones efectuadas en punto flotante retornan los dos siguientes valores simblicos que indican un error en los clculos.

NaN (Not a Number): No es un nmero, por ejemplo el clculo de la raz cuadrada de un nmero negativo el punto flotante. Inf (Infinity): Infinito, representa que el valor calculado en punto flotante se encuentra fuera el rango de operacin.

186

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 anlogas a las declaraciones (statements), operadores, funciones y subrutinas en la programacin basada en texto. LabVIEW incluye los siguientes tipos de Nodos:

Funciones: Inmersas dentro de los elementos, comparables con un operador, funcin o declaracin. SubVI: Es un VI usado como un bloque dentro de otro VI, comparable con la subrutinas. Express VIs: Son SubVIs diseados para aadir tareas a medida. Estructuras (Structures): Elementos de control de ejecucin, 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 plido y de fondo y negro en los bordes. Las funciones no tienen panel frontal o diagrama de bloques pero si paneles de conexin, estos no se pueden ni abrir ni editar

187

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Aadiendo terminales a la funcin. Esta es una opcin que permite cambiar el nmero de terminales de algunas funciones. Por ejemplo, para construir un arreglo con 10 elementos se deben tener 10 terminales. Se pueden aadir terminales a la funcin 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 estn cableadas por lo que si se desea eliminar se debe primero borrar la conexin.

Conectar los Objetos en el Diagrama de Bloques. La transferencia de datos en el diagrama de bloque se realiza a travs 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 estn fluyendo sobre este, de manera similar al color y smbolo de un terminal. Un cable roto aparece como una lnea 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 direccin del flujo de datos y el color el tipo de datos que fluye sobre este. Figura 132. Segmento Curva y Unin.

Fuente: Captura de Labview 8.6 Versin Trial 2009


188

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 travs de los nodos determina el orden de ejecucin 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 programacin basado en texto. En el control de flujo, el orden secuencial de los elementos del programa determina el orden de ejecucin. 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 simultneas. Por ejemplo, puede ejecutar simultneamente dos bucles para mostrar los resultados y sobre el panel frontal, como se muestra en el siguiente diagrama de bloques.

189

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 133. Ejecucin de dos bloques simultneamente.

Fuente: Captura de Labview 8.6 Versin Trial 2009 Dependencia de los Datos. La ejecucin del modelo de control de flujo depende de la instruccin, y la ejecucin 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 despus que el primero ha terminado su ejecucin. Los nodos no conectados en el diagrama de bloques se ejecutan en cualquier orden, pero se pueden controlar a travs del paso de parmetros, mientras la dependencia de datos no exista. Se usa una estructura secuencial para conseguir este objetivo mientras el paso de parmetros no est disponible.
190

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Diseando un Diagrama de Bloques. Estas son una serie de sugerencias para el diseo 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 ubicacin no determina el orden de ejecucin. Se debe evitar el cableado de derecha a izquierda para evitar confusiones, haciendo se hace un diagrama organizado y fcil de entender. Evitar crear un diagrama que ocupe ms de una o dos pantallas (Screen), si un diagrama se vuelve grande y complejo, puede ser difcil de entender y de depurar. Si se decide reutilizar algunos componentes del diagrama en otros VIs o si una seccin de dicho diagrama trabaja como un componente lgico, se debe dividir en SubVIs que realicen tareas especficas, el uso de estos ayuda a manejar cambios y depuraciones del diagrama rpidamente. Utilice el manejo de errores de los VIs, las funciones y los parmetros para la gestin de errores en el diagrama de bloques. Evitar cablear bajo el borde de una estructura o traslapar objetos, porque LabVIEW podra esconder algunos segmentos de un cable resultante. Evite colocar objetos encima de los cables porque aparecera como si existiese una conexin cuando no la hay. Se deben usar las etiquetas para documentar el cdigo en el diagrama de bloques.

Leccin 34: 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 travs del diagrama de bloques.

191

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Corriendo un VI. Al correr un VI se ejecuta la operacin para la que fue diseado, se puede ejecutar o correr el programa si en la barra de herramientas aparece una flecha de color blanco slida, como lo muestra la siguiente figura (figura 134): Figura 134. Botn de correr (run)

Fuente: Captura de Labview 8.6 Versin Trial 2009 Mientras la simulacin este corriendo el botn de la figura anterior cambia a una flecha oscura tal y como se muestra a continuacin: Figura 135. Botn de correr (run) mientras se ejecute la simulacin

Fuente: Captura de Labview 8.6 Versin Trial 2009 La simulacin se detiene cuando se completa el flujo de los datos, pero si se presiona el botn de Corra continuamente (Run Continuously) (figura 136) la simulacin se detendr cuando el usuario lo decida, es decir, manualmente.

Figura 136. Botn de correr continuamente (run continuously)

Fuente: Captura de Labview 8.6 Versin Trial 2009

192

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Si un VI no corre el botn de correr (figura 135) se muestra como una flecha rota (figura 137). La razn 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 botn de esta forma es porque el VI est daado. Figura 137. Botn de correr roto

Fuente: Captura de Labview 8.6 Versin Trial 2009 Las advertencias que se generan en la simulacin de un VI no impiden la ejecucin de este, estas estn diseadas 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 daado se presiona el botn de correr (figura 137) o se selecciona en la barra de mens View>>Error List, la ventana que aparece muestra la lista de los errores. Para saber en qu bloque especficamente se encuentra el error, se hace doble clic sobre la descripcin 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 ms comunes de un VI daado 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 daado, o se edito el panel de conexiones despus de que se ubic el cono en el diagrama de bloque del VI.

193

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Depurando un VI. Existe una diversidad de tcnicas para identificar y corregir los problemas con un VI o el flujo de datos en el diagrama de bloques a continuacin se muestran una de ellas. Se puede ver una animacin de la ejecucin del diagrama de bloques haciendo clic sobre el botn Ejecucin iluminada (Highligth Execution) (figura 138), Figura 138. Botn de Ejecucin iluminada (Highligth Execution)

Fuente: Captura de Labview 8.6 Versin 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 travs 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 ejecucin del VI) Figura 139. Botn de Ejecucin de un paso a la vez (single stepping)

Fuente: Captura de Labview 8.6 Versin Trial 2009

Manejo de Errores. No importa que tan cuidadoso sea el diseador 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 podra saber es que el VI no funciona apropiadamente. El chequeo de errores es la herramienta que indica la razn y ubicacin de los errores.

194

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Por defecto LabVIEW, maneja los errores suspendiendo la ejecucin e iluminando el subVI o funciones donde a ocurrido el error, y mostrndolo en una caja de dialogo.

Leccin 35: Ejemplos.

A continuacin se describe a detalle la creacin de un instrumento virtual bastante sencillo, realiza la suma y la resta de dos nmeros, visualizando los resultados.

Los pasos que describen la creacin 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

195

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 140. Subpaleta Numeric

Fuente: Captura de Labview 8.6 Versin Trial 2009 Figura 141. Subpaleta Modern>>String & Path

Fuente: Captura de Labview 8.6 Versin Trial 2009


196

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

4. De estas paleta escoger y arrastrar un control numrico (Numeric Control), un control de cadena de caracteres (String Control) y un botn de presin (Push Button) segn corresponda. Figura 142. Panel de control con los elementos escogidos

Fuente: Captura de Labview 8.6 Versin Trial 2009 Como es de esperarse los elementos que estn en el panel de control tiene su cono correspondiente en el diagrama de bloques. Cabe destacar que las terminales numricas 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 numrico a indicador numrico se hace clic derecho sobre el cono y sobre el men desplegado se escoge la opcin Change to indicator (Cambiar a indicador). Ntese como cambia el cono en el panel frontal (las flechas de arriba y abajo desaparecen), obsrvese tambin que el cono del diagrama de bloques cambia (el borde es mucho ms 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 numrico y dos indicadores numricos y se posicionan como muestra la figura 143.

197

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 143. Controles e indicadores numricos

Fuente: Captura de Labview 8.6 Versin Trial 2009 8. En la ventana del diagrama de bloques pueda que sea necesario reposicionar alguna de las terminales. A continuacin en el men flotante de funciones escoger matemticas (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 Versin Trial 2009

198

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 145. Diagrama de bloques conectado.

Fuente: Captura de Labview 8.6 Versin Trial 2009 9. Por ltimo en la ventana del panel de control presionar el botn de arriba y hacia abajo o digitar los nmeros y luego presionar el botn correr (Run) para observar los resultados. Figura 146. Instrumento Virtual Funcionando

Fuente: Captura de Labview 8.6 Versin Trial 2009

Realizar un VI que muestre grafica y numricamente el nivel de un tanque, el cual es alimentado por una bomba. Adems 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 matemticas o lgicas que se requieran, tal como se observa en la figura 147 y 147.

199

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 147. Panel frontal tanque.vi

Fuente: Captura de Labview 8.6 Versin Trial 2009

Figura 148. Diagrama de bloques tanque.vi

Fuente: Captura de Labview 8.6 Versin Trial. 2009

200

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 Versin Trial. 2009.

Construir y graficar las seales seno y coseno, a las cuales se les pueda controlar la amplitud, la frecuencia y el nivel DC.

Para generar las seales senosoidal y cosenosoidal se utiliza la funcin Simulate Signal que se encuentra en la librera Signal Procesing/ Waveform Generation (Ver Figura 150). Esta funcin permite el control de 4 Variables: Amplitud, Frecuencia, Nivel DC y Fase.

201

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 150. Ubicacin de la Funcin Simulate Signal.

Fuente: Captura de Labview 8.6 Versin Trial 2009. En el diagrama de bloques se colocan 6 controladores, los cuales servirn para manipular las variables Amplitud, Frecuencia y Nivel DC de las seales generadas. As mismo se inserta una Waveform Graph que se encuentra en la librera Graph. El aspecto final del Diagrama de bloques puede apreciarse en la Figura 151.

202

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 151. Aspecto Final del Panel Frontal. Generacin de Seales Seno y Coseno.

Fuente: Captura de Labview 8.6 Versin Trial 2009. La Figura 152 muestra la programacin en el diagrama de bloques. Figura 152. Aspecto final Diagrama de Bloques. Generacin de Seales Seno y Coseno

Fuente: Captura de Labview 8.6 Versin Trial 2009.


203

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

CAPITULO 2. PROGRAMACION ESTRUCTURADA. Introduccin. 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 condicin 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 captulo.

Leccin 36: 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 pequea 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

204

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 153. Estructura Case

Fuente: Captura de Labview 8.6 Versin Trial 2009 Ejemplo: Realizar un programa que realice la integral y la derivada de una seal triangular de acuerdo a un selector, y visualice la seal resultante. Se usa una estructura case controlada por un botn 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 Versin Trial 2009 El diagrama de bloques se presenta en la figura 155.
205

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 155. Ejemplo de la Estructura Case. Diagrama de Bloques.

Fuente: Captura de Labview 8.6 Versin Trial 2009

Estructura Sequence Este tipo de estructuras presenta varios subdiagramas, superpuestos de manera similar a case se puede visualizar solamente una en pantalla. Tambin 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) n0, despus el de la n 1, y as sucesivamente. Para adicionar una un frame o una hoja en la secuencia se pulsa el botn 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 botn derecho del ratn sobre el borde de la estructura, seleccionando la opcin Add sequence local, ver figura 156.

206

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 156. Esquema general estructura Sequence.

Fuente: Captura de Labview 8.6 Versin Trial 2009 Ejemplo: Realizar las siguientes operaciones de manera secuencial entre dos nmeros aleatorios: suma, multiplicacin y divisin. Visualizarlas en un indicador grfico. Se inserta en el Panel Frontal tres indicadores para visualizar los resultados (Ver figura 157).

Figura 157. Panel frontal. Estructura Sequence.

Fuente: Captura de Labview 8.6 Versin Trial 2009

207

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

En el diagrama de bloques se inserta la estructura, se adicionan dos hojas ms, y en cada una de las hojas se hace la programacin de suma, multiplicacin y divisin respectivamente, como se muestra en la siguiente figura. Figura 158. Diagrama de Bloques. Estructura Sequence.

Fuente: Captura de Labview 8.6 Versin Trial 2009

Leccin 37: Estructuras Iterativas For, While.

Estructura For Es el equivalente al bucle for en los lenguajes de programacin convencionales. Ejecuta el cdigo dispuesto en su interior un nmero determinado de veces.

208

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Para pasar valores de una iteracin a otra se emplean los shift registers. Para crear uno, se pulsa el botn derecho del ratn mientras ste se halla situado sobre el borde del for, seleccionando la opcin 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 iteracin anterior. El terminal derecho guarda el dato correspondiente a la iteracin 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 Versin Trial 2009 1. Terminal contador: Contiene el nmero de veces que se ejecutar el subdiagrama creado en el interior de la estructura. El valor del contador se fijar externamente. 2. Terminal de iteracin: Indica el nmero de veces que se ha ejecutado la estructura: Cero durante la primera iteracin, uno durante la segunda y as hasta N-1. Ambos terminales son accesibles desde el interior de la estructura, es decir, sus valores podrn formar parte del subdiagrama pero no se pueden modificar. Ejemplo. Crear un programa que genere 100 nmeros aleatorios y los grafique en un plano xy.

209

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

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 Versin Trial 2009 Figura 161. Diagrama de Bloques. Ejemplo Estructura For.

Fuente: Captura de Labview 8.6 Versin Trial 2009

Estructura While. Es el equivalente al bucle while empleado en los lenguajes de programacin convencionales En la estructura While se ejecutan las instrucciones que esten dentro del ciclo mientras que se cumpla una condicin. La forma general de While se observa en la figura 162, tiene dos terminales:
210

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

1. Terminal Iteracin: indica el nmero 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 condicin true o cuando no se cumpla false. Figura 162. Forma General de la Estructura While.

Fuente: Captura de Labview 8.6 Versin Trial 2009 Con esta estructura tambin se pueden emplear los shift registers para tener disponibles los datos obtenidos en iteraciones anteriores (es decir, para memorizar valores obtenidos). Ejemplo: Generar nmeros aletorios entre 0 y 5, hasta cuando el nmero generado sea mayor que 3. Visualizar los nmeros aleatorios y el nmero 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 Versin Trial 2009


211

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

En la figura 164 se encuentra el diagrama de bloques, consta de la estructura while, la programacin para generar y visualizar el nmero y la condicin para parar el ciclo. Figura 164. Diagrama de Bloques. Ejemplo de un while.

Fuente: Captura de Labview 8.6 Versin Trial 2009

Leccin 38: Estructura Formula Node. Formula Node o Nodo de Formula es una funcin seimilar a las estructuras anteriores, pero en lugar de contener un subdiagrama, tiene una o ms formulas separadas por un punto y coma. Se encuentra en la librera Programing/ Estructures. Formula Node se emplea para introducir en el diagrama de bloques frmulas de un modo directo. Resulta de gran utilidad cuando la ecuacin tiene muchas variables o es relativamente compleja. Por ejemplo, se desea implementar la ecuacin: y = 5x + 3 Para definir una frmula mediante esta estructura, se deben seguir los siguientes pasos:

212

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

1. Definir las variables de entrada y las de salida. Para ello, se pulsa con el botn derecho del ratn sobre el borde de la formula node. A continuacin se seleccionar Add Input o Add Output, segn se trate de una entrada o una salida, respectivamente. Aparecer un rectngulo, en el que se debe escribir el nombre de la variable (se distingue entre maysculas y minsculas), tal como en la figura 165. Todas las variables que se empleen deben estar declaradas como entradas o salidas. Figura 165. Definicin de Variables en Formula Node

Fuente: Captura de Labview 8.6 Versin Trial 2009 2. Escribir la o las frmulas en el interior del recuadro (para ello se emplea la labeling tool). Cada frmula 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 Versin Trial 2009

213

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 167. Diagrama de Bloques Ejemplo Formula Node.

Fuente: Captura de Labview 8.6 Versin Trial 2009

Leccin 39: Variables Locales y Globales. Las variables son fundamentales en cualquier software de programacin, ya que permiten almacenar la informacin 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 ms sencilla de generar variables locales y/o globales dependiendo de la aplicacin.

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 mltiples veces.

214

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Las variables locales estn disponibles en el men Programing /Estructures. Tienen el siguiente men:

Visible Items: Oculta o visualiza la identificacin 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 aadir comentarios. Replace: Sustituye la variable local por cualquier otra funcin.

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 identificacin imprescindible para despus referirse a ella. Cuando se escoge la funcin 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

215

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 168. Men Variables globales.

Fuente: Captura de Labview 8.6 Versin Trial 2009.

Leccin 40: 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 caractersticas 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 opcin edit icon, ver figura 169, y para crear el conector se debe hacer lo mismo pero solamente se activa en el panel frontal.

216

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 169. Crear icono en un subVI.

Fuente: Captura de Labview 8.6 Versin Trial 2009 Ejemplo: Crear un subVI que genere y visualice en la misma ventana a. una seal senosoidal de amplitud y frecuencia modificable de acuerdo a valores de entrada definidos por el usuario. b. Una seal escalada en amplitud y frecuencia tomando como base la seal creada anteriormente. 1. Se realiza la programacin 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 Versin Trial 2009

217

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 171. Diagrama de Bloques Ejemplo de un subVi.

Fuente: Captura de Labview 8.6 Versin 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, automticamente la seleccin cambia a un icono, ver figura 173.

Figura 172. Creacin del subVI en la paleta Edit

Fuente: Captura de Labview 8.6 Versin Trial 2009

218

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 173. Icono que representa al subVI.

Fuente: Captura de Labview 8.6 Versin 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 Versin Trial 2009 Aparece la herramienta de conexin para que se definan las variables de entrada y salida del subVI, esto se hace dando clic sobre el icono del subVI e inmediatamente despus sobre la variable de entrada. El icono del subvi cambia
219

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

colocando color en las casillas de acuerdo al nmero de variables de entrada/salida. Figura 175. Icono del subVI con adicin de variables entrada/salida.

Fuente: Captura de Labview 8.6 Versin Trial 2009 Por ltimo se guarda el subVI con la opcin 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 Versin 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.

220

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 177. Icono del subVI en el Diagrama de Bloques.

Fuente: Captura de Labview 8.6 Versin 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. Utilizacin de un SubVI, Panel Frontal

Fuente: Captura de Labview 8.6 Versin Trial 2009

221

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 179. Utilizacin de un SubVI, Diagrama de bloques.

Fuente: Captura de Labview 8.6 Versin Trial 2009

CAPITULO 3. APLICACIONES EN LABVIEW Introduccin. Las aplicaciones en Labview son extensas, desde nivel educativo hasta nivel industrial, este software permite adquisicin y procesamiento de datos que pueden ser tomados desde cualquier rea. Sus aplicaciones pueden abarcar campos como el de la biologa, electrnica, qumica, fsica, procesamiento de voz e imgenes, automatizacin industrial, hasta la medicina.

Leccin 41: Filtrado de seales. Labview posee herramientas para el anlisis y procesado de seales, tales como generacin de formas de onda (seno, triangular, diente de sierra, aleatorias, ruidos etc), filtrado, mezcladores, analizadores de espectros y otros. Filtrado de seales: En la figura 180 y 181 se muestra un ejemplo donde se mezcla una seal senosoidal con un ruido y posteriormente se utiliza una herramienta de filtrado para obtener la seal original nuevamente. En el Panel frontal se colocan dos visualizadores, uno para la seal con ruido y el otro para la seal filtrada. En el diagrama de bloques se utilizan herramientas como Simulate signal, filtering signal que se encuentran en la librera Procesing Signals.

222

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 180. Panel Frontal Ejemplo extraer el seno.vi

Fuente: Captura de Labview 8.6 Versin Trial. 2009 Figura 181. Diagrama de bloques Ejemplo extraer el seno.vi

Fuente: Captura de Labview 8.6 Versin Trial. 2009

223

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Leccin 42: Anlisis Espectral En el VI mostrado en las figuras 182 y 183 se observa la utilizacin del clculo de la Transformada Rpida de Fourier que permite a Labview realizar anlisis espectral de una seal. En el Panel Frontal existen dos ventanas grficas una para ver las seales en el tiempo y la otra para ver su espectro, adems 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. Clculo de Transformada rpida de Fourier.

Fuente: Captura de Labview 8.6 Versin Trial. 2009

224

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 183. Diagrama de bloques. Clculo de Transformada rpida de Fourier.

Fuente: Captura de Labview 8.6 Versin Trial. 2009

Leccin 43: Generacin de Tablas en Labview para presentacin de datos. Las figuras 184 y 185 muestran como utilizar Labview para generar tablas, esta herramienta permite obtener los datos fcilmente 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. Generacin de Tablas.

Fuente: Captura de Labview 8.6 Versin Trial. 2009

225

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 185. Diagrama de Bloques. Generacin de Tablas.

Fuente: Captura de Labview 8.6 Versin Trial. 2009

Leccin 44: Manipulacin de puertos. Labview permite importar y exportar datos a travs 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 Versin Trial. 2009

226

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

En el diagrama de bloques se observa un ciclo for que enva la iteracin hacia el puerto paralelo, en este icono debe indicarse el nmero correspondiente a la direccin del puerto y el dato. Figura 187. Diagrama de Bloques. Envio de datos al puerto paralelo.

Fuente: Captura de Labview 8.6 Versin Trial. 2009

Leccin 45: 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 Versin Trial. 2009


227

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

De igual manera si se tiene instaladas las herramientas de Generar reporte (ver figura 189) se puede realizar fcilmente un reporte, el cual por defecto genera un archivo de extensin lvm que se puede abrir desde cualquier editor de texto u hoja de clculo. Figura 189. Men Programing/ Report Generation

Fuente: Captura de Labview 8.6 Versin 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 aplicacin puede observarse en la figura 190. Este archivo test.lvm se puede abrir con una hoja de clculo como Excel o con un procesador de texto.

228

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Figura 190. Uso de Report Generation.

Fuente: Captura de Labview 8.6 Versin Trial. 2009

229

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

ACTIVIDAD DE AUTOEVALUACIN UNIDAD 3 Para autoevaluar la unidad se propone dos actividades: Actividad 1 Realice un VI que permita controlar la velocidad y el tipo de secuencia de encendido (entre dos opciones) de un conjunto de leds, a partir de un puerto (paralelo serial) Actividad 2 Realice un VI que controle el encendido y apagado de un semaforo, donde el tiempo de la luz roja sea el doble de la verde y la amarilla la tercera parte de la roja.

230

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

FUENTES DOCUMENTALES UNIDAD 3

BIBLIOGRAFIA

Labview Antonio Manuel, Domingo Biel. Instrumentacin Virtual. Adquisicin, procesado y anlisis de seales: alfaomega Antonio Manuel Lazaro. Labview 6i. Programacin grfica para el control de instrumentacin. Travis Jeffrey. (2006). LabVIEW for Everyone: Graphical Programming Made Easy and Fun (Third Edition): Prentice Hall.

SITIOS WEB

Labview Labview for Dummies. (2009). [en Lnea]. Recuperado el 19 de Julio de 2009, de thttp://www.iit.edu/~labview/Dummies.html Learnlabview. (2009). [en Lnea]. Recuperado el 19 de julio de 2009, de http://learnlabview.blogspot.com/ National Instruments. Labview. (2009). [en Lnea]. Recuperado el 19 de julio de 2009, http://www.ni.com/labview/ Tutorial in G. (2009). [en Lnea]. Recuperado el 19 de julio de 2009, de http://www.cipce.rpi.edu/programs/remote_experiment/labview/ Tutoriales Labview. (2002). [en Lnea]. Recuperado el 19 de julio de 2009, de http://perso.wanadoo.es/jovilve/tutoriales.html Tutorial Series. (2009). [en Lnea]. Recuperado el 19 de julio de 2009, de http://www.mech.uwa.edu.au/jpt/tutorial/ieindex.html
231

UNIVERSIDADNACIONALABIERTAYADISTANCIA UNAD ESCUELADECIENCIASBSICASTECNOLOGAEINGENIERA CONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

Programacin Algoritmos. (1997). [en lnea]. Recuperado el 19 de julio de 2009 de, http://www.monografias.com/trabajos15/algoritmos/algoritmos.shtml Arquitectura de Ordenadores I. [en Lnea]. Recuperado el 19 de Julio de 2009, de http://www-gist.det.uvigo.es/~martin/ao1/lec11.pdf Conceptos de Lenguajes de Programacin. (2005). [en Lnea]. Recuperado el 19 de julio de 2009, de http://www.mailxmail.com/curso/informatica/programacionestructurada/capitulo4.ht m Ensamblador Lenguaje de Bajo Nivel (2004). [en Lnea]. Recuperado el 19 de julio de 2009, de http://mx.geocities.com/alfonsoaraujocardenas/ensamblador.html Tcnicas de Diseo de Algorimos. (2000). [en Lnea]. Recuperado el 19 de julio de 2009, de http://www.lcc.uma.es/~av/Libro/indice.html

Descargas Aprenda matlab 7.0. (2005). [en Lnea] . Recuperado el 19 de julio de 2009, de http://mat21.etsii.upm.es/ayudainf/aprendainf/Matlab70/matlab70primero.pdf Scilab 5.1.1. (20090. [en Lnea]. Recuperado el 19 de julio de 2009 de, http://scilab.softonic.com/ TheMathWorks. (2009). [en Lnea]. Recuperado el 19 de julio de 2009, de http://www.mathworks.com/products/matlab/

232

Vous aimerez peut-être aussi