/****************************************************************************** * Resonance Frequencies of a bending beam * * - Modal Mass and Stiffness * * - Deformation modes and Maximum Strain * * --------------------------------------------------------------------------- * * SAMPLE RUN: * * * * Fixed-Free Beam, M=1 * * Fixed-Supported, M=2 * * Fixed-Fixed, M=3 * * Free-Free, M=4 * * Free-Supported, M=5 * * Supported-Supported, M=6 * * * * Limit Conditions, M= 3 * * * * Young Modulus: 2E11 * * * * Volumic Mass.: 7800 * * * * Beam Width....: 0.4 * * Beam Thickness: 0.5 * * Beam Length...: 10 * * * * * * Frequency (Hz) = 26.025373 * * Frequency (Hz) = 71.739944 * * Frequency (Hz) = 140.638973 * * Frequency (Hz) = 232.483361 * * Frequency (Hz) = 347.290041 * * * * * * Do you want the modes, modal masses & Stiffnesses (y/n): y * * * * How many modes (Maximum 5): 5 * * * * How many points for deviation, slope & max. strain: 11 * * * * Do you want automatic divisions (y/n): y * * * * * * MODE #1 * * ------- * * * * OMEGA= 163.5222 FREQUENCY= 26.0254 * * * * Modal Mass= 5.40002743637149e+006 Modal Stiffness= 1.44394161046433e+011 * * * * X Deviation Slope Strain (x10^6) * * ------------------------------------------------ * * 0.0000 0.0000 0.0000 22771.74 * * 1.0000 0.1925 0.3498 12232.17 * * 2.0000 0.6304 0.4927 2225.41 * * 3.0000 1.1155 0.4494 -6194.01 * * 4.0000 1.4814 0.2635 -11846.94 * * 5.0000 1.6164 0.0000 -13841.17 * * 6.0000 1.4814 -0.2635 -11846.94 * * 7.0000 1.1155 -0.4494 -6194.01 * * 8.0000 0.6304 -0.4927 2225.41 * * 9.0000 0.1925 -0.3498 12232.17 * * 10.0000 -0.0000 -0.0000 22771.74 * * * * MODE #2 * * ------- * * * * OMEGA= 450.7554 FREQUENCY= 71.7399 * * * * Modal Mass= 1.64384471757779e+009 Modal Stiffness= 3.33997017195899e+014 * * * * X Deviation Slope Strain (x10^6) * * ------------------------------------------------ * * 0.0000 0.0000 0.0000 61624.92 * * 1.0000 0.4554 0.7516 14015.32 * * 2.0000 1.2058 0.6202 -24480.45 * * 3.0000 1.5043 -0.0778 -40796.43 * * 4.0000 1.0338 -0.8261 -29766.62 * * 5.0000 0.0000 -1.1411 -0.00 * * 6.0000 -1.0338 -0.8261 29766.62 * * 7.0000 -1.5043 -0.0778 40796.43 * * 8.0000 -1.2058 0.6202 24480.46 * * 9.0000 -0.4554 0.7516 -14015.31 * * 10.0000 -0.0000 0.0000 -61624.92 * * * * MODE #3 * * ------- * * * * OMEGA= 883.6607 FREQUENCY= 140.6390 * * * * Modal Mass= 6.30221918268558e+011 Modal Stiffness= 4.92112747787204e+017 * * * * X Deviation Slope Strain (x10^6) * * ------------------------------------------------ * * 0.0000 0.0000 0.0000 120907.45 * * 1.0000 0.7701 1.1128 -6282.87 * * 2.0000 1.5079 0.1215 -77726.96 * * 3.0000 0.8687 -1.2982 -47991.93 * * 4.0000 -0.6284 -1.3976 39638.73 * * 5.0000 -1.4060 -0.0000 85988.24 * * 6.0000 -0.6284 1.3976 39638.73 * * 7.0000 0.8687 1.2982 -47991.92 * * 8.0000 1.5079 -0.1215 -77726.96 * * 9.0000 0.7701 -1.1128 -6282.87 * * 10.0000 -0.0000 -0.0000 120907.44 * * * * MODE #4 * * ------- * * * * OMEGA=1460.7360 FREQUENCY= 232.4834 * * * * Modal Mass= 2.62456494665287e+014 Modal Stiffness= 5.60016486006314e+020 * * * * X Deviation Slope Strain (x10^6) * * ------------------------------------------------ * * 0.0000 0.0000 0.0000 199859.15 * * 1.0000 1.0745 1.2736 -58760.62 * * 2.0000 1.3192 -0.9913 -120007.61 * * 3.0000 -0.4227 -1.9219 45103.94 * * 4.0000 -1.3935 0.3075 139911.06 * * 5.0000 -0.0000 1.9969 0.02 * * 6.0000 1.3935 0.3075 -139911.05 * * 7.0000 0.4227 -1.9219 -45103.98 * * 8.0000 -1.3192 -0.9913 120007.59 * * 9.0000 -1.0745 1.2736 58760.66 * * 10.0000 -0.0000 0.0000 -199859.09 * * * * MODE #5 * * ------- * * * * OMEGA=2182.0877 FREQUENCY= 347.2900 * * * * Modal Mass= 1.14990481414791e+017 Modal Stiffness= 5.47527941977509e+023 * * * * X Deviation Slope Strain (x10^6) * * ------------------------------------------------ * * 0.0000 0.0000 0.0000 298555.55 * * 1.0000 1.3218 1.1293 -144271.18 * * 2.0000 0.6736 -2.2318 -91130.35 * * 3.0000 -1.3394 -0.7648 201616.08 * * 4.0000 -0.2202 2.4118 33178.41 * * 5.0000 1.4146 0.0000 -211057.80 * * 6.0000 -0.2202 -2.4118 33178.38 * * 7.0000 -1.3394 0.7648 201616.09 * * 8.0000 0.6736 2.2318 -91130.32 * * 9.0000 1.3218 -1.1293 -144271.20 * * 10.0000 -0.0000 -0.0000 298555.50 * * * * --------------------------------------------------------------------------- * * REFERENCE: "Mécanique des vibrations linéaires By M. Lalanne, * * P. Berthier, J. Der Hagopian, Masson, Paris 1980" [BIBLI 16]. * * * * C++ Release By J-P Moreau, Paris. * * (www.jpmoreau.fr) * ******************************************************************************} {NOTE: For a bending beam of constant section S, the deviation v(x) is given by: EI d4v/dx4 + rho*S d2v/dt2 - Tex = 0 (1) where: E = Young's modulus of beam material (steel: 2E11 Pa) I = Moment of inertia of S (rectangle: B*H^3/12) rho = Volumic Mass (steel: 7800 kg/m3) Tex = External force per length unit x = beam abscissa from x=0 to x=L d4v/dx4: 4th partial derivative with respect to x, d2v/dt2: 2nd partial derivative with respect to time, t. We seek solutions of v(x,t) having the form: v(x) * f(t). This leads to solving d2f(t)/dt2 + w2 f(t) = 0 (2) and d4v(x)/dx4 - rho.S/(EI) w2 v(x) = 0 (3) with w = pulsation of force excitation The solution of (2) has the form: f(t) = A sin(wt) + B cos(wt) (4) The solution of (3) is obtained by considering v(x) = V e^rx (5) the characreristic equation of which is: r^4 - rho.S w2 /(EI) = 0 (6) The complex roots of (6) are: beta, -beta, j.beta and -j.beta, with beta = 4th Root of (rho.s w2 / (EI)) (7) From (5) and the the 4 complex roots of (6), we can write: v(x) = C sin(beta.x) + D cos(beta.x) + E sh(beta.x) + F ch(beta.x) (8) The resonance pulsations are given by: wn = Xn^2 /L^2 * sqrt(EI/(rho.S)) (9) The Xn values are presented below for various limit conditions: Limit Conditions X1^2 X2^2 X3^2 X4^2 X5^2 ----------------------------------------------------------------------- Fixed-free: 1+ch(X)*cos(X)=0 3.516 22.03 61.69 120.9 199.8 Sup.-Sup.: sin(X)=0 9.869 39.47 88.82 157.9 246.7 Fixed-Fixed or Free-Free: 1 - ch(X) cos(X) = 0 22.37 61.67 120.9 199.8 298.5 Fixed-Sup. or Free-Sup.: tan(X) = tanh(X) 15.41 49.96 104.2 178.2 272.0 ----------------------------------------------------------------------- The max. strain is given by: sigma = E * H/2 * d2vi(x) / dx2 -----------------------------------------------------------------------------*/ #include #include #define NMAX 25 int I,K,M,N1,N2; double A1[6]; double X[NMAX]; double A,B1,B2,C,C1,C2,D,F,I1,I2,L,L0,J,K1,M1; double E,R,B,H,O1,O2,P,PI,S,S1,S2,tmp,W,Y,Z; double T,T1,T2,T3,T4,T5,T6,T7,T8; char Ans[2]; void main() { PI = 4*atan(1); printf("\n"); printf(" Fixed-Free Beam, M=1\n"); printf(" Fixed-Supported, M=2\n"); printf(" Fixed-Fixed, M=3\n"); printf(" Free-Free, M=4\n"); printf(" Free-Supported, M=5\n"); printf(" Supported-Supported, M=6\n"); printf("\n Limit Conditions, M= "); scanf("%d", &M); if (M == 1) { A1[1] = 3.5160152; A1[2] = 22.034491; A1[3] = 61.697214; A1[4] = 120.90191; A1[5] = 199.85953; } else if (M == 2 || M == 5) { A1[1] = 15.418205; A1[2] = 49.964862; A1[3] = 104.24769; A1[4] = 178.26972; A1[5] = 272.03097; } else if (M == 3 || M == 4) { A1[1] = 22.373285; A1[2] = 61.672822; A1[3] = 120.90339; A1[4] = 199.85944; A1[5] = 298.55553; } else if (M == 6) { A1[1] = 9.8696044; A1[2] = 39.478417; A1[3] = 88.8264390; A1[4] = 157.913670; A1[5] = 246.740110; } printf("\n Young's Modulus: "); scanf("%lf", &E); printf("\n Volumic Mass...: "); scanf("%lf", &R); printf("\n Beam Width....: "); scanf("%lf", &B); printf(" Beam Thickness: "); scanf("%lf", &H); printf(" Beam Length...: "); scanf("%lf", &L); printf("\n"); J = B * H*H*H / 12.0; //Moment of Inertia S = B * H; //Section for (I=1; I<6; I++) { B1 = sqrt(A1[I]); F = A1[I] / (2.0 * PI * L*L) * sqrt(E * J / R / S); printf(" Frequency (Hz) = %11.6f\n", F); } printf("\n"); printf(" Do you want the modes, modal masses & Stiffnesses (y/n): "); scanf("%s", Ans); if (Ans[0] == 'n') return; printf("\n How many modes (Maximum 5): "); scanf("%d", &N1); printf("\n How many points for deviation, slope & max. strain: "); scanf("%d", &N2); printf("\n Do you want automatic divisions (y/n): "); scanf("%s", Ans); if (Ans[0] == 'n') for (I=1; I<=N2; I++) { printf(" X(%d) = ", I); scanf("%lf", &tmp); X[I]=tmp; } else { L0 = L / (N2 - 1); X[1] = 0.0; for (I=2; I<=N2; I++) X[I] = X[I - 1] + L0; } for (I=1; I<=N1; I++) { B1 = sqrt(A1[I]); B2 = B1 / L; O1 = cos(B1); I1 = sin(B1); O2 = cos(2.0 * B1); I2 = sin(2.0 * B1); C1 = (exp(B1) + exp(-B1)) / 2.0; S1 = (exp(B1) - exp(-B1)) / 2.0; C2 = (exp(2.0 * B1) + exp(-2.0 * B1)) / 2.0; S2 = (exp(2.0 * B1) - exp(-2.0 * B1)) / 2.0; A = 1.0; if (M == 1) { B = -(I1 + S1) / (O1 + C1); C = -1.0; D = -B; } else if (M == 2 || M == 3) { B = (-I1 + S1) / (O1 - C1); C = -1.0; D = -B; } else if (M == 4) { B = (I1 - S1) / (-O1 + C1); C = 1.0; D = B; } else if (M == 5) { B = -(I1 + S1) / (O1 + C1); C = 1.0; D = B; } else if (M == 6) { B = 0.0; C = 0.0; D = 0.0; } T1 = A*A / 2.0 * (L - 1.0 / 2.0 / B2 * I2); T2 = B*B / 2.0 * (L + I2 / 2.0 / B2); T3 = C*C / 2.0 * (S2 / 2.0 / B2 - L); T4 = D*D / 2.0 * (S2 / 2.0 / B2 + L); T5 = A * B / 2.0 / 2.0 / B2 * (1.0 - O2); T6 = C * D / 2.0 / 2.0 / B2 * (C2 - 1.0); T7 = exp(B1) / 2.0 / 2.0 / B2 * (A * C + A * D) * (I1 - O1); T7 = T7 + exp(-B1) / 2.0 / 2.0 / B2 * (A * D - A * C) * (I1 + O1); T7 = T7 + A * C / 2.0 / B2; T8 = exp(B1) / 2.0 / 2.0 / B2 * (B * C + B * D) * (I1 + O1); T8 = T8 + exp(-B1) / 2.0 / 2.0 / B2 * (B * D - B * C) * (I1 - O1); T8 = T8 - B * C / 2.0 / B2; T = T1 + T2 + T3 + T4 + T5 + T6 + T7 + T8; M1 = R * S * T; K1 = M1 * B2*B2*B2*B2 * E * H*H / 12.0 / R; W = sqrt(K1 / M1); F = W / 2.0 / PI; printf("\n MODE #%d\n", I); printf("\n OMEGA=%9.4f FREQUENCY=%9.4f\n", W, F); printf("\n Modal Mass=%f Modal Stiffness=%f\n\n", M1, K1); printf(" X Deviation Slope Strain (x 10^6) \n"); printf(" -------------------------------------------------\n"); for (K=1; K<=N2; K++) { Z = X[K]; I1 = sin(B2 * Z); O1 = cos(B2 * Z); S1 = (exp(B2 * Z) - exp(-B2 * Z)) / 2.0; C1 = (exp(B2 * Z) + exp(-B2 * Z)) / 2.0; Y = A * I1 + B * O1 + C * S1 + D * C1; P = B2 * (A * O1 - B * I1 + C * C1 + D * S1); M1 = B2*B2 * (-A * I1 - B * O1 + C * S1 + D * C1); M1 = E * H * M1 / 2.0; printf(" %9.4f %9.4f %9.4f %9.2f\n", Z, Y, P, M1/1e6); } } // I loop } // end of file beam1.cpp