Kitabı oku: «Modelamiento y simulación de sistemas con Simulink», sayfa 18

Yazı tipi:

10.4.2 Ejemplo 6. Pórtico de tres pisos mediante el uso de Simulink

Crear un modelo de Simulink para implementar el Ejemplo 5.

Considerar los parámetros de la tabla 10.3 para la simulación de este modelo

Tabla 10.3

Configuración de parámetros de la simulación del Ejemplo 6

Solución. Ingresar los datos correspondientes al código fuente mostrado en el siguiente script, con la finalidad de tener los valores de las variables m, c y k, las matrices A, B, C y D y los valores de t y g del registro de aceleraciones almacenados en el Workspace de Matlab.

1 %% Ingreso de Datos y Cálculo de matrices A, B, C y D

2 clc , clear all , close all % Funciones de limpieza

3 % Matriz de masa, amortiguamiento y rigidez.

4 load M.mat % Matriz de masa

5 load C.mat % Matriz de amortiguamiento

6 load K.mat % Matriz de rigidez

7 calc1 = size (M);

8 ndgl = calc1 (1);

9 % Cálculo de la matriz A

10 A=[ zeros ( ndgl ) eye( ndgl ); -M\K -M\C];

11 % Cálculo de la matriz B

12 B=[ zeros (ndgl ,1); -1* ones (ndgl ,1) ];

13 % Cálculo de la matriz C

14 C=[ eye( ndgl ) zeros ( ndgl ); zeros ( ndgl ) eye( ndgl ); -M\K -M\C];

15 % Cálculo de la matriz D

16 D=[ zeros (ndgl ,1); zeros (ndgl ,1); -1* ones (ndgl ,1) ];

17 % Componente de la aceleración del suelo registrada

18 load ( ' Ica.txt ' )

19 t=Ica (: ,1);

20 g=Ica (: ,3) /100;

El diagrama de bloques del modelo se muestra en la figura 10.28. Se establecen las constantes [t g] en el parámetro Data del bloque From Workspace; el valor de 10 en el parámetro Number of Input Ports del bloque Scope; el término x1, x2, x3, x4, x5, x6, x7, x8, x9 y x10 en los parámetros File name de los bloques To File. Los demás parámetros de los bloques quedan con los valores dados por defecto.

Figura 10.28. Diagrama de bloques principal del Ejemplo 6

El diagrama de bloques del bloque Subsystem se muestra en la figura 10.29. Se establecen las constantes A, B, C y D en los parámetros A, B, C, D y los valores [0 0] en el parámetro Initial conditions del bloque State-Space; el valor de 30 en el parámetro Number of Input Ports del bloque Demux. Los demás parámetros de los bloques quedan con los valores dados por defecto. Realizar las configuraciones de acuerdo a lo visualizado en el modelo de la figura 10.29.

Figura 10.29. Diagrama de bloques del bloque Subsystem del Ejemplo 6

Resultados

• Un simulador visual de los desplazamientos ocasionados en un pórtico de un nivel en tiempo real, similar al del Ejemplo 1: pórtico de diez pisos mediante el uso de Matlab, el cual se obtendrá al ejecutar el código fuente mostrado en el siguiente script:

1 %% Visualización interactiva de desplazamientos

2 clc , clear all , close all % Funciones de limpieza

3 figure ( ' Name ' , ' Visualización interactiva de desplazamientos ' , ' NumberTitle ' , ' off ' , ' units ' , ' normalized ' , ' outerposition ' ,[0 0 1 1]);

4 load x1

5 load x2

6 load x3

7 load x4

8 load x5

9 load x6

10 load x7

11 load x8

12 load x9

13 load x10

14 set(gcf , ' Color ' , ' w ' )

15 set(gca , ' Color ' , ' w ' , ' Visible ' , ' off ' )

16 axis tight

17 x1 =100* x1 (2 ,:);

18 x2 =100* x2 (2 ,:);

19 x3 =100* x3 (2 ,:);

20 x4 =100* x4 (2 ,:);

21 x5 =100* x5 (2 ,:);

22 x6 =100* x6 (2 ,:);

23 x7 =100* x7 (2 ,:);

24 x8 =100* x8 (2 ,:);

25 x9 =100* x9 (2 ,:);

26 x10 =100* x10 (2 ,:);

27 for k=1: length (x1)

28 y1 =4* ones (1, length (x1));

29 y2 =7* ones (1, length (x2));

30 y3 =10* ones (1, length (x3));

31 y4 =13* ones (1, length (x4));

