Análisis lineal de vigas en voladizo
Este ejemplo muestra cómo obtener un modelo estructural de una viga y cómo calcular la respuesta en el tiempo y la frecuencia cuando se somete a una fuerza de impulso. Para este ejemplo, considere una viga en voladizo de acero sometida a una carga puntual en el extremo. Para generar el modelo estructural es necesario usar Partial Differential Equation Toolbox™.
La viga de acero se deforma cuando se aplica una carga externa de 100 N en el extremo de la viga y luego se libera. Este ejemplo no utiliza ninguna carga adicional, por lo que el desplazamiento del extremo oscila con una amplitud igual al desplazamiento inicial de la fuerza aplicada. Este ejemplo sigue un flujo de trabajo de tres pasos:
Construir un modelo estructural de la viga.
Linealizar el modelo estructural para obtener un modelo lineal disperso de la viga.
Analizar la respuesta en el tiempo y en la frecuencia del modelo linealizado.
Modelo estructural de la viga
Utilice Partial Differential Equation Toolbox para crear un modelo estructural y calcule la respuesta al impulso. Para ver un ejemplo de modelado de una viga en voladizo, consulte Dynamics of Damped Cantilever Beam (Partial Differential Equation Toolbox).
En primer lugar, construya la viga y especifique el módulo de Young, la relación de Poisson y la densidad de masa del acero. Especifique el extremo de la viga con la función addVertex
.
gm = multicuboid(0.1,0.005,0.005); E = 210E9; nu = 0.3; rho = 7800; TipVertex = addVertex(gm,Coordinates=[0.05,0,0.005]);
Utilice createpde
(Partial Differential Equation Toolbox) para construir el modelo estructural y generar la malla utilizando el comando generateMesh
(Partial Differential Equation Toolbox).
sModel = createpde(structural="transient-solid");
sModel.Geometry = gm;
msh = generateMesh(sModel);
Visualice la geometría de la viga con pdegplot
(Partial Differential Equation Toolbox).
figure pdegplot(sModel,FaceLabels="on"); title("Beam model")
Asigne propiedades estructurales a la viga de acero con el comando structuralProperties
(Partial Differential Equation Toolbox) y fije un extremo con structuralBC
(Partial Differential Equation Toolbox).
structuralProperties(sModel,YoungsModulus=E,PoissonsRatio=nu,MassDensity=rho);
structuralBC(sModel,Face=5,Constraint="fixed");
Puede calcular los modos de vibración de la viga resolviendo el modelo de análisis modal en un rango de frecuencias especificado con solve
(Partial Differential Equation Toolbox). En el caso de esta viga, el primer modo de vibración está en 2.639 rad/s, tal y como se confirma en la gráfica de Bode de la sección Análisis lineal de este ejemplo.
firstNF = 2639; Tfundamental = 2*pi/firstNF;
Para modelar un impulso (golpe) en el extremo de la viga, aplique fuerza durante el 2% del periodo fundamental de oscilación (impulso) con structuralBoundaryLoad
(Partial Differential Equation Toolbox). Especifique la etiqueta force
para utilizar esta fuerza como entrada de linealización.
Te = 0.02*Tfundamental; structuralBoundaryLoad(sModel,Vertex=TipVertex,Force=[0;0;-100], ... EndTime=Te,Label="force");
Establezca las condiciones iniciales para el modelo de viga con structuralIC
(Partial Differential Equation Toolbox).
structuralIC(sModel,Velocity=[0;0;0]);
Calcule la respuesta al impulso resolviendo el modelo de viga estructural.
ncycles = 10; tsim = linspace(0,ncycles*Tfundamental,30*ncycles); R1 = solve(sModel,tsim);
Visualice las oscilaciones en el extremo de la viga.
figure plot(tsim,R1.Displacement.uz(TipVertex,:)) title('Vertical Displacement of Beam Tip') legend('Structural PDE model') xlabel('Time') ylabel('Displacement')
Linealización del modelo estructural
Para este modelo de viga, desea obtener un modelo lineal (función de transferencia) desde la fuerza aplicada en el extremo hasta el desplazamiento z del extremo.
Para ello, especifique primero las entradas y salidas del modelo linealizado en función del modelo estructural. Aquí, la entrada es la fuerza especificada con structuralBoundaryLoad
(Partial Differential Equation Toolbox) y la salida es el grado de libertad z del vértice del extremo.
linearizeInput(sModel,"force"); linearizeOutput(sModel,Vertex=TipVertex,Component="z");
A continuación, utilice el comando linearize
(Partial Differential Equation Toolbox) para extraer el modelo mechss
.
sys = linearize(sModel)
Sparse continuous-time second-order model with 1 outputs, 3 inputs, and 3303 degrees of freedom. Model Properties Use "spy" and "showStateInfo" to inspect model structure. Type "help mechssOptions" for available solver options for this model.
El modelo linealizado tiene tres entradas correspondientes a los componentes x, y, y z de la fuerza aplicada al vértice del extremo.
sys.InputName
ans = 3×1 cell
{'force_x'}
{'force_y'}
{'force_z'}
En el modelo linealizado, seleccione el componente z de la fuerza.
sys = sys(:,3)
Sparse continuous-time second-order model with 1 outputs, 1 inputs, and 3303 degrees of freedom. Model Properties Use "spy" and "showStateInfo" to inspect model structure. Type "help mechssOptions" for available solver options for this model.
El modelo resultante se define usando el siguiente conjunto de ecuaciones:
Utilice spy
para visualizar la escasez del modelo mechss
de sys
.
figure spy(sys)
Análisis lineales
Elija 'tfbdf3'
como el solver de ecuaciones diferenciales algebraicas (DAE).
sys.SolverOptions.DAESolver = "trbdf3";
Utilice bode
para calcular la respuesta en frecuencia del modelo linealizado sys
.
w = logspace(2,6,1000);
figure
bode(sys,w)
grid
title("Frequency Response from Force to Tip Vertical Displacement")
La gráfica de Bode muestra que el primer modo de vibración se encuentra aproximadamente en firstNF
= 2.639 rad/s.
A continuación, utilice lsim
para simular la respuesta al impulso y compárela con los resultados del modelo EDP. Para acotar el error debido a la interpolación lineal de la fuerza entre muestras, utilice un tamaño de paso de Te/5
. Recuerde que la fuerza se aplica en el extremo de la viga durante el breve intervalo de tiempo [0 Te
].
h = Te/5; t = 0:h:ncycles*Tfundamental; u = zeros(size(t)); u(t<=Te) = -100; y = lsim(sys,u,t); figure plot(t,y,tsim,R1.Displacement.uz(TipVertex,:)) title({'Comparison of Sparse LSIM Response';... 'with PDE Model Simulation'}) legend("Linearized model','Structural PDE model") xlabel("Time") ylabel("Displacement")
La respuesta lineal de lsim
se corresponde estrechamente con la simulación transitoria del modelo estructural obtenido en el primer paso.
Consulte también
showStateInfo
| spy
| mechss
| solve
(Partial Differential Equation Toolbox) | structuralBC
(Partial Differential Equation Toolbox) | structuralIC
(Partial Differential Equation Toolbox) | createpde
(Partial Differential Equation Toolbox) | linearize
(Partial Differential Equation Toolbox) | linearizeInput
(Partial Differential Equation Toolbox) | linearizeOutput
(Partial Differential Equation Toolbox)