1 |
REQUIRE "johnpye/beam.a4c"; |
2 |
|
3 |
(* |
4 |
Model of a beam with four supports and one central load. |
5 |
|
6 |
Uses superposition of deflections to overcome force indeterminancy. |
7 |
*) |
8 |
MODEL beam4; |
9 |
n IS_A integer_constant; |
10 |
n :== 3; (* five superpositions for the four supports and the applied load *) |
11 |
|
12 |
E IS_A youngs_modulus; |
13 |
I IS_A second_moment_of_area; |
14 |
L IS_A distance; |
15 |
|
16 |
S IS_A beam_superposition(n,E,I,L); |
17 |
|
18 |
P ALIASES S.B[2].P; |
19 |
a ALIASES S.B[2 ].a; |
20 |
|
21 |
v ALIASES S.v[2]; |
22 |
|
23 |
R1 ALIASES S.R1; |
24 |
R2 ALIASES S.B[1].P; |
25 |
R3 ALIASES S.B[3].P; |
26 |
R4 ALIASES S.R2; |
27 |
|
28 |
METHODS |
29 |
METHOD specify; |
30 |
FIX E,I,L; |
31 |
FIX S.B[1,3].a; |
32 |
FIX P, a; |
33 |
FIX S.v[1,3]; |
34 |
END specify; |
35 |
|
36 |
METHOD bound_self; |
37 |
L.upper_bound := 500 {m}; |
38 |
L.lower_bound := 0 {m}; |
39 |
RUN S.bound_self; |
40 |
END bound_self; |
41 |
|
42 |
METHOD values; |
43 |
(* beam properties *) |
44 |
E := 200 {GPa}; |
45 |
I := 10e6 {mm^4}; |
46 |
L := 9 {m}; |
47 |
|
48 |
(* load *) |
49 |
P := 10 {kN}; |
50 |
a := 4.5 {m}; |
51 |
|
52 |
(* locations of supports *) |
53 |
S.B[1].a := 3 {m}; |
54 |
S.B[3].a := 6 {m}; |
55 |
|
56 |
(* deflections at supports *) |
57 |
FOR i IN [1..n] DO |
58 |
S.v[i] := 0 {m}; |
59 |
END FOR; |
60 |
|
61 |
END values; |
62 |
|
63 |
METHOD on_load; |
64 |
RUN reset; RUN bound_self; |
65 |
RUN values; |
66 |
END on_load; |
67 |
|
68 |
END beam4; |