32 y5 =16* ones (1, length (x5));

33 y6 =19* ones (1, length (x6));

34 y7 =22* ones (1, length (x7));

35 y8 =25* ones (1, length (x8));

36 y9 =28* ones (1, length (x9));

37 y10 =31* ones (1, length (x10));

38 plot3 ([ x1(k) 5+ x1(k) 10+ x1(k) 15+ x1(k)] ,[0 0 0 0 ],[ y1(k) y1(k) y1(k) y1(k)], ' Color ' , ' r ' , ' LineWidth ' ,5)

39 hold on

40 plot3 ([ x2(k) 5+ x2(k) 10+ x2(k) 15+ x2(k)] ,[0 0 0 0] ,[ y2(k) y2(k) y2(k) y2(k)], ' Color ' , ' r ' , ' LineWidth ' ,5)

41 plot3 ([ x3(k) 5+ x3(k) 10+ x3(k) 15+ x3(k)] ,[0 0 0 0] ,[ y3(k) y3(k) y3(k) y3(k)], ' Color ' , ' r ' , ' LineWidth ' ,5)

42 plot3 ([ x4(k) 5+ x4(k) 10+ x4(k) 15+ x4(k)] ,[0 0 0 0] ,[ y4(k) y4(k) y4(k) y4(k)], ' Color ' , ' r ' , ' LineWidth ' ,5)

43 plot3 ([ x5(k) 5+ x5(k) 10+ x5(k) 15+ x5(k)] ,[0 0 0 0] ,[ y5(k) y5(k) y5(k) y5(k)], ' Color ' , ' r ' , ' LineWidth ' ,5)

44 plot3 ([ x6(k) 5+ x6(k) 10+ x6(k) 15+ x6(k)] ,[0 0 0 0] ,[ y6(k) y6(k) y6(k) y6(k)], ' Color ' , ' r ' , ' LineWidth ' ,5)

45 plot3 ([ x7(k) 5+ x7(k) 10+ x7(k) 15+ x7(k)] ,[0 0 0 0] ,[ y7(k) y7(k) y7(k) y7(k)], ' Color ' , ' r ' , ' LineWidth ' ,5)

46 plot3 ([ x8(k) 5+ x8(k) 10+ x8(k) 15+ x8(k)] ,[0 0 0 0] ,[ y8(k) y8(k) y8(k) y8(k)], ' Color ' , ' r ' , ' LineWidth ' ,5)

47 plot3 ([ x9(k) 5+ x9(k) 10+ x9(k) 15+ x9(k)] ,[0 0 0 0] ,[ y9(k) y9(k) y9(k) y9(k)], ' Color ' , ' r ' , ' LineWidth ' ,5)

48 plot3 ([ x10(k) 5+ x10(k) 10+ x10(k) 15+ x10(k)] ,[0 0 0 0] ,[ y10(k) y10(k) y10(k) y10(k)], ' Color ' , ' r ' , ' LineWidth ' ,5)

49 set(gca , ' Color ' , ' w ' , ' Visible ' , ' off ' )

50 plot3 ([0 x1(k)] ,[0 0] ,[0 y1(k)] ,[5 5+ x1(k)] ,[0 0] ,[0 y1(k)] ,[10 10+ x1( k)] ,[0 0] ,[0 y1(k)] ,[15 15+ x1(k)] ,[0 0] ,[0 y1(k)], ' Color ' , ' b ' , ' LineWidth ' ,5)

51 plot3 ([ x1(k) x2(k)] ,[0 0] ,[ y1(k) y2(k)] ,[5+ x1(k) 5+ x2(k)] ,[0 0] ,[ y1(k) y2(k)] ,[10+ x1(k) 10+ x2(k)] ,[0 0] ,[ y1(k) y2(k)] ,[15+ x1(k) 15+ x2(k) ] ,[0 0] ,[ y1(k) y2(k)], ' Color ' , ' b ' , ' LineWidth ' ,5)

52 plot3 ([ x2(k) x3(k)] ,[0 0] ,[ y2(k) y3(k)] ,[5+ x2(k) 5+ x3(k)] ,[0 0] ,[ y2(k) y3(k)] ,[10+ x2(k) 10+ x3(k)] ,[0 0] ,[ y2(k) y3(k)] ,[15+ x2(k) 15+ x3(k) ] ,[0 0] ,[ y2(k) y3(k)], ' Color ' , ' b ' , ' LineWidth ' ,5)

