There seems to be an error, when calculating the utilization with the “utilization of beams” node for SHS-profiles specifically. The results for “Beamview Utilization” and “Utilization of Beams” are different. Note that I’m checking the cross-section. Buckling is turned off. When doing a simple hand calculation based on Eurocode the “Beamview Utilization” seems to be the correct one. “Utilization of Beams” gives a slight underestimation of around. This does not occur for other profile types that I tried (HEA, HEB and IPE). In that case the result values are the same for both nodes. Also noteworthy: this error does not occur when the beam is subject to mere bending. See attachment below to see the simple model that I used to test this. Does anyone know where this discrepancy comes from? I think there might be an error in the code, that causes hollow sections to give the wrong result. Or is there maybe a Eurocode formula that I’m missing here?
Hi Tam Ngo,
sorry for my late reply - I was knocked out by a cold for some days.
The difference in the utilization values is due to the interaction coefficient ‘Cmy’ according to table B.3 of EC3. It is 0.95 in case of a uniformly distributed load and directly influences ‘kyy’ according to table B.1. which in turn modifies the bending resistance.
So if one divides the EC3-utilization of your example by 0.95 one arrives at the value found by dividing the actual maximum stress by the yield strength.
Best,
Clemens
Hi @r.h.a.titulaer,
this is how the Cm values are currently (Karamba3D 1.3.2) calculated:
real psi = 1.0;
if (Mh != 0) psi = Mpsi / Mh;
real cm;
// a uniformly distributed load is assumed
if (std::abs(Mh) > std::abs(Ms)) {
real alpha_s = Ms / Mh;
if (alpha_s >= 0) {
cm = 0.2 + 0.8*alpha_s;
cm = cm < 0.4 ? 0.4 : cm;
}
else {
if (psi >= 0) {
cm = 0.1 - 0.8*alpha_s;
cm = cm < 0.4 ? 0.4 : cm;
}
else {
cm = 0.1*(1 - psi) - 0.8*alpha_s;
cm = cm < 0.4 ? 0.4 : cm;
}
}
}
else {
real alpha_h = 1;
if (Ms != 0) alpha_h = Mh / Ms;
if (alpha_h >= 0) {
cm = 0.95 + 0.05*alpha_h;
}
else {
if (psi >= 0) {
cm = 0.95 + 0.05*alpha_h;
}
else {
cm = 0.95 + 0.05*alpha_h*(1.0 + 2.0*psi);
}
}
}
// for buckling with lateral displacement according to EN 1993-1-1, Table B.3
// is too conservative for systems that do no displace laterally
cm = cm < 0.9 ? 0.9 : cm;
In the end it is assumed that buckling occurs by side-way sway which entails the limitation of the Cm values to 0.9 according to table B.3 of EN 1993-1-1.
A possibility would be to add a switch so users can decide whether side-way sway can occur or not. Then however another problem remains: currently (Karamba3D 1.3.2) the beam elements are not aware of their context. In case they form part of a larger beam the moment distribution in the small pieces could lead to Cm values which are too high. The solution is to base the cross section design on user-defined beam-sets. This is an item on my TODO-list.
Best,
Clemens