Statics program description


back to static program help page
download complete Delphi project

This article describes the theory of my statics program
to calculate the position of loads hanging on a cable.
An earlier program exists with only 2 loads.
Look [ here ] for a description including vector operations.
This articles is about 3 loads or 4 bars.

Lines and coordinates


The position of the loads is defined by angles a and b, see figure below:



From a and b coordinates (x1,y1), (x2,y2), (x3,y3) may be calculated.
    x1 = line[1]*cos(a)
    y1 = line[1]*sin(a)
    x3 = base - line[4]*cos(b)
    y3 = line[4]*sin(b)
    calculate BD using Pythagoras lemma (sides x3 - x1, y3 - y1)
    calculate L FBD = arctan(DF/BF)
    calculate LCBD using the cosine rule: CD2=BC2+BD2-2.BC.BD.cos(LCBD).
    add LFBD and LCBD
    calculate coordinates (x2, y2)
    calculate vectors x,y length:
      vector[1].dx = x1vector[1].dy = y1
      vector[2].dx = x2-x1vector[2].dy = y2-y1
      vector[3].dx = x3-x2 vector[3].dy = y3-y2
      vector[4].dx = base - x3vector[4].dy = -y3
At the start, only line lengths (line[1]..line[4]) are known.
The initial angles a and b values have to be calculated from where forces may change the load positions
until a balance is reached.

So the first step is finding suitable start values of angles a and b.
    L12 = lines[1] + lines[2]
    L34 = lines[3] + lines[4]

Three cases are considered. depending L12,L34 and the base length:
    case 1: La < 900, Lb > 900
    case 2: La > 900, Lb < 900
    case 3: La < 900, Lb < 900


Finding a balance


A balance is reached if the sum of forces at points A and B are near zero.
Using vector addition:
    A: F1 = F11 + F22
    B: F2 = F32 + F21
note: (using vector addition)
    load[1] = F11 + F12
    load[2] = F21 + F22
    load[3] = F31 + F32
    forces F12 and F31 are cancelled by the tension in line[1] and line[4]


If the forces at A point left, La is increased by a small step (and opposite).
If the forces at point B point right, Lb is increased by a small step (and opposite).
This step is halved each time a direction change (left - right) takes place.
After a number of steps both forces at A and B are near zero.
Then the process stops and the calculated vectors are painted.

Bars

In bar mode, loads 1..3 are calculated
    load[1] = 0.5*(line[1] + line[2])
    load[2] = 0.5*(line[2] + line[3])
    load[3] = 0.5*(line[3] + line[4])
This concludes the statics program description.