53 plot3 ([ x3(k) x4(k)] ,[0 0] ,[ y3(k) y4(k)] ,[5+ x3(k) 5+ x4(k)] ,[0 0] ,[ y3(k) y4(k)] ,[10+ x3(k) 10+ x4(k)] ,[0 0] ,[ y3(k) y4(k)] ,[15+ x3(k) 15+ x4(k) ] ,[0 0] ,[ y3(k) y4(k)], ' Color ' , ' b ' , ' LineWidth ' ,5)

54 plot3 ([ x4(k) x5(k)] ,[0 0] ,[ y4(k) y5(k)] ,[5+ x4(k) 5+ x5(k)] ,[0 0] ,[ y4(k) y5(k)] ,[10+ x4(k) 10+ x5(k)] ,[0 0] ,[ y4(k) y5(k)] ,[15+ x4(k) 15+ x5(k) ] ,[0 0] ,[ y4(k) y5(k)], ' Color ' , ' b ' , ' LineWidth ' ,5)

55 plot3 ([ x5(k) x6(k)] ,[0 0] ,[ y5(k) y6(k)] ,[5+ x5(k) 5+ x6(k)] ,[0 0] ,[ y5(k) y6(k)] ,[10+ x5(k) 10+ x6(k)] ,[0 0] ,[ y5(k) y6(k)] ,[15+ x5(k) 15+ x6(k) ] ,[0 0] ,[ y5(k) y6(k)], ' Color ' , ' b ' , ' LineWidth ' ,5)

56 plot3 ([ x6(k) x7(k)] ,[0 0] ,[ y6(k) y7(k)] ,[5+ x6(k) 5+ x7(k)] ,[0 0] ,[ y6(k) y7(k)] ,[10+ x6(k) 10+ x7(k)] ,[0 0] ,[ y6(k) y7(k)] ,[15+ x6(k) 15+ x7(k) ] ,[0 0] ,[ y6(k) y7(k)], ' Color ' , ' b ' , ' LineWidth ' ,5)

57 plot3 ([ x7(k) x8(k)] ,[0 0] ,[ y7(k) y8(k)] ,[5+ x7(k) 5+ x8(k)] ,[0 0] ,[ y7(k) y8(k)] ,[10+ x7(k) 10+ x8(k)] ,[0 0] ,[ y7(k) y8(k)] ,[15+ x7(k) 15+ x8(k) ] ,[0 0] ,[ y7(k) y8(k)], ' Color ' , ' b ' , ' LineWidth ' ,5)

58 plot3 ([ x8(k) x9(k)] ,[0 0] ,[ y8(k) y9(k)] ,[5+ x8(k) 5+ x9(k)] ,[0 0] ,[ y8(k) y9(k)] ,[10+ x8(k) 10+ x9(k)] ,[0 0] ,[ y8(k) y9(k)] ,[15+ x8(k) 15+ x9(k) ] ,[0 0] ,[ y8(k) y9(k)], ' Color ' , ' b ' , ' LineWidth ' ,5)

59 plot3 ([ x9(k) x10(k)] ,[0 0] ,[ y9(k) y10(k)] ,[5+ x9(k) 5+ x10(k)] ,[0 0] ,[ y9 (k) y10(k)] ,[10+ x9(k) 10+ x10(k)] ,[0 0] ,[ y9(k) y10(k)] ,[15+ x9(k) 15+ x10(k)] ,[0 0] ,[ y9(k) y10(k)], ' Color ' , ' b ' , ' LineWidth ' ,5)

60 fill3 ([ -0.75 -0.75 0.75 0.75] ,[ -0.75 0.75 0.75 -0.75] ,[0 0 0 0], ' g ' )

61 fill3 ([4.25 4.25 5.75 5.75] ,[ -0.75 0.75 0.75 -0.75] ,[0 0 0 0], ' g ' )

62 fill3 ([9.25 9.25 10.75 10.75] ,[ -0.75 0.75 0.75 -0.75] ,[0 0 0 0], ' g ' )

63 fill3 ([14.25 14.25 15.75 15.75] ,[ -0.75 0.75 0.75 -0.75] ,[0 0 0 0], ' g ' )

64 axis equal

65 axis ([ -5.5 20.5 -1 1 0 31.05])

66 drawnow

67 pause (0.0125)

68 hold off

69 end

• La representación gráfica de los historiales de respuesta de desplazamientos, velocidades y aceleraciones del sistema (figura 10.30, figura 10.31, figura 10.32, figura 10.33), la cual se obtiene al hacer doble clic sobre el bloque Scope, implementado en el diagrama de bloques del modelo (figura 10.28).

