42785
42785
2
PROTOTIPO DE UN SOFTWARE DE MODELADO Y SIMULACIÓN DE
SISTEMAS MECÁNICOS DE TRASLACIÓN
Director:
HECTOR MANUEL VEGA
3
Nota de aceptación:
______________________________
______________________________
______________________________
______________________________
______________________________
______________________________
______________________________
______________________________
______________________________
Firma del presidente del jurado
______________________________
Firma del jurado
______________________________
Firma del jurado
4
DEDICATORIA
5
AGRADECIMIENTOS
6
CONTENIDO
Pág.
INTRODUCCIÓN 19
1. PLANTEAMIENTO DEL PROBLEMA 20
1.1. DESCRIPCIÓN DEL PROBLEMA 20
1.2. FORMULACIÓN DEL PROBLEMA 20
2. JUSTIFICACIÓN 21
3. OBJETIVOS 22
3.1. OBJETIVO GENERAL 22
3.2. OBJETIVOS ESPECIFICOS 22
4. ALCANCES Y LIMITACIONES DEL PROYECTO 23
4.1. ALCANCES 23
4.2. LIMITACIONES 23
5. MARCO DE REFERENCIA 24
5.1. MARCO DE ANTECEDENTES 24
5.1.1. Software Analogía 1.0. 24
5.1.2. Software 20 Sim (Twente Sim V 3.6.03 Demo) 24
5.1.3. Matlab 24
5.2. MARCO CONCEPTUAL 25
5.2.1. Sistema Mecánico de Control 25
5.2.2. Masa Traslacional 25
5.2.3. Resorte Traslacional 25
5.2.4. Fricción Viscosa 25
5.2.5. Fuerza 25
5.2.6. Nodo 26
5.2.7. Analogías Electromecánicas 26
5.2.8. Metodologías de Desarrollo de Software 26
5.2.9. Lenguaje de Modelamiento Unificado 26
5.2.10. Objeto 27
7
5.2.11. Atributo 27
5.2.12. Método 27
5.2.13. Clase 27
5.3. MARCO TEÓRICO 27
5.3.1. Descripción de Las Leyes, los Elementos y el Modelamiento
De Los Sistemas Físicos De Traslación 27
5.3.2. Analogías Electromecánicas 37
5.3.3. Solución Del Sistema Mecánico Traslacional Masa- Resorte-
Amortiguador 40
5.3.4. Transformada de Laplace 45
5.3.5. Lugar Geométrico de las Raíces 46
5.3.6. Diagrama de Bode 47
5.3.7. Criterio de Estabilidad de Nyquist 49
5.4. MARCO TECNOLÓGICO 50
5.4.1. Java 50
5.4.2. NetBeans 51
5.4.3 JDK (Java Development Kit) 51
5.4.4. Compilador de Matlab 51
6. DISEÑO INGENIERIL 54
6.1. HIPÓTESIS 54
6.2. VARIABLES 54
6.2.1. Variables Dependientes 54
6.2.2. Variables Independientes 54
6.2.3. Variables Intervinientes 54
6.4. POBLACIÓN Y MUESTRA 55
6.5. LÍNEA DE INVESTIGACIÓN 55
7. METODOLOGÍA 56
7.1. PLAN DE ACTIVIDADES Y PRODUCTOS A ELABORAR
DURANTE EL PROYECTO 56
8. DESARROLLO METODOLÓGICO 59
8
8.1. PRESENTACION DEL CASO DE ESTUDIO 59
8.1.1. Contextualización del Sistema Actual 59
8.2. IDENTIFICACIÓN DE ACTORES Y REQUERIMIENTOS 62
8.2.1. Actores Participantes en el Sistema 62
8.2.2. Casos de Uso 62
8.3. ANÁLISIS DE REQUERIMIENTOS 65
8.3.1. Modelamiento 65
8.3.2. Validación 66
8.3.3. Simulación 67
8.4. DISEÑO 70
84.1. Diagrama de Clases 70
8.5. ANÁLISIS Y OBTENCIÓN DE LOS RESULTADOS DE LA
SIMULACIÓN 73
8.5.1. Obtención de la Función de Trasferencia Generalizada 80
8.5.2. Codificación de la Función de Transferencia en Java 101
8.5.3. Curvas de Respuesta 105
8.5.4. Respuesta en Frecuencia y Estabilidad 114
8.5.5. Matlab y Java 115
8.5.6. Programa para la creación de un instalador para el
Software de simulación DSM 117
8.6. VALIDACIONES 121
8.7. SIMULACION Y RESULTADOS 129
8.8. RESULTADOS 130
8.8.1. Curvas de Respuesta 130
8.8.2. Estabilidad y Respuesta en Frecuencia 133
CONCLUSIONES 139
BIBLIOGRAFÍA 140
ANEXOS 142
9
LISTA DE FIGURAS
Pág.
Figura 1. Representación del elemento masa. 34
Figura 2. Representación del elemento masa. 35
Figura 3. Representación del elemento masa. 36
Figura 4. Sistema físico masa, resorte, amortiguador. 37
Figura 5. Diagrama de fuerzas del sistema físico masa, resorte,
amortiguador. 37
Figura 6. Sistema mecánico de traslación. 38
Figura 7. Sistema eléctrico pasivo analogía de impedancia. 39
Figura 8. Sistema eléctrico pasivo analogía de impedancia. 40
Figura 9. Comportamiento total del sistema 44
Figura 10. Forma genérica de la respuesta en el tiempo 46
Figura 11. Diagrama de medición de ángulos de los polos y ceros en lazo
abierto para el punto de prueba “s”. 47
Figura 12. Líneas de conversión de números a decibeles 49
Figura 13. Trazas de Bode 49
Figura 14. Traza Polar 50
Figura 15. Diagrama de conceptos 61
Figura 16. Diagrama de casos de uso 64
Figura 17. Diagrama de colaboración modelamiento 65
Figura 18. Diagrama de secuencia modelamiento 66
Figura 19. Diagrama de colaboración validación 67
Figura 20. Diagrama de secuencia validación 67
Figura 21. Diagrama de colaboración simulación 69
Figura 22. Diagrama de secuencia simulación 69
Figura 23. Diagrama de clase modelamiento 70
Figura 24. Diagrama de clase validación 71
Figura 25. Diagrama de clase simulación 72
10
Figura 26. Sistema mecánico de traslación 73
Figura 27. Diagrama de cuerpo libre 74
Figura 28. Equivalente Fuerza 76
Figura 29. Equivalente Corriente 77
Figura 30. Elementos de almacenamiento capacitivo 78
Figura 31. Elementos de almacenamiento inductivo 79
Figura 32. Elementos disipadores de energía 79
Figura 33. Máximo sistema mecánico de traslación 80
Figura 34. Sistema mecánico de traslación con un nodo 82
Figura 35. Sistema mecánico de traslación con dos nodos 83
Figura 36. Sistema mecánico de traslación con tres nodos 87
Figura 37. Clase método de lectura de archivos 101
Figura 38. Método de lectura de valores de cada elemento 102
Figura 39. Clase conversión de datos 102
Figura 40. Invocar al método conversión de caracteres 103
Figura 41. Estructura de programación de las ecuaciones 104
Figura 42. Impresión de datos de la función de transferencia 104
Figura 43. Función escalón 105
Figura 44. Función rampa 105
Figura 45. Función senoidal 109
Figura 46. Función exponencial decreciente 109
Figura 47. Función exponencial creciente 110
Figura 48. Entorno de matlab – ejecutar compilador 111
Figura 49. Entorno de matlab – seleccionar compilador 112
Figura 50. Entorno de matlab – confirmar selección del compilador 113
Figura 51. Entorno de matlab – crear ejecutable 113
Figura 52. Iconos de archivos para el funcionamiento del ejecutable 114
Figura 53. Recuperar archivo desde matlab 116
Figura 54. Icono Software CreteInstall Free 118
Figura 55. Carpeta de salida para creación del ejecutable 118
11
Figura 56. Nombre de la aplicación 119
Figura 57. Tipo de compresión del archivo 119
Figura 58. Adicionar un archivo 120
Figura 59. Seleccionar aplicación 121
Figura 60. Exclamación en caso de intentar sacar el cuarto nodo 122
Figura 61. Exclamación en caso de intentar sacar el cuarto nodo 122
Figura 62. Masas dibujadas a tierra sin importar la selección del radiobutton 123
Figura 63. Conexión permitida 124
Figura 64. Conexión no permitida 125
Figura 65. Conexión no permitida 125
Figura 66. Conexión no permitida 126
Figura 67. Conexión no permitida 127
Figura 68. Conexión eliminada 127
Figura 69. Conexión permitida 128
Figura 70. Conexión no permitida 128
Figura 71. Sistema mecánico traslacional de dos nodos 129
Figura 72. Sistema de dos nodos 129
Figura 73. Opciones de entrada 130
Figura 74. Ventana de selección para obtener respuesta en el tiempo 131
Figura 75. Respuesta en el tiempo entrada escalón 131
Figura 76. Selección de entrada seno 132
Figura 77. Ventana de selección para obtener respuesta en el tiempo 132
Figura 78. Respuesta en el tiempo entrada seno 133
Figura 79. Ventana de selección de nodo y tipo de análisis 134
Figura 80. Selección de Diagramas de Bode 134
Figura 81. Selección de nodo donde se desea hacer la simulación 135
Figura 82. Diagrama de Bode 135
Figura 83. Selección de nodo y diagrama de nyquist 136
Figura 84. Diagrama de Nyquist 136
Figura 85. Selección de nodo y lugar geométrico de las raíces 137
12
Figura 86. Lugar geométrico de las raíces 137
Figura 87. Selección de nodo función de transferencia 138
Figura 88. Función de transferencia 138
13
LISTA DE TABLAS
Pág.
Tabla 1. Componentes del sistema mecánico. 33
Tabla 2. Analogía de impedancia o fuerza – tensión. 39
Tabla 3. Analogía de movilidad. 41
Tabla 4. Estructura de la interacción entre los actores y los casos
de uso. 63
Tabla 5. Formato de descripción de los casos de uso. 63
Tabla 6. Descripción de casos de uso. 64
Tabla 7. Caso de uso modelamiento. 65
Tabla 8. Caso de uso validación. 66
Tabla 9. Caso de uso simulación. 68
14
LISTA DE ANEXOS
15
GLOSARIO
MODELO: Es una vista de un sistema del mundo real, es decir, una abstracción
de dicho sistema considerando un cierto propósito. El modelo describe
16
completamente aquellos aspectos del sistema que son relevantes al propósito del
modelo y a un apropiado nivel de detalle.
NODO: Punto en el que se producen dos o más conexiones en una red eléctrica.
17
RESUMEN
El software está diseñado para que cualquier persona con ciertos conocimientos
en circuitos eléctricos y sistemas de control pueda realizar un análisis completo de
forma matemática y gráfica de sistemas mecánicos de traslación.
18
INTRODUCCIÓN
19
1. PLANTEAMIENTO DEL PROYECTO
20
2. JUSTIFICACIÓN
Hoy en día, los recursos tecnológicos e informáticos resultan una herramienta que
permite acceder este mundo de conocimiento inimaginable e inagotable, gracias a
varios aspectos que los hacen excepcionales, como por ejemplo: la rapidez con
que se pueden obtener resultados, la forma en que se presentan, la calidad de los
mismos, en fin, muchas son las ventajas que brindan estos recursos.
21
3. OBJETIVOS
22
4. ALCANCES Y LIMITACIONES DEL PROYECTO
4.1. ALCANCES
4.2. LIMITACIONES
23
5. MARCO DE REFERENCIA
1
PRIEGO, Francisco. Tomado de la ayuda del Software Analogía 1.0. Escuela Universitaria de Ingeniería Técnica de
Telecomunicación de la Universidad Politécnica de Madrid. 1997.
2
CONTROLLAB PRODUCTS B. Tomado de la Ayuda 20 sim (Twente. Sim)
24
Puede integrar su código de MATLAB con otros lenguajes y aplicaciones, y
distribuir los algoritmos y aplicaciones que desarrolló usando MATLAB”3.
3
THE MATHWORKS INC. 1994-2008 disponible en http://www.mathworks.es/products/matlab/description1.html
25
5.2.6. Nodo. Punto en el que se producen dos o más conexiones de elementos de
un sistema o circuito.
Debe abarcar varios aspectos claves como la creación de reglas bien definidas,
cubrir todo el ciclo de desarrollo, realizar verificaciones intermedias, efectuar una
gran planificación y exhaustivos controles, lograr una comunicación efectiva, poder
aplicarla sobre un abanico amplio de proyectos, ser de fácil formación, emplear
herramientas CASE, instaurar actividades que mejoren el proceso de desarrollo,
brindar soporte al mantenimiento y soporte de la reutilización de software.
26
diseñada para exponer, detallar y documentar, en forma organizada, cada etapa
del desarrollo de software.
5.2.10. Objeto. Representa alguna entidad de la vida real, es decir, alguno de los
objetos que pertenecen al negocio con el que se está trabajando y con los que se
puede interactuar.
5.2.12. Métodos. Porciones de código asociadas con una clase o con un objeto
para llevar a cabo una acción.
27
etapa en la que se deben formalizar las relaciones constitutivas y estructurales
asociadas respectivamente a los fenómenos considerados y a la forma en que
estos se disponen dentro del sistema. En los sistemas físicos, estas relaciones
constitutivas y estructurales encuentran su expresión formal (matemática) en las
leyes fundamentales de los dominios de la física asociados a los fenómenos
mencionados.
• x: desplazamiento (m )
m dx
• v: velocidad x& = Ec. (1)
s dt
m d 2x
• a: aceleración 2
&
x& = Ec. (2)
s d 2t
• f: fuerza (N = kg ⋅ m / s 2 ) o (Lbf = lb ⋅ in s 2 )
Donde:
• x& : velocidad
• &x& : aceleración
28
La potencia aplicada a un móvil que se desplaza a velocidad v es:
• p = f ⋅v Ec. (3)
dw
• p= Ec. (4)
dt
Donde:
• dw : derivada de la energía
♦ Leyes y Principios
4
SERWAY, Raimond A. Física Moderna. Ed. Mc Graw Hill. 3ra Ed. Tomo 1 Pág. 97.
5
Ibidem
29
3. Tercera ley de Newton: Acción y Reacción. “Por cada acción existe una
reacción igual y opuesta”6
b) Fricción Seca:
• fr = µ ⋅ N Ec. (7)
Donde:
• fr : fricción seca
• µ : constante de rozamiento
• N : normal
6
Ibidem
30
Donde:
• Fr : fricción viscosa
7
• b : constante que depende de las características del medio ”.
5. Principio de D'alembert.
“El principio de d'Alembert establece que para todas las fuerzas de un sistema:
• ∑ ( p&
i
i )
− F&i * δ .ri = 0 Ec. (9)
Donde la suma se extiende sobre todas las partículas del sistema, siendo:
• p& i : momento de la partícula i-ésima.
7
SERWAY, Raimond A. Física Moderna. Ed. Mc Graw Hill. 3ra Ed. Tomo 1 Pág. 97
8
MEIROVICHM, L. Methods of analytical dynamics. Ed. McGraw-Hill. New York. 1970.
31
♦ Modelado. Los sistemas mecánicos tienen tres elementos pasivos básicos. El
resorte almacena energía potencial, la masa almacena energía cinética y el
amortiguador o fricción viscosa disipa energía en forma de calor. En la Tabla 1
se muestran los componentes del sistema mecánico (resorte, masa y fricción
viscosa), con sus respectivas ecuaciones de velocidad, desplazamiento e
impedancia. Los elementos lineales se identifican con los siguientes
parámetros: el resorte con el parámetro K, relativo a su módulo de elasticidad;
la masa con el parámetro M y el amortiguador con el coeficiente de fricción
viscosa b; tenga en cuenta que en la Tabla 1, el coeficiente de fricción viscosa
b, se representa con la variable fv.
32
♦ Masa Traslacional
1
• Energía Cinética wc = M ⋅ v2 Ec. (10)
2
• Energía Potencial w p = M ⋅ g ⋅ h Ec. (11)
dx
v=
• dt Ec. (13)
dt
dv d 2x
F = ma = m = m 2
• dt dt Ec. (14)
Donde:
• wc : energía cinética
• w p : energía potencial
• dv : derivada de la velocidad
• h : altura (m )
• W : peso ( N )
m
• g : gravedad 2
s
Figura 1. Representación del elemento masa.
33
♦ Resorte Traslacional
1
• Energía Potencial almacenada en el resorte w pk = K ⋅ x2 Ec. (15)
2
F = − kx(t )
F ⋅L F
x= =
A⋅ E A⋅ E L
• F Ec. (17)
x=
k
A⋅ E
k=
L
Donde:
• w pk : energía potencial elástica
N Lbf
• k : constante del resorte o
m in
• L : longitud
• E : modulo de Young
• A : sección transversal
34
♦ Fricción Viscosa Traslacional
F = bv (t )
dx (t )
F =b
• dt Ec. (18)
b= µ
F
τ =
A
v
τ = µ⋅
• h Ec. (19)
Igualando
F v
= µ⋅
A h
F ⋅h
µ= N ⋅s lbf ⋅ s
• A⋅v 2 = Pa ⋅ s o 2
= ips = reyn Ec. (20)
m in
Donde:
• µ : coeficiente de fricción estático
• v : velocidad
• h : altura
35
♦ Análisis para el modelado. El modelado requiere proponer una dirección
positiva del movimiento, como se observa en la Figura 4 en la que se
representa gráficamente un sistema masa – resorte – amortiguador, las fuerzas
que actúan y la función de transferencia equivalente del diagrama. También se
requiere el diagrama de cuerpo libre como se ilustra en la Figura 5 en donde se
indican todas las fuerzas que actúan sobre la masa.
36
Despejando el cociente Salida/Entrada
1
X (s) M
= Ec. (23)
F (s) 2 f K
s + v +
Ms M
37
Figura 7. Sistema eléctrico pasivo analogía de impedancia.
di 1
L
dt
+ Ri +
C∫idt = v Ec. (25)
38
Existe otro tipo de analogía, también muy útil, entre sistemas mecánicos y
eléctricos que es la analogía de movilidad o admitancia como se ilustra en la
Figura 8 y que es simplemente la dual de la anterior. De hecho, es este tipo de
analogía la que se suele emplear por la facilidad con que se halla el circuito
eléctrico a partir de su mecánico análogo, y porque el circuito eléctrico es
fácilmente analizable eléctricamente usando análisis nodal. Sea el siguiente
sistema eléctrico pasivo:
dv v 1
L + +
dt R L ∫
vdt = i Ec. (27)
d 2q 1 dq 1
C 2
Z + . Z + qZ = i Ec. (28)
dt R dt L
Comparando las ecuaciones (25) y (26), se puede observar que al igual que
ocurría con la analogía de impedancia las ecuaciones diferenciales son iguales.
39
En la Tabla 3 se muestra cada elemento del sistema mecánico con su respectivo
equivalente en el sistema eléctrico, para la analogía de movilidad.
2. Como un tipo sistema puede ser más fácil de manejar experimentalmente que
otro, en lugar de construir y estudiar un sistema mecánico o hidráulico se
puede construir y estudiar su análogo eléctrico” 9.
9
PRIEGO, Francisco. Documentación tomada de la ayuda Software Analogía 1.0. Escuela Universitaria de
Ingeniería Técnica de Telecomunicación de la Universidad Politécnica de Madrid. 1997
40
Tiene como soluciones
• s1 , s 2 =
1
2m
(
− B ± B 2 − 4km ) Ec. (30)
Para obtener una idea mas clara de lo que esta ecuación describe, se suponen m
y k constantes y se observa como se modifican las raíces de la ecuación auxiliar al
variar B.
41
• x(t ) = c1e s1t + c 2 e s1t Ec. (36)
Donde:
B
σ =− y
2m
• Ec. (41)
B 2 − 4mk
ω=
2m
Entonces:
• x(t ) = e σ ⋅t { A cos(ω ⋅ t ) + Csen(ω ⋅ t )} Ec. (42)
42
Si B = 0, el sistema queda descrito por la siguiente ecuación:
d 2 x(t )
• m + kx = F (t ) Ec. (43)
dt 2
Y a partir de la ecuación (30) se calculan las raíces s1 y s2. Como k > 0 y m > 0,
las raíces son imaginarias puras:
k
• s1 , s 2 = ± − = ±i ω Ec. (44)
m
43
♦ Forma Genérica de la Respuesta en el Tiempo. Tanto para el caso Sobre
Amortiguado como Críticamente Amortiguado, se tiene una idea intuitiva de la
forma de la respuesta en el tiempo del sistema.
Sin embargo para los casos Sub Amortiguado y con Amortiguamiento Positivo
se muestran a continuación las contribuciones de cada parte de la solución del
sistema. En la Figura 10 se observan las respuestas en el tiempo para los
casos sub amortiguado y amortiguamiento positivo para k>0 y k<0.
Para la solución:
A = Esen(α ) y
• Si: Ec. (48)
B = E cos(α )
Donde:
A E ⋅ sen(α ) A
= = tan(α ) → α = tan −1 y
• B E ⋅ cos(α ) B Ec. (50)
2 2 2
A +B =E
44
Figura 10. Forma genérica de la respuesta en el tiempo
10
OGATA, Katsuhiko. Ingeniería de Control Moderna. Ed Prentice Hall. 3ra Ed. 1998, Pág. 13.
45
5.3.8. Lugar Geométrico de las Raíces. “La idea básica detrás del método del
lugar geométrico de las raíces es que los valores que hacen que la función de
transferencia alrededor del lazo sea igual a 1 deben satisfacer la ecuación
característica del sistema. El método debe su nombre al lugar geométrico de las
raíces de la ecuación característica del sistema en lazo cerrado conforme la
ganancia varía de cero a infinito. Dicha gráfica muestra claramente cómo
contribuye cada polo o cero en lazo abierto a las posiciones de los polos en lazo
cerrado. El método del lugar geométrico de las raíces es una técnica gráfica muy
poderosa para investigar los efectos de la variación de un parámetro del sistema
sobre la ubicación de los polos en lazo cerrado”11. En otras palabras el método
permite verificar la estabilidad o inestabilidad del sistema dependiendo de los
polos de la ecuación característica de dicho sistema. En la Figura 11 se puede
observar el lugar geométrico de las raíces a partir de los polos y ceros en lazo
abierto para el punto de prueba s, en donde los ángulos de las cantidades
complejas se miden en sentido contrario a las manecillas del reloj.
Figura 11. Diagrama de medición de ángulos de los polos y ceros en lazo abierto para el punto
de prueba “s”.
11
OGATA, Katsuhiko. Ingeniería de Control Moderna. Ed Prentice Hall. 3ra Ed. 1998, Pág. 320.
46
5.3.9. Diagramas De Bode. “Una función de transferencia senoidal puede
representarse mediante dos gráficas distintas: una que ofrece la magnitud contra
la frecuencia y otra que muestra el ángulo de fase (en grados) contra la
frecuencia. Las trazas de Bode están formadas por dos gráficas: una es el
logaritmo de la magnitud de una función de transferencia senoidal y la otra es el
ángulo de fase. Ambas se grafican contra la frecuencia en la escala logarítmica.
12
OGATA, Katsuhiko. Ingeniería de Control Moderna. Ed Prentice Hall. 3ra Ed. 1998, Pág. 475.
47
Figura 12. Línea de Conversión de números a decibeles.
48
5.3.10. Criterio de Estabilidad de Nyquist. “El criterio de estabilidad de Nyquist
permite conocer la estabilidad relativa y absoluta de los sistemas lineales en lazo
cerrado a partir del conocimiento de sus características de frecuencia en lazo
abierto.
Las trazas de Nyquist, al igual que las trazas de Bode, suelen usarse en la
representación de la respuesta en frecuencia de sistemas de control lineales
realimentados e invariantes con el tiempo. Las trazas de Nyquist son gráficas
polares, en tanto que las trazas de Bode son gráficas rectangulares. La Figura 14
contiene un ejemplo de diagrama de Nyquist, en donde todos los puntos de la
traza polar representan el punto terminal de un vector en un valor determinado de
ω . Una u otra traza puede ser más conveniente para una operación específica,
pero determinada operación siempre puede realizarse en cualquier traza.”13
13
OGATA, Katsuhiko. Ingeniería de Control Moderna. Ed Prentice Hall. 3ra Ed. 1998, Pág. 504
49
5.4. MARCO TECNOLÓGICO
14
ASOCIACIÓN JAVAHISPANO. 2002-2007. Disponible en
http://www.javahispano.org/contenidos/es/que_es_java/
50
5.4.2. NetBeans IDE 6.0.1 “NetBeans es una plataforma para el desarrollo de
aplicaciones de escritorio usando Java y a un entorno de desarrollo integrado
(IDE) desarrollado usando la Plataforma NetBeans.
♦ Matlab® Builder™ For Java. “MATLAB Builder for JAVA” es una extensión del
compilador de MATLAB; con él se puede encapsular funciones con código de
MATLAB dentro de una o mas clases de JAVA, que a su vez son una porción
de código de JAVA en el cual se instancia los métodos de JAVA. Cuando se ha
desarrollado un programa desde MATLAB, cada función de MATLAB es
15
WIKIPEDIA. NetBeans. Marzo 2008. Disponible en http://es.wikipedia.org/wiki/NetBeans
16
OSMOLIS LATINA. 2000-2008. Disponible en http://www.osmosislatina.com/java/componentes.htm
51
encapsulada como un método de una clase de JAVA y puede ser invocada
desde una aplicación JAVA. Cuando es creado un paquete JAVA desde
MATLAB, se tiene la opción de incluir dentro del paquete el “MATLAB Compiler
Runtime” (MCR), permitiendo a los usuarios correr y desarrollar nuevas
aplicaciones en computadores que no tiene MATLAB instalado.
1. Inicie MATLAB.
2. Escriba en el “command prompt” de MATLAB el comando “deploytool”, y se
abrirá la interfaz grafica de “Deployment tool”.
3. Verifique que MATLAB esta leyendo correctamente la variable de entorno
JAVA_HOME, para hacer esto es necesario que escriba en el “command
52
prompt” de MATALB el comando “getenv JAVA_HOME”, la respuesta de
MATLAB deberá ser la ubicación de la variable JAVA_HOME.
53
6. DISEÑO INGENIERIL
6.1. HIPÓTESIS
6.2. VARIABLES
• Recursos tecnológicos
• Tiempo
• Herramientas de uso libre
54
6.4. POBLACIÓN Y MUESTRA
Este proyecto está dirigido a todas las personas que desean modelar y simular
sistemas mecánicos de traslación. Centrando este estudio particularmente a
quienes hacen uso de sistemas dinámicos de control.
Empírico - Analítico
55
7. METODOLOGÍA
El uso de esta metodología asegura que se produzca desde sus primeras fases de
desarrollo, un producto de calidad que cumpla con las características de eficacia,
eficiencia y fiabilidad.
56
♦ Fase de comienzo o inicio. El objetivo de esta fase está dirigido al
entendimiento de los requerimientos y a determinar el alcance del esfuerzo de
desarrollo. Algunas de las actividades definidas para esta fase son:
57
• Actualizar el plan de iteración.
• Gestionar los recursos (herramientas de lenguajes para el desarrollo del
software).
• Desarrollar el proyecto
• Completar el desarrollo de los componentes (prototipo funcional).
• Probar los componentes contra los criterios de evaluación definidos.
• Actualizar el plan de proyecto
• Realizar la documentación correspondiente del proyecto.
58
8. DESARROLLO METODOLÓGICO
El cuestionario que hizo parte de las entrevista esta conformado por las siguientes
preguntas:
• ¿Qué es un sistema?
• ¿Qué es un sistema mecánico de traslación?
• ¿Qué es una masa traslacional?
• ¿Qué es un resorte traslacional?
• ¿Qué es la fricción viscosa?
• ¿Que es una fuerza?
• ¿Qué es un nodo?
• ¿Qué leyes describen un sistema mecánico de traslación?
• ¿Qué son analogías electromecánicas?
• ¿Qué es un modelo?
59
De acuerdo a las respuestas proporcionadas a estos interrogantes, a continuación
se realiza la descripción del sistema actual:
60
control a circuito cerrado, además de brindar información sobre funciones de
la transferencia de componentes o sistemas de datos experimentales de la
respuesta de frecuencia y diagrama del lugar geométrico de las raíces que
proporciona gráficamente márgenes de estabilidad e inestabilidad y la relación
entre ambas.
Fuente: El autor
61
8.2. IDENTIFICACIÓN DE ACTORES Y REQUERIMIENTOS.
• Ingresar al software.
• Diseñar el sistema mecánico de traslación.
• Gestionar la simulación del sistema diseñado.
• Valida el diseño del sistema mecánico de traslación.
• Realiza la simulación del sistema diseñado.
• Genera los resultados del análisis del sistema diseñado en forma
matemática y gráfica.
8.2.2. Casos de Uso. Para ilustrar los casos de uso se presenta un diagrama
principal en donde se describe la interacción entre los actores y los casos de uso
en la aplicación. Después se realiza un detalle de cada uno aplicando la estructura
que se muestra en la Tabla 4:
62
Tabla 4. Estructura de la interacción entre los actores y los casos de uso.
Actor Caso de uso Descripción
Actores participantes Nombre del Descripción del caso de uso
en el caso de uso caso de uso
Para llevar a cabo una descripción de cada caso de uso, se aplicará el formato
descrito en la Tabla 5:
63
Figura 16. Diagrama de casos de uso.
Fuente. El autor
64
A continuación se describe cada uno de los casos de uso que intervienen en el
sistema, con su respectivo diagrama de secuencia y colaboración, iniciando así
con la fase de desarrollo.
Fuente. El autor
65
Figura 18. Diagrama de secuencia modelamiento.
Fuente. El autor
66
Figura 19. Diagrama de colaboración validación.
Fuente. El autor
Fuente. El autor
67
Tabla 9. Caso de uso Simulación.
Caso de uso: Simulación.
Objetivo: Simular el sistema mecánico de traslación modelado.
Actor: Usuario.
Precondiciones: Validar el sistema mecánico.
ESCENARIO 1
El software analiza el diseño realizado por el usuario aplicando analogías
matemáticas.
Se obtiene como resultado la función de transferencia.
Se despliega la ecuación en el área de resultados.
A partir de las ecuación obtenida, el software genera 4 gráficas que
muestran el comportamiento del sistema simulado:
1. Diagrama de función en el tiempo.
2. Diagrama de nyquist, que se genera a partir de la ecuación de
transferencia.
3. Diagrama de bode, que se genera a partir de la ecuación de
transferencia.
4. Diagrama del lugar geométrico de las raíces, que se genera a partir de
la ecuación de transferencia.
El software despliega una pestaña por cada gráfica correspondiente al
sistema mecánico de traslación.
Fuente. El autor
68
Figura 21. Diagrama de colaboración simulación.
Fuente. El autor
Fuente. El autor
69
8.4. DISEÑO
Fuente. El autor
70
• Utilidades: Esta clase contiene un jpanel con los botones de desconectar,
borrar, simular, análisis y función de transferencia (es decir los botones que
hacen el análisis). Dentro de esta clase se hacen las siguientes
validaciones:
o Si existen componente desconectados
o Si no existe la fuente
o Si el sistema está incompleto
Fuente. El autor
• Validador: Esta clase tiene las siguientes restricciones para el uso del
software:
o No mas de tres nodos ni tres masas
o Una sola fuente
71
o Fuente conectada a nodo 1 y a tierra
o Componentes entre nodos
Fuente. El autor
72
• DialogoAnalizar: Esta clase contiene un jpanel en el que se puede
seleccionar el análisis que se desea observar (bode, nyquist, Lugar
geométrico de las raíces); desde esta clase dependiendo de lo que el
usuario seleccione, se ejecutan los programas creados en matlab y se
obtiene la gráfica correspondiente al análisis.
Ejemplo.
En la Figura 26 a una masa de valor m, se le aplica una fuerza de valor F. Esta
masa esta conectada a un Resorte de constante K, el cual a su vez está
conectado al punto de referencia o inmóvil del sistema. Obtenga la función de
transferencia del modelo. Suponga que existe fricción viscosa.
Fuente. El autor
73
Los métodos que serán usados para determinar el modelo del sistema serán los
siguientes:
• Leyes de Newton
• Analogía Fuerza-Corriente.
Una vez se obtienen los modelos, por los métodos ya mencionados, se podrá
entender mejor el procedimiento mostrado más adelante, con el cual se obtendrá
la función de transferencia general que se implementará en el software.
Fuente. El autor
• F2 = B * V ⇒ ∑ FX = F (t ) − F1 − F2 = m * a Ec. (52)
Transformada de Laplace
• FS = mS 2 X S + kX S + BSX S Ec. (54)
74
• ⇒ FS = X S (mS 2 + BS + k ) Ec. (55)
FS B k
• ⇒ = X S (S 2 + S + ) Ec. (56)
m m m
1
XS m
• Función De Transferencia del sistema GS = = Ec. (57)
FS B k
S2 + S +
m m
Ecuación para Velocidad
dv
• Ecuación diferencial del sistema F (t ) = m + k ∫ vdt + Bv Ec. (58)
dt
Transformada de Laplace
k
• FS = mSVS + VS + BVS Ec. (59)
S
• ⇒ SFS = VS (mS 2 + BS + k ) Ec. (60)
S
V m
• Función De Transferencia del sistema GS = S = Ec. (61)
FS S 2 + B S + k
m m
75
2. Ubicar todas las masas conectadas al nodo de referencia.
3. Nombrar los nodos superiores de las masas con las variables de salida V
(Velocidad) o X/Y (Espacio).
4. Conectar los demás elementos (B, K) amortiguador y resorte,
respectivamente, entre nodos según el esquema.
5. Conectar las entradas a los nodos que correspondan.
Fuente. El autor
76
Transformada de Laplace
k
• FS = mSVS + VS + BVS Ec. (59)
S
• ⇒ SFS = VS (mS 2 + BS + k ) Ec. (60)
S
XS m
• Función De Transferencia del sistema GS = = Ec. (63)
FS B k
S2 + S +
m m
Fuente. El autor
77
VO 1 dv
• Ecuación diferencial del sistema i (t ) = + ∫ VO dt + C o Ec. (64)
R L dt
Transformada de Laplace
VS 1
• i( S ) = + V S + CSV S Ec. (65)
R LS
1 1
• ⇒ i( S ) = VS ( + + CS ) Ec. (66)
R LS
1 1
• ⇒ i( S ) S = V S (CS 2 + S+ ) Ec. (67)
R L
S 1 1
• i( S ) = VS ( S 2 + S+ ) Ec. (68)
C CR CL
S
V C
• G( S ) = S = Ec. (69)
i( S ) 2 1 1
S +S +
RC LC
Fuente. El autor
78
Figura 31. Elementos de almacenamiento inductivo
Fuente. El autor
Fuente. El autor
1
• K≅ Ec. (70)
L
1
• B≅ Ec. (71)
R
• m≅C Ec. (72)
79
8.5.1. Obtención de la Función de Transferencia Generalizada. A partir del
ejemplo mostrado se podrá comprender el análisis que se realizará para obtener la
función de transferencia que se implementará en el software propuesto.
Fuente. El autor
Teniendo claro el tipo de circuito que se debe modelar, se obtienen las ecuaciones
diferenciales del sistema, por medio de análisis de circuitos. Sin embargo para
garantizar el correcto funcionamiento de la ecuación que se obtendrá, se ha
optado por realizar un análisis por casos. Es decir se tendrá en cuenta un
procedimiento para un circuito de un nodo, otro para un circuito de dos nodos y
finalmente otro para tres nodos. Todo esto con el fin de ir validando uno por uno
los posibles casos que se puedan llegar a tener y no contemplar todo el análisis a
80
partir de un solo circuito y una sola ecuación. Todo ello se explicará de forma más
concisa y clara, a través del documento en el momento que corresponda.
81
Figura 34. Sistema mecánico de traslación con un nodo.
Fuente. El autor
• Entrada= f (t ) (Fuerza)
• Salida= X 1 (t ) (Espacio)
d 2 x1 dx
f (t ) = M 10 2
+ B10 1 + K 10 x1
dt dt
• Transformada _ De _ Laplace Ec. (73)
f (s ) = S M 10 x1 ( s ) + SB10 x1 ( s ) + K 10 x1 ( s )
2
( ) (
f (s ) = x1 ( s ) S 2 M 10 + B10 S + K 10 ⇒ f ( s ) = x1 ( s) S 2 M 10 + SB10 + K 10 )
Función de transferencia:
x1 ( s ) 1
• G (s ) = = 2 Ec. (74)
f (s ) S M 10 + SB10 + K 10
82
Figura 35. Sistema mecánico de traslación con dos nodos.
Fuente. El autor
• Entrada= f (t ) (Fuerza)
• Salidas= X 1 (t ) X 2 (t ) (Espacio)
Puesto que el circuito tiene dos nodos, resulta un sistema de dos ecuaciones con
dos incógnitas.
d 2 x1 dx1 d ( x1 − x 2 )
1. f (t ) = M 10 2
+ K 10 x1 + B10 + K 12 ( x1 − x 2 ) + B12 Ec. (75)
dt dt dt
Transformada De Laplace:
f (s ) = S 2 M 10 x1 ( s ) + K 10 x1 ( s ) + SB10 x1 ( s ) + K 12 x1 ( s ) − K 12 x 2 ( s ) + SB12 x1 ( s ) − SB12 x 2 ( s )
( )
f (s ) = x1 ( s ) S 2 M 10 + S ( B10 + B12 ) + ( K 10 + K 12 ) + x 2 ( s )(S (− B12 ) − ( K 12 ) )
Ec. (76)
d ( x1 − x 2 ) d 2 x2 dx
2. B12 + K 12 ( x1 − x 2 ) = M 20 2
+ B 20 2 + K 20 x 2 Ec. (77)
dt dt dt
83
Transformada De Laplace:
S 2 M 20 x 2 ( s ) + SB20 x 2 ( s ) + K 20 x 2 ( s ) + SB12 x 2 ( s ) + K 12 x 2 ( s ) − SB12 x1 ( s ) − K 12 x1 ( s ) = 0
(
x1 ( s )(S (− B12 ) − K 12 ) + x 2 ( s ) S 2 M 20 + S ( B 20 + B12 ) + ( K 20 + K 12 ) = 0 )
Ec. (78)
f (s ) [S (− B12 ) − K 12 ]
0 [S 2
M 20 + S ( B 20 + B12 ) + ( K 20 + K 12 ) ]
[
∆ 1 = f ( s ) S 2 M 20 + S ( B20 + B12 ) + ( K 20 + K 12 ) ] Ec. (80)
84
Determinante de kramer para salida de nodo 2: (Numerador de la función de
transferencia para salida nodo 2)
[
S 2 M 10 + S ( B10 + B12 ) + ( K 10 + K 12 ) ] f (s )
[S (− B12 ) − K 12 ] 0
Función de transferencia:
∆K
• G( S ) = Ec. (82)
∆T
Donde:
• ∆ K = determinante de Kramer
• ∆ T = determinante del sistema
Nodo Uno.
• Determinante del sistema de la forma As4+Bs3+Cs2+Ds+E
• Determinante de Kramer de la forma as2+bs+c
as 2 + bs + c
• Función de transferencia G( S ) = ⇒
Ec. (83)
As 4 + Bs 3 + Cs 2 + Ds + E
S 0 ⇒ c = K 20 + K 12 Ec. (86)
85
S 3 ⇒ B = M 10 B20 + M 10 B12 + M 20 B10 + M 20 B12 Ec. (88)
S 0 ⇒ E = K 10 K 20 + K 10 K 12 + K 12 K 20 Ec. (91)
Nodo Dos:
as + b
• Función de transferencia G( S ) = Ec. (92)
As + Bs + Cs 2 + Ds + E
4 3
S 0 ⇒ b = K 12 Ec. (94)
S 0 ⇒ E = K 10 K 20 + K 10 K 12 + K 12 K 20 Ec. (99)
86
Figura 36. Sistema mecánico de traslación con tres nodos.
Fuente. El autor
• Entrada= f (t ) (Fuerza)
• Salidas= X 1 X 2 X 3 (Espacio)
Puesto que el circuito tiene tres nodos, resulta un sistema de tres ecuaciones con tres incógnitas.
87
d 2 x1 dx d ( x1 − x 2 ) d ( x1 − x3 )
1. f (t ) = M 10 2
+ B10 1 + K 10 x1 + K 12 ( x1 − x 2 ) + B12 + B13 + K 13 ( x1 − x 3 ) Ec. (100)
dt dt dt dt
Transformada De Laplace:
f (s ) = S 2 M 10 x1 ( s ) + SB10 x1 ( s ) + K 10 x1 ( s ) + K 12 x1 ( s ) − K 12 x 2 ( s ) + SB12 x1 ( s ) − SB12 x 2 ( s ) + SB13 x1 ( s) − SB13 x3 ( s ) + K 13 x1 ( s ) − K 13 x 3 ( s )
( )
f (s ) = x1 ( s ) S 2 M 10 + S ( B10 + B12 + B13 ) + ( K 10 + K 12 + K 13 ) + x 2 ( s )(S (− B12 ) − ( K 12 ) ) + x 3 ( s )(S (− B13 ) − ( K 13 ) )
Ec. (101)
d ( x1 − x 2 ) d 2 x2 dx d ( x2 − x3 )
2. K 12 ( x1 − x 2 ) + B12 = M 20 2
+ K 20 x 2 + B 20 2 + K 23 ( x 2 − x3 ) + B23 Ec. (102)
dt dt dt dt
Transformada De Laplace:
( )
V1 ( s )(S (− B12 ) − K 12 ) + V2 ( s ) S 2 M 20 + S ( B20 + B23 + B12 ) + ( K 20 + K 23 + K 12 ) + V3 ( s )(S (− B23 ) − K 23 ) = 0 Ec. (103)
dv3
3. K 23 ∫ (V2 − V3 )dt + B23 (V2 − V3 ) = K 30 ∫ V3 dt + M 30 + B30V3 + K13 ∫ (V1 − V3 )dt + B13 (V1 − V3 ) Ec. (104)
dt
Transformada De Laplace:
K 30 K K K K
M 30 SV3 ( s ) + V3 ( s ) + B30V3 ( s ) − 13 V1 ( s ) + 13 V3 ( s ) − B13V1 ( s ) + B13V3 ( s ) − 23 V 2 ( s ) + 23 V3 ( s ) + B 23V3 ( s ) − B 23V 2 ( s ) = 0
S S S S S
(
V1 ( s )(S (− B13 ) − K 13 ) + V 2 ( s )(S (− B 23 ) − K 23 ) + V3 ( s ) S M 30 + S ( B30 + B13 + B23 ) + ( K 30 + K 13 + K 23 ) = 0
2
)
Ec. (105)
88
Matriz del sistema:
S 2M10 + S(B10 + B12 + B13) + (K10 + K12 + K13) S (−B12) − K12 S(−B13) − K13 V1 f (s)
S (−B12 ) − K12 S 2M20 + S (B20 + B12 + B23) + (K20 + K12 + K23) S (−B23) − K23 * V2 = 0
S (−B13) − K13 S (−B23) − K23 S 2M30 + S (B30 + B23 + B13) + (K30 + K23 + K13) V3 0
Puesto que el determinante de la matriz resulta demasiado extenso, como ya se había mencionado con anterioridad,
debido a que es un polinomio de la forma DT = As 6 + Bs 5 + Cs 4 + Ds 3 + Es 2 + Fs + G .En el documento se presentarán
los coeficientes del polinomio por separado y de esta forma tener una mejor apreciación del determinante.
S 5 ⇒ B = ((( M 10 * M 20 ) * ( B30 + B23 + B13 )) + (( M 10 * M 30 ) * ( B20 + B12 + B23 )) + (( M 20 * M 30 ) * ( B10 + B12 + B13 ))) Ec. (108)
89
S 3 ⇒ D = ((( M 10 * ( B20 + B12 + B23 ) * ( K 30 + K 23 + K 13 )) + ( M 10 * ( K 20 + K 12 + K 23 ) * ( B30 + B23 + B13 )) − (2 * M 10 * B23 * K 23 ) + ( M 20 *
( K 30 + K 23 + K 13 ) * ( B10 + B12 + B13 )) + (( B10 + B12 + B13 ) * ( B20 + B12 + B23 ) * ( B30 + B23 + B13 )) + ( M 30 * ( K 20 + K 12 + K 23 ) * ( B10 + B12 +
2 2
B13 )) − (( B23 ) * ( B10 + B12 + B13 )) + ( M 20 * ( B30 + B23 + B13 ) * ( K 10 + K 12 + K 13 )) + ( M 30 * ( B20 + B12 + B23 ) * ( K 10 + K 12 + K 13 ))) − ((( B12 ) *
2
( B30 + B23 + B13 )) + (( M 30 * K 12 * B12 ) + ( B12 * B13 * B23 )) + ( M 30 * B12 * K 12 )) − ((( B13 ) * ( B20 + B12 + B23 )) + ( M 20 * K 13 * B13 ) + ( B12 * B13 +
B23 ) + ( B13 * K 13 + M 20 )))
Ec. (110)
90
S 0 ⇒ G = [((( K 10 + K 12 + K 13 ) * ( K 30 + K 23 + K 13 ) * ( K 20 + K 12 + K 23 )) − (( K 10 + K 12 + K 13 ) * ( K 23 * K 23 ))) − ((( K 12 * K 12 ) * ( K 30 +
K 23 + K 13 )) + ( K 12 * K 23 * K 13 )) − (( K 12 * K 23 * K 13 ) + (( K 20 + K 12 + K 23 ) * ( K 13 * K 13 )))]
Ec. (112)
Determinante de kramer para salida de nodo 1: (Numerador de la función de transferencia para salida nodo 1)
∆ 1 = as 4 + bs 3 + cs 2 + ds + e Ec. (113)
S 4 ⇒ a = (M 20 * M 30 ) Ec. (114)
S 2 ⇒ c = ((M 20 * ( K 30 + K 23 + K 13 ) ) + ((M 30 * ( K 20 + K 12 + K 23 ) )) + (( B20 + B12 + B23 ) * ( B30 + B23 + B13 ) ) − ( B23 * B23 ) ) Ec. (116)
S 1 ⇒ d = ((( B20 + B12 + B23 ) * ( K 30 + K 23 + K 13 ) + (( K 20 + K 12 + K 23 ) * ( B30 + B23 + B13 ) ) − (2 B23 * K 23 ) ) Ec. (117)
91
Determinante de Kramer para salida de nodo 2: (Numerador de la función de transferencia para salida nodo 2)
S 2 M10 + S (B10 + B12 + B13 ) + (K10 + K12 + K13 ) f (s) S (−B13 ) − K13
S (−B12 ) − K12 0 S(−B23 ) − K 23
S (− B ) − K 0 S 2
M + S ( B + B + B ) + ( K + K + K )
13 13 30 30 23 13 30 23 13
∆ 2 = as 3 + bs 2 + cs + d Ec. (119)
S 0 ⇒ d = (( K 12 * ( K 30 + K 23 + K 13 )) + ( K 13 * K 23 ) Ec. (123)
Determinante de kramer para salida de nodo 3: (Numerador de la función de transferencia para salida nodo 3)
S 2M10 + S(B10 + B12 + B13) + (K10 + K12 + K13) S(−B12) − K12 f (s)
S (−B12 ) − K12 S 2M20 + S (B20 + B12 + B23) + (K20 + K12 + K23) 0
S (−B13) − K13 S(−B23) − K23 0
∆ 3 = as 3 + bs 2 + cs + d Ec. (123)
92
Coeficientes del determinante de Kramer:
Nodo Uno:
as 4 + bs 3 + cs 2 + ds + e
• G =
Función de transferencia ( S ) As 6 + Bs 5 + Cs 4 + Ds 3 + Es 2 + Fs + G Ec. (128)
93
S 2 ⇒ c = ((M 20 * ( K 30 + K 23 + K 13 ) ) + ((M 30 * ( K 20 + K 12 + K 23 ) )) + (( B20 + B12 + B23 ) * ( B30 + B23 + B13 ) ) − ( B23 * B23 ) ) Ec. (131)
S 1 ⇒ d = ((( B20 + B12 + B23 ) * ( K 30 + K 23 + K 13 ) + (( K 20 + K 12 + K 23 ) * ( B30 + B23 + B13 ) ) − (2 B23 * K 23 ) ) Ec. (132)
S 5 ⇒ B = (((M 10 * M 20 ) * ( B30 + B23 + B13 )) + (( M 10 * M 30 ) * ( B20 + B12 + B23 )) + (( M 20 * M 30 ) * ( B10 + B12 + B13 ))) Ec. (135)
94
S 2 ⇒ E = [(( M 10 * ( K 30 + K 23 + K 13 ) * ( K 20 + K 23 + K 12 )) − ( M 10 * K 23 * K 23 ) + (( B10 + B12 + B13 ) * ( K 30 + K 23 + K 13 ) * ( B20 + B12 + B23 )) +
(( K 20 + K 12 + K 23 ) * ( B30 + B23 + B13 ) * ( B10 + B12 + B13 )) − ((2 * B23 * K 23 ) * ( B10 + B12 + B13 )) + ( M 20 * ( K 30 + K 23 + K 13 ) * ( K 10 + K 12 +
K 13 )) + (( B20 + B12 + B23 ) * ( B30 + B23 + B13 ) * ( K 10 + K 12 + K 13 )) + ( M 30 * ( K 20 + K 12 + K 23 ) * ( K 10 + K 12 + K 13 )) − (( K 10 + K 12 + K 13 ) *
2
B23 * B23 )) − ((( B12 ) * ( K 30 + K 23 + K 13 )) + (( B12 * K 12 ) * ( B30 + B23 + B13 )) + (( B12 * B13 * K 23 ) + ( B12 * B23 * K 13 )) + (( B12 * K 12 ) *
2 2
( B30 + B23 + B13 )) + ( M 30 * K 12 ) + ( B13 * B23 * K 12 )) − ((( B13 * B12 * K 23 ) + ( B13 * B23 * K 12 )) + (( B13 ) * ( K 20 + K 12 + K 23 )) + (( B13 *
K 13 ) * ( B20 + B12 + B23 )) + ( B12 * B23 * K 13 ) + ( M 20 * K 13 * K 13 ) + (( B20 + B12 + B23 ) * ( B13 * K 13 )))]
Ec. (138)
Nodo Dos:
95
as 3 + bs 2 + cs + d
• G =
Función de transferencia ( S ) As 6 + Bs 5 + Cs 4 + Ds 3 + Es 2 + Fs + G Ec. (141)
S 0 ⇒ d = (( K 12 * ( K 30 + K 23 + K 13 )) + ( K 13 * K 23 ) Ec. (145)
S 5 ⇒ B = (((M 10 * M 20 ) * ( B30 + B23 + B13 )) + (( M 10 * M 30 ) * ( B20 + B12 + B23 )) + (( M 20 * M 30 ) * ( B10 + B12 + B13 ))) Ec. (147)
96
S 3 ⇒ D = ((( M 10 * ( B20 + B12 + B23 ) * ( K 30 + K 23 + K 13 )) + ( M 10 * ( K 20 + K 12 + K 23 ) * ( B30 + B23 + B13 )) − (2 * M 10 * B23 * K 23 ) + ( M 20
* ( K 30 + K 23 + K 13 ) * ( B10 + B12 + B13 )) + (( B10 + B12 + B13 ) * ( B20 + B12 + B23 ) * ( B30 + B23 + B13 )) + ( M 30 * ( K 20 + K 12 + K 23 ) * ( B10 +
2
B12 + B13 )) − (( B23 ) * ( B10 + B12 + B13 )) + ( M 20 * ( B30 + B23 + B13 ) * ( K 10 + K 12 + K 13 )) + ( M 30 * ( B20 + B12 + B23 ) * ( K 10 + K 12 + K 13 ))) −
2 2
((( B12 ) * ( B30 + B23 + B13 )) + (( M 30 * K 12 * B12 ) + ( B12 * B13 * B23 )) + ( M 30 * B12 * K 12 )) − ((( B13 ) * ( B20 + B12 + B23 )) + ( M 20 * K 13 * B13 ) +
( B12 * B13 + B23 ) + ( B13 * K 13 + M 20 )))
Ec. (149)
97
S 0 ⇒ G = [((( K 10 + K 12 + K 13 ) * ( K 30 + K 23 + K 13 ) * ( K 20 + K 12 + K 23 )) − (( K 10 + K 12 + K 13 ) * ( K 23 * K 23 ))) − ((( K 12 * K 12 ) * ( K 30 +
K 23 + K 13 )) + ( K 12 * K 23 * K 13 )) − (( K 12 * K 23 * K 13 ) + (( K 20 + K 12 + K 23 ) * ( K 13 * K 13 )))]
Ec. (152)
Nodo Tres:
as 3 + bs 2 + cs + d
• Función de transferencia : G( S ) = Ec. (153)
As 6 + Bs 5 + Cs 4 + Ds 3 + Es 2 + Fs + G
98
S 5 ⇒ B = (((M 10 * M 20 ) * ( B30 + B23 + B13 )) + (( M 10 * M 30 ) * ( B20 + B12 + B23 )) + (( M 20 * M 30 ) * ( B10 + B12 + B13 ))) Ec. (159)
99
S 1 ⇒ F = [((( B10 + B12 + B13 ) * ( K 20 + K 12 + K 23 ) * ( K 30 + K 23 + K 13 )) − (( B10 + B12 + B13 ) * ( K 23 * K 23 )) + (( K 30 + K 23 + K 13 ) * ( K 10 +
K 12 + K 13 ) * ( B20 * B12 * B23 )) + (( K 20 + K 12 + K 23 ) * ( K 10 + K 12 + K 13 ) * ( B30 + B23 + B13 )) − ((2 * B23 * K 23 ) * ( K 10 + K 12 + K 13 ))) −
((( K 12 * B12 * ( K 30 + K 23 + K 13 ))) + ( B12 * K 23 * K 13 ) + ( B12 ∗ K 12 * ( K 30 + K 23 + K 13 )) + (( K 12 ∗ K 12 ) * ( B30 + B23 + B13 )) + ( K 13 * K 12 *
B23 ) + ( K 23 * B13 * K 12 )) − (( K 12 * K 23 * B13 ) + (( K 20 + K 12 + K 23 ) * ( K 13 + B13 )) + ( B12 * K 23 * K 13 ) + ( K 12 * B23 * K 13 ) + (( B20 + B12 +
B23 ) * ( K 13 * K 13 )) + ( K 20 + K 12 + K 23 ) * ( B13 * K 13 )))]
Ec. (163)
Los procedimientos anteriormente mostrados, corresponden al proceso para obtener la función de transferencia
para circuitos de uno, dos y tres nodos. Estas ecuaciones son las que serán programadas en el software para
obtener los resultados deseados. (Anexo B).
Sistema de un nodo
• Función de transferencia: Ecuación (74)
100
• Nodo 2: Función de transferencia: Ecuación (91)
double M10, M20, M30, B10, B20, B30, B12, B13, B23, K10, K20, K30, K12, K13, K23;
Luego el programa hace lectura de los archivos en los que están contenidos los
valores de cada uno de los elementos por medio de un “buffer” de lectura de JAVA
que se instanció en una de las clases del programa. En la Figura 37 se puede
observar la clase en la que se encuentra instanciado el método de lectura de los
archivos de los valores de cada elemento.
101
Figura 38. Método de lectura de valores de cada elemento
Ya que los valores que se leen son de tipo cadena de caracteres (“String”), se crea
una clase que realiza la conversión de los tipos de datos, en este caso la
conversión es de: carácter a número con punto decimal (“double”) y viceversa,
para que JAVA lo pueda capturar y realizar operaciones matemáticas.
102
En la Figura 40 se observa la clase en la que se llama al método para la
conversión las cadenas de caracteres (“String”) a tipo de dato numérico de punto
decimal (“Double”) y numérico entero (“Int”) de los archivos de los valores de cada
elemento.
103
Figura 41. Estructura de programación de las ecuaciones
104
8.5.3. Curvas De Respuesta. A partir del análisis que se realizó para obtener la
función de transferencia, se pueden determinar las curvas de respuesta del
sistema mediante Matlab. Este procedimiento es posible lograrlo gracias a que la
función de transferencia se obtuvo a partir de los coeficientes del polinomio. Todo
ello debido a que las funciones que utiliza matlab para graficar las curvas de
respuesta, requieren como parámetros los coeficientes del numerador y
denominador.
Fuente: El autor
A
• Transformada de Laplace: Ec. (165)
S
105
num=[1 0];
den=[1 5 6];
step(num,den);
S
• G( S ) = 2
Ec. (166)
S + 5S + 6
Significa que los coeficientes del numerador serán [1 0], y los coeficientes del
denominador serán [1 5 6], tal como se muestra en las líneas de código de
ejemplo.
step(A*num,den);
106
Estos parámetros serán tomados de archivos de texto temporales, que serán
escritos por java, desde la interfaz gráfica. Una vez estén cargados los datos
con la función load, el programa entrará a operar las ecuaciones que designan
cada coeficiente del numerador y denominador, puesto que cada coeficiente
está en términos de masa, amortiguador y resorte. Terminado este proceso el
denominador y numerador de la función de transferencia quedarán de la
siguiente forma:
107
diferentes entradas, solo fue necesario implementar la instrucción impulse a
cada programa, es decir, cada programa finalmente mostrará gráficas de
respuesta con una entrada impulso. Esto se debe a que la función impulso no
afecta el grado de la función de transferencia en el momento de asignarlo
como entrada. Para entender lo anterior de una mejor manera tome en cuenta
el siguiente ejemplo:
S
Se tiene la siguiente función de transferencia G( S ) = 2
y se desea
S + 5S + 6
obtener la grafica de respuesta a la entrada rampa.
k
Función Rampa: E(t)=Kt ⇒ T. de laplace E(s)=
S2
Y ( s) Salida
G( s) = =
E ( s ) Entrada
Y (s) = G( s) * E ( s)
kS k
Y (s) = 4 3 2
* 2
S + 5S 6 S S
num=[1 0];
den=[1 5 6];
impulse(k*num,den);
108
Figura 44. Función rampa
Fuente: El autor
K
• Transformada de laplace: Ec. (167)
S2
Y (t ) = sen(ω.t )
Fuente: El autor
ω
• Transformada de laplace: 2
Ec. (168)
S +ω
109
Figura 46. Función exponencial
y (t ) = e − at
Fuente: El autor
1
• Transformada de laplace: Ec. (169)
S+a
y (t ) = e at
Fuente: El Autor
1
• Transformada de laplace: Ec. (170)
S −a
110
Lo primero que se hace, es tener el programa al que se le desea crear el
ejecutable, definido como una función, esto quiere decir que si el programa tiene
por nombre ARCHIVO.m, el programa deberá estar encabezado por la siguiente
instrucción:
Function ARCHIVO
111
compilador aparecerán los resultados mostrados en la Figura 49. En esta opción
se seleccionará “y”, para confirmar la instalación del compilador.
112
Figura 50. Entorno de Matlab – confirmar selección del compilador
113
Este procedimiento tardará unos minutos dependiendo de lo extenso que puede
resultar el programa. Finalmente matlab creará archivos de texto entre otros. Sin
embargo lo realmente importante será un archivo.exe y otro archivo.ctf.
Estos archivos son los que deben ser copiados a la máquina sin matlab, donde se
quiere utilizar el ejecutable. Para que este ejecutable funcione debe instalarse un
archivo de matlab llamado MCR installer, MATLAB COMPONENT RUNTIME en la
máquina que no tiene matlab. Matworks, dueño de los derechos de matlab permite
crear estas aplicaciones sin ningún problema, y costo, ya que son de uso libre.
Una vez se copien estos archivos en la máquina, se ejecuta el MCR installer, y los
ejecutables ya quedarán listos para usarse.
114
Anteriormente se explicó el procedimiento para obtener las curvas de respuesta,
para este caso el análisis y desarrollo se obtendrán de la misma forma. Es decir,
se tomará la función de transferencia en términos de vector y se graficará en
matlab de la siguiente forma:
• Diagramas de Bode:
Numerador=[S6 S5 S4 S3 S2 S1 S0]
Denominador=[S5 S4 S3 S2 S1 S0]
bode (Numerador, denominador)
• Diagramas de Nyquist:
Numerador=[S6 S5 S4 S3 S2 S1 S0]
Denominador=[S5 S4 S3 S2 S1 S0]
nyquist (Numerador, denominador)
8.5.5. Matlab y java. El diseño de la interfaz de usuario fue realizado en java, por
esto fue necesario encontrar la forma de comunicar ésta con matlab, para que
interactuaran.
115
elementos que conforman los sistemas mecánicos de traslación, en java. Se opto
por la siguiente implementación:
Matlab posee una herramienta que permite guardar y cargar archivos de extensión
dat, mat, o ASCII, es decir, archivos de texto. Por ello en el momento en que el
usuario asigne los valores desde la interfaz gráfica, estos se escribirán en archivos
de texto temporales, que serán leídos por matlab. Suponga que en la carpeta work
de matlab, se tiene un archivo de texto llamado M10.txt, y dentro de este archivo
está escrito el número 50. La forma de recuperar este número desde matlab se
puede expresar como se observa en la Figura 53 a partir de la siguiente
instrucción:
A=load (‘M10.txt’);
116
8.5.6. Programa para la creación de un instalador para el software de
simulación DSM.
Los paquetes de instalación que se creen con “CreateInstall Free” pueden ser
distribuidos de cualquier forma que se desee (DVD, CD, USB, www, etc)17
17
Ayuda del programa CreateInstall Free , “Introduction”
117
Figura 54. Icono software CreateInstall Free
Fuente: El autor
Fuente: El autor
118
pantalla en donde se introduce el nombre de la aplicación (Aplication name)
y el idioma de la instalación (Setup Language).
Figura 56. Nombre de la aplicación
Fuente: El autor
Fuente: El autor
119
5. Continua con el icono “Shortcuts” en donde se agrega un acceso directo a
la aplicación, para ello primero se da click en el icono “adicionar nuevo
archivo” (Add a new Item) resaltado en la Figura 58, el cual abrirá una
pantalla de diálogo que le pedirá al usuario 1. a cual archivo va dirigido el
acceso directo, 2. en donde se encuentra el icono predefinido para la
aplicación y 3. El nombre del icono.
Fuente: El autor
120
Figura 59. Seleccionar aplicación
Fuente: El autor
Fuente: El autor
8.6. VALIDACIONES
Por otra parte es importante mencionar las restricciones con las que cuenta este
software las cuales deben ser tomadas en cuenta en el momento de dar inicio con
la construcción de un sistema y así evitar problemas de validación en el programa.
Las restricciones dadas en el software son las siguientes:
121
Puesto que una de las limitaciones del software consiste en que no se podrá
simular sistemas que contengan más de tres nodos, el programa mostrará una
ventana de diálogo resaltando que la operación no es permitida, en el momento en
que se intente llevar el cuarto nodo a el área de trabajo como se muestra en la
Figura 60.
Fuente: El autor
• El sistema no debe tener más de tres masas como se muestra en la Figura 61.
Figura 61. Exclamación en caso de intentar sacar la cuarta masa
Fuente: El autor
122
Igual que la restricción para los nodos, el software mostrará un cuadro de dialogo
si se intenta poner mas de tres masas.
Figura 62. Masas dibujadas a tierra sin importar la selección del radiobutton
Fuente: El autor
123
Esta restricción fue asignada al software con el fin de facilitar la asignación de los
nombres de los elementos. Es por ello que para poder conectar los elementos es
necesario hacerlo por medio de los nodos, tal como se muestra en la Figura 63
.
Figura 63. Conexión permitida
Fuente: El autor
Por esta razón, si se intenta conectar dos elementos directamente, es decir, sin
interponer un nodo en su conexión, el software mostrara una ventana de error la
cual resaltará que la conexión no es permitida, tal como se muestra en la Figura
64.
Figura 64. Conexión no permitida
Fuente: El autor
124
• Los nodos no pueden ir conectados entre sí:
Esta condición se debe a que si hay dos nodos conectados entre si, equivale a
tener un solo nodo. Por ello esta restricción fue impuesta como se muestra en la
Figura 65.
Figura 65. Conexión no permitida
Fuente: El autor
De igual forma, los nodos no pueden ser conectados directamente a la tierra, pues
equivaldría a un corto circuito. Esta restricción se ve remarcada en el software por
un mensaje como se muestra en la Figura 66.
Fuente: El autor
125
• No se puede conectar entre nodos mas de un elemento del mismo tipo
Fuente: El autor
126
Figura 68. Conexión eliminada
Fuente: El autor
Fuente: El autor
127
Sin embargo no quiere decir que no se puedan simular ciertos sistemas, pues solo
es cuestión de acomodar el modelo de tal forma que coincida con la
generalización impuesta en el software.
Fuente: El autor
Fuente: El autor
Valores:
M 10 = 10 Kg
M 20 = 5 Kg Salidas del sistema X1y X2, Entrada F(t) = 10N
N
K 12 = 6 = K 20
m
128
El equivalente electromecánico del sistema de la Figura 71 se muestra en la
Figura.72 .
Fuente: El autor
Fuente: El autor
129
Como se puede apreciar en dicha figura, aparece un cuadro de diálogo que
permite introducir el tipo de entrada y un valor.
8.8. RESULTADOS
Fuente: El autor
130
que se le asigno al sistema, y con el nodo en el cual es visualizada la simulación,
tal como se muestra en la Figura 75. En este caso, puesto que se escogió nodo 2,
la grafica debe contener en sus rótulos dicho nodo.
Fuente: El autor
131
Figura 76. Selección de entrada seno
Fuente: El autor
Fuente: El autor
Como se puede observar en la Figura 77, se seleccionó el nodo uno para obtener
la simulación. Por ello, en el rótulo de la gráfica debe aparecer respuesta entrada
seno nodo 1, tal como se muestra en la Figura 78.
132
Figura 78. Respuesta en el tiempo entrada seno
Fuente: El autor
Cualquiera de estos tres análisis se puede obtener dando clic sobre el icono
Análisis. Una vez se pique sobre el icono Análisis, el software mostrará una
ventana en donde se debe seleccionar el tipo de análisis que se desea visualizar y
el nodo donde se va a llevar a cabo tal como se muestra en la Figura 79.
133
Figura 79. Ventana de selección de nodo y tipo de análisis
Fuente: El autor
Diagramas de Bode:
Fuente: El autor
134
Una vez seleccionada la opción del tipo de análisis, se debe seleccionar el nodo
donde se desea visualizar la simulación. Para este caso los resultados los se
obtendrán en el nodo 2 como se muestra en la Figura 81
Fuente: El autor
Fuente: El autor
135
Diagrama de Nyquist:
Fuente: El autor
Fuente: El autor
136
Lugar geométrico de las raíces:
Fuente: El autor
Fuente: El autor
137
Función de transferencia. La función de transferencia se obtiene picando sobre
el icono Función de transferencia. Una vez se pique este icono, igual que en los
demás análisis, aparecerá una ventana en la que se seleccionará el nodo donde
se desea obtener la Función de transferencia tal como se muestra en la Figura 87.
Fuente: El autor
Fuente: El autor
138
CONCLUSIONES
139
BIBLIOGRAFÍA
SERWAY, Raimond A. Física Moderna. Ed. Mc Graw Hill. 3ra Ed. Tomo 1. 637
Pág.
140
UNIVERSIDAD DE NAVARRA. Sistemas Mecánicos Traslacionales.
http://www.tecnun.es/Asignaturas/ingsistemas1/TECNUN.ISI.SistemasMecanicosT
raslacionales.pdf. España. Febrero de 2008
141
ANEXO A. RECOLECCIÓN DE INFORMACIÓN
¿Qué es un sistema?
Un sistema es una combinación de componentes que actúan conjuntamente para
alcanzar un objetivo específico. Colección de elementos que interactúan y en los
cuales existen relaciones de causa – efecto entre sus variables.
142
¿Que es una fuerza?
La fuerza es la acción capaz de modificar el estado de movimiento o reposo de un
cuerpo, es decir, imprimirle una aceleración modificando la velocidad o el sentido
de su movimiento.
¿Qué es un nodo?
Punto en el que se producen dos o más conexiones de elementos de un sistema o
circuito.
¿Qué es un modelo?
Un modelo es una herramienta que permite describir y analizar de forma
simplificada un sistema.
143
ANEXO B. PROGRAMA FUNCIÓN DE TRANSFERENCIA
function funtrans
N=load('Nodos.txt');
switch lower(N)
case {1} %Si el sistema solo contiene un nodo
M10=load('M10.txt');
B10=load('B10.txt');
K10=load('K10.txt');
DS0=K10;
DS1=B10;
DS2=M10;
num=[1];
den=[DS2 DS1 DS0];
disp('La funcion de transferencia es: ')
printsys(num,den);
DS0=(K10*K20+K10*K12+K12*K20);
DS1=(K20*B10+K20*B12+K12*B10+K10*B20+K10*B12+K12*B20);
DS2=(M10*K20+M10*K12+B10*B20+B10*B12+B12*B20+M20*K10+M20*K12);
DS3=(M10*B20+M10*B12+M20*B10+M20*B12);
DS4=(M10*M20);
den=[DS4 DS3 DS2 DS1 DS0];
%if O==1
144
%Funcion de transferencia nodo 1:
NS0=(K12+K20);
NS1=(B20+B12);
NS2=(M20);
num=[NS2 NS1 NS0];
disp('La funcion de transferencia del nodo 1 es: ')
printsys(num,den)
% elseif O==2
%Funcion de transferencia nodo 2:
NS0=(K12);
NS1=(B12);
num=[NS1 NS0];
disp('La funcion de transferencia del nodo 2 es: ')
printsys(num,den)
% end
DS0=(((K10+K12+K13)*(K30+K23+K13)*(K20+K12+K23))-
((K10+K12+K13)*(K23*K23)))-(((K12*K12)*(K30+K23+K13))+(K12*K23*K13))-
((K12*K23*K13)+((K20+K12+K23)*(K13*K13)));
DS1=(((B10+B12+B13)*(K20+K12+K23)*(K30+K23+K13))-
((B10+B12+B13)*(K23*K23))+((K30+K23+K13)*(K10+K12+K13)*(B20+B12+B23))+((K
20+K12+K23)*(K10+K12+K13)*(B30+B23+B13))-((2*B23*K23)*(K10+K12+K13)))-
(((K12*B12*(K30+K23+K13)))+(B12*K23*K13)+(B12*K12*(K30+K23+K13))+((K12*K1
2)*(B30+B23+B13))+(K13*K12*B23)+(K23*B13*K12))-
((K12*K23*B13)+((K20+K12+K23)*(K13*B13))+(B12*K23*K13)+(K12*B23*K13)+((B2
0+B12+B23)*(K13*K13))+((K20+K12+K23)*(B13*K13)));
DS2=((M10*(K30+K23+K13)*(K20+K23+K12))-
(M10*K23*K23)+((B10+B12+B13)*(K30+K23+K13)*(B20+B12+B23))+((K20+K12+K23)*
145
(B30+B23+B13)*(B10+B12+B13))-
((2*B23*K23)*(B10+B12+B13))+(M20*(K30+K23+K13)*(K10+K12+K13))+((B20+B12+B
23)*(B30+B23+B13)*(K10+K12+K13))+(M30*(K20+K12+K23)*(K10+K12+K13))-
((K10+K12+K13)*B23*B23))-
(((B12^2)*(K30+K23+K13))+((B12*K12)*(B30+B23+B13))+((B12*B13*K23)+(B12*B2
3*K13))+((B12*K12)*(B30+B23+B13))+(M30*K12^2)+(B13*B23*K12))-
(((B13*B12*K23)+(B13*B23*K12))+((B13^2)*(K20+K12+K23))+((B13*K13)*(B20+B1
2+B23))+(B12*B23*K13)+(M20*K13*K13)+((B20+B12+B23)*(B13*K13)));
DS3=((M10*(B20+B12+B23)*(K30+K23+K13))+(M10*(K20+K12+K23)*(B30+B23+B13))-
(2*M10*B23*K23)+(M20*(K30+K23+K13)*(B10+B12+B13))+((B10+B12+B13)*(B20+B12
+B23)*(B30+B23+B13))+(M30*(K20+K12+K23)*(B10+B12+B13))-
((B23^2)*(B10+B12+B13))+(M20*(B30+B23+B13)*(K10+K12+K13))+(M30*(B20+B12+B
23)*(K10+K12+K13)))-
(((B12^2)*(B30+B23+B13))+((M30*K12*B12)+(B12*B13*B23))+(M30*B12*K12))-
(((B13^2)*(B20+B12+B23))+(M20*K13*B13)+(B12*B13*B23)+(B13*K13*M20));
DS4=(((M10*M20)*(K30+K23+K13))+((M10)*((B20+B12+B23)*(B30+B23+B13)))+((M1
0*M30)*(K20+K12+K23))-
(M10*B23^2)+((M20)*((B30+B23+B13)*(B10+B12+B13)))+((M30)*((B20+B12+B23)*(
B10+B12+B13)))+((M20*M30)*(K10+K12+K13)))-(M30*B12^2)-(M20*B13^2);
DS5=((M10*M20)*(B30+B23+B13))+((M10*M30)*(B20+B12+B23))+((M20*M30)*(B10+B
12+B13));
DS6=M10*M20*M30;
den=[DS6 DS5 DS4 DS3 DS2 DS1 DS0];
if O==1
%Funcion de transferencia nodo 1:
NS0=(((K20+K12+K23)*(K30+K23+K13))-(K23*K23));
NS1=(((B20+B12+B23)*(K30+K23+K13))+((K20+K12+K23)*(B30+B23+B13))-
(2*B23*K23));
NS2=((M20*(K30+K23+K13))+((M30*(K20+K12+K23)))+((B20+B12+B23)*(B30+B23+B1
3))-(B23*B23));
NS3=((M20*(B30+B23+B13))+(M30*(B20+B12+B23)));
NS4=M20*M30;
num=[NS4 NS3 NS2 NS1 NS0];
disp('La funcion de transferencia del nodo 1 es: ')
printsys(num,den)
elseif O==2
%Funcion de transferencia nodo 2:
NS0=((K12*(K30+K23+K13))+(K13*K23));
NS1=((B12*(K30+K23+K13))+(K12*(B30+B23+B13))+((B13*K23)+(B23*K13)));
NS2=((B12*(B30+B23+B13))+(M30*K12)+(B13*B23));
NS3=(M30*B12);
num=[NS3 NS2 NS1 NS0];
disp('La funcion de transferencia del nodo 2 es: ')
printsys(num,den)
146
elseif O==3
%Funcion de transferencia nodo 3:
NS0=((K12*K23)+(K13*(K20+K12+K23)));
NS1=((B12*K23)+(K12*B23)+(K13*(B20+B12+B23))+(B13*(K20+K12+K23)));
NS2=((B12*B23)+(M20*K13)+(B13*(B20+B12+B23)));
NS3=(M20*B13);
num=[NS3 NS2 NS1 NS0];
disp('La funcion de transferencia del nodo 3 es: ')
printsys(num,den)
end
otherwise
disp('No hay ningun sistema definido')
end
147
ANEXO C. DIAGRAMA DE FLUJO PROGRAMA FUNCIÓN DE
TRANSFERENCIA
INICIO
M10,M20,M30,B10,B20,B30,K1
0,K20,K30,B12,B13,B23,K12,K1
3,K23,O,N,DS0,DS1,DS2,DS3,
DS4,DS5,DS6,den,num
N=Nodos.txt
No No No
N=1 N=2 N=3
Si Si Si No hay ningún
sistema definido
M10=M10.txt M10=M10.txt
B10=B10.txt B10=B10.txt
K10=K10.txt K10=K10.txt
M20=M20.txt
M10=M10.txt
B20=B20.txt
B10=B10.txt
K20=K20.txt
K10=K10.txt
B12=B12.txt
DS0=K10 M20=M20.txt
K12=K12.txt
DS1=B10 B20='B20.txt
O=Salida.txt
DS2=M10 K20=K20.txt
M30=M30.txt
num=[1]
den=[DS2 DS1 DS0] B30=B30.txt
K30=K30.txt
DS0=(K10*K20+K10*K12+K12*K20) B12=B12.txt
DS1=(K20*B10+K20*B12+K12*B10+K10*B20+K10*B12+K12*B20) K12=K12.txt
DS2=(M10*K20+M10*K12+B10*B20+B10*B12+B12*B20+M20*K10+M20*K12) B13=B13.txt
DS3=(M10*B20+M10*B12+M20*B10+M20*B12) K13=K13.txt
printsys(num,den) DS4=(M10*M20) B23=B23.txt
den=[DS4 DS3 DS2 DS1 DS0] K23=K23.txt
O=Salida.txt
No No
O=1 O=2
DS0=(((K10+K12+K13)*(K30+K23+K13)*(K20+K12+K23))-((K10+K12+K13)*(K23*K23)))-
(((K12*K12)*(K30+K23+K13))+(K12*K23*K13))-((K12*K23*K13)+((K20+K12+K23)*(K13*K13)))
Si Si DS1=(((B10+B12+B13)*(K20+K12+K23)*(K30+K23+K13))-
((B10+B12+B13)*(K23*K23))+((K30+K23+K13)*(K10+K12+K13)*(B20+B12+B23))+((K20+K12+K2
3)*(K10+K12+K13)*(B30+B23+B13))-((2*B23*K23)*(K10+K12+K13)))-
(((K12*B12*(K30+K23+K13)))+(B12*K23*K13)+(B12*K12*(K30+K23+K13))+((K12*K12)*(B30+B23
NS0=(K12+K20) +B13))+(K13*K12*B23)+(K23*B13*K12))-
NS0=(K12) ((K12*K23*B13)+((K20+K12+K23)*(K13*B13))+(B12*K23*K13)+(K12*B23*K13)+((B20+B12+B23)
NS1=(B20+B12) NS1=(B12)
NS2=(M20) *(K13*K13))+((K20+K12+K23)*(B13*K13)))
num=[NS2 NS1 NS0] num=[NS1 NS0] DS2=((M10*(K30+K23+K13)*(K20+K23+K12))-
(M10*K23*K23)+((B10+B12+B13)*(K30+K23+K13)*(B20+B12+B23))+((K20+K12+K23)*(B30+B23
+B13)*(B10+B12+B13))-
((2*B23*K23)*(B10+B12+B13))+(M20*(K30+K23+K13)*(K10+K12+K13))+((B20+B12+B23)*(B30+
B23+B13)*(K10+K12+K13))+(M30*(K20+K12+K23)*(K10+K12+K13))-
printsys(num,den) printsys(num,den) ((K10+K12+K13)*B23*B23))-
(((B12^2)*(K30+K23+K13))+((B12*K12)*(B30+B23+B13))+((B12*B13*K23)+(B12*B23*K13))+((B1
2*K12)*(B30+B23+B13))+(M30*K12^2)+(B13*B23*K12))-
(((B13*B12*K23)+(B13*B23*K12))+((B13^2)*(K20+K12+K23))+((B13*K13)*(B20+B12+B23))+(B12
*B23*K13)+(M20*K13*K13)+((B20+B12+B23)*(B13*K13)))
DS3=((M10*(B20+B12+B23)*(K30+K23+K13))+(M10*(K20+K12+K23)*(B30+B23+B13))-
(2*M10*B23*K23)+(M20*(K30+K23+K13)*(B10+B12+B13))+((B10+B12+B13)*(B20+B12+B23)*(B
30+B23+B13))+(M30*(K20+K12+K23)*(B10+B12+B13))-
((B23^2)*(B10+B12+B13))+(M20*(B30+B23+B13)*(K10+K12+K13))+(M30*(B20+B12+B23)*(K10+
K12+K13)))-(((B12^2)*(B30+B23+B13))+((M30*K12*B12)+(B12*B13*B23))+(M30*B12*K12))-
(((B13^2)*(B20+B12+B23))+(M20*K13*B13)+(B12*B13*B23)+(B13*K13*M20))
DS4=(((M10*M20)*(K30+K23+K13))+((M10)*((B20+B12+B23)*(B30+B23+B13)))+((M10*M30)*(K2
0+K12+K23))-
(M10*B23^2)+((M20)*((B30+B23+B13)*(B10+B12+B13)))+((M30)*((B20+B12+B23)*(B10+B12+B1
3)))+((M20*M30)*(K10+K12+K13)))-(M30*B12^2)-(M20*B13^2)
DS5=((M10*M20)*(B30+B23+B13))+((M10*M30)*(B20+B12+B23))+((M20*M30)*(B10+B12+B13));
DS6=M10*M20*M30
den=[DS6 DS5 DS4 DS3 DS2 DS1 DS0]
No No No
O=1 O=2 O=3
Si Si Si
NS0=(((K20+K12+K23)*(K30+K23+K13))-(K23*K23))
NS1=(((B20+B12+B23)*(K30+K23+K13))+((K20+K12+K23)*( NS0=((K12*(K30+K23+K13))+(K13*K23)) NS0=((K12*K23)+(K13*(K20+K12+K23)))
B30+B23+B13))-(2*B23*K23)) NS1=((B12*(K30+K23+K13))+(K12*(B30+B23+B13)) NS1=((B12*K23)+(K12*B23)+(K13*(B20+B12+B23))+(
NS2=((M20*(K30+K23+K13))+((M30*(K20+K12+K23)))+((B20 +((B13*K23)+(B23*K13))) B13*(K20+K12+K23)))
+B12+B23)*(B30+B23+B13))-(B23*B23)) NS2=((B12*(B30+B23+B13))+(M30*K12)+(B13*B23)) NS2=((B12*B23)+(M20*K13)+(B13*(B20+B12+B23)))
NS3=((M20*(B30+B23+B13))+(M30*(B20+B12+B23))) NS3=(M30*B12) NS3=(M20*B13)
NS4=M20*M30 num=[NS3 NS2 NS1 NS0] num=[NS3 NS2 NS1 NS0]
num=[NS4 NS3 NS2 NS1 NS0]
148
ANEXO D. PROGRAMA RESPUESTA EN EL TIEMPO A PARTIR DE
ENTRADA ESCALÓN
function RespStep
%Programa para graficar la respuesta en el tiempo
%a la entrada escalon -salida espacio
clc
clear all
N=load('Nodos.txt');
switch lower(N)
case {1} %Si el sistema solo contiene un nodo
M10=load('M10.txt');
B10=load('B10.txt');
K10=load('K10.txt');
F=load('Fuerza.txt');
DS0=K10;
DS1=B10;
DS2=M10;
num=[1];
den=[DS2 DS1 DS0];
step(F*num,den);
printsys(num,den)
title('Respuesta Entrada Escalon Nodo 1')
ylabel('Espacio (mts)')
grid on
DS0=(K10*K20+K10*K12+K12*K20);
DS1=(K20*B10+K20*B12+K12*B10+K10*B20+K10*B12+K12*B20);
DS2=(M10*K20+M10*K12+B10*B20+B10*B12+B12*B20+M20*K10+M20*K12);
DS3=(M10*B20+M10*B12+M20*B10+M20*B12);
149
DS4=(M10*M20);
den=[DS4 DS3 DS2 DS1 DS0];
if O==1
%Respuesta nodo 1:
NS0=(K12+K20);
NS1=(B20+B12);
NS2=(M20);
num=[NS2 NS1 NS0];
step(F*num,den);
title('Respuesta Entrada Escalon Nodo 1')
ylabel('Espacio (mts)')
grid on
elseif O==2
%Respuesta nodo 2:
NS0=(K12);
NS1=(B12);
num=[NS1 NS0];
step(F*num,den);
title('Respuesta Entrada Escalon Nodo 2')
ylabel('Espacio (mts)')
grid on
end
150
2)*(B30+B23+B13))+(K13*K12*B23)+(K23*B13*K12))-
((K12*K23*B13)+((K20+K12+K23)*(K13*B13))+(B12*K23*K13)+(K12*B23*K13)+((B2
0+B12+B23)*(K13*K13))+((K20+K12+K23)*(B13*K13)));
DS2=((M10*(K30+K23+K13)*(K20+K23+K12))-
(M10*K23*K23)+((B10+B12+B13)*(K30+K23+K13)*(B20+B12+B23))+((K20+K12+K23)*
(B30+B23+B13)*(B10+B12+B13))-
((2*B23*K23)*(B10+B12+B13))+(M20*(K30+K23+K13)*(K10+K12+K13))+((B20+B12+B
23)*(B30+B23+B13)*(K10+K12+K13))+(M30*(K20+K12+K23)*(K10+K12+K13))-
((K10+K12+K13)*B23*B23))-
(((B12^2)*(K30+K23+K13))+((B12*K12)*(B30+B23+B13))+((B12*B13*K23)+(B12*B2
3*K13))+((B12*K12)*(B30+B23+B13))+(M30*K12^2)+(B13*B23*K12))-
(((B13*B12*K23)+(B13*B23*K12))+((B13^2)*(K20+K12+K23))+((B13*K13)*(B20+B1
2+B23))+(B12*B23*K13)+(M20*K13*K13)+((B20+B12+B23)*(B13*K13)));
DS3=((M10*(B20+B12+B23)*(K30+K23+K13))+(M10*(K20+K12+K23)*(B30+B23+B13))-
(2*M10*B23*K23)+(M20*(K30+K23+K13)*(B10+B12+B13))+((B10+B12+B13)*(B20+B12
+B23)*(B30+B23+B13))+(M30*(K20+K12+K23)*(B10+B12+B13))-
((B23^2)*(B10+B12+B13))+(M20*(B30+B23+B13)*(K10+K12+K13))+(M30*(B20+B12+B
23)*(K10+K12+K13)))-
(((B12^2)*(B30+B23+B13))+((M30*K12*B12)+(B12*B13*B23))+(M30*B12*K12))-
(((B13^2)*(B20+B12+B23))+(M20*K13*B13)+(B12*B13*B23)+(B13*K13*M20));
DS4=(((M10*M20)*(K30+K23+K13))+((M10)*((B20+B12+B23)*(B30+B23+B13)))+((M1
0*M30)*(K20+K12+K23))-
(M10*B23^2)+((M20)*((B30+B23+B13)*(B10+B12+B13)))+((M30)*((B20+B12+B23)*(
B10+B12+B13)))+((M20*M30)*(K10+K12+K13)))-(M30*B12^2)-(M20*B13^2);
DS5=((M10*M20)*(B30+B23+B13))+((M10*M30)*(B20+B12+B23))+((M20*M30)*(B10+B
12+B13));
DS6=M10*M20*M30;
den=[DS6 DS5 DS4 DS3 DS2 DS1 DS0];
if O==1
%Salida nodo 1:
NS0=(((K20+K12+K23)*(K30+K23+K13))-(K23*K23));
NS1=(((B20+B12+B23)*(K30+K23+K13))+((K20+K12+K23)*(B30+B23+B13))-
(2*B23*K23));
NS2=((M20*(K30+K23+K13))+((M30*(K20+K12+K23)))+((B20+B12+B23)*(B30+B23+B1
3))-(B23*B23));
NS3=((M20*(B30+B23+B13))+(M30*(B20+B12+B23)));
NS4=M20*M30;
num=[NS4 NS3 NS2 NS1 NS0];
step(F*num,den);
title('Respuesta Entrada Escalon Nodo 1')
ylabel('Espacio (mts)')
grid on
elseif O==2
%Salida nodo 2:
NS0=((K12*(K30+K23+K13))+(K13*K23));
151
NS1=((B12*(K30+K23+K13))+(K12*(B30+B23+B13))+((B13*K23)+(B23*K13)));
NS2=((B12*(B30+B23+B13))+(M30*K12)+(B13*B23));
NS3=(M30*B12);
num=[NS3 NS2 NS1 NS0];
step(F*num,den);
title('Respuesta Entrada Escalon Nodo 2')
ylabel('Espacio (mts)')
grid on
elseif O==3
%Salida nodo 3:
NS0=((K12*K23)+(K13*(K20+K12+K23)));
NS1=((B12*K23)+(K12*B23)+(K13*(B20+B12+B23))+(B13*(K20+K12+K23)));
NS2=((B12*B23)+(M20*K13)+(B13*(B20+B12+B23)));
NS3=(M20*B13);
num=[NS3 NS2 NS1 NS0];
step(F*num,den);
title('Respuesta Entrada Escalon Nodo 3')
ylabel('Espacio (mts)')
grid on)
end
otherwise
disp('No hay ningun sistema definido')
end
152
ANEXO E. DIAGRAMA DE FLUJO PROGRAMA RESPUESTA EN EL TIEMPO
A PARTIR DE ENTRADA ESCALÓN
INICIO
M10,M20,M30,B10,B20,B30,K1
0,K20,K30,B12,B13,B23,K12,K1
3,K23,O,N,DS0,DS1,DS2,DS3,
DS4,DS5,DS6,den,num,F
N=Nodos.txt
No No No
N=1 N=2 N=3
Si Si Si No hay ningún
sistema definido
M10=M10.txt
M10=M10.txt
B10=B10.txt
B10=B10.txt
K10=K10.txt
K10=K10.txt
F=Fuerza.txt
M20=M20.txt
M10=M10.txt
B20=B20.txt
B10=B10.txt
K20=K20.txt
K10=K10.txt
B12=B12.txt
DS0=K10 M20=M20.txt
K12=K12.txt
DS1=B10 B20='B20.txt
O=Salida.txt
DS2=M10 K20=K20.txt
F=Fuerza.txt
M30=M30.txt
num=[1]
B30=B30.txt
den=[DS2 DS1 DS0]
K30=K30.txt
DS0=(K10*K20+K10*K12+K12*K20) B12=B12.txt
DS1=(K20*B10+K20*B12+K12*B10+K10*B20+K10*B12+K12*B20) K12=K12.txt
DS2=(M10*K20+M10*K12+B10*B20+B10*B12+B12*B20+M20*K10+M20*K12) B13=B13.txt
DS3=(M10*B20+M10*B12+M20*B10+M20*B12) K13=K13.txt
step(F*num,den) DS4=(M10*M20) B23=B23.txt
den=[DS4 DS3 DS2 DS1 DS0] K23=K23.txt
O=Salida.txt
F=Fuerza.txt
No No
O=1 O=2
DS0=(((K10+K12+K13)*(K30+K23+K13)*(K20+K12+K23))-((K10+K12+K13)*(K23*K23)))-
(((K12*K12)*(K30+K23+K13))+(K12*K23*K13))-((K12*K23*K13)+((K20+K12+K23)*(K13*K13)))
Si Si DS1=(((B10+B12+B13)*(K20+K12+K23)*(K30+K23+K13))-
((B10+B12+B13)*(K23*K23))+((K30+K23+K13)*(K10+K12+K13)*(B20+B12+B23))+((K20+K12+K2
3)*(K10+K12+K13)*(B30+B23+B13))-((2*B23*K23)*(K10+K12+K13)))-
(((K12*B12*(K30+K23+K13)))+(B12*K23*K13)+(B12*K12*(K30+K23+K13))+((K12*K12)*(B30+B23
NS0=(K12+K20) +B13))+(K13*K12*B23)+(K23*B13*K12))-
NS0=(K12) ((K12*K23*B13)+((K20+K12+K23)*(K13*B13))+(B12*K23*K13)+(K12*B23*K13)+((B20+B12+B23)
NS1=(B20+B12) NS1=(B12)
NS2=(M20) *(K13*K13))+((K20+K12+K23)*(B13*K13)))
num=[NS2 NS1 NS0] num=[NS1 NS0] DS2=((M10*(K30+K23+K13)*(K20+K23+K12))-
(M10*K23*K23)+((B10+B12+B13)*(K30+K23+K13)*(B20+B12+B23))+((K20+K12+K23)*(B30+B23
+B13)*(B10+B12+B13))-
((2*B23*K23)*(B10+B12+B13))+(M20*(K30+K23+K13)*(K10+K12+K13))+((B20+B12+B23)*(B30+
B23+B13)*(K10+K12+K13))+(M30*(K20+K12+K23)*(K10+K12+K13))-
step(F*num,den) step(F*num,den) ((K10+K12+K13)*B23*B23))-
(((B12^2)*(K30+K23+K13))+((B12*K12)*(B30+B23+B13))+((B12*B13*K23)+(B12*B23*K13))+((B1
2*K12)*(B30+B23+B13))+(M30*K12^2)+(B13*B23*K12))-
(((B13*B12*K23)+(B13*B23*K12))+((B13^2)*(K20+K12+K23))+((B13*K13)*(B20+B12+B23))+(B12
*B23*K13)+(M20*K13*K13)+((B20+B12+B23)*(B13*K13)))
DS3=((M10*(B20+B12+B23)*(K30+K23+K13))+(M10*(K20+K12+K23)*(B30+B23+B13))-
(2*M10*B23*K23)+(M20*(K30+K23+K13)*(B10+B12+B13))+((B10+B12+B13)*(B20+B12+B23)*(B
30+B23+B13))+(M30*(K20+K12+K23)*(B10+B12+B13))-
((B23^2)*(B10+B12+B13))+(M20*(B30+B23+B13)*(K10+K12+K13))+(M30*(B20+B12+B23)*(K10+
K12+K13)))-(((B12^2)*(B30+B23+B13))+((M30*K12*B12)+(B12*B13*B23))+(M30*B12*K12))-
(((B13^2)*(B20+B12+B23))+(M20*K13*B13)+(B12*B13*B23)+(B13*K13*M20))
DS4=(((M10*M20)*(K30+K23+K13))+((M10)*((B20+B12+B23)*(B30+B23+B13)))+((M10*M30)*(K2
0+K12+K23))-
(M10*B23^2)+((M20)*((B30+B23+B13)*(B10+B12+B13)))+((M30)*((B20+B12+B23)*(B10+B12+B1
3)))+((M20*M30)*(K10+K12+K13)))-(M30*B12^2)-(M20*B13^2)
DS5=((M10*M20)*(B30+B23+B13))+((M10*M30)*(B20+B12+B23))+((M20*M30)*(B10+B12+B13));
DS6=M10*M20*M30
den=[DS6 DS5 DS4 DS3 DS2 DS1 DS0]
No No No
O=1 O=2 O=3
Si Si Si
NS0=(((K20+K12+K23)*(K30+K23+K13))-(K23*K23))
NS1=(((B20+B12+B23)*(K30+K23+K13))+((K20+K12+K23)*( NS0=((K12*(K30+K23+K13))+(K13*K23)) NS0=((K12*K23)+(K13*(K20+K12+K23)))
B30+B23+B13))-(2*B23*K23)) NS1=((B12*(K30+K23+K13))+(K12*(B30+B23+B13)) NS1=((B12*K23)+(K12*B23)+(K13*(B20+B12+B23))+(
NS2=((M20*(K30+K23+K13))+((M30*(K20+K12+K23)))+((B20 +((B13*K23)+(B23*K13))) B13*(K20+K12+K23)))
+B12+B23)*(B30+B23+B13))-(B23*B23)) NS2=((B12*(B30+B23+B13))+(M30*K12)+(B13*B23)) NS2=((B12*B23)+(M20*K13)+(B13*(B20+B12+B23)))
NS3=((M20*(B30+B23+B13))+(M30*(B20+B12+B23))) NS3=(M30*B12) NS3=(M20*B13)
NS4=M20*M30 num=[NS3 NS2 NS1 NS0] num=[NS3 NS2 NS1 NS0]
num=[NS4 NS3 NS2 NS1 NS0]
153
ANEXO F. CÓDIGO PROGRAMA RESPUESTA EN EL TIEMPO A PARTIR DE
ENTRADA RAMPA
function RespRampa
N=load('Nodos.txt');
switch lower(N)
case {1} %Si el sistema solo contiene un nodo
M10=load('M10.txt');
B10=load('B10.txt');
K10=load('K10.txt');
F=load('Fuerza.txt');
DS0=0;
DS1=0;
DS2=K10;
DS3=B10;
DS4=M10;
num=[1];
den=[DS4 DS3 DS2 DS1 DS0];
Respuesta rampa, sin embargo aparece impulse puesto que el
procedimiento
%realizado fue subir de grado el denominador 2 veces
%puesto que transformada de laplace de la rampa es 1/s^2,de
%esta forma podemos usar la funcion impulse
impulse(F*num,den)
title('Respuesta Entrada Rampa nodo 1')
ylabel('Espacio (mts)')
grid on
154
DS0=0;
DS1=0;
DS2=(K10*K20+K10*K12+K12*K20);
DS3=(K20*B10+K20*B12+K12*B10+K10*B20+K10*B12+K12*B20);
DS4=(M10*K20+M10*K12+B10*B20+B10*B12+B12*B20+M20*K10+M20*K12);
DS5=(M10*B20+M10*B12+M20*B10+M20*B12);
DS6=(M10*M20);
den=[DS6 DS5 DS4 DS3 DS2 DS1 DS0];
if O==1
%Salida nodo 1:
NS0=(K12+K20);
NS1=(B20+B12);
NS2=(M20);
num=[NS2 NS1 NS0];
impulse(F*num,den)
title('Respuesta Entrada Rampa nodo 1')
ylabel('Espacio (mts)')
grid on
elseif O==2
%Salida nodo 2:
NS0=(K12);
NS1=(B12);
num=[NS1 NS0];
impulse(F*num,den)
title('Respuesta Entrada Rampa nodo 2')
ylabel('Espacio (mts)')
grid on)
end
M10=load('M10.txt');
B10=load('B10.txt');
K10=load('K10.txt');
M20=load('M20.txt');
B20=load('B20.txt');
K20=load('K20.txt');
M30=load('M30.txt');
B30=load('B30.txt');
K30=load('K30.txt');
B12=load('B12.txt');
K12=load('K12.txt');
B13=load('B13.txt');
K13=load('K13.txt');
B23=load('B23.txt');
K23=load('K23.txt');
F=load('Fuerza.txt');
O=load('Salida.txt');%salida que desea visualizar 1 2 O 3
%Determinante del sistema
155
DS0=0;
DS1=0;
DS2=(((K10+K12+K13)*(K30+K23+K13)*(K20+K12+K23))-
((K10+K12+K13)*(K23*K23)))-(((K12*K12)*(K30+K23+K13))+(K12*K23*K13))-
((K12*K23*K13)+((K20+K12+K23)*(K13*K13)));
DS3=(((B10+B12+B13)*(K20+K12+K23)*(K30+K23+K13))-
((B10+B12+B13)*(K23*K23))+((K30+K23+K13)*(K10+K12+K13)*(B20+B12+B23))+((K
20+K12+K23)*(K10+K12+K13)*(B30+B23+B13))-((2*B23*K23)*(K10+K12+K13)))-
(((K12*B12*(K30+K23+K13)))+(B12*K23*K13)+(B12*K12*(K30+K23+K13))+((K12*K1
2)*(B30+B23+B13))+(K13*K12*B23)+(K23*B13*K12))-
((K12*K23*B13)+((K20+K12+K23)*(K13*B13))+(B12*K23*K13)+(K12*B23*K13)+((B2
0+B12+B23)*(K13*K13))+((K20+K12+K23)*(B13*K13)));
DS4=((M10*(K30+K23+K13)*(K20+K23+K12))-
(M10*K23*K23)+((B10+B12+B13)*(K30+K23+K13)*(B20+B12+B23))+((K20+K12+K23)*
(B30+B23+B13)*(B10+B12+B13))-
((2*B23*K23)*(B10+B12+B13))+(M20*(K30+K23+K13)*(K10+K12+K13))+((B20+B12+B
23)*(B30+B23+B13)*(K10+K12+K13))+(M30*(K20+K12+K23)*(K10+K12+K13))-
((K10+K12+K13)*B23*B23))-
(((B12^2)*(K30+K23+K13))+((B12*K12)*(B30+B23+B13))+((B12*B13*K23)+(B12*B2
3*K13))+((B12*K12)*(B30+B23+B13))+(M30*K12^2)+(B13*B23*K12))-
(((B13*B12*K23)+(B13*B23*K12))+((B13^2)*(K20+K12+K23))+((B13*K13)*(B20+B1
2+B23))+(B12*B23*K13)+(M20*K13*K13)+((B20+B12+B23)*(B13*K13)));
DS5=((M10*(B20+B12+B23)*(K30+K23+K13))+(M10*(K20+K12+K23)*(B30+B23+B13))-
(2*M10*B23*K23)+(M20*(K30+K23+K13)*(B10+B12+B13))+((B10+B12+B13)*(B20+B12
+B23)*(B30+B23+B13))+(M30*(K20+K12+K23)*(B10+B12+B13))-
((B23^2)*(B10+B12+B13))+(M20*(B30+B23+B13)*(K10+K12+K13))+(M30*(B20+B12+B
23)*(K10+K12+K13)))-
(((B12^2)*(B30+B23+B13))+((M30*K12*B12)+(B12*B13*B23))+(M30*B12*K12))-
(((B13^2)*(B20+B12+B23))+(M20*K13*B13)+(B12*B13*B23)+(B13*K13*M20));
DS6=(((M10*M20)*(K30+K23+K13))+((M10)*((B20+B12+B23)*(B30+B23+B13)))+((M1
0*M30)*(K20+K12+K23))-
(M10*B23^2)+((M20)*((B30+B23+B13)*(B10+B12+B13)))+((M30)*((B20+B12+B23)*(
B10+B12+B13)))+((M20*M30)*(K10+K12+K13)))-(M30*B12^2)-(M20*B13^2);
DS7=((M10*M20)*(B30+B23+B13))+((M10*M30)*(B20+B12+B23))+((M20*M30)*(B10+B
12+B13));
DS8=M10*M20*M30;
den=[DS8 DS7 DS6 DS5 DS4 DS3 DS2 DS1 DS0];
if O==1
%Salida nodo 1:
NS0=(((K20+K12+K23)*(K30+K23+K13))-(K23*K23));
NS1=(((B20+B12+B23)*(K30+K23+K13))+((K20+K12+K23)*(B30+B23+B13))-
(2*B23*K23));
NS2=((M20*(K30+K23+K13))+((M30*(K20+K12+K23)))+((B20+B12+B23)*(B30+B23+B1
3))-(B23*B23));
NS3=((M20*(B30+B23+B13))+(M30*(B20+B12+B23)));
NS4=M20*M30;
num=[NS4 NS3 NS2 NS1 NS0];
impulse(F*num,den)
156
title('Respuesta Entrada Rampa nodo 1')
ylabel('Espacio (mts)')
grid on)
elseif O==2
%Salida nodo 2:
NS0=((K12*(K30+K23+K13))+(K13*K23));
NS1=((B12*(K30+K23+K13))+(K12*(B30+B23+B13))+((B13*K23)+(B23*K13)));
NS2=((B12*(B30+B23+B13))+(M30*K12)+(B13*B23));
NS3=(M30*B12);
num=[NS3 NS2 NS1 NS0];
impulse(F*num,den)
title('Respuesta Entrada Rampa nodo 2')
ylabel('Espacio (mts)')
grid on)
elseif O==3
%Salida nodo 3:
NS0=((K12*K23)+(K13*(K20+K12+K23)));
NS1=((B12*K23)+(K12*B23)+(K13*(B20+B12+B23))+(B13*(K20+K12+K23)));
NS2=((B12*B23)+(M20*K13)+(B13*(B20+B12+B23)));
NS3=(M20*B13);
num=[NS3 NS2 NS1 NS0];
impulse(F*num,den)
title('Respuesta Entrada Rampa nodo 3')
ylabel('Espacio (mts)')
grid on))
end
otherwise
disp('No hay ningun sistema definido')
end
157
ANEXO G. DIAGRAMA DE FLUJO PROGRAMA RESPUESTA EN EL TIEMPO
A PARTIR DE ENTRADA RAMPA
INICIO
M10,M20,M30,B10,B20,B30,K10,K20
,K30,B12,B13,B23,K12,K13,K23,O,N,
F,DS0,DS1,DS2,DS3,DS4,DS5,DS6,
DS7,DS8,den,num
N=Nodos.txt
No No No
N=1 N=2 N=3
Si Si Si No hay ningún
sistema definido
M10=M10.txt
M10=M10.txt B10=B10.txt
B10=B10.txt K10=K10.txt
K10=K10.txt M20=M20.txt
F=Fuerza.txt B20=B20.txt M10=M10.txt
K20=K20.txt B10=B10.txt
B12=B12.txt K10=K10.txt
K12=K12.txt M20=M20.txt
DS0=0 O=Salida.txt B20='B20.txt
DS1=0 F=Fuerza.txt K20=K20.txt
DS2=K10 M30=M30.txt
DS3=B10 B30=B30.txt
DS4=M10 K30=K30.txt
num=[1] DS0=0 B12=B12.txt
den=[DS4 DS3 DS2 DS1 DS0] DS1=0 K12=K12.txt
DS2=(K10*K20+K10*K12+K12*K20) B13=B13.txt
DS3=(K20*B10+K20*B12+K12*B10+K10*B20+K10*B12+K12*B20) K13=K13.txt
DS4=(M10*K20+M10*K12+B10*B20+B10*B12+B12*B20+M20*K10+M20*K12) B23=B23.txt
DS5=(M10*B20+M10*B12+M20*B10+M20*B12) K23=K23.txt
impulse(F*num,den) DS6=(M10*M20) O=Salida.txt
den=[DS6 DS5 DS4 DS3 DS2 DS1 DS0] F=Fuerza.txt
DS0=0
DS1=0
DS2=(((K10+K12+K13)*(K30+K23+K13)*(K20+K12+K23))-((K10+K12+K13)*(K23*K23)))-
(((K12*K12)*(K30+K23+K13))+(K12*K23*K13))-((K12*K23*K13)+((K20+K12+K23)*(K13*K13)))
DS3=(((B10+B12+B13)*(K20+K12+K23)*(K30+K23+K13))-
No No ((B10+B12+B13)*(K23*K23))+((K30+K23+K13)*(K10+K12+K13)*(B20+B12+B23))+((K20+K12+K23)*(K10+K12
O=1 O=2 +K13)*(B30+B23+B13))-((2*B23*K23)*(K10+K12+K13)))-
(((K12*B12*(K30+K23+K13)))+(B12*K23*K13)+(B12*K12*(K30+K23+K13))+((K12*K12)*(B30+B23+B13))+(K1
3*K12*B23)+(K23*B13*K12))-
Si Si ((K12*K23*B13)+((K20+K12+K23)*(K13*B13))+(B12*K23*K13)+(K12*B23*K13)+((B20+B12+B23)*(K13*K13))+
((K20+K12+K23)*(B13*K13)))
DS4=((M10*(K30+K23+K13)*(K20+K23+K12))-
(M10*K23*K23)+((B10+B12+B13)*(K30+K23+K13)*(B20+B12+B23))+((K20+K12+K23)*(B30+B23+B13)*(B10+
NS0=(K12+K20) NS0=(K12) B12+B13))-
NS1=(B20+B12) NS1=(B12) ((2*B23*K23)*(B10+B12+B13))+(M20*(K30+K23+K13)*(K10+K12+K13))+((B20+B12+B23)*(B30+B23+B13)*(K
NS2=(M20) 10+K12+K13))+(M30*(K20+K12+K23)*(K10+K12+K13))-((K10+K12+K13)*B23*B23))-
num=[NS2 NS1 NS0] num=[NS1 NS0] (((B12^2)*(K30+K23+K13))+((B12*K12)*(B30+B23+B13))+((B12*B13*K23)+(B12*B23*K13))+((B12*K12)*(B30
+B23+B13))+(M30*K12^2)+(B13*B23*K12))-
(((B13*B12*K23)+(B13*B23*K12))+((B13^2)*(K20+K12+K23))+((B13*K13)*(B20+B12+B23))+(B12*B23*K13)+(
M20*K13*K13)+((B20+B12+B23)*(B13*K13)))
DS5=((M10*(B20+B12+B23)*(K30+K23+K13))+(M10*(K20+K12+K23)*(B30+B23+B13))-
impulse(F*num,den) impulse(F*num,den) (2*M10*B23*K23)+(M20*(K30+K23+K13)*(B10+B12+B13))+((B10+B12+B13)*(B20+B12+B23)*(B30+B23+B13
))+(M30*(K20+K12+K23)*(B10+B12+B13))-
((B23^2)*(B10+B12+B13))+(M20*(B30+B23+B13)*(K10+K12+K13))+(M30*(B20+B12+B23)*(K10+K12+K13)))-
(((B12^2)*(B30+B23+B13))+((M30*K12*B12)+(B12*B13*B23))+(M30*B12*K12))-
(((B13^2)*(B20+B12+B23))+(M20*K13*B13)+(B12*B13*B23)+(B13*K13*M20))
DS6=(((M10*M20)*(K30+K23+K13))+((M10)*((B20+B12+B23)*(B30+B23+B13)))+((M10*M30)*(K20+K12+K23)
)-
(M10*B23^2)+((M20)*((B30+B23+B13)*(B10+B12+B13)))+((M30)*((B20+B12+B23)*(B10+B12+B13)))+((M20*
M30)*(K10+K12+K13)))-(M30*B12^2)-(M20*B13^2);
DS7=((M10*M20)*(B30+B23+B13))+((M10*M30)*(B20+B12+B23))+((M20*M30)*(B10+B12+B13));
DS8=M10*M20*M30
den=[DS8 DS7 DS6 DS5 DS4 DS3 DS2 DS1 DS0]
No No No
O=1 O=2 O=3
Si Si Si
NS0=(((K20+K12+K23)*(K30+K23+K13))-(K23*K23))
NS1=(((B20+B12+B23)*(K30+K23+K13))+((K20+K12+K23)*( NS0=((K12*(K30+K23+K13))+(K13*K23)) NS0=((K12*K23)+(K13*(K20+K12+K23)))
B30+B23+B13))-(2*B23*K23)) NS1=((B12*(K30+K23+K13))+(K12*(B30+B23+B13)) NS1=((B12*K23)+(K12*B23)+(K13*(B20+B12+B23))+(
NS2=((M20*(K30+K23+K13))+((M30*(K20+K12+K23)))+((B20 +((B13*K23)+(B23*K13))) B13*(K20+K12+K23)))
+B12+B23)*(B30+B23+B13))-(B23*B23)) NS2=((B12*(B30+B23+B13))+(M30*K12)+(B13*B23)) NS2=((B12*B23)+(M20*K13)+(B13*(B20+B12+B23)))
NS3=((M20*(B30+B23+B13))+(M30*(B20+B12+B23))) NS3=(M30*B12) NS3=(M20*B13)
NS4=M20*M30 num=[NS3 NS2 NS1 NS0] num=[NS3 NS2 NS1 NS0]
num=[NS4 NS3 NS2 NS1 NS0]
158
ANEXO H. PROGRAMA RESPUESTA EN EL TIEMPO A PARTIR DE
ENTRADA SENOIDAL
function RespSeno
%Programa para graficar la respuesta en el tiempo
%a la entrada seno -salida espacio
clc
clear all
N=load('Nodos.txt');
switch lower(N)
case {1} %Si el sistema solo contiene un nodo
M10=load('M10.txt');
B10=load('B10.txt');
K10=load('K10.txt');
F=load('Fuerza.txt');
DS0=F*F*K10;
DS1=F*F*B10;
DS2=(K10+(F*F*M10));
DS3=B10;
DS4=M10;
num=[1];
den=[DS4 DS3 DS2 DS1 DS0];
impulse(F*num,den);
title('Respuesta Entrada seno Nodo 1')
ylabel('Espacio (mts)')
grid on
DS0=F*F*(K10*K20+K10*K12+K12*K20);
DS1=F*F*(K20*B10+K20*B12+K12*B10+K10*B20+K10*B12+K12*B20);
DS2=(K10*K20+K10*K12+K12*K20)+(F*F*(M10*K20+M10*K12+B10*B20+B10*B12+B12*B
20+M20*K10+M20*K12));
159
DS3=(K20*B10+K20*B12+K12*B10+K10*B20+K10*B12+K12*B20)+(F*F*(M10*B20+M10*B
12+M20*B10+M20*B12));
DS4=((M10*K20+M10*K12+B10*B20+B10*B12+B12*B20+M20*K10+M20*K12))+(F*F*(M10
*M20));
DS5=(M10*B20+M10*B12+M20*B10+M20*B12);
DS6=(M10*M20);
den=[DS6 DS5 DS4 DS3 DS2 DS1 DS0];
if O==1
%Respuesta nodo 1:
NS0=(K12+K20);
NS1=(B20+B12);
NS2=(M20);
num=[NS2 NS1 NS0];
impulse(F*num,den);
title('Respuesta Entrada Seno Nodo 1')
ylabel('Espacio (mts)')
grid on
elseif O==2
%Respuesta nodo 2:
NS0=(K12);
NS1=(B12);
num=[NS1 NS0];
impulse(F*num,den);
title('Respuesta Entrada Seno Nodo 2')
ylabel('Espacio (mts)')
grid on
end
160
DS0=F*F*((((K10+K12+K13)*(K30+K23+K13)*(K20+K12+K23))-
((K10+K12+K13)*(K23*K23)))-(((K12*K12)*(K30+K23+K13))+(K12*K23*K13))-
((K12*K23*K13)+((K20+K12+K23)*(K13*K13))));
DS1=F*F*((((B10+B12+B13)*(K20+K12+K23)*(K30+K23+K13))-
((B10+B12+B13)*(K23*K23))+((K30+K23+K13)*(K10+K12+K13)*(B20+B12+B23))+((K
20+K12+K23)*(K10+K12+K13)*(B30+B23+B13))-((2*B23*K23)*(K10+K12+K13)))-
(((K12*B12*(K30+K23+K13)))+(B12*K23*K13)+(B12*K12*(K30+K23+K13))+((K12*K1
2)*(B30+B23+B13))+(K13*K12*B23)+(K23*B13*K12))-
((K12*K23*B13)+((K20+K12+K23)*(K13*B13))+(B12*K23*K13)+(K12*B23*K13)+((B2
0+B12+B23)*(K13*K13))+((K20+K12+K23)*(B13*K13))));
DS2=((((K10+K12+K13)*(K30+K23+K13)*(K20+K12+K23))-
((K10+K12+K13)*(K23*K23)))-(((K12*K12)*(K30+K23+K13))+(K12*K23*K13))-
((K12*K23*K13)+((K20+K12+K23)*(K13*K13))))+F*F*(((M10*(K30+K23+K13)*(K20+
K23+K12))-
(M10*K23*K23)+((B10+B12+B13)*(K30+K23+K13)*(B20+B12+B23))+((K20+K12+K23)*
(B30+B23+B13)*(B10+B12+B13))-
((2*B23*K23)*(B10+B12+B13))+(M20*(K30+K23+K13)*(K10+K12+K13))+((B20+B12+B
23)*(B30+B23+B13)*(K10+K12+K13))+(M30*(K20+K12+K23)*(K10+K12+K13))-
((K10+K12+K13)*B23*B23))-
(((B12^2)*(K30+K23+K13))+((B12*K12)*(B30+B23+B13))+((B12*B13*K23)+(B12*B2
3*K13))+((B12*K12)*(B30+B23+B13))+(M30*K12^2)+(B13*B23*K12))-
(((B13*B12*K23)+(B13*B23*K12))+((B13^2)*(K20+K12+K23))+((B13*K13)*(B20+B1
2+B23))+(B12*B23*K13)+(M20*K13*K13)+((B20+B12+B23)*(B13*K13))));
DS3=((((B10+B12+B13)*(K20+K12+K23)*(K30+K23+K13))-
((B10+B12+B13)*(K23*K23))+((K30+K23+K13)*(K10+K12+K13)*(B20+B12+B23))+((K
20+K12+K23)*(K10+K12+K13)*(B30+B23+B13))-((2*B23*K23)*(K10+K12+K13)))-
(((K12*B12*(K30+K23+K13)))+(B12*K23*K13)+(B12*K12*(K30+K23+K13))+((K12*K1
2)*(B30+B23+B13))+(K13*K12*B23)+(K23*B13*K12))-
((K12*K23*B13)+((K20+K12+K23)*(K13*B13))+(B12*K23*K13)+(K12*B23*K13)+((B2
0+B12+B23)*(K13*K13))+((K20+K12+K23)*(B13*K13))))+F*F*(((M10*(B20+B12+B23
)*(K30+K23+K13))+(M10*(K20+K12+K23)*(B30+B23+B13))-
(2*M10*B23*K23)+(M20*(K30+K23+K13)*(B10+B12+B13))+((B10+B12+B13)*(B20+B12
+B23)*(B30+B23+B13))+(M30*(K20+K12+K23)*(B10+B12+B13))-
((B23^2)*(B10+B12+B13))+(M20*(B30+B23+B13)*(K10+K12+K13))+(M30*(B20+B12+B
23)*(K10+K12+K13)))-
(((B12^2)*(B30+B23+B13))+((M30*K12*B12)+(B12*B13*B23))+(M30*B12*K12))-
(((B13^2)*(B20+B12+B23))+(M20*K13*B13)+(B12*B13*B23)+(B13*K13*M20)));
DS4=(((M10*(K30+K23+K13)*(K20+K23+K12))-
(M10*K23*K23)+((B10+B12+B13)*(K30+K23+K13)*(B20+B12+B23))+((K20+K12+K23)*
(B30+B23+B13)*(B10+B12+B13))-
((2*B23*K23)*(B10+B12+B13))+(M20*(K30+K23+K13)*(K10+K12+K13))+((B20+B12+B
23)*(B30+B23+B13)*(K10+K12+K13))+(M30*(K20+K12+K23)*(K10+K12+K13))-
((K10+K12+K13)*B23*B23))-
(((B12^2)*(K30+K23+K13))+((B12*K12)*(B30+B23+B13))+((B12*B13*K23)+(B12*B2
3*K13))+((B12*K12)*(B30+B23+B13))+(M30*K12^2)+(B13*B23*K12))-
(((B13*B12*K23)+(B13*B23*K12))+((B13^2)*(K20+K12+K23))+((B13*K13)*(B20+B1
2+B23))+(B12*B23*K13)+(M20*K13*K13)+((B20+B12+B23)*(B13*K13))))+F*F*((((M
10*M20)*(K30+K23+K13))+((M10)*((B20+B12+B23)*(B30+B23+B13)))+((M10*M30)*(
K20+K12+K23))-
(M10*B23^2)+((M20)*((B30+B23+B13)*(B10+B12+B13)))+((M30)*((B20+B12+B23)*(
B10+B12+B13)))+((M20*M30)*(K10+K12+K13)))-(M30*B12^2)-(M20*B13^2));
DS5=(((M10*(B20+B12+B23)*(K30+K23+K13))+(M10*(K20+K12+K23)*(B30+B23+B13))
-
(2*M10*B23*K23)+(M20*(K30+K23+K13)*(B10+B12+B13))+((B10+B12+B13)*(B20+B12
161
+B23)*(B30+B23+B13))+(M30*(K20+K12+K23)*(B10+B12+B13))-
((B23^2)*(B10+B12+B13))+(M20*(B30+B23+B13)*(K10+K12+K13))+(M30*(B20+B12+B
23)*(K10+K12+K13)))-
(((B12^2)*(B30+B23+B13))+((M30*K12*B12)+(B12*B13*B23))+(M30*B12*K12))-
(((B13^2)*(B20+B12+B23))+(M20*K13*B13)+(B12*B13*B23)+(B13*K13*M20)))+F*F*
(((M10*M20)*(B30+B23+B13))+((M10*M30)*(B20+B12+B23))+((M20*M30)*(B10+B12+
B13)));
DS6=((((M10*M20)*(K30+K23+K13))+((M10)*((B20+B12+B23)*(B30+B23+B13)))+((M
10*M30)*(K20+K12+K23))-
(M10*B23^2)+((M20)*((B30+B23+B13)*(B10+B12+B13)))+((M30)*((B20+B12+B23)*(
B10+B12+B13)))+((M20*M30)*(K10+K12+K13)))-(M30*B12^2)-
(M20*B13^2))+F*F*M10*M20*M30;
DS7=((M10*M20)*(B30+B23+B13))+((M10*M30)*(B20+B12+B23))+((M20*M30)*(B10+B
12+B13));
DS8=M10*M20*M30;
den=[DS8 DS7 DS6 DS5 DS4 DS3 DS2 DS1 DS0];
if O==1
%Salida nodo 1:
NS0=(((K20+K12+K23)*(K30+K23+K13))-(K23*K23));
NS1=(((B20+B12+B23)*(K30+K23+K13))+((K20+K12+K23)*(B30+B23+B13))-
(2*B23*K23));
NS2=((M20*(K30+K23+K13))+((M30*(K20+K12+K23)))+((B20+B12+B23)*(B30+B23+B1
3))-(B23*B23));
NS3=((M20*(B30+B23+B13))+(M30*(B20+B12+B23)));
NS4=M20*M30;
num=[NS4 NS3 NS2 NS1 NS0];
impulse(F*num,den);
title('Respuesta Entrada Seno Nodo 1')
ylabel('Espacio (mts)')
grid on
elseif O==2
%Salida nodo 2:
NS0=((K12*(K30+K23+K13))+(K13*K23));
NS1=((B12*(K30+K23+K13))+(K12*(B30+B23+B13))+((B13*K23)+(B23*K13)));
NS2=((B12*(B30+B23+B13))+(M30*K12)+(B13*B23));
NS3=(M30*B12);
num=[NS3 NS2 NS1 NS0];
impulse(F*num,den);
title('Respuesta Entrada Seno Nodo 2')
ylabel('Espacio (mts)')
grid on
elseif O==3
%Salida nodo 3:
162
NS0=((K12*K23)+(K13*(K20+K12+K23)));
NS1=((B12*K23)+(K12*B23)+(K13*(B20+B12+B23))+(B13*(K20+K12+K23)));
NS2=((B12*B23)+(M20*K13)+(B13*(B20+B12+B23)));
NS3=(M20*B13);
num=[NS3 NS2 NS1 NS0];
impulse(F*num,den);
title('Respuesta Entrada Seno Nodo 3')
ylabel('Espacio (mts)')
grid on
end
otherwise
disp('No hay ningun sistema definido')
end
163
ANEXO I. DIAGRAMA DE FLUJO PROGRAMA RESPUESTA EN EL TIEMPO A
ENTRADA SENOIDAL
164
165
ANEXO J. PROGRAMA RESPUESTA EN EL TIEMPO A ENTRADA
EXPONENCIAL
function RespExp
%Programa para graficar la respuesta en el tiempo
%a la entrada Exponencial exp(at) -salida espacio
clc
clear all
N=load('Nodos.txt');
switch lower(N)
case {1} %Si el sistema solo contiene un nodo
M10=load('M10.txt');
B10=load('B10.txt');
K10=load('K10.txt');
F=load('Fuerza.txt');
DS0=-F*K10;
DS1=K10-F*B10;
DS2=B10-F*M10;
DS3=M10;
num=[1];
den=[DS3 DS2 DS1 DS0];
impulse(num,den);
title('Respuesta Entrada exponencial Nodo 1')
ylabel('Espacio (mts)')
grid on
DS0=-F*(K10*K20+K10*K12+K12*K20);
DS1=(K10*K20+K10*K12+K12*K20)-
F*(K20*B10+K20*B12+K12*B10+K10*B20+K10*B12+K12*B20);
DS2=(K20*B10+K20*B12+K12*B10+K10*B20+K10*B12+K12*B20)-
F*(M10*K20+M10*K12+B10*B20+B10*B12+B12*B20+M20*K10+M20*K12);
166
DS3=(M10*K20+M10*K12+B10*B20+B10*B12+B12*B20+M20*K10+M20*K12)-
F*(M10*B20+M10*B12+M20*B10+M20*B12);
DS4=(M10*B20+M10*B12+M20*B10+M20*B12)-F*(M10*M20);
DS5=(M10*M20);
den=[DS5 DS4 DS3 DS2 DS1 DS0];
if O==1
%Respuesta nodo 1:
NS0=(K12+K20);
NS1=(B20+B12);
NS2=(M20);
num=[NS2 NS1 NS0];
impulse(num,den);
title('Respuesta Entrada exponencial Nodo 1')
ylabel('Espacio (mts)')
grid on
elseif O==2
%Respuesta nodo 2:
NS0=(K12);
NS1=(B12);
num=[NS1 NS0];
impulse(num,den);
title('Respuesta Entrada exponencial Nodo 2')
ylabel('Espacio (mts)')
grid on
end
167
DS0=-F*((((K10+K12+K13)*(K30+K23+K13)*(K20+K12+K23))-
((K10+K12+K13)*(K23*K23)))-(((K12*K12)*(K30+K23+K13))+(K12*K23*K13))-
((K12*K23*K13)+((K20+K12+K23)*(K13*K13))));
DS1=((((K10+K12+K13)*(K30+K23+K13)*(K20+K12+K23))-
((K10+K12+K13)*(K23*K23)))-(((K12*K12)*(K30+K23+K13))+(K12*K23*K13))-
((K12*K23*K13)+((K20+K12+K23)*(K13*K13))))-
F*((((B10+B12+B13)*(K20+K12+K23)*(K30+K23+K13))-
((B10+B12+B13)*(K23*K23))+((K30+K23+K13)*(K10+K12+K13)*(B20+B12+B23))+((K
20+K12+K23)*(K10+K12+K13)*(B30+B23+B13))-((2*B23*K23)*(K10+K12+K13)))-
(((K12*B12*(K30+K23+K13)))+(B12*K23*K13)+(B12*K12*(K30+K23+K13))+((K12*K1
2)*(B30+B23+B13))+(K13*K12*B23)+(K23*B13*K12))-
((K12*K23*B13)+((K20+K12+K23)*(K13*B13))+(B12*K23*K13)+(K12*B23*K13)+((B2
0+B12+B23)*(K13*K13))+((K20+K12+K23)*(B13*K13))));
DS2=((((B10+B12+B13)*(K20+K12+K23)*(K30+K23+K13))-
((B10+B12+B13)*(K23*K23))+((K30+K23+K13)*(K10+K12+K13)*(B20+B12+B23))+((K
20+K12+K23)*(K10+K12+K13)*(B30+B23+B13))-((2*B23*K23)*(K10+K12+K13)))-
(((K12*B12*(K30+K23+K13)))+(B12*K23*K13)+(B12*K12*(K30+K23+K13))+((K12*K1
2)*(B30+B23+B13))+(K13*K12*B23)+(K23*B13*K12))-
((K12*K23*B13)+((K20+K12+K23)*(K13*B13))+(B12*K23*K13)+(K12*B23*K13)+((B2
0+B12+B23)*(K13*K13))+((K20+K12+K23)*(B13*K13))))-
F*(((M10*(K30+K23+K13)*(K20+K23+K12))-
(M10*K23*K23)+((B10+B12+B13)*(K30+K23+K13)*(B20+B12+B23))+((K20+K12+K23)*
(B30+B23+B13)*(B10+B12+B13))-
((2*B23*K23)*(B10+B12+B13))+(M20*(K30+K23+K13)*(K10+K12+K13))+((B20+B12+B
23)*(B30+B23+B13)*(K10+K12+K13))+(M30*(K20+K12+K23)*(K10+K12+K13))-
((K10+K12+K13)*B23*B23))-
(((B12^2)*(K30+K23+K13))+((B12*K12)*(B30+B23+B13))+((B12*B13*K23)+(B12*B2
3*K13))+((B12*K12)*(B30+B23+B13))+(M30*K12^2)+(B13*B23*K12))-
(((B13*B12*K23)+(B13*B23*K12))+((B13^2)*(K20+K12+K23))+((B13*K13)*(B20+B1
2+B23))+(B12*B23*K13)+(M20*K13*K13)+((B20+B12+B23)*(B13*K13))));
DS3=(((M10*(K30+K23+K13)*(K20+K23+K12))-
(M10*K23*K23)+((B10+B12+B13)*(K30+K23+K13)*(B20+B12+B23))+((K20+K12+K23)*
(B30+B23+B13)*(B10+B12+B13))-
((2*B23*K23)*(B10+B12+B13))+(M20*(K30+K23+K13)*(K10+K12+K13))+((B20+B12+B
23)*(B30+B23+B13)*(K10+K12+K13))+(M30*(K20+K12+K23)*(K10+K12+K13))-
((K10+K12+K13)*B23*B23))-
(((B12^2)*(K30+K23+K13))+((B12*K12)*(B30+B23+B13))+((B12*B13*K23)+(B12*B2
3*K13))+((B12*K12)*(B30+B23+B13))+(M30*K12^2)+(B13*B23*K12))-
(((B13*B12*K23)+(B13*B23*K12))+((B13^2)*(K20+K12+K23))+((B13*K13)*(B20+B1
2+B23))+(B12*B23*K13)+(M20*K13*K13)+((B20+B12+B23)*(B13*K13))))-
F*(((M10*(B20+B12+B23)*(K30+K23+K13))+(M10*(K20+K12+K23)*(B30+B23+B13))-
(2*M10*B23*K23)+(M20*(K30+K23+K13)*(B10+B12+B13))+((B10+B12+B13)*(B20+B12
+B23)*(B30+B23+B13))+(M30*(K20+K12+K23)*(B10+B12+B13))-
((B23^2)*(B10+B12+B13))+(M20*(B30+B23+B13)*(K10+K12+K13))+(M30*(B20+B12+B
23)*(K10+K12+K13)))-
(((B12^2)*(B30+B23+B13))+((M30*K12*B12)+(B12*B13*B23))+(M30*B12*K12))-
(((B13^2)*(B20+B12+B23))+(M20*K13*B13)+(B12*B13*B23)+(B13*K13*M20)));
DS4=(((M10*(B20+B12+B23)*(K30+K23+K13))+(M10*(K20+K12+K23)*(B30+B23+B13))
-
(2*M10*B23*K23)+(M20*(K30+K23+K13)*(B10+B12+B13))+((B10+B12+B13)*(B20+B12
+B23)*(B30+B23+B13))+(M30*(K20+K12+K23)*(B10+B12+B13))-
((B23^2)*(B10+B12+B13))+(M20*(B30+B23+B13)*(K10+K12+K13))+(M30*(B20+B12+B
23)*(K10+K12+K13)))-
168
(((B12^2)*(B30+B23+B13))+((M30*K12*B12)+(B12*B13*B23))+(M30*B12*K12))-
(((B13^2)*(B20+B12+B23))+(M20*K13*B13)+(B12*B13*B23)+(B13*K13*M20)))-
F*((((M10*M20)*(K30+K23+K13))+((M10)*((B20+B12+B23)*(B30+B23+B13)))+((M10
*M30)*(K20+K12+K23))-
(M10*B23^2)+((M20)*((B30+B23+B13)*(B10+B12+B13)))+((M30)*((B20+B12+B23)*(
B10+B12+B13)))+((M20*M30)*(K10+K12+K13)))-(M30*B12^2)-(M20*B13^2));
DS5=((((M10*M20)*(K30+K23+K13))+((M10)*((B20+B12+B23)*(B30+B23+B13)))+((M
10*M30)*(K20+K12+K23))-
(M10*B23^2)+((M20)*((B30+B23+B13)*(B10+B12+B13)))+((M30)*((B20+B12+B23)*(
B10+B12+B13)))+((M20*M30)*(K10+K12+K13)))-(M30*B12^2)-(M20*B13^2))-
F*(((M10*M20)*(B30+B23+B13))+((M10*M30)*(B20+B12+B23))+((M20*M30)*(B10+B1
2+B13)));
DS6=(((M10*M20)*(B30+B23+B13))+((M10*M30)*(B20+B12+B23))+((M20*M30)*(B10+
B12+B13)))-F*(M10*M20*M30);
DS7=M10*M20*M30;
den=[DS7 DS6 DS5 DS4 DS3 DS2 DS1 DS0];
if O==1
%Salida nodo 1:
NS0=(((K20+K12+K23)*(K30+K23+K13))-(K23*K23));
NS1=(((B20+B12+B23)*(K30+K23+K13))+((K20+K12+K23)*(B30+B23+B13))-
(2*B23*K23));
NS2=((M20*(K30+K23+K13))+((M30*(K20+K12+K23)))+((B20+B12+B23)*(B30+B23+B1
3))-(B23*B23));
NS3=((M20*(B30+B23+B13))+(M30*(B20+B12+B23)));
NS4=M20*M30;
num=[NS4 NS3 NS2 NS1 NS0];
impulse(num,den);
title('Respuesta Entrada exponencial Nodo 1')
ylabel('Espacio (mts)')
grid on
elseif O==2
%Salida nodo 2:
NS0=((K12*(K30+K23+K13))+(K13*K23));
NS1=((B12*(K30+K23+K13))+(K12*(B30+B23+B13))+((B13*K23)+(B23*K13)));
NS2=((B12*(B30+B23+B13))+(M30*K12)+(B13*B23));
NS3=(M30*B12);
num=[NS3 NS2 NS1 NS0];
impulse(num,den);
title('Respuesta Entrada exponencial Nodo 2')
ylabel('Espacio (mts)')
grid on
elseif O==3
%Salida nodo 3:
169
NS0=((K12*K23)+(K13*(K20+K12+K23)));
NS1=((B12*K23)+(K12*B23)+(K13*(B20+B12+B23))+(B13*(K20+K12+K23)));
NS2=((B12*B23)+(M20*K13)+(B13*(B20+B12+B23)));
NS3=(M20*B13);
num=[NS3 NS2 NS1 NS0];
impulse(num,den);
title('Respuesta Entrada exponencial Nodo 3')
ylabel('Espacio (mts)')
grid on
end
otherwise
disp('No hay ningun sistema definido')
end
170
ANEXO K. DIAGRAMA DE FLUJO RESPUESTA EN EL TIEMPO A ENTRADA
EXPONENCIAL
171
172
ANEXO L. PROGRAMA DIAGRAMA DE BODE
function RespBode
N=load('Nodos.txt');
switch lower(N)
case {1} %Si el sistema solo contiene un nodo
M10=load('M10.txt');
B10=load('B10.txt');
K10=load('K10.txt');
DS0=K10;
DS1=B10;
DS2=M10;
num=[1];
den=[DS2 DS1 DS0];
bode(num,den);
title('Diagrama De Bode Nodo 1')
grid on
DS2=(M10*K20+M10*K12+B10*B20+B10*B12+B12*B20+M20*K10+M20*K12);
DS3=(M10*B20+M10*B12+M20*B10+M20*B12);
DS4=(M10*M20);
den=[DS4 DS3 DS2 DS1 DS0];
if O==1
%Diagrama de Bode nodo 1:
NS0=(K12+K20);
NS1=(B20+B12);
173
NS2=(M20);
num=[NS2 NS1 NS0];
bode(num,den);
title('Diagrama De Bode Nodo 1')
grid on;
elseif O==2
%Diagrama de Bode nodo 2:
NS0=(K12);
NS1=(B12);
num=[NS1 NS0];
bode(num,den);
title('Diagrama De Bode Nodo 2')
grid on;
end
M10=load('M10.txt');
B10=load('B10.txt');
K10=load('K10.txt');
M20=load('M20.txt');
B20=load('B20.txt');
K20=load('K20.txt');
M30=load('M30.txt');
B30=load('B30.txt');
K30=load('K30.txt');
B12=load('B12.txt');
K12=load('K12.txt');
B13=load('B13.txt');
K13=load('K13.txt');
B23=load('B23.txt');
K23=load('K23.txt');
O=load('Salida.txt');%salida que desea visualizar 1 2 O 3
DS0=(((K10+K12+K13)*(K30+K23+K13)*(K20+K12+K23))-
((K10+K12+K13)*(K23*K23)))-(((K12*K12)*(K30+K23+K13))+(K12*K23*K13))-
((K12*K23*K13)+((K20+K12+K23)*(K13*K13)));
DS1=(((B10+B12+B13)*(K20+K12+K23)*(K30+K23+K13))-
((B10+B12+B13)*(K23*K23))+((K30+K23+K13)*(K10+K12+K13)*(B20+B12+B23))+((K
20+K12+K23)*(K10+K12+K13)*(B30+B23+B13))-((2*B23*K23)*(K10+K12+K13)))-
(((K12*B12*(K30+K23+K13)))+(B12*K23*K13)+(B12*K12*(K30+K23+K13))+((K12*K1
2)*(B30+B23+B13))+(K13*K12*B23)+(K23*B13*K12))-
((K12*K23*B13)+((K20+K12+K23)*(K13*B13))+(B12*K23*K13)+(K12*B23*K13)+((B2
0+B12+B23)*(K13*K13))+((K20+K12+K23)*(B13*K13)));
174
DS2=((M10*(K30+K23+K13)*(K20+K23+K12))-
(M10*K23*K23)+((B10+B12+B13)*(K30+K23+K13)*(B20+B12+B23))+((K20+K12+K23)*
(B30+B23+B13)*(B10+B12+B13))-
((2*B23*K23)*(B10+B12+B13))+(M20*(K30+K23+K13)*(K10+K12+K13))+((B20+B12+B
23)*(B30+B23+B13)*(K10+K12+K13))+(M30*(K20+K12+K23)*(K10+K12+K13))-
((K10+K12+K13)*B23*B23))-
(((B12^2)*(K30+K23+K13))+((B12*K12)*(B30+B23+B13))+((B12*B13*K23)+(B12*B2
3*K13))+((B12*K12)*(B30+B23+B13))+(M30*K12^2)+(B13*B23*K12))-
(((B13*B12*K23)+(B13*B23*K12))+((B13^2)*(K20+K12+K23))+((B13*K13)*(B20+B1
2+B23))+(B12*B23*K13)+(M20*K13*K13)+((B20+B12+B23)*(B13*K13)));
DS3=((M10*(B20+B12+B23)*(K30+K23+K13))+(M10*(K20+K12+K23)*(B30+B23+B13))-
(2*M10*B23*K23)+(M20*(K30+K23+K13)*(B10+B12+B13))+((B10+B12+B13)*(B20+B12
+B23)*(B30+B23+B13))+(M30*(K20+K12+K23)*(B10+B12+B13))-
((B23^2)*(B10+B12+B13))+(M20*(B30+B23+B13)*(K10+K12+K13))+(M30*(B20+B12+B
23)*(K10+K12+K13)))-
(((B12^2)*(B30+B23+B13))+((M30*K12*B12)+(B12*B13*B23))+(M30*B12*K12))-
(((B13^2)*(B20+B12+B23))+(M20*K13*B13)+(B12*B13*B23)+(B13*K13*M20));
DS4=(((M10*M20)*(K30+K23+K13))+((M10)*((B20+B12+B23)*(B30+B23+B13)))+((M1
0*M30)*(K20+K12+K23))-
(M10*B23^2)+((M20)*((B30+B23+B13)*(B10+B12+B13)))+((M30)*((B20+B12+B23)*(
B10+B12+B13)))+((M20*M30)*(K10+K12+K13)))-(M30*B12^2)-(M20*B13^2);
DS5=((M10*M20)*(B30+B23+B13))+((M10*M30)*(B20+B12+B23))+((M20*M30)*(B10+B
12+B13));
DS6=M10*M20*M30;
den=[DS6 DS5 DS4 DS3 DS2 DS1 DS0];
if O==1
%Diagrama de Bode nodo 1:
NS0=(((K20+K12+K23)*(K30+K23+K13))-(K23*K23));
NS1=(((B20+B12+B23)*(K30+K23+K13))+((K20+K12+K23)*(B30+B23+B13))-
(2*B23*K23));
NS2=((M20*(K30+K23+K13))+((M30*(K20+K12+K23)))+((B20+B12+B23)*(B30+B23+B1
3))-(B23*B23));
NS3=((M20*(B30+B23+B13))+(M30*(B20+B12+B23)));
NS4=M20*M30;
num=[NS4 NS3 NS2 NS1 NS0];
bode(num,den);
title('Diagrama De Bode Nodo 1')
grid on;
elseif O==2
%Diagrama de Bode nodo 2:
NS0=((K12*(K30+K23+K13))+(K13*K23));
NS1=((B12*(K30+K23+K13))+(K12*(B30+B23+B13))+((B13*K23)+(B23*K13)));
175
NS2=((B12*(B30+B23+B13))+(M30*K12)+(B13*B23));
NS3=(M30*B12);
num=[NS3 NS2 NS1 NS0];
bode(num,den);
title('Diagrama De Bode Nodo 2')
grid on
elseif O==3
%Diagrama de Bode nodo 3:
NS0=((K12*K23)+(K13*(K20+K12+K23)));
NS1=((B12*K23)+(K12*B23)+(K13*(B20+B12+B23))+(B13*(K20+K12+K23)));
NS2=((B12*B23)+(M20*K13)+(B13*(B20+B12+B23)));
NS3=(M20*B13);
num=[NS3 NS2 NS1 NS0];
bode(num,den);
title('Diagrama De Bode Nodo 3')
grid on
end
otherwise
disp('No hay ningun sistema definido')
end
176
ANEXO M. DIAGRAMA DE FLUJO PROGRAMA DIAGRAMA DE BODE
INICIO
M10,M20,M30,B10,B20,B30,K1
0,K20,K30,B12,B13,B23,K12,K1
3,K23,O,N,DS0,DS1,DS2,DS3,
DS4,DS5,DS6,den,num
N=Nodos.txt
No No No
N=1 N=2 N=3
Si Si Si No hay ningún
sistema definido
M10=M10.txt M10=M10.txt
B10=B10.txt B10=B10.txt
K10=K10.txt K10=K10.txt
M20=M20.txt
M10=M10.txt
B20=B20.txt
B10=B10.txt
K20=K20.txt
K10=K10.txt
B12=B12.txt
DS0=K10 M20=M20.txt
K12=K12.txt
DS1=B10 B20='B20.txt
O=Salida.txt
DS2=M10 K20=K20.txt
num=[1] M30=M30.txt
den=[DS2 DS1 DS0] B30=B30.txt
K30=K30.txt
DS0=(K10*K20+K10*K12+K12*K20) B12=B12.txt
DS1=(K20*B10+K20*B12+K12*B10+K10*B20+K10*B12+K12*B20) K12=K12.txt
DS2=(M10*K20+M10*K12+B10*B20+B10*B12+B12*B20+M20*K10+M20*K12) B13=B13.txt
DS3=(M10*B20+M10*B12+M20*B10+M20*B12) K13=K13.txt
bode(num,den) DS4=(M10*M20) B23=B23.txt
den=[DS4 DS3 DS2 DS1 DS0] K23=K23.txt
O=Salida.txt
No No
O=1 O=2
DS0=(((K10+K12+K13)*(K30+K23+K13)*(K20+K12+K23))-((K10+K12+K13)*(K23*K23)))-
(((K12*K12)*(K30+K23+K13))+(K12*K23*K13))-((K12*K23*K13)+((K20+K12+K23)*(K13*K13)))
Si Si DS1=(((B10+B12+B13)*(K20+K12+K23)*(K30+K23+K13))-
((B10+B12+B13)*(K23*K23))+((K30+K23+K13)*(K10+K12+K13)*(B20+B12+B23))+((K20+K12+K2
3)*(K10+K12+K13)*(B30+B23+B13))-((2*B23*K23)*(K10+K12+K13)))-
(((K12*B12*(K30+K23+K13)))+(B12*K23*K13)+(B12*K12*(K30+K23+K13))+((K12*K12)*(B30+B23
NS0=(K12+K20) +B13))+(K13*K12*B23)+(K23*B13*K12))-
NS0=(K12) ((K12*K23*B13)+((K20+K12+K23)*(K13*B13))+(B12*K23*K13)+(K12*B23*K13)+((B20+B12+B23)
NS1=(B20+B12) NS1=(B12)
NS2=(M20) *(K13*K13))+((K20+K12+K23)*(B13*K13)))
num=[NS2 NS1 NS0] num=[NS1 NS0] DS2=((M10*(K30+K23+K13)*(K20+K23+K12))-
(M10*K23*K23)+((B10+B12+B13)*(K30+K23+K13)*(B20+B12+B23))+((K20+K12+K23)*(B30+B23
+B13)*(B10+B12+B13))-
((2*B23*K23)*(B10+B12+B13))+(M20*(K30+K23+K13)*(K10+K12+K13))+((B20+B12+B23)*(B30+
B23+B13)*(K10+K12+K13))+(M30*(K20+K12+K23)*(K10+K12+K13))-
bode(num,den) bode(num,den) ((K10+K12+K13)*B23*B23))-
(((B12^2)*(K30+K23+K13))+((B12*K12)*(B30+B23+B13))+((B12*B13*K23)+(B12*B23*K13))+((B1
2*K12)*(B30+B23+B13))+(M30*K12^2)+(B13*B23*K12))-
(((B13*B12*K23)+(B13*B23*K12))+((B13^2)*(K20+K12+K23))+((B13*K13)*(B20+B12+B23))+(B12
*B23*K13)+(M20*K13*K13)+((B20+B12+B23)*(B13*K13)))
DS3=((M10*(B20+B12+B23)*(K30+K23+K13))+(M10*(K20+K12+K23)*(B30+B23+B13))-
(2*M10*B23*K23)+(M20*(K30+K23+K13)*(B10+B12+B13))+((B10+B12+B13)*(B20+B12+B23)*(B
30+B23+B13))+(M30*(K20+K12+K23)*(B10+B12+B13))-
((B23^2)*(B10+B12+B13))+(M20*(B30+B23+B13)*(K10+K12+K13))+(M30*(B20+B12+B23)*(K10+
K12+K13)))-(((B12^2)*(B30+B23+B13))+((M30*K12*B12)+(B12*B13*B23))+(M30*B12*K12))-
(((B13^2)*(B20+B12+B23))+(M20*K13*B13)+(B12*B13*B23)+(B13*K13*M20))
DS4=(((M10*M20)*(K30+K23+K13))+((M10)*((B20+B12+B23)*(B30+B23+B13)))+((M10*M30)*(K2
0+K12+K23))-
(M10*B23^2)+((M20)*((B30+B23+B13)*(B10+B12+B13)))+((M30)*((B20+B12+B23)*(B10+B12+B1
3)))+((M20*M30)*(K10+K12+K13)))-(M30*B12^2)-(M20*B13^2)
DS5=((M10*M20)*(B30+B23+B13))+((M10*M30)*(B20+B12+B23))+((M20*M30)*(B10+B12+B13))
DS6=M10*M20*M30
den=[DS6 DS5 DS4 DS3 DS2 DS1 DS0]
No No No
O=1 O=2 O=3
Si Si Si
NS0=(((K20+K12+K23)*(K30+K23+K13))-(K23*K23))
NS1=(((B20+B12+B23)*(K30+K23+K13))+((K20+K12+K23)*( NS0=((K12*(K30+K23+K13))+(K13*K23)) NS0=((K12*K23)+(K13*(K20+K12+K23)))
B30+B23+B13))-(2*B23*K23)) NS1=((B12*(K30+K23+K13))+(K12*(B30+B23+B13)) NS1=((B12*K23)+(K12*B23)+(K13*(B20+B12+B23))+(
NS2=((M20*(K30+K23+K13))+((M30*(K20+K12+K23)))+((B20 +((B13*K23)+(B23*K13))) B13*(K20+K12+K23)))
+B12+B23)*(B30+B23+B13))-(B23*B23)) NS2=((B12*(B30+B23+B13))+(M30*K12)+(B13*B23)) NS2=((B12*B23)+(M20*K13)+(B13*(B20+B12+B23)))
NS3=((M20*(B30+B23+B13))+(M30*(B20+B12+B23))) NS3=(M30*B12) NS3=(M20*B13)
NS4=M20*M30 num=[NS3 NS2 NS1 NS0] num=[NS3 NS2 NS1 NS0]
num=[NS4 NS3 NS2 NS1 NS0]
177
ANEXO N. PROGRAMA DIAGRAMA DE NYQUIST
function RespNyquist
N=load('Nodos.txt');
switch lower(N)
case {1} %Si el sistema solo contiene un nodo
M10=load('M10.txt');
B10=load('B10.txt');
K10=load('K10.txt');
DS0=K10;
DS1=B10;
DS2=M10;
num=[1];
den=[DS2 DS1 DS0];
nyquist(num,den);
title('Diagrama De Nyquist Nodo 1')
grid on
DS2=(M10*K20+M10*K12+B10*B20+B10*B12+B12*B20+M20*K10+M20*K12);
DS3=(M10*B20+M10*B12+M20*B10+M20*B12);
DS4=(M10*M20);
den=[DS4 DS3 DS2 DS1 DS0];
if O==1
%Diagrama de nyquist nodo 1:
NS0=(K12+K20);
NS1=(B20+B12);
NS2=(M20);
178
num=[NS2 NS1 NS0];
nyquist(num,den);
title('Diagrama De Nyquist Nodo 1')
grid on
elseif O==2
%Diagrama de nyquist nodo 2:
NS0=(K12);
NS1=(B12);
num=[NS1 NS0];
nyquist(num,den);
title('Diagrama De Nyquist Nodo 2')
grid on
end
M10=load('M10.txt');
B10=load('B10.txt');
K10=load('K10.txt');
M20=load('M20.txt');
B20=load('B20.txt');
K20=load('K20.txt');
M30=load('M30.txt');
B30=load('B30.txt');
K30=load('K30.txt');
B12=load('B12.txt');
K12=load('K12.txt');
B13=load('B13.txt');
K13=load('K13.txt');
B23=load('B23.txt');
K23=load('K23.txt');
O=load('Salida.txt');%salida que desea visualizar 1 2 O 3
179
((K10+K12+K13)*B23*B23))-
(((B12^2)*(K30+K23+K13))+((B12*K12)*(B30+B23+B13))+((B12*B13*K23)+(B12*B2
3*K13))+((B12*K12)*(B30+B23+B13))+(M30*K12^2)+(B13*B23*K12))-
(((B13*B12*K23)+(B13*B23*K12))+((B13^2)*(K20+K12+K23))+((B13*K13)*(B20+B1
2+B23))+(B12*B23*K13)+(M20*K13*K13)+((B20+B12+B23)*(B13*K13)));
DS3=((M10*(B20+B12+B23)*(K30+K23+K13))+(M10*(K20+K12+K23)*(B30+B23+B13))-
(2*M10*B23*K23)+(M20*(K30+K23+K13)*(B10+B12+B13))+((B10+B12+B13)*(B20+B12
+B23)*(B30+B23+B13))+(M30*(K20+K12+K23)*(B10+B12+B13))-
((B23^2)*(B10+B12+B13))+(M20*(B30+B23+B13)*(K10+K12+K13))+(M30*(B20+B12+B
23)*(K10+K12+K13)))-
(((B12^2)*(B30+B23+B13))+((M30*K12*B12)+(B12*B13*B23))+(M30*B12*K12))-
(((B13^2)*(B20+B12+B23))+(M20*K13*B13)+(B12*B13*B23)+(B13*K13*M20));
DS4=(((M10*M20)*(K30+K23+K13))+((M10)*((B20+B12+B23)*(B30+B23+B13)))+((M1
0*M30)*(K20+K12+K23))-
(M10*B23^2)+((M20)*((B30+B23+B13)*(B10+B12+B13)))+((M30)*((B20+B12+B23)*(
B10+B12+B13)))+((M20*M30)*(K10+K12+K13)))-(M30*B12^2)-(M20*B13^2);
DS5=((M10*M20)*(B30+B23+B13))+((M10*M30)*(B20+B12+B23))+((M20*M30)*(B10+B
12+B13));
DS6=M10*M20*M30;
den=[DS6 DS5 DS4 DS3 DS2 DS1 DS0];
if O==1
%Diagrama de nyquist nodo 1:
NS0=(((K20+K12+K23)*(K30+K23+K13))-(K23*K23));
NS1=(((B20+B12+B23)*(K30+K23+K13))+((K20+K12+K23)*(B30+B23+B13))-
(2*B23*K23));
NS2=((M20*(K30+K23+K13))+((M30*(K20+K12+K23)))+((B20+B12+B23)*(B30+B23+B1
3))-(B23*B23));
NS3=((M20*(B30+B23+B13))+(M30*(B20+B12+B23)));
NS4=M20*M30;
num=[NS4 NS3 NS2 NS1 NS0];
nyquist(num,den);
title('Diagrama De Nyquist Nodo 1')
grid on
elseif O==2
%Diagrama de nyquist nodo 2:
NS0=((K12*(K30+K23+K13))+(K13*K23));
NS1=((B12*(K30+K23+K13))+(K12*(B30+B23+B13))+((B13*K23)+(B23*K13)));
NS2=((B12*(B30+B23+B13))+(M30*K12)+(B13*B23));
NS3=(M30*B12);
num=[NS3 NS2 NS1 NS0];
nyquist(num,den);
title('Diagrama De Nyquist Nodo 2')
grid on
elseif O==3
180
%Diagrama de nyquist nodo 3:
NS0=((K12*K23)+(K13*(K20+K12+K23)));
NS1=((B12*K23)+(K12*B23)+(K13*(B20+B12+B23))+(B13*(K20+K12+K23)));
NS2=((B12*B23)+(M20*K13)+(B13*(B20+B12+B23)));
NS3=(M20*B13);
num=[NS3 NS2 NS1 NS0];
nyquist(num,den);
title('Diagrama De Nyquist Nodo 3')
grid on
end
otherwise
disp('No hay ningun sistema definido')
end
181
ANEXO O. DIAGRAMA DE FLUJO PROGRAMA DIAGRAMA DE NYQUIST
INICIO
M10,M20,M30,B10,B20,B30,K1
0,K20,K30,B12,B13,B23,K12,K1
3,K23,O,N,DS0,DS1,DS2,DS3,
DS4,DS5,DS6,den,num
N=Nodos.txt
No No No
N=1 N=2 N=3
Si Si Si No hay ningún
sistema definido
M10=M10.txt M10=M10.txt
B10=B10.txt B10=B10.txt
K10=K10.txt K10=K10.txt
M20=M20.txt
M10=M10.txt
B20=B20.txt
B10=B10.txt
K20=K20.txt
K10=K10.txt
B12=B12.txt
DS0=K10 M20=M20.txt
K12=K12.txt
DS1=B10 B20='B20.txt
O=Salida.txt
DS2=M10 K20=K20.txt
num=[1] M30=M30.txt
den=[DS2 DS1 DS0] B30=B30.txt
K30=K30.txt
DS0=(K10*K20+K10*K12+K12*K20) B12=B12.txt
DS1=(K20*B10+K20*B12+K12*B10+K10*B20+K10*B12+K12*B20) K12=K12.txt
DS2=(M10*K20+M10*K12+B10*B20+B10*B12+B12*B20+M20*K10+M20*K12) B13=B13.txt
DS3=(M10*B20+M10*B12+M20*B10+M20*B12) K13=K13.txt
nyquist(num,den) DS4=(M10*M20) B23=B23.txt
den=[DS4 DS3 DS2 DS1 DS0] K23=K23.txt
O=Salida.txt
No No
O=1 O=2
DS0=(((K10+K12+K13)*(K30+K23+K13)*(K20+K12+K23))-((K10+K12+K13)*(K23*K23)))-
(((K12*K12)*(K30+K23+K13))+(K12*K23*K13))-((K12*K23*K13)+((K20+K12+K23)*(K13*K13)))
Si Si DS1=(((B10+B12+B13)*(K20+K12+K23)*(K30+K23+K13))-
((B10+B12+B13)*(K23*K23))+((K30+K23+K13)*(K10+K12+K13)*(B20+B12+B23))+((K20+K12+K2
3)*(K10+K12+K13)*(B30+B23+B13))-((2*B23*K23)*(K10+K12+K13)))-
(((K12*B12*(K30+K23+K13)))+(B12*K23*K13)+(B12*K12*(K30+K23+K13))+((K12*K12)*(B30+B23
NS0=(K12+K20) +B13))+(K13*K12*B23)+(K23*B13*K12))-
NS0=(K12) ((K12*K23*B13)+((K20+K12+K23)*(K13*B13))+(B12*K23*K13)+(K12*B23*K13)+((B20+B12+B23)
NS1=(B20+B12) NS1=(B12)
NS2=(M20) *(K13*K13))+((K20+K12+K23)*(B13*K13)))
num=[NS2 NS1 NS0] num=[NS1 NS0] DS2=((M10*(K30+K23+K13)*(K20+K23+K12))-
(M10*K23*K23)+((B10+B12+B13)*(K30+K23+K13)*(B20+B12+B23))+((K20+K12+K23)*(B30+B23
+B13)*(B10+B12+B13))-
((2*B23*K23)*(B10+B12+B13))+(M20*(K30+K23+K13)*(K10+K12+K13))+((B20+B12+B23)*(B30+
B23+B13)*(K10+K12+K13))+(M30*(K20+K12+K23)*(K10+K12+K13))-
nyquist(num,den) nyquist(num,den) ((K10+K12+K13)*B23*B23))-
(((B12^2)*(K30+K23+K13))+((B12*K12)*(B30+B23+B13))+((B12*B13*K23)+(B12*B23*K13))+((B1
2*K12)*(B30+B23+B13))+(M30*K12^2)+(B13*B23*K12))-
(((B13*B12*K23)+(B13*B23*K12))+((B13^2)*(K20+K12+K23))+((B13*K13)*(B20+B12+B23))+(B12
*B23*K13)+(M20*K13*K13)+((B20+B12+B23)*(B13*K13)))
DS3=((M10*(B20+B12+B23)*(K30+K23+K13))+(M10*(K20+K12+K23)*(B30+B23+B13))-
(2*M10*B23*K23)+(M20*(K30+K23+K13)*(B10+B12+B13))+((B10+B12+B13)*(B20+B12+B23)*(B
30+B23+B13))+(M30*(K20+K12+K23)*(B10+B12+B13))-
((B23^2)*(B10+B12+B13))+(M20*(B30+B23+B13)*(K10+K12+K13))+(M30*(B20+B12+B23)*(K10+
K12+K13)))-(((B12^2)*(B30+B23+B13))+((M30*K12*B12)+(B12*B13*B23))+(M30*B12*K12))-
(((B13^2)*(B20+B12+B23))+(M20*K13*B13)+(B12*B13*B23)+(B13*K13*M20))
DS4=(((M10*M20)*(K30+K23+K13))+((M10)*((B20+B12+B23)*(B30+B23+B13)))+((M10*M30)*(K2
0+K12+K23))-
(M10*B23^2)+((M20)*((B30+B23+B13)*(B10+B12+B13)))+((M30)*((B20+B12+B23)*(B10+B12+B1
3)))+((M20*M30)*(K10+K12+K13)))-(M30*B12^2)-(M20*B13^2)
DS5=((M10*M20)*(B30+B23+B13))+((M10*M30)*(B20+B12+B23))+((M20*M30)*(B10+B12+B13))
DS6=M10*M20*M30
den=[DS6 DS5 DS4 DS3 DS2 DS1 DS0]
No No No
O=1 O=2 O=3
Si Si Si
NS0=(((K20+K12+K23)*(K30+K23+K13))-(K23*K23))
NS1=(((B20+B12+B23)*(K30+K23+K13))+((K20+K12+K23)*( NS0=((K12*(K30+K23+K13))+(K13*K23)) NS0=((K12*K23)+(K13*(K20+K12+K23)))
B30+B23+B13))-(2*B23*K23)) NS1=((B12*(K30+K23+K13))+(K12*(B30+B23+B13)) NS1=((B12*K23)+(K12*B23)+(K13*(B20+B12+B23))+(
NS2=((M20*(K30+K23+K13))+((M30*(K20+K12+K23)))+((B20 +((B13*K23)+(B23*K13))) B13*(K20+K12+K23)))
+B12+B23)*(B30+B23+B13))-(B23*B23)) NS2=((B12*(B30+B23+B13))+(M30*K12)+(B13*B23)) NS2=((B12*B23)+(M20*K13)+(B13*(B20+B12+B23)))
NS3=((M20*(B30+B23+B13))+(M30*(B20+B12+B23))) NS3=(M30*B12) NS3=(M20*B13)
NS4=M20*M30 num=[NS3 NS2 NS1 NS0] num=[NS3 NS2 NS1 NS0]
num=[NS4 NS3 NS2 NS1 NS0]
182
ANEXO P. PROGRAMA LUGAR GEOMÉTRICO DE LAS RAÍCES
function RespLGR
N=load('Nodos.txt');
switch lower(N)
case {1} %Si el sistema solo contiene un nodo
M10=load('M10.txt');
B10=load('B10.txt');
K10=load('K10.txt');
DS0=K10;
DS1=B10;
DS2=M10;
num=[1];
den=[DS2 DS1 DS0];
rlocus(num,den);
title('Lugar Gerometrico De Las Raices Nodo 1')
ylabel('Eje Imaginario')
xlabel('Eje Real')
DS2=(M10*K20+M10*K12+B10*B20+B10*B12+B12*B20+M20*K10+M20*K12);
DS3=(M10*B20+M10*B12+M20*B10+M20*B12);
DS4=(M10*M20);
den=[DS4 DS3 DS2 DS1 DS0];
if O==1
%Grafica Lugar Geometrico De Las Raices nodo 1:
NS0=(K12+K20);
NS1=(B20+B12);
183
NS2=(M20);
num=[NS2 NS1 NS0];
rlocus(num,den);
title('Lugar Gerometrico De Las Raices Nodo 1')
ylabel('Eje Imaginario')
xlabel('Eje Real')
elseif O==2
%Grafica Lugar Geometrico De Las Raices nodo 2:
NS0=(K12);
NS1=(B12);
num=[NS1 NS0];
rlocus(num,den);
title('Lugar Gerometrico De Las Raices Nodo 2')
ylabel('Eje Imaginario')
xlabel('Eje Real')
end
M10=load('M10.txt');
B10=load('B10.txt');
K10=load('K10.txt');
M20=load('M20.txt');
B20=load('B20.txt');
K20=load('K20.txt');
M30=load('M30.txt');
B30=load('B30.txt');
K30=load('K30.txt');
B12=load('B12.txt');
K12=load('K12.txt');
B13=load('B13.txt');
K13=load('K13.txt');
B23=load('B23.txt');
K23=load('K23.txt');
O=load('Salida.txt');%salida que desea visualizar 1 2 O 3
184
(B30+B23+B13)*(B10+B12+B13))-
((2*B23*K23)*(B10+B12+B13))+(M20*(K30+K23+K13)*(K10+K12+K13))+((B20+B12+B
23)*(B30+B23+B13)*(K10+K12+K13))+(M30*(K20+K12+K23)*(K10+K12+K13))-
((K10+K12+K13)*B23*B23))-
(((B12^2)*(K30+K23+K13))+((B12*K12)*(B30+B23+B13))+((B12*B13*K23)+(B12*B2
3*K13))+((B12*K12)*(B30+B23+B13))+(M30*K12^2)+(B13*B23*K12))-
(((B13*B12*K23)+(B13*B23*K12))+((B13^2)*(K20+K12+K23))+((B13*K13)*(B20+B1
2+B23))+(B12*B23*K13)+(M20*K13*K13)+((B20+B12+B23)*(B13*K13)));
DS3=((M10*(B20+B12+B23)*(K30+K23+K13))+(M10*(K20+K12+K23)*(B30+B23+B13))-
(2*M10*B23*K23)+(M20*(K30+K23+K13)*(B10+B12+B13))+((B10+B12+B13)*(B20+B12
+B23)*(B30+B23+B13))+(M30*(K20+K12+K23)*(B10+B12+B13))-
((B23^2)*(B10+B12+B13))+(M20*(B30+B23+B13)*(K10+K12+K13))+(M30*(B20+B12+B
23)*(K10+K12+K13)))-
(((B12^2)*(B30+B23+B13))+((M30*K12*B12)+(B12*B13*B23))+(M30*B12*K12))-
(((B13^2)*(B20+B12+B23))+(M20*K13*B13)+(B12*B13*B23)+(B13*K13*M20));
DS4=(((M10*M20)*(K30+K23+K13))+((M10)*((B20+B12+B23)*(B30+B23+B13)))+((M1
0*M30)*(K20+K12+K23))-
(M10*B23^2)+((M20)*((B30+B23+B13)*(B10+B12+B13)))+((M30)*((B20+B12+B23)*(
B10+B12+B13)))+((M20*M30)*(K10+K12+K13)))-(M30*B12^2)-(M20*B13^2);
DS5=((M10*M20)*(B30+B23+B13))+((M10*M30)*(B20+B12+B23))+((M20*M30)*(B10+B
12+B13));
DS6=M10*M20*M30;
den=[DS6 DS5 DS4 DS3 DS2 DS1 DS0];
if O==1
%Grafica Lugar Geometrico De Las Raices nodo 1:
NS0=(((K20+K12+K23)*(K30+K23+K13))-(K23*K23));
NS1=(((B20+B12+B23)*(K30+K23+K13))+((K20+K12+K23)*(B30+B23+B13))-
(2*B23*K23));
NS2=((M20*(K30+K23+K13))+((M30*(K20+K12+K23)))+((B20+B12+B23)*(B30+B23+B1
3))-(B23*B23));
NS3=((M20*(B30+B23+B13))+(M30*(B20+B12+B23)));
NS4=M20*M30;
num=[NS4 NS3 NS2 NS1 NS0];
rlocus(num,den);
title('Lugar Gerometrico De Las Raices Nodo 1')
ylabel('Eje Imaginario')
xlabel('Eje Real')
elseif O==2
%Grafica Lugar Geometrico De Las Raices nodo 2:
NS0=((K12*(K30+K23+K13))+(K13*K23));
NS1=((B12*(K30+K23+K13))+(K12*(B30+B23+B13))+((B13*K23)+(B23*K13)));
NS2=((B12*(B30+B23+B13))+(M30*K12)+(B13*B23));
NS3=(M30*B12);
num=[NS3 NS2 NS1 NS0];
185
rlocus(num,den);
title('Lugar Gerometrico De Las Raices Nodo 2')
ylabel('Eje Imaginario')
xlabel('Eje Real')
elseif O==3
%Grafica Lugar Geometrico De Las Raices nodo 3:
NS0=((K12*K23)+(K13*(K20+K12+K23)));
NS1=((B12*K23)+(K12*B23)+(K13*(B20+B12+B23))+(B13*(K20+K12+K23)));
NS2=((B12*B23)+(M20*K13)+(B13*(B20+B12+B23)));
NS3=(M20*B13);
num=[NS3 NS2 NS1 NS0];
rlocus(num,den);
title('Lugar Gerometrico De Las Raices Nodo 3')
ylabel('Eje Imaginario')
xlabel('Eje Real')
end
otherwise
disp('No hay ningun sistema definido')
end
186
ANEXO Q. DIAGRAMA DE FLUJO PROGRAMA LUGAR GEOMÉTRICO DE
LAS RAÍCES
187