# Describing 180 degree arcing/deflection of wire supported vertically at one end

I am trying to understand how to describe and calculate the shape a length of piano wire makes from its own weight when supported vertically at only one end. Is it a catenary or a parabola? Specifically I am trying to calculate how long a piece of piano wire I would need to have it arc exactly 180 degrees to contact the same plane to which it is attached, and the distance from the attachment point and this unattached contact point.

How would this equation differ for a thin strip of spring steel? Simply using different Young's modulus and Poisson ratios for x and y components?

BTW, this isn't a student homework problem, I am a machinist making a strange apparatus for a science museum, and trying to push beyond empirical solutions to these kinds of problems. I'm sure there is a very broadly applicable deformation equation which could be applied here, but I don't know what to search for.

• This would be different for each size of piano wire (there are at least 20). And I'm not aware of flexibility calcs for such things - you would need to do this emperically. Commented Mar 14, 2023 at 5:38

An interesting little problem!

I simulated it using what I hope are reasonable values: density=7850; modulus=200e9.

The resulting bent wire looked like this: It looks plausible and is a lot less symmetrical than I expected.

The wire is spring-steel 0.1 to 1 mm dia.

The lengths to just touch the table are

• 0.1, 280

0.2, 444

0.3, 582

0.4, 705

0.5, 817

0.6, 923

0.7, 1023

0.8, 1118

0.9, 1210

1.0, 1297

The curves are all exactly the same shape. The 1mm dia wire touches 1094mm from the start and is 1297mm long.

The overall graph of length vs dia is linear. No it's not! See comment below.

It would be interesting to know whether that matches what you measure.

Peter

• Thanks Peter! I will absolutely let you know how this maps to my results. The lengths are much longer than I expected, and interestingly don't scale exponentially with thickness. I would have simulated this in 3D, but only because it's the only physics program I know of/know how to use. What did you use to run this? Commented Mar 14, 2023 at 16:52
• I wrote it from scratch in Delphi. It's what I always program with if I have a choice. I can write bigger programs with better user-interfaces that run faster (than C). I can send you the source if you like - math is math in any language. Commented Mar 14, 2023 at 17:10
• I would greatly appreciate that! Commented Mar 14, 2023 at 17:19
• I don't know why I thought the relationship was linear. It's clearly not. For the constants I chose, the formula is cube(length/1298) = square(dia). I'll try to work out how to send a pascal file via stackexchange (or maybe via github). Commented Mar 14, 2023 at 17:52

It will be neither a parabola nor a catenary. The fixed end is vertical but the free end is not. It will approach vertical but will never reach it. The bending moment will be greater towards the fixed end because it supporting more "free" wire. The equation for a cantilever will not apply because they assume the deflection is small - yours is huge.

So the resulting shape cannot be symmetrical and cannot be a parabola or catenary.

It sounds like you're trying to solve a real-world problem. Are you wanting a formula for the shape it makes or to answer a question like "if the wire were 1mm thick, how long would it need to be to just touch the table"?

My guess is that there's no formula for the length - like there's no formula for the circumference of an ellipse. But I think it would be easy enough to solve it numerically - I'd just simulate it. Of course, you'd need the young's modulus and the density - I expect the values you find on the web would give you an answer accurate to +/-20%.

If you're wanting a practical answer, I'd try it with a thin wire then scale it up. IIRC, the stiffness of a round wire is proportional to dia^4. The mass is proportional to length*dia^2. As it gets thicker it needs to be longer so its mass does up. So I'd expect the length required to be proportional to dia.

• Thanks Peter, this helps the most. The application is to recreate an effect similar to this. So the wire will be held in a freely rotating spindle, and though more complex to build, I could hold the wire at an angle. I have four sizes, so pretty feasible to simulate and run real world tests on. I have material certifications and properties of my spring wire. I was mostly after a way to determine length roughly to speed up design--but I'll derive that through testing and your input. Cheers! Commented Mar 14, 2023 at 16:31
• Did you ask ChatGPT before or after I posted my answer? I'm a bit suspicious because it has chosen exactly the same values for n, the density and Young's modulus. If I google the Young's modulus of springsteel I get a range of answers and I arbitrarily chose 200GPa. Other sites say rho=1080 and E=209. One site says the Young's modulus varies according to the diameter of the wire. And why n=100? I could have chosen 200 or 1000. But if ChatGPT copied my answer, it converted it into matlab which is pretty impressive. Commented Mar 15, 2023 at 12:01

I have no experience with Matlab. Just for curiosity's sake, I asked this question from "ChatGPT".

And I got this answer almost immediately!

My question:

Could you write a simulation code for a piano wire deflection acting like a very slender column, using the Euler-Bernuoly beam formula. Calculate the arc and the length of the wire.

Certainly! Here is an example of how the Euler-Bernoulli beam theory could be implemented in MATLAB to simulate the deformation of a piano wire under its own weight:

% Parameters L = 1; % length of wire (m) rho = 7850; % density of wire (kg/m^3) A = pi*(0.5e-3)^2; % cross-sectional area of wire (m^2) E = 200e9; % Young's modulus of wire (Pa) g = 9.81; % acceleration due to gravity (m/s^2)

% Discretization n = 100; % number of points to discretize wire x = linspace(0,L,n); dx = x(2)-x(1);

% Calculation of weight per unit length w = rhogA*ones(size(x));

% Calculation of bending moment M = zeros(size(x)); for i = 2:n M(i) = M(i-1) + w(i)dx(x(i)-x(i-1)); end

% Calculation of deflection and slope theta = zeros(size(x)); y = zeros(size(x)); for i = 2:n theta(i) = theta(i-1) - M(i)dx/(EA); y(i) = y(i-1) + theta(i)*dx; end

% Plotting results plot(x,y); xlabel('x (m)'); ylabel('y (m)'); title('Deformation of Piano Wire under Self-Weight');

The speed is amazing. The format got broken in my copy and paste. It looks much cleaner in the original. I'm sure it can be buggy.

But I worry about the job security of the next generation.

• This is extremely similar to the approach that @peter-balch posted, who is obviously a human. It also got the modulus and density figures right. ...but it didn't explain itself or anything. This is really off-topic, but I'm not worried about anyone's job security; educated workers will use these tools and need to vet their output. More productive, sure, but not redundant. And I can't be sure that you're not a Chat-GPT bot who posted this to advertise Chat-GPT. Commented Mar 14, 2023 at 23:59
• @RafeCopeland, Ha Ha, but right, the distinction is getting harder and harder! Commented Mar 15, 2023 at 0:38

Rafe

Here is the Delphi code that does all the calculation. It should be straightforward to convert it to C or your favourite language.

The wire is modelled as a chain of short straight segments, each one is angled slightly relative to its predecessor according to the bending moment it's seeing.

You give it a wire diameter and length and it calculates the coordinates of the segments.

procedure TForm1.PaintBox1Paint(Sender: TObject);
const n: integer = 100; // number of segments (wire rod is divided into short straight segments)
const density = 7850; // kg per m^3
const modulus = 200e9; // pascal = N per m^2
const dia: double = 0.0005; // dia of wire in m
const g = 9.81; // acc of gravity
var i,j,pass: integer;
dL: double; // length of each segment
MoI: double; // moment of inertia of each segment
moment: double; // moment applied to a segment;
mass,c,ang: double; // used in calculating new curvature
x,y,curvature: array[0..10000] of double; // position and curvature of each segment
begin
with Paintbox1,Canvas do
begin
pen.color:=clgray;
moveto(0,400); // 400 is the height of the table on the screen
lineto(width,400);
pen.color:=clblack;

dL:=SpinEdit1.Value/n/1000; // SpinEdit1 sets the total length in mm
dia:=FSpinEdit1.Value/1000; // FSpinEdit1 sets the wire dia in mm
MoI:=pi*dia*dia*dia*dia/64; // moment of inertia

// initialise the curvature of each segment
// it's a semicircular arc
for i:=0 to n do
curvature[i]:=pi/(n*dl);
mass:=dL*pi*dia*dia/4*density; // mass of each segment

// simulate the wire springinging into place
// 100 iterations
for pass:=1 to 100 do
begin
// calc position and curvature of each segment
y[0]:=0;
x[0]:=0;
ang:=0;
for i:=1 to n do
begin
ang:=ang+dl*curvature[i];
x[i]:=x[i-1]+dl*sin(ang);
y[i]:=y[i-1]+dl*cos(ang);
end;

// calc new curvature of each segment
for i:=0 to n do
begin
moment:=0;
for j:=i+1 to n do
moment:=moment+(x[j]-x[i]);
moment:=moment*mass*g;
c:=moment/(MoI*modulus);
curvature[i]:=curvature[i]*0.9 + c*0.1; // change in curvature is damped
end;
end;

moveto(round(x[0]*1000),round(400-y[0]*1000));
for i:=0 to n do
lineto(round(x[i]*1000),round(400-y[i]*1000));
end;
Label3.Caption:= 'dist='+inttostr(round(x[n]*1000)); // horizontal distance to touching place
end;

• Nice! I wish I could upvote all of your answers, so when I can I'll come back and do that. I'm going to leave your previous answer as the answer, and when I have real world measurements I'll come back and post an update. Much appreciated Peter. Commented Mar 14, 2023 at 23:50

My gut tells me its parabolic. trying to find the case for catenary, I can only say that since its only supported on one end that should disqualify it immediately as the 2 external forces are not the same. The shape would be asymmetric though as the free end will not have the same bending moment as the base. As a semi-layman, I'd describe the shape as an asymmetric parabola.

Music wire is spring steel, so I'd wager that the only difference for a strip would be that it will only deflect in one plane and it would deflect sooner.

Sorry for the lack of equations, those arent my forte yet.