Figura 10.30. Visualización gráfica de desplazamientos del Ejemplo 6

Figura 10.31. Visualización gráfica de velocidades del Ejemplo 6

Figura 10.32. Visualización gráfica de aceleraciones del Ejemplo 6

Figura 10.33. Visualización gráfica de desplazamientos, velocidades y aceleraciones del Ejemplo 6

Bibliografía

Aguiar Falconí, R. (2004). Análisis matricial de estructuras con CEINCI-LAB. Escuela Politécnica del Ejército (ESPE)-Quito, Ecuador.

Aguiar Falconí, R. (2012). Dinámica de Estructuras con CEINCI-LAB. Escuela Politécnica del Ejército (ESPE)-Quito, Ecuador.

Chaturvedi, D. K. (2009). Modeling and Simulation of Systems Using Matlab® and Simulink®. New York: CRC Press.

Chopra, A. K. (2012). Dynamics of Structures: Theory and Applications to Earthquake Engineering. London: Prentice Hall.

Hibbeler, R. C. (2012). Structural Analysis. New Jersey: Prentice Hall.

Klee, H., y Allen, R. (2011). Simulation of Dynamic Systems with Matlab® and Simulink®.(2.a edición). New York: CRC Press.

McGuire, W., Gallagher, R. H., y Ziemian, R. D., (2012). Matrix Structural Analysis. John Wiley & Sons, Inc. New York.

Paz, M. (2002). Dinámica estructural: teoría y cálculo. Barcelona: Reverté.

Pique del Pozo, J. y Scaletti Farina, H. (1991). Análisis sísmico de edificios. Lima: Colegio de Ingenieros del Perú.

Tyagi, A. K. (2011). Matlab and Simulink for Engineers. Oxford University Press. Oxford, United Kingdom. OUP India11.

Zamboni, L. (2013). Getting Started with Simulink. Birmingham, United Kingdom: Packt Publishing.

Anexos
A. SISMO DE PISCO DEL 15/8/2007

El presente anexo corresponde al registro de tiempo-aceleraciones del suelo utilizadas en el presente libro. Dicho registro es el sismo de Pisco (Ica) del 15/8/2007 y puede obtenerse en la página del CISMID: http://www.cismid-uni.org/.









B. DESCRIPCIÓN DE BLOQUES DE SIMULINK

Este anexo se presenta con la finalidad de brindar una breve referencia sobre la relación entre la pertenencia (librería) y función de cada uno de los bloques de Simulink utilizados en los ejemplos desarrollados de este libro.

Bloque Abs

Pertenece a la biblioteca Math Operations y tiene por función obtener como salida el valor absoluto del ingreso.


Bloque Add

Pertenece a la biblioteca Math Operations y tiene por función sumar o restar ingresos.


Bloque Bus Creator

Pertenece a la biblioteca Signal Routing y tiene por función crear un bus de señal.


Bloque Bus Selector

Pertenece a la biblioteca Signal Routing y tiene por función la extracción y salida de los elementos de una señal vectorial.


Bloque Clock

Pertenece a la biblioteca Sources y tiene por función visualizar y proporcionar el tiempo de simulación.


Bloque Constant

Pertenece a la biblioteca Sources y tiene por función generar un valor constante.


Bloque Demux

Pertenece a la biblioteca Signal Routing y tiene por función la extracción y generación de salidas de los elementos de una señal vectorial.


Bloque Derivative

Pertenece a la biblioteca Continuous y tiene por función derivar el ingreso como una función del tiempo.


Bloque Divide

Pertenece a la biblioteca Math Operations y tiene por función multiplicar y dividir escalares y no escalares o multiplicar e invertir matrices.


Bloque Dot Product

Pertenece a la biblioteca Math Operations y tiene por función generar el producto punto de dos vectores.


Bloque Fcn

Pertenece a la biblioteca User-Defined Functions y tiene por función aplicar una expresión específica al ingreso.


Bloque From File

Pertenece a la biblioteca Sources y tiene por función cargar datos desde un archivo .mat.


Bloque From Workspace

Pertenece a la biblioteca Sources y tiene por función: cargar señal de datos desde el espacio de trabajo.


Bloque Gain

Pertenece a la biblioteca Math Operations y tiene por función multiplicar el ingreso por una constante.


Bloque Inport

Pertenece a la biblioteca Sources y tiene por función: crear puerto de ingreso para subsystema o ingreso externo.


Bloque Integrator

Pertenece a la biblioteca Continuous y tiene por función integrar el ingreso como una función del tiempo.


Bloque Manual Switch

Pertenece a la biblioteca Signal Routing y tiene por función cambiar entre dos ingresos.


Bloque Math Function

Pertenece a la biblioteca Math Operations y tiene por función aplicar la función matemática especificada al ingreso.


Bloque Matlab Function

Pertenece a la biblioteca User-Defined Functions y tiene por función incluir el código Matlab® en modelos que genere código C embebido.


Bloque MinMax

Pertenece a la biblioteca Math Operations y tiene por función obtener el valor mínimo o máximo del ingreso.


Bloque Mux

Pertenece a la biblioteca Signal Routing y tiene por función combinar varias señales de ingreso en un vector.


Bloque Outport

Pertenece a la biblioteca Sinks y tiene por función crear puerto de salida para subsistema o salida externa.


Bloque Product

Pertenece a la biblioteca Math Operations y tiene por función multiplicar y dividir escalares y no escalares o multiplicar e invertir matrices.


Bloque Saturation

Pertenece a la biblioteca Discontinuities y tiene por función limitar el rango de la señal.


Bloque Scope

Pertenece a la biblioteca Sinks y tiene por función visualizar señales generadas durante la simulación.


Bloque S-Function

Pertenece a la biblioteca User-Defined Functions y tiene por función: incluir S-Function en el modelo.


Bloque Sign

Pertenece a la biblioteca Math Operations y tiene por función indicar el signo del ingreso.


Bloque Signal Generator

Pertenece a la biblioteca Sources y tiene por función generar varias formas de onda.


Bloque Sine Wave

Pertenece a la biblioteca Math Operations y tiene por función generar la onda seno, usando el tiempo de simulación como fuente de tiempo.


Bloque Sqrt

Pertenece a la biblioteca Math Operations y tiene por función calcular la raíz cuadrada del ingreso.


Bloque State-Space

Pertenece a la biblioteca Continuous y tiene por función: implementar el sistema de espacio de estado lineal.


Bloque Step

Pertenece a la biblioteca Sources y tiene por función: generar la función de paso.


Bloque Substract

Pertenece a la biblioteca Math Operations y tiene por función sumar o restar ingresos.


Bloque Subsystem

Pertenece a la biblioteca Ports & Subsystems y tiene por función representar un sistema dentro de otro sistema.


Bloque Sum

Pertenece a la biblioteca Math Operations y tiene por función sumar o restar ingresos.


Bloque To File

Pertenece a la biblioteca Sinks y tiene por función: escribir datos en el archivo.


Bloque To Workspace

Pertenece a la biblioteca Sinks y tiene por función escribir datos en el espacio de trabajo.


Bloque Transfer Fcn

Pertenece a la biblioteca Continuous y tiene por función modelar un sistema lineal median-te una función de transferencia.


Bloque Transport Delay

Pertenece a la biblioteca Continuous y tiene por función: retrasar el ingreso por una cantidad de tiempo.


Datos de autores

Miguel Raúl Guzmán Prado

Magíster en Ciencias con Mención en Ingeniería Estructural por la Universidad Nacional de Ingeniería (UNI). Miembro del Grupo de Investigación de Mecánica Computacional de la Facultad de Ingeniería Civil del Instituto de Investigación de la UNI. Especialista en el desarrollo de aplicaciones del software Matlab y Simulink para ingeniería estructural (análisis matricial de estructuras, dinámica estructural, elementos finitos, análisis de edificios, diseño de estructuras de concreto reforzado, estática, mecánica de materiales).

Raul Franco Guzmán López

Egresado de la Maestría en Ciencias con Mención en Ingeniería Estructural por la Universidad Nacional de Ingeniería (UNI). Miembro del Grupo de Investigación de Mecánica Computacional de la Facultad de Ingeniería Civil del Instituto de Investigación de la UNI. Especialista en el desarrollo de aplicaciones del software Matlab y Simulink para ingeniería estructural (análisis matricial de estructuras, dinámica estructural, elementos finitos, análisis de edificios, diseño de estructuras de concreto reforzado, estática, mecánica de materiales).


Türler ve etiketler

Yaş sınırı:
0+
Hacim:
599 s. 649 illüstrasyon
ISBN:
9789972455339
Telif hakkı:
Bookwire
İndirme biçimi:
Metin
Ortalama puan 0, 0 oylamaya göre
The Blind
A.F. Brady
Metin
Ortalama puan 0, 0 oylamaya göre
Ses
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 0, 0 oylamaya göre
Hired by Her Husband
Anne McAllister
Metin
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 4, 1 oylamaya göre