Math Help Forum

Math Help Forum Feed Site Feed

Go Back   Math Help Forum > University Math Help > Calculus
Reply
 
Thread Tools Display Modes
  #1  
Old July 29th, 2009, 05:13 AM
Member
 
Join Date: Mar 2007
Posts: 143
Country:
Thanks: 20
Thanked 21 Times in 20 Posts
elbarto is on a distinguished road
Default Catenary Cable. Different Heights.

Hi,

I have been working on developing a catenary cable toolbox for matlab. So far I have the equations to model a catenary cable hanging between 2 points of unequal height provided that the cable sags below the lowest support at some point along the span (That is, dy/dx = 0 at some point as the reference text uses this point in the formulation). Here is the document that I found that I have been working from
http://members.chello.nl/j.beentjes3...s/catenary.pdf


My problem is that dealing with tight cables, dy/dx != 0 at any point so the equations give complex roots and cannot be solved (by myself at least). I am hoping someone can either review the document in the link and offer their opinion, or refer me to a source that has a better method that I could use.

An example of the problem I am trying to solve is:
A cable of length 20.7m is hung from point (0,10) to point (20,15). What is the equation of the profile of the cable?

In the attached image, I have solved the problem if the cable length was 20.9m as this just allows the cable to sag below the lowest support and the equations work for this case. The cable cant be any shorter then 20.616m as this is the clear distance between the 2 points. So I define a tight cable as having a length between 20.616-20.9m which currently my toolbox cannot solve.

I plan to publish the toolbox on the mathworks file exchange when I solve this problem so that I can get some feedback and identify any bugs.

Thanks, Elbarto
Attached Thumbnails
catenary-cable-different-heights-cat1.jpg  
Reply With Quote
Advertisement
 
  #2  
Old July 29th, 2009, 09:46 AM
Opalg's Avatar
MHF Contributor

 
Join Date: Aug 2007
Location: Leeds, UK
Posts: 2,466
Country:
Thanks: 150
Thanked 1,506 Times in 1,260 Posts
Opalg has a brilliant futureOpalg has a brilliant futureOpalg has a brilliant futureOpalg has a brilliant futureOpalg has a brilliant futureOpalg has a brilliant futureOpalg has a brilliant futureOpalg has a brilliant futureOpalg has a brilliant futureOpalg has a brilliant futureOpalg has a brilliant future
Default

I have not looked at the document you were working from, but I have another approach that does not depend on whether the cable sags below the lower support.

My idea is this. The general equation for a catenary is y = a\cosh\tfrac xa, where a is a parameter to be determined. Suppose we can find a value of a for which there are two points (x_1,y_1) and (x_2,y_2) on the curve with horizontal separation d and vertical separation h, such that the curve length between these two points is s, then we can translate the curve so as to fit between the two given support points.

So the given information is that

(1)\qquad x_2-x_1 = d,
(2)\qquad a\cosh\tfrac{x_2}a-a\cosh\tfrac{x_1}a = h,
(3)\qquad a\sinh\tfrac{x_2}a-a\sinh\tfrac{x_1}a = s.

Using addition formulae for hyperbolic functions, you can write (2) and (3) as

(4)\qquad h = 2a\sinh\Bigl(\frac{x_1+x_2}{2a}\Bigr) \sinh\Bigl(\frac{x_1-x_2}{2a}\Bigr),
(5)\qquad s = 2a\cosh\Bigl(\frac{x_1+x_2}{2a}\Bigr) \sinh\Bigl(\frac{x_1-x_2}{2a}\Bigr).

Now using cosh^2 – sinh^2 = 1, we can square (4) and (5) and subtract, to get s^2 - h^2 = 4a^2\sinh^2\Bigl(\frac{x_1-x_2}{2a}\Bigr), or

(6)\qquad 2a\sinh\tfrac d{2a} = \sqrt{s^2-h^2}.

That is an equation for a in terms of the known constants d, s and h. Unfortunately, (6) does not have an explicit solution in terms of standard functions. But you can solve it numerically to any desired degree of accuracy, using some technique such as Newton–Raphson.

Once you have found a, you can get x_1 and x_2 as follows. Divide (4) by (5) to get \frac hs = \tanh\Bigl(\frac{x_1+x_2}{2a}\Bigr), from which (using the expression for the inverse tanh function as a logarithm)

(7)\qquad x_1+x_2 = a\ln\Bigl(\frac{s+h}{s-h}\Bigr).

Combine this with (1) to get

(8)\qquad  x_1 = \frac12\Bigl(a\ln\Bigl(\frac{s+h}{s-h}\Bigr) - d\Bigr),
(9)\qquad  x_2 = \frac12\Bigl(a\ln\Bigl(\frac{s+h}{s-h}\Bigr) + d\Bigr).

Here's an example of how this works numerically.
Quote:
Originally Posted by elbarto View Post
An example of the problem I am trying to solve is:
A cable of length 20.7m is hung from point (0,10) to point (20,15). What is the equation of the profile of the cable?
In that example, the horizontal separation is d=20, the vertical separation is h=5, and the cable length is s=20.7. Equation (6) becomes 2a\sinh\tfrac {10}a = 20.087. In this equation, the constant 20.087 is close to the smallest value (namely 20) for which the equation has a solution (corresponding to the fact that the cable is tightly stretched in this example). By trial and error, and successive approximation, I found that the solution is approximately a = 61.9388. Then equations (8) and (9) give x_1 = 5.2627, x_2 = 25.2627, with corresponding y values y_1 = 62.1625, y_2 = 67.1625. Finally, since you want the support points to be (0,10) and (20,15), you need to shift the x and y coordinates, and you get the solution

\boxed{y = 61.9388\cosh\Bigl(\frac{x+5.2627}{61.9388}\Bigr) - 52.1625}.

There are two possible snags to this method. One is the necessity to get a sufficiently good approximate solution for a in equation (6). The other is that I think I have assumed that h>0. If h<0 (in other words, if the right-hand support point is lower than the left one) then probably some modification to the formulae will be needed.
Reply With Quote
The Following 2 Users Say Thank You to Opalg For This Useful Post:
Donate to MHF
  #3  
Old July 29th, 2009, 08:39 PM
Member
 
Join Date: Mar 2007
Posts: 143
Country:
Thanks: 20
Thanked 21 Times in 20 Posts
elbarto is on a distinguished road
Default

Many thanks for your reply Opalg.

Your solution looks a lot nicer than anything I have seen so far, I will try you method in matlab for a variety of cases and post my results back here when I'm done.

Regards Elbarto
Reply With Quote
  #4  
Old July 30th, 2009, 12:27 AM
Member
 
Join Date: Mar 2007
Posts: 143
Country:
Thanks: 20
Thanked 21 Times in 20 Posts
elbarto is on a distinguished road
Default

This method is the most stable method for solving the catenary problem that I have seen and the most simple method by far. A guess value of 1 for "a" was successful using the Newton–Raphson method and the formula holds true regardless of which value of y is higher. A simple implementation is given in the matlab code below and the figure is attached (My apologies for not commenting the code, I was a little pressed for time). I have tried this method for multiple cases and am happy with the results.

Once again thank you Opalg for sharing your method. Full credit must go to you.

Regards Elbarto

Code:
function plot_catenary
[f fstr] = CatFun2([0 10],[20 15],20.7)
x = 0:20;
y = f(x);
figure(1)
plot(x,y,[0 20],[10 15],'r:')
title(fstr)
xlabel x
ylabel y
axis equal
end

function [f fstr] = CatFun2(P1,P2,L,MAXERR,MAXIT)

if nargin < 4; MAXERR = 1e-6;end
if nargin < 5; MAXIT = 100;end

d = P2(1)-P1(1);
h = P2(2)-P1(2);

g = @(a)2*a*sinh(d/(2*a))-sqrt(L^2-h^2);
dg = @(a) 2*sinh(d/(2*a))- d*cosh(d/(2*a))/a;
[a eflag iter err] = jrbNR(g,dg,1,MAXERR,MAXIT);

x1 = 1/2*(a*log((L+h)/(L-h))-d);
x2 = 1/2*(a*log((L+h)/(L-h))+d);

k = x1-P1(1);
m = P1(2)-a*cosh(x1/a);

f = @(x)a*cosh((x+k)/a)+m;
fstr = sprintf('%0.3f*cosh((x%+0.3f)/%0.3f)%+0.3f',a,k,a,m);
end



function [x eflag iter err]  = jrbNR(f,df,x0,MAXERR,MAXIT)

if nargin < 4; MAXERR = 1e-6;end
if nargin < 5; MAXIT = 100;end
eflag = 0;

x = x0-f(x0)/df(x0);
x_prev = x0;
iter = 1;
while abs(x-x_prev) > MAXERR && iter < MAXIT
    x_prev = x;
    x = x-f(x)/df(x);
    iter = iter + 1;
end

err =  abs(x-x_prev);  
if iter < MAXIT; eflag = 1;end
end
Attached Thumbnails
catenary-cable-different-heights-cat2.jpg  
Reply With Quote
The following users thank elbarto for this useful post:
Donate to MHF
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off
Forum Jump


All times are GMT -7. The time now is 08:43 AM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.
©2005 - 2009 Math Help Forum


Math Help Forum is a community of maths forums with an emphasis on maths help in all levels of mathematics.
Register to post your math questions or just hang out and try some of our math games or visit the arcade.