Boundary conditions for Catenary (hanging cable), solve for 3 unknown constants (c1 c2 c3)

9 Ansichten (letzte 30 Tage)
The way my book has the derivation is as follows
linear density, S = arc length
g = gravity
= constant tension
= this becomes a constant it defines as .
=> .
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'
then A is renamed as and we have
and y' = u then y is a generalized hyperbolic cosine:
I must now solve for these 3 c's using matlab.
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
problem appears regular as measured by the gradient,
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....

Akzeptierte Antwort

Torsten
Torsten am 3 Mär. 2022
Bearbeitet: Torsten am 3 Mär. 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

Weitere Antworten (0)

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Produkte


Version

R11.1

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by