Boundary conditions for Catenary (hanging cable), solve for 3 unknown constants (c1 c2 c3)
10 views (last 30 days)
Show older comments
The way my book has the derivation is as follows
g = gravity
ds =
=
∴
∴ 
∴ Squaring both sides :
Differentiating implicitly this becomes
This equation is true if 
y'' = 0 can be solved by y = ax + b. Now i solve
with u = y'
The catenary must pass through the point (0,H).
The catenary must pass through the point (D,0).
The arc length of the catenary is L

I have to write this in terms of 
i have alreay figured out F3 in my matlab script, F1 and F2 is what i tried writing as an equation for the above:
I = imread('free.jpg');
L = [0.1384,2.67]; %(x,y) coordinate of left endpoint of cable
R = [5.644,1.62]; %(x,y) coordinate of right endpoint of cable
len = 6.38; %length of cable
%Show image and indicate endpoints
imagesc([0,5.7736],[0,3.2477],flipud(I));set(gca,'YDir','normal');
axis equal; ylim([[0,3.2477]]); xlim([0,5.7736]); box on; hold on;
xlabel('$x$ (meters)','interpreter','latex'); ylabel('$y$ (meters)','interpreter','latex');
plot(L(1),L(2),'o','MarkerEdgeColor','b','MarkerFaceColor','b','MarkerSize',8);
plot(R(1),R(2),'o','MarkerEdgeColor','b','MarkerFaceColor','b','MarkerSize',8);
%Define system of 3 equations to solve (c is vector containing 3 unknowns)
% Set F1 to be the function that guarantees the left endpoint boundary condition.
F1 = @(c) (cosh((L(1)))) %<---HERE %%Catenary passes through left endpoint
% Set F2 to be the function that guarantees the right endpoint boundary condition.
F2 = @(c) (cosh((R(1)))) %%< ----HERE Catenary passes through right endpoint
F3 = @(c) c(2)*(sinh((R(1)-c(1))/c(2))-sinh((L(1)-c(1))/c(2))) - len; %Arc length is constant value len
cOut = fsolve(@(c) [F1(c);F2(c);F3(c)],[-1,1,1]); %[-1,1,1] is initial guess for [c(1),c(2),c(3)]
%negative sign ensures that we choose the lower of two possible catenarys
But i get the error of:
fsolve stopped because the
but the vector of function values is not near zero as measured by the
value of the
I thought to just get the left or right side where its (0, H) and (D, 0) you'd just use the generalized hyperbolic equation only inputing one side at a time....
0 Comments
Accepted Answer
Torsten
on 3 Mar 2022
Edited: Torsten
on 3 Mar 2022
The equations "fsolve" must solve for c are
(1) c(3) + c(2)*cosh((L(1)-c(1))/c(2)) - L(2) = 0
(2) c(3) + c(2)*cosh((R(1)-c(1))/c(2)) - R(2) = 0
(3) integral(@(x)sqrt(1+(sinh((x-c(1))/c(2))).^2),L(1),R(1)) - len = 0
The indefinite integral can be given analytically as
-c(2)*sqrt(1+(sinh((x-c(1))/c(2)))^2) * tanh((c(1)-x)/c(2))
Thus equation (3) can also be written as
(3') -c(2)*sqrt(1+(sinh((R(1)-c(1))/c(2)))^2) * tanh((c(1)-R(1))/c(2)) -
(-c(2)*sqrt(1+(sinh((L(1)-c(1))/c(2)))^2) * tanh((c(1)-L(1))/c(2))) - len = 0
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!