Mono-cable logging system with intermediate tension control : computer simulation by Albert Vincent Turk A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Engineering Mechanics Montana State University © Copyright by Albert Vincent Turk (1988) Abstract: A cooperative research project with the USDA-Forest Service has shown the need for a mono-cable logging system with intermediate tension control as an alternative to road construction in the logging area. Intermediate control sheaves will be required to maintain optimum tension throughout long distances and large elevation changes. Preliminary designs have shown the need to model the system to demonstrate the system's feasability. A series of FORTRAN programs were written to simulate this system, building first upon single span solutions, with the eventual program including the capability of simulating the changes in tension of a system of up to 100 connected spans with as many as 200 loads traversing the system. The individual sheaves along the system path can be modeled as either control or idler sheaves. The solution of the necessary equations required the use of iterative solutions. Comparison was made of the Newton-Raphson method and Brown's method for the solution of a set of two non-linear equations with two unknowns. The model satisfies the simulation needs of the system. It allows the monitoring of tension, differential tension across sheaves, and changes in cable length required within each span. The program showed the feasibility of the system and gives direction for future modifications of the model to more closely simulate the actual situation. The program will provide a solid foundation for current and future work in this area and shows a valid procedure for future modeling. I MONO-CABLE LOGGING SYSTEM WITH INTERMEDIATE TENSION CONTROL: COMPUTER SIMULATION by Albert Vincent Turk A thesis submitted in partial fulfillment of the requirements for the degree Of Master of Science in Engineering Mechanics MONTANA STATE UNIVERSITY Bozeman, Montana . March 1988 /\i372 ii APPROVAL of a thesis submitted by Albert Vincent Turk This thesis has been read b y each member of the thesis committee and has been found to be satisfactory regarding content, English usage, format, citations, bibliographic style, and consistency, and is ready for submission to the College of Graduate Studies. Date Chairperson, Graduate Committee Approved for the Major Department Date Approved for the College of Graduate Studies 4-^ Date Graduate Dean iii STATEMENT OF PERMISSION T O USE In presenting this thesis in partial fulfillment of the requirements for a master's degree at ,Montana State University, I agree that the Library shall m a k e it available t o borrowers under rules of the Library. Brief quotations from this thesis are allowable without special permission, provided that accurate acknowledgment of source is made. Permission for extensive quotation from o r reproduction of this thesis m a y b e granted b y m y major professor, o r in his absence, by the Dean of Libraries when, in the opinion of either, the proposed use is for scholarly purposes. A n y copying or use of the material in this thesis for financial gain shall not b e allowed without m y written permission. Signature _ Date 3 / iv TABIE O F CONTENTS Page1. ....................................................................... 1 2 . DERIVATION OF SINGLE SPAN EQUATIONS ............... '........... . 3 3 H 16 17 3. METHODS OF S O L U T I O N ................................................. 20 Statement of P r o b l e m ................. (Method of Successive S u b s t i t u t i o n ............................... Newton-Raphson M e t h o d ............................................ Brown's M e t h o d .......... Comparison of Newton-Raphson and Brown's M e t h o d ............... 20 21 22 25 26 CO CO The Classic Catenary ................................ ............ The Elastic Catenary ..... Irvine's Development G o n s i o r 1s Development ........... Response to a Point L o a d ......... Multiple Point loads on a Span ................................... 4. ASSEMBLY O F THE MULTI-SPAN S Y S T E M ........ ............. ............ 40 Use of Idler Sheaves Between Control Sheaves ................... U s e of Multiple Control Sheaves ...................... ...... . Simulation of Cable M o v e m e n t ..................................... Coordination of Tension C o n t r o l ... .......................... . ■ • 40 42 43 44 5. SYSTEM R E S P O N S E .................... ............................. • 47 Initial C o n c e r n s ................................... ...... ;...... Response S p e e d .......... ...................... • • ................. Response M a g n i t u d e ......... Response Precedence ................................. 6. CONTROL O P T I M I Z A T I O N ................................................ 47 48 49 50 51 Control of T e n s i o n ............................................. . • 51 Power R e q u i r e m e n t s ........... .................................. . • 52 7. CONCLUSIONS ........................................... - 8. 9. 57 REFERENCES C I T E D ........ 58 A P P E N D I X ............................................................ 60 V 1 Figure LIST O F FIGURES ' Page 5 1. Free-body diagram of a cable s e g m e n t ..... ...................... 2. Coordinates for the elastic catenary ............................ 10 3. Free-body diagram of cable segment ............................... 12 4. Typical s p a n ...................................................... 14 5. Span w i t h multiple point loads .................................. 19 6 . Exatrple s p a n .................................................... . 27 7. Convergence of theta with Io = 1000 f t .......................... 31 8 . Convergence of tension with Io = 1000 f t ........................ 32 9. Convergence of theta with Io = 1001 f t .................... ..... - 33 10. Convergence of tension with Io = 1001 f t ........................ 34 11. Convergence of theta w i t h range limits .......................... 35 12. Convergence of tension with range l i m i t s ....................... 36 13. Tension at span ends during m o v e m e n t ............................ 37 14. Change in unstrained length during m o v e m e n t .................... 38 15. Coordinates of load attachment p o i n t ................. 39 16. Ith idler s p a n ......................... 41 17. Final idler s p a n .................................................. 41 18. Response s i t u a t i o n .................................... 45 19. Tension at first sheave .......................................... 53 20. Tension with variation of response i n c r e m e n t ................... 54 21. Tension with variation of response i n i t i a t i o n .................. 55 22. Differential t e n s i o n ............................. '................ 55 23. FORTRAN program base, f o r .............................. ........... 61 ABSTRACT A cooperative research project1with the UStm-Forest Service has shown th e need for a mono-cable logging system w i t h intermediate tension control as a n alternative to road construction in the logging area. Intermediate control sheaves will b e required to maintain optimum tension throughout long distances and large elevation changes. Preliminary designs have shown the need to model the system to demonstrate the system's feasability. A series ,of FORTRAN programs were written t o simulate this system, building first upon single span solutions,, with the, eventual program including the capability of simulating the changes in tension of a system o f u p to 100 connected spans with, as many as 200 loads traversing the system. The individual sheaves along the system path ' * can b e modeled as either control or idler sheaves. The solution of the necessary equations required the use of iterative solutions. Comparison w a s m a d e of the Newton-Raphsbn method and Brown's method for the solution of a set of two non-linear equations with t wo unknowns. T h e model satisfies the simulation needs of the system. It allows the monitoring of tension, differential tension across sheaves, and changes in cable length required within each span. Th e program showed the feasibility of the system and gives direction for future modifications of the model t o more closely simulate the actual situation. The program will provide a solid foundation for current and future w o r k in this area and shows a valid procedure for future modeling. I CHAF.LKR I IMiSBDCTTGM I A s an alternative to building logging roads in rugged and ecologically sensitive areas, the U. S'; Forest Service is exploring other methods of timber harvest. A monocable system with intermediate tension control is one such option . 1 The system would b e used to transport timber over unrestricted distances from the forest to landing sites, using standing timber o r temporary towers, braced with guy lines to support both idler and control sheaves. The supports are arranged in a zig-zag pattern to facilitate passage of suspended loads. This also allows a greater tractive force to b e applied b y the control sheaves. The addition of braking/pulling sheaves at intermediate points allows an increase of the possible elevational change using a given cable size. A s one span is given more cable to relieve tension neighboring spans have to give u p cable and are subject t o tension increases. Coordination of the cable speed adjustment provided by these sheaves is thus necessary to prevent a combination of adjustments causing tensions outside the operating range and a resultant system failure. Mechanisms t o measure tension o n either side of a sheave have 1William E. Larsen, -Michael J . Gorisioriy. W. Robert Taylor, "USES M S U Cooperative Research Project", attachment 2. USDA Forest Service Intermountain Research Station and Montana State University College of Engineering, 1985.' 2 been designed as well as a control system for hydraulically powered sheaves.2 This thesis explains the derivation of the equations of cable tension and load position, and discusses the merits of the iterative methods of solution that are required. The system of combined spans is then assembled with a scheme for coordinated response using characteristics of the proposed control sheaves. Various geographical layouts and system response times may then b e simulated and the modifications to layout and system components tested to determine system response as a function of time. 2Ib i d . , attachment I. 3 QffiPTER 2 EERBffiTEQJ O F SIMGEE SPAN EQUATIONS T h a Classic C&taiary The free-body diagram of a segment of cable is shown with spatial coordinates x and z in Figure I.1 w The cable weight p e r unit length is (considered constant), and the tension T is a function of position. For a segment of finite length 6s,. spanning finite spatial dimensions 5x and 6z, the equation of horizontal equilibrium is < t (2.1) [T(dx/ds) + (2.2) (d(T(dx/ds) )/ds) 6s] - T(dx/ds) = 0 or d(T(dx/ds) )/ds = 0. Thus t he change in T(dx/ds) with respect to the variable s (span position) (2.3) is zero. Integrating with respect to s J[d(T(dx/ds) )/ds]ds = T(dx/ds) + C = 0. This includes C as a constant of integration. Letting dx/ds represent the cosine of the cable slope angle G, where H is the horizontal ccttponent of cable tension (constant throughout the span) the equation becomes (2.4) T (dx/ds) = T cos 8 = H or T = H(ds/dx) = H sec 0. 1H. M a x Irvine, Cable Structures. (Cambridge: M I T Press, 1981), 5. 4 The equation of vertical equilibrium is (2.5) [T(dz/ds) + (2.6) (d(T(dz/ds) )/ds)6s + w5s] - T(dz/ds) = 0 or d(T(dz/ds) )/ds = ^w. Thus the change in T(dz/ds) is not zero with respect t o the variable s. Integrating w i t h respect to s (2.7) J[d(T(dz/ds))/ds],ds = J -jWds. Letting dz/ds represent the sine of the angle 0 (2.8) T (dz/ds) = T sin 6 = -ws + G A n alternate form of equation 2.6 can b e found in combination with a manipulation of equation 2.4.1 (2.9) (2.10) (2.11) d( (H(ds/dx)) (dz/ds) )/ds = H[d(dz/dx)/ds] = -w H[(d(dz/dx)/dx) (dx/ds) + (d(dz/dx)/dz) (dz/ds) ] = -w H[(d2z/dx2 )(dx/ds) + (d(dz/dz)/dx)(dz/ds)] = -w (2.12) H(d2z/dx2 )(dx/ds) = -w (2.13) H(d2z/dx2 ) = -w(ds/dx) In the case of -w(ds/dx) (the load intensity per unit span) equal to a constant K 1 , 1.13 can b e integrated twice to give a parabolic profile. (2.14) z = 3SK1X2 + K 2X + K 3 . 1Ib i d . , 4-6'. 5 A ( O fO) B ( I fO) T(dz/ds) T(dx/ds) + [d(T(dx/ds) )/ds]<Sx I T (dz/ds) + [d(T(dz/ds) )/ds]6z Figure I. Free-body diagram of a cable segment. The values of the constants can be determined using the given boundary conditions. When the quantity ^w(ds/dx) is not constant, equation 2.13 can be solved using the geometric constraint relating ds to dx and dz. (2.15) (2.16) dx2 + d z 2 = d s 2 ds/dx = (I + (dz/dx)2 )^ Equation 2.13 then becomes (2.17) (2.18) H(d2z/dx2 ) = —w (I + (dz/dx)2 )^ or d 2z/dx2 = -(w/H)(I + (dz/dx)2 )^ . 6 W i t h cable ends at coordinates (0,0) and (0,£) equation 2.17 is satisfied b y 1 (2.19) z= (H/w) (cosh(w£/2H) - cosh([w/H] [ (£/2) - x]) } From the relationship developed in equation 2.15 cable length s between the origin and any x coordinate can b e found. X' (2.20) s = f (I + (dz/dx)2 }^ dx 0 (2.21) s = (H/w) {sirih(w£/2H) - sinh([w/H] [ (£/2) - x ] ) } Given a cable of length Iti spanning the gap of horizontal dimension £ the horizontal component of tension m a y b e found b y solving equation 2.22 for H (assuming w is known and constant). (2.22) s i h h (w£/2H) - (wIti/2H) = 0 The tension at any x coordinate is given by (2.23) T = T(X) = H cosh{ [w/H] [ (£/2) - x ] }. A different development of the equations begins with equations 2.2 and 2.6 expressed in trigonometric form.2 (2.24) d(T cos 6)/ds = 0 (2.25) d(T sin 0)/ds = w(s) 1Ibid., 6. 2Irving H. Shames, Engineering Mechanics; Statics and Dynamics, (Englewood Cliffs: Prentice Hall, Inc. 1980), 240. 7 Here w is not constant b u t considered t o b e a function o f position s along the span. (2.26) Integrating both equations with respect t o s gives T cos 9 = H (2.21) (2.28) or T = H / cos 0. T sin 9 = Jw(s) ds + C 1 ' T sin 9 = (2.29) (H / cos 9) sin 9 = H tan 9 = H (dz/dx) dz/dx = (1/H) Jw(S) ds + C 1 Equation 2.29 cannot b e integrated directly as shown as t he right side involves a function of s, but m ay b e integrate! with respect to s by eliminating dz using the geometric relationship of equation 2.15. (2,30) (2.31) (dz/dx)2 + (dx/dx)2 = (ds/dx)2 dz/dx = ((ds/dx)2 - I ) '2 Inserting the representation of dz/dx into equation 2.29 and separating variables (2.32) (2.33) (2.34) ((ds/dx) Jw(s)ds ds/dx Jw(s)ds x=J{ Jw(s)ds ds 2 - I ) ' 2 = (1/H) = (I + [(1/H) I + [(1/H) + C1 . + C 1 ]2 )^ + C 1 ]2 )-3* + C2 Equation 2.34 m a y b e integrated when the function w(s) is known and the constants of integration m a y b e evaluated from boundary conditions. Function w(s) is a constant in the case of an inextensible cable of constant mass p e r unit length. The profile of an inextensible cable loaded b y its own weight is known as a catenary. 8 T h e M a R b ic Catvsnmirv Irvine's Etevelonmant A n actual cable will stretch when under tension in accordance to Hooke's Law (2.35) a = Ee where E is the cable elastic modulus, q is the stress, and e is the strain. W i t h a cable suspended between points A . (0,0) and B (l,h) the ■ unstrained profile is a function of cable position s, as shown in Figure 2. Allowing the cable to deform under load t o a strained profile t he location of a given point s is now defined b y the Lagrangian coordinate p . 1 The weight of the entire cable of unstrained length Lto between points A and B is W. (2.36) W = Wlto A t A define the vertical and horizontal components of tension as V and H respectively. Allowing s to equal zero at A and equal Ito at B the components of tension at a point s along the cable are defined as (2.37) (2.38) T sin 0 = T(dz/dp) = V - Wfsyito) and T cos 0 = T(dx/dp) = H. 0 is n o w defined b y the deformed position of the cable. m a y n o w b e written in terms of the deformation. 1Irvine, Cable Structures. 16. Equation .2.35 Allowing A to to equal 9 the unstrained cross sectional area, L to equal the strained length of the cable, and E t o equal the cable elastic modulus (2.39) TZA0 = E ( (CfeZds) - I), (2.40) or T - EA0 ((cfe/ds) - I ) . The end conditions of s = p = 0 at (0,0) and s - Ito, p = L at (£,h) allow solution for x, z, and T as functions of s. The geometric constraint to satisfy becomes (2.41) (dxycfe)? + (2.42) (dzydp)2 = I. (HZT)2 + ((V - Wsyito)Z T)2 = I This yields the desired expression for tension as a function of s. (2.43) (H2 + (V - WsZIto)2 )^ = T(S) Working from equations 2.38 and 2.40 (2.44) dxydp = HZT (s). ' (2.45) dp/ds = (T(S)ZEA0 ) + I (2.46) (2.47) dxyds = x = H J (dxydp) (cfe/ds) = (HZEA0 ) + H/T(s) ( V E A 0 ) + (H2 + (V - Wsyito)2 ) ds 0 When incorporating the end conditions at (0,0) the resultant form is (2.48) X(S) = HsZEA0 + (HItoZW) [sinh-1 (VZH) - sinh- 1 { (V - Wsyito)ZH}]. Using equations 2.37 and 2.40 (2.49) (2.50) dzyds = dzydp = (V - Wsyito)ZT(s). (dzydp) (dp/ds) = { (V - WsyitoV T ( S ) } { (T(S)ZEA0 ) + 1} 10 A(0,0) P(x,z;p) B(£,h) Figure 2. JQ[{(V Coordinates for the elastic catenary. rs (2.51) z = - WsZIti)/EA0 ) + {(V - Wsyiti)/T(s)}]ds Integration with respect to s, and use of end conditions at (0,0) yields (2.52) Z(S) = (HItiZW) [(1+(V/H)2 )^ - (1+((V - Wsyiti)/ H)2 }^ ] + (WsyEAti) { (V/W) - (s/2^)}. By substituting Iti for s in equations 2.48 and 2.52 values for h and I will be found, provided the correct values of H and V are used in the equations. Setting the equations in the form / ( H fV) = 0 yields a set of t wo nonlinear simultaneous equations with two unknowns. (2.53) X ( H fV) - h = 0 (2.54) Z (HfV) - £ = 0 11 An iterative solution must be pursued for the values of H and V. Since H and V are functions of T and 9 the latter two unknowns may be solved for when that is more convenient. In methods that require the / simultaneous solution of equations, T and 6 must be used, as H and V are not independant variables. Gonsior °s Development From the starting point of the cable segment shown in Figure 3, the equations of equilibrium may be stated as^ (2.55) (2.56) . T cos 0 - (T + dT) cos (9 + d0) = O and, T sin 0 - (T + dT) sin (0 + d9) - w^s — ,0. The weight per unit length of the deformed cable (w) can be expressed in terms of the strain (e) and unstrained weight per unit length (w). (2.55) w = w /(I + e) With the unstrained cross sectional area expressed as A0 the strain may be expressed as (2.56) (2.57) e = TZEA0 . W = WrZ ( I t T Z E A 0 ) Letting V E A 0 = K equation 57 becomes (2.58) w = w Z ( l + TK). 1William E. Larsen, Michael J. Gonsior, W. Robert Taylor, "USES MSU Cooperative Research Project" A4.4. 12 e + de Figure 3. Free-Ixdy diagram of cable segment. By expanding equations 2.55 and 2.56 using the identities for sine and cosine of a sum the equations may be restated as in equation 2.59. (2.59) T cos 0 - (dr + T) (cos 0 cos d0 - sin 0 sin d0) = 0 (2.60) T sin 0 - (dT + T) (sin 0 cos d0 + cos 0 sin d©) = wds As an angle a goes to zero the cosine of a approaches I and the sine of a becomes a. Thus by letting sin <30 equal <36, and cos <36 equal I (2.61) T cos 0 - (dT + T) (cos 0 - <30 sin 0) = 0 (2.62) or (2.63) T sin © - (dT + T) (sin 0 + <30 cos 0) = wds (2.64) or <3Td0 sin 0 - dT cos © + Td0 sin 0 = 0, d T sin 0 + did© cos 0 + Td© cos 0 + wds = 0. Ignoring terms involving products of differential quantities (2.65) (2 .66) Td© cos 0 + dT sin 0 = wds = (w / (I + T K ) )d ^ and d T cos 0 = Td© sin 0. 13 (2.67) dT/T = tan © d© J (2.68) dT/T = J ta n © d© (2.69) In(T) = ln(sec ©) + C (2.70) In(T) - In (sec 9) = ln(T/sec 0) = ln(T cos 8) = C (2.71) (2.72) T cos © = = C1 = H dT/d© = H (tan © sec ©) or or T = H sec © d T = H tan 6 sec 0 d© Combinir^ equations 2.65, 2.71, and 2.72 (2.73) HdQ + H tan2 © d© = (w /(I + H K sec 0))ds. (2.74) (I + tan2 ©)Hd8(T +(HK Sec ©))/w = ds (2.75) (sec2©) (1+HK sec ©) (H/w)d© = (sec2© + H K sec3©) (H/w)d© = ds * 1 < Integrating both sides of equation 2.75 between proper limits, (2.76) s - s0 = (H/w) (tan 0 - tan 0O + %KH[ln(sec © + tan 0) + tan © sec 6 - ln(sec Q0 + tan ©0 ) - tan Q0 sec ©0 ]}. The quantity s - s0 is the distance of strained cable between the f points (x,z) and (X0rZ0 ) where the tensions are T and T 0 , with cable slopes © and Q0 respectively. The distance (x - X0 ) was previously defined as £, between points (0,0) and (£,h). Since H is constant throughout the span (2.77) T cos 0 = T 0 cos Q0 = H. A typical span is illustrated in Figure 4. The equation of vertical equilibrium m a y b e written as (2.78) T sin 8 - T0 sin Qq - Vlc = 0. 14 B(x,z) Figure 4. Typical span. If W c is the weight of the cable in the span, the unstrained length may be found to be (2.79) = W cZw = (T sin 8 - Tc sin 60 )/w. By combining equations 2.76, 2.77, and 2.79 total cable stretch may be found. (2.80) L - Iti = (KH2/2 w ) [ln(sec 8 + tan 8) + tan 0 sec 6 - In(sec Gc + tan 80 ) - tan 80 sec Gc ] In order to find equations for x and z as functions of 6 the chain rule is used. (2.81) dx/d6 = (dx/ds)(ds/dG) = (ds/dG)cos 6 (2.82) dz/d8 = (dz/ds)(ds/dG) = (ds/dG)sin 0 From equation 2.76, when differentiated with respect to 6 15 ds/d9 = (H/w)(Sec2G + KH (2.83) Sec3G). (2.84) dx/dG = H (sec G + KH Sec2G) (2.85) dz/dG = H (tan 6 sec G + KH tan G Sec2G) Separating variables and integrating both sides Je, G (2 .86) (2.87) (x - (x - X0) = (IVw) (sec 6 + KH sec2G) dG. X0) = (H/w) [ln((sec 6 + tan G ) / (sec G0 + tan Q0 )) + KH (tan 6 - tan G0 )] (2.88) Q (z 7 z0 ) = (H/w)J (tan 9 sec G + KH tan 9 Sec2G)dG 8, (2.89) (z - z0 ) = (H/w) [ (sec 6 - sec G0 ) + ^KHftan2Q - tan260 ) ] Thus we again have two simultaneous equations from which two unknown values may be found. Further manipulation yields equations in the form (2.90) G0 = sin"1 [(I - f)/(l + f) ], (2.91) G = sin"1 [(g - l)/(g + I)], (2.92) f = [Cos2G/(I + sin 6)2]ea, (2.93) g = [(I + sin G0 )2Zcos2G0 ]ea , (2.94) a = 2 [(w/H) (x - X0) - BH (tan Q - tan G0 ) ]. This will allow for an iterative solution for one value of 6, given H, (x - X0), and the other value of G.1 It can be shown that Irvine's and Gonsior's derivations are totally equivalent. 1Ibid., A4.8 16 •Ripfipccrse to a Paint: rTnad The slope of the cable section at a point and the magnitude of the components of cable tension at the point are directly related. It has been shown that the horizontal component of tension is constant, thus it is the change in the vertical component which is responsible for the change in cable slope. The vertical component of tension changes with distance s in a continuous manner. When a point load is applied to the cable there is a discontinuity in the cable slope at this point. A cable with a point load of weight M, located a distance of unstrained cable S1 from the origin (0,0) will have slope 0 with tan 0 equal to V/H at the initial point, tan Q1 equal to ((V - (Ws1ZIti) )/H) immediately preceding the load, tan 02 equal to ( ( V - M - (Ws1ZIti) )/H) immediately following the load, and tan 0O equal to ( ( V - M - W)ZH) at the terminal point (£,h), as in Figure 5. The equations of position x and z must satisfy the geometric constraint that they be equal on each side of the discontinuity. constants of integration. This is done using proper values for the The equations for T, x, and z take two forms, one valid on 0 < s < S1, and the other valid on S1 < s < Iti. Letting 0S be the slope at the point s, for 0 < s < S1 (i. e . , preceding the point load)1 (2.95) T(s) = (H2 + (V - WsZIti)2 (2.96) x(s) = HsZEA0 + (HItiZW) [sinh-1 (VZH) - sirih_ 1 ((V - WsZItiV H ) ] : T cos 0{SZEA0+(ItiZW)[sinh- 1 (tan 0) - sinh 1 (tan 0S )]} 1Irvine, Cable Structures. 20-21. 17 (2.97) z(s) = (HEtoZW)Ctl + (V/H)2 }^ - (I + ((V - WsjZIto)/H)2 }^] + (WsZEAto) [(V/W) - (SZZIto)] = ((T cos 0) ItoZW) [sec 6 - sec 6S ] + (WsZEAto) [ (tan ©) - (sZ2Ito) ]. For the point s located beyond the point load, S1 < s < Ito (2.98) X(S) = H s Z E A to (HLtoZW) [sinh- 1 (V/H) - sinh-1 ((V-M-(WsZIto))ZH) + sinh-1 ((V-M- (Ws1ZIto) )ZH) - sinh- 1 ( (V-(Ws1ZIto) )ZH) ] = (SZEAto + (ItoZW) [sinh ^ (tan 6) - sinh ^ (tan 0S ) + sinh ^ (tan 02 ) - sinh \ t a n O 1) ] }T cos 0, (2.99) z(s) = (HItoZW) [{1 + (VZH)2 ^ - (I + ((V-M-(WsZIto) ) Z H ) ^ + (I + ((V-M-(Ws1ZIto))ZH)2 )^ -.{1 + ((V-(Ws1ZIto))ZH)2 )^ + (MWZ(HEA0Ito)) (S1 - s)] + (WsZEA0 ) [ (VZW) - (sZ2Ito) ] = ((T cos 0) ItoZW) [sec 0 - sec 0S + sec O2 - sec O 1 ] + (M[s1 - s ] + W s [tan © - (sZ2Ito) ])ZEA0 , (2 .100) T(S) = (H2 + ((V - M (WsZIto))ZH)2 )^. I To find H and V (or T and 0) for a particular span substitute s = Ito in equations 2.99 and 2.100, with proper root values found when x(H,V> = I and z(H,V) = h, as in equations 2.53 and 2.54. Multiple Boint Ifgtda o n a Span Sinclair has developed a dimensionless formulation for multiply loaded spans, taking advantage, of the .recursion becoming apparent in the single point load formulation, and simplifying the notation.1 dimensionless terms used in the formulas are given as 1Irvine, Cable Structures. 22^24. The 18 (2.101) n = x/ L q (2 .102) H = horizontal coordinate of strain©! profile z/ L q (2.103) o = s/I^, vertical coordinate of strained profile Iagrangian coordinate of unstrained profile (2.104) CTn = SnZIto (2.105) S = Myito Iagrangian load coordinate (n = I, 2 , ___ ,N) relative vertical displacement of end points T = Iyito (2.106) (2.107) cable aspect ratio 9 = Tyw (2.108) e = Hyw (2.109) a = vyw (2 .110) horizontal reaction at all points vertical reaction at initial point (3 = WyEA0 (2 .111) cable tension (Pn = MnZW flexibility factor applied concentrated vertical loads n $n = Z j = "I (2.112) We define ct0 = 0, 0 = 0, and 0 O = 0. The equation of vertical equilibrium at a point on the strain©! profile is n (2.113) T(dzydp) = V - E M i - Wsyito i = 0 The equations for horizontal and vertical position and tension are 0(cr) = { e 2 + (a - $n - Ct)2 ^ (2.114) O(Ct ) = e[/3CT + (2.115) n + E{sinh i = 0 -I sinh 1 ( a / e ) - sinh 1 ((a - $n - cr)ye) -l ((a - #i - (Ti )Ze) - sinh ((a - - (Ti ) Z e ) }] (2.116) /i(CT) = j3ct(q : - o / 2 ) + (e 2 + a2 }^ - ( e 2 + -(a - $n - ct)2 )^ n i + E [/S^i (CTi - Cr) + (e 2 + (a - Gi - CTi ) 2 )^ i = 0 ' - (e 2 + (a - ^ 1 ~ (Ti)2}N], 19 Figure 5. Span with multiple point loads. These equations are valid on crn < ct < , for n = 0,1,2,..., N. substituting s = I0 into equations 2.115 and 2.116 a = I and the equations m a y be solved for e and a (and consequently T and 6) iteratively in the manner of equations 2.53 and 2.54. By 20 CHRPQR 3 MEIHDDS o f s q h j h g m of Ppdblsin With all the cases previously defined, whether elastic or inextensible, unloaded or multiply loaded, there are two simultaneous nonlinear equations that may be solved for a maximum of two variables. When beginning the process of setting up a series of spans the unknowns are the angle of slope at the initial point and the unstrained length. This is because the desired tension is specified, and all variables should be defined,other than 0 and I0 . In performing further analysis as the system has loads introduced, or the speed of sheaves is adjusted, the cable length is known and the variables to be solved for are the tension and the angle 0, at the initial point, if the equation for the x dimension is referred'to as f x and the equation for the z dimension is referred to as f z the problem is finding the roots of the equations (3.1) Zx (TfO fI0 ) — £ — 0, (3.2) Zz(TfG fI0 ) - h = Q In these equations £ is the horizontal dimension and h is the vertical dimension. Either T or I0 will be specified leaving two equations and two unknowns. With the nonlinear equations an iterative solution must 21 be used. Three commonly used are the method of successive substitution, the Newton-Raphson method, and Brown's method. Method of Successive Substitution Consider a set of nonlinear algebraic equations (3.3) (3.4) ' Fl(XizX2 ) = 0, F2(xIzX2) = o. The equations m a y be written in combined form as The unknowns are the values x. Adding x to each side of equation 3.5 yields a form from which an iterative solution scheme may be derived. (3.6) X1 + Fj (X) = X1 (3.7) The superscript k denotes the iterate number.1 Thus b y making a guess for all the values of x, and following this iterative procedure with one of these values (x-jj the value of xj[ may be found to the desired degree of accuracy if the process of equation 3.6 converges. With a large system of equations this process becomes very long, but for our purposes we have only two equations with two unknowns. Assuming convergence, a guess of values for These would be used in the formula for X1 and X2 would be made. F1(XlzX2) as in equation 3.7, 1Bruce A. Finlayson, Nonlinear Analysis in Chemical Engineering. (New York: McGraw-Hill, Inc. 1980), 8-9. 22 with iterations made until and the guessed value of new value of back into X1 had converged. The converged value of X1 X2 would then be used in F2 (XlfX2) to find a X2 . 'The values of X1 and X2 would then be substituted F1(XlfX2) again and the process repeated until both variables approach their root value. Convergence will occur if the partial derivative with respect to X1 has an absolute value less than or equal .to one in the area of the root, and the guess for root. X1 is close to the The partial differential (in this case with respect to be expressed as SZSx1 for the remainder of the paper. X1) will In general, for a being the solution of Q1 = Z1 (Ce), given an h > 0 if there exists a number 0 < /x < I such that n (3.8) S Bbs(Sf1ZSXj) < JLt j Then for Bbs(X1-Ce1) < h i = I,... fn. x £ = Z1 (x 1^"1) X1 converges to Ce1 as k increases. necessary condition for convergence. is linear.1 This is a sufficient but not When convergence occurs the rate This in essence is the method used by Gonsior in his BASIC language program used to find tensions and load positions in a multi­ span, multi-load cable system.2 Newtcn-Raphscai Method Suppose that x = nonlinear system f ( k ) [XlfX2, ... xn ]T is the solution of the = 0, then Z1 (X) = Z z ( X ) = ... = Zn(x) = O - The 1Ibid., !3. 2Larsen, Gonsior, Taylor, "Cooperative Research Project", A3.4. 23 Taylor series expansion of Z1 (X) = 0 about the points x truncated after the first derivative terms is ^ fl(x) = Z1 (X) + (SZ1 (X)ZSx1) (X1 ^ - X1) + (SZ1 (X)ZSx2 ) (x2 - x2) + ... + (SZ1 (X)ZSxn ) (xn - xn ). If x approximates x, then the difference x - x will be dx. Rather than find the exact value for d x to satisfy Z(x + dx) = 0 as in an explicit method, the value of x will be adjusted iteratively to converge on x.1 Each iteration is in essence an improved "guess" at the root, thus no roundoff error accumulates in the process. For the two equation, two variable system of concern the error estimating scheme is Zi(X) + (SZ1ZS x 1)CJx 1 + (SZ1ZSx2 )dx2 = 0, (3.10) Z 2 (x ) + (SZ2Z Sx1Jdx1 + (5Z2Z5x2 )dx2 = 0. Equation 3.10 follows from 3.9 as the value of f(Sc) - 0. This can be written in matrix form as or SZiZSx1 SZ1ZSx2 Clx1 Zi(X) SZzZSx1 SZz ZS x 2 dx2 /2 w [ Z' (x) ] { dx } = [ - Z(x) ]. When the 2 by 2 matrix of differentials (the Jacobian matrix) is inverted and multiplied by the column vector of function values the 1Melvin J. Maron, Numerical Analysis: A Practical Approach. (New York: Macmillan Publishing Co., Inc., 1982), 176-179. 24 values of d x are found. The values of x are adjusted and the procedure repeated until the desired degree of accuracy is attained. = X k + [d%k = ~ f ' (3.12) ] Convergence is quadratic in this method, in contrast to the linear convergence of the successive substitution method. In a computerized analysis there is no loss of accuracy in using numerical derivatives in the procedure. A forward difference method of interval h is1 Sfi(XlfX2)ZSx1 = Cfi(XrHifX2) - fI(XlfX2)V h + O(h) (3.13) or Sfi(XlfX2)ZSx1 K Cfi(X1HifX2) - ^ ( X lfX2)Jfh. The order of error (0(h)) is linear in h, therefore cutting h in half will reduce the error by half. As the value of x approaches x the value of h can be equated to the value of Zi (X) ~ O f and as h approaches zero the error also approaches zero (h = Zi(X) f 0). With this procedure convergence is generally as rapid as when using the exact derivatives in the calculation.2 The Newton-Raphson method was used b y the author to write several FORTRAN language programs to analyze cable tension and load coordinates. Good initial root guesses are necessary to guarantee convergence and will improve solution time. 1Robert W. H o m b e c k f Numerical Methods. (Englewood Cliffs: Prentice Hall, Inc., 1975), 17. 2Maronf 182. 25 RnnangS Kgfchod ■ In Brown's method the Newton-Raphson method is modified to provide a wider range of more rapid convergence. expansion is also used here. is x. The Taylor series The true root is x and the latest guess From the point of equations 3.10 with d x written as x - x the equations became Zr1 (X) + (Sf1 (X)ZSx1 ) (X1 - X1) + (Sf1 (X)ZSx2 ) (x2 ~ x2) = 0 (3.14) f2 (x) + (Sf2 (X)ZSx1) (X1 - X1) + (Sf2 (X)ZSx2)(x2 - x2) = 0. All function and derivative terms are known constants as the values of x are used in their evaluation. In the equation for Z1 separate the partial derivative term with the greatest absolute value (assume Sf1ZSx2 in this example) to solve for the unknown value (x2) .1 (3.15) x2 = x2 - (Ef1 (X) + (Sf1 (X)ZSx1) (X1 - X1)IZESf1 (X)ZSx2]) Thus X 2 has been defined entirely as a function of known values and the unknown value X1 . Rename X2 as b 2 = b2 (X1) for clarity, and note that b 2 (X1) = x2 - Z 1 (X)Z(Sf1 (X)ZSx2 ) . Now define function g2 . 92 (%) = Z ^ l f b 2 (X1)) (3.16) 92 (Xi) = ^ ( X i f b 2 (X1)) 1Kenneth M. Brown, "A Quadratically Convergent Newton-like Method Based Upon Gaussian Elimination", SIAM J. Numer. Anal.. V o l . 6, No. 4 (December 1969), 560 - 569. r 26 Expand g2 in a Taylor series about the point X1, truncate, and solve for the variable X1. (3-17) Rename % = X1 - [92(Xi)/(&92(Xl)Z^x1)] X1 as b 1 and note that b 1 is defined completely. b-L is the new approximation of This value of X1 to the true root X1. Substitution into b2 (X1) gives the new value of X2 to be used. The process is repeated until the change between old and new values reaches an acceptable value. Brown reports convergence in fewer iterations than the Newton-Raphson method and convergence when the Newton-Raphson method failed.I Ocmparison of IfewtonHRaDhsan and Brown's Method With a sample problem the three methods are compared. A 1000.88 foot span (h = 341 ft., I = 941 ft.) is crossed with a 1000 foot cable!. ' The cable diameter is 3/8 inch (area of 0.1104 sq. in.) with a weight of 0.2588 pounds per foot, with a cable elastic modulus of 2 (107 ) pounds per square inch. The equations will be solved in terms of tension and cable slope at the initial point (0,0). The equations to solve to find T and © are (from 2.48 and 2.52) Zr1 (TzO) = ((3.864)T cos 9) [sinh- 1 (tan 9) (3.18) - Sihhr1 ((T sin 9 - 258.8)/T cos 9) ] + 4.529(IO-4)T Cds 9 1Ibid., 567. - 941 « 0 27 f2 (T,e) = (3.864)T cos 0[ (I + (tan 0)2 }^ - (I + ((T sin 0 - 258.8)/T COS 0)2 }^ ] (3.19) + (0.1172)[((T sin 0)/258.8) - 0.5] - 341 = 0 Thus there are two equations with two variables, both equations nonlinear. An initial guess at T and 0 must be made, and we will guess arbitrarily at a tension of 5000 pounds and a slope equal to the chord slope of 19.9° (0.3796 radians). Substituting these values into equations 3.18 and 3.19 gives Z 1 equal to -1.43 feet and 6.79 feet. f2 equal to Partial derivatives must be taken of both equations with respect to both variables, and due to the complexity of the equations numerical differentiation is used. (3.20) SfiZST = [fi(l.O!T,0) - fi(T,0) ]/0.01T (3.21) S f i ZSQ = [^i (TfI-OlO) - fi(T,0)]/O.O10 V f cable weight = Wlt, Figure 6. Example span. 28 This gives the four values of the Jacctoian matrix for this root estimate. (3.22) [J] S f 1ZST Sf^ZST S f 1ZSQ I Sf^ZSQ J F L -0.00124 -353.507 0.00475 947.309 Using the Newton-Raphson approach, the Jacctoian matrix is inverted and multiplied by the column vector of f ^ values to find the value dx^ that is added to the original X^ estimate for the new iteration value. (3.23) [J]"1 (3.24) 1868.786 -0.00938 (dX) = - [J r 1 (Z) (X') = (X) + (dx) (3.25) 697.3742 I -0.00244 J 2603.754 I -0.00506 J 2396.246 0.384659 Repeating the procedure gives the succeeding values of T and 0 shown in Figures 7 - 1 0 . Small changes in 0 create large changes in the value of f thus the proposed procedure of using the values of f for h in the differentiation process cannot be used for incrementing 0 until the iterative process has closely approached the root, leading to values of f ~ 0. With values of d0 of magnitude tt/ 4 and greater, quadrant and thus sign changes occur in the trigonometric functions composing the equations. Brown's method, with the same initial root guesses as the previous example, using the process from equation 3.15 with T 1 and 0' as the true root values and Tn and On as the estimated values, yields 29 0' = ©0 - [-1.4314 - 0.004753(T'- T 0)]/(-353.507), (3.26) 0' = 0.393231 - 3.504137(10_6)T '. This value of 0', found using Z1 / can now be used to find T 1 in terms of T 0 , as in equations 3.16 and 3.17, and this is used to find O 1 . in finding the numerical derivative of- g 2 (T) = g 2 (T,©1(T)) « f 2 (TrG) it is important to increment T in the tension terms as well as in the 0 1(T) terms. (3.27) (3.28) T 1 = T 0 - [3.72834(0.001439)3 = 2408.49 - O 1 - 0.393231 - 3.504137(10-6) (2408.49) = 0.384791 Repeating the process gives results as shown in Figures 7 - 1 0 . The methods are essentially equal in speed of convergence for the elastic catenary equations. Due to the periodic nature of the functions of the unknown value 0, a large change in 0 has no more effect than the remainder of the change when divided by 2 n . 1. The Jacobian matrix is ill-conditioned, e. small changes in 0 produce large changes in the functional values, thuis avoiding the matrix inversion required in the Newton-Raphson method would be an advantage. The Brown's method using Z 1 as h in the differentiation with respect to tension and 0.010 as h in the (differentiation with respect to 0 should be the best procedure. As is seen by the initial estimate variation of the methods when adding one foot to the cable length a poor root guess can result in wildly wrong divergent estimates. A range limit should be established for the new estimates of tension and 0 to limit the divergence, such as © limited to values between the chord slope (OcJ1) and (tt + OcJ1)/3 (close to but 30 not equal to kn ) , and tension between a low non-zero value and the elastic limit of the cable. The ultimate strength (uu ) of cable can reach 1,500 MPa, and the elastic limit is typically half the ultimate strength (cre = ^ctu ) .1 ksi. Thus an upper limit could be 750 MPa « 1,067 Since each succeeding value produced by either algorithm is simply a root estimate, bracketing the range is an improvement of the estimate with no adverse effect, as long as the range does bracket the true root. A comparison of the methods with the same example span but' with Lto of 1005 feet was done with a lower tension limit of 100 pounds, and 0 between Qd h and % (Qch+ ^ ) (0.3796 and 0.9752 radians) with results shown in Figures 11 and 12. Usirg the Newton-Raphson method, the author has written programs to give load position, tension at both ends, and load dip from the chord position. Using a specified tension, 6 and Lto are found when incrementing the distance of a load from the initial point along the cable. This gives a simulation of cable motion, and has produced data for many combinations of tension, chord slope, and chord length. Examples are given for a span of similar dimension to our example span with a 500 pound load traveling across with a maximum tension of 3000 pounds in Figures 13 through 15. 1Lrvine, 72. e s tim a te d angle th e ta in rad ia n s iteration number Figure 7. Conve r g e n c e of Theta w i t h Lo = 1000 ft Newton’s e s tim a te d ten sio n in lbs. ----B — Brown’s LU NJ iteration number Figure 8 Conve r g e n c e of tension with Lo 1000 ft. e s tim a te d angle th e ta in rad ia n s Newton’s — B— Brown's Lu Lu iteration number Figure 9. Convergence of theta with Lo = 1001 ft e s tim a te d ten sio n in 13 iteration number Figure 10. C o n v e r g e n c e of tension with Lo = 1001 ft > :ed angle theta in radians Newton’s — B— Brown’s E % iteration number Figure 11. C o nvergence of theta with range limits --- ►--- Newton’s — B— Brown’s & estim ated tension .E W --F— F — B — F — iteration number Figure 12. C o n vergence of tension with range limits B — W hitid Tension (pounds) Terminal U Figure 13. Tension at span ends during movement. Cable Length (fe e t) X Coordinate Figure 14. Change in u n s t r a i n e d length during movement. 2 O C J X Coordinate Figure 15 Coordinates of load attachment point. 40 , CHAPIER 4 ASSEMBLY O F THE KDiar-SPAN SYSTEM Ifee of Idler Qteaves R e k m e n Qantrol S h o m w c When there are idler sheaves present between two powered sheaves Problem is still that of finding two unknowns using two equations. At startup there will be no loads present, and a specified tension, IeaVrng cable length and angle 0 as the unknowns. x and z dimension are functions of Ito and 8. The equations of Root estimates are made (in this case initial chord slope can be used to estimate 8, and total chord length to estimate Ito) and the solution process.begins. The first span is solved for T, 8, and Ito^ yielding H, equal to T cos 8, and V, equal to T sin 0, at the initial sheave. The tension at the first idler sheave is found to be (4.1) ' T 1 = (H2 + (V - Wltol)2)3S vhere w is cable weight per unit length. This tension is the same on both sides of the sheave, as shown in Figure 16, but the cable slope S 1 will be dependant on the location of the second idler sheave. The second span is thus solved for G 1 and The , with T1 specified. tensions at the second, and ith, idler sheaves are (4.2) (4.3) T2 = (H2 + (V1 - WLto2)2)*, Ti = (Hi-!2 * (Vi_1 - WItoto)2)*. 41 Figure 16. Ith idler span. false position Figure 17. Final idler span. o (X,Z) 42 When the final idler sheave is reached tension Tn is known, and L 11 orri-l equals the initial total length minus the previous span lengths. (4'4) 1Ionrt-I = 1O T ^ L 1 1 — 1 With the mentioned information available the endpoint of the cable is required to be located at the z dimension of the final (powered) sheave of the idler system, as illustrated in Figure 17. Thus here the z dimension equation is solved for 8 with T and Itl known. equation is necessary for the one unknown. Only one This value of 0, T, and Ito is used in the x dimension equation to give the false coordinate (x,Z) at the terminal end. In order to iterate to the exact root values of T and 0 at the initial point, equations are formed involving the sum of the Xi and Zi spans. With an x dimension between powered sheaves of X, and similar z dimension of Z the equations to solve are (4 -5) n X - Xr^ 1 (0,h) - S X i (OifLoi) = Or n (4-6) ' Z ~ V l (0'h) 7 2 Zi (OifLoi) = 0. The algorithm of choice is applied to these equations until the root values of T and 0 are found which satisfy the equations. Use Of Wiiltiplff Qcmtrol Sheaves In a system of spans with no idler sheaves present the solution is simplified as each span is unrelated to the adjacent spans in tension across sheaves. The span is solved for length of cable Ito and slope © with tension T specified initially, and when motion is simulated the span is solved for T and 8 with Ito specified. The change 43 in Lb with sheave movement and load addition is not entirely straightforward, as explained below. Sinnilat.-inn of Cable Kovamant The movement of the cable with no loads creates no change in the system tension as long as the same unstrained length of cable is added at the initial powered sheave as is removed from the final powered sheave. In simulating motion by the motion of drive sheaves cable strain is introduced to the calculation of in-span length. If the sheaves are rotating at uniform speed with uniform diameter the length of strained cable added and removed is the same, but unless the tension above the initial sheave is the same as the tension above the end sheave the length of unstrained cable will differ at an instant by (4.7) [ ( 1 / ( 1 + (TiZEAb ))) - ( 1 / ( 1 + (Te ZEAb )))]dL where E is the elastic modulus, A0 is the unstrained cross-sectional area, and d L is the amount of strained cable per unit time moved across the sheaves. This is true only instantaneously as these tensions will change as the length of unstrained cable.within the span changes. If T i = 5000 pounds, Te = 4000 pounds, E = 2,000,000 pounds per square inch, and A0 = 0.1105 square inch (3/8 inch diameter) then length difference would be (-0.000451)dL. This is a small difference, but if allowance is not made the effect will accumulate and the simulation may rapidly become inaccurate. As has been shown, small changes in length have large influence on tension. To simulate cable motion by means of driven sheaves these sheaves must be given a rotational speed, and this 44 is equated to a strained cable speed as R(d9/dt) where dG/dt is the rotational speed in radians per unit time. At each discrete time increment the cable tensions are reevaluated considering the changes in unstrained cable length. Thus after the initial simulation of cable tensions and lengths with specified tensions below each drive sheave the unknowns became tension and slope, rather than length and slope, as length is now specified as Iti + <5L. When loads are introduced their positions are defined by unstrained cable length from the initial drive I sheaves of the span they are on. This position is also dependent upon the tension at the initial span as well as the sheave speed. distance The of each load from the beginning of the span system must be recorded to determine which span the loads are on. The number of loads on each span influences the choice of equations to solve (see equations 2.115 and 2.116). Coordination of Tensicai Ocaitrol The purpose of powered sheaves in the multi-span system is to provide differences in tension across these sheaves. As the elevation of each succeeding free sheave decreases, the tension also decreases. In order to have sufficient tension to provide for the movement of loads, the tension at the beginning of a system without intermediate control would be very high. With intermediate tension control, each powered sheave will ideally keep downslope tension at the design limit. As loads move through the system, localized tension increases may require sheaves to drive the cable as well as provide braking. As the system is intended to transport loads to a lower position the net I & 4D I energy at each sheave should be positive (braking) rather than negative (driving). Each powered sheave will have the ability to determine the tension above and below said sheave.1 A desired tension range will be specified for the system, and the differential tension across the sheave will be limited by the angle of cable wrap and the average of • the two tensions. I When a sheave detects tension outside the accepted range it will brake or drive to relieve this condition. In addition, it can send a command to adjacent sheaves in order to aid in this relief. The author has written FORTRAN programs with commands sent to only the immediately adjacent sheaves which indicate that this is sufficient for system control. An example of system response to a situation could be that of Figure 18, where a load approaches the central sheave. The tension at the upper sheave is at the upper system limit, which could cause the tension above the central sheave to be above this limit. A load has passed across the lower sheave, lowering v the tension below the central sheave. The differential tension across the central sheave is relieved by slowing the central sheave, and accelerating the other two sheaves. This also lowers the tension in the upper span, while raising the tension in the lower span. Conditions in the spans adjacent to the upper and lower sheaves could be creating situations requiring conflicting adjustments, therefore a priority of control must be established. The relief of excessive differential tension must have first priority as the cable will slide across drive sheaves with detrimental results which cannot be modeled with great confidence. The cable tension range will give some safety 1Larsen, Gonsior, and Taylor, Attachment I., 1.4. 46 -cr V M Figure 18. Response situation. margin but slippage should not be allowed. Ihe allowable differential tension is expressed as1 (4.8) (4.9) Ta - % or < T b ( e ^ - I), Ta > Tb > k(Ta - Tb )ZieHa - I) where /i is the coefficient of friction between the sheave and the cable, a is the angle of wrap in radians, and k is the factor of safety (1.2 < k < 1.5). The angle of wrap is influenced by the angle in the y dimension (zig-zag angle) as well as the difference in angle of the cable in the x - z dimension on the sheave (0a and Qb ) . The tensions are calculated in the model at increments corresponding to a real time increment, and the speed of the drive sheaves corresponds to the amount of strained cable moved in this increment. When these calculations are made the system is checked for tensions outside of the design range, differential tensions, and excessive deviation from design speed. 1Zbigniew Schneigert, Aerial Tramways and Funicular Railways, York: Pergamon Press, 1966), 453. (Now 47 CHAPTER 5 SYSTEM RESPONSE .Initial Qsnagrns In creating a realistic model the.changes in sheave speeds must be within the limits of the actual components to be used. Until the specifications are known, the best option is to provide for ease of modification in the model so that appropriate information may be substituted for comparison. The simulation of motion is created by incrementing load positions and cable lengths in discrete units. are benefits in making these units small. There By making these increments small enough the system simulation of motion approaches a continuous form. In addition, the previous tension and slope are used as initial estimates for the subsequent root values of the equations, and small increments allow more rapid convergence of the solution algorithms. The disadvantage of more computations in modeling a sequence of loads is somewhat cancelled by the faster convergence. The author has had many multi-span program runs halted by divergence of the root search when using an increment which proved too large. With sheave speed adjustment in addition to load movement, there can be large changes in tension. The movement of a load from one span to the next causes a major change in both tension and slope at the entry point, and I 48 convergence may be slow. A combination of range bracketing and increment reduction will optimize the speed of solution. Resoanse Speai When choosing a design speed for the sheaves, such as five feet per second, the increments of system movement are defined in time. The sheaves are initially given a uniform motion, remaining constant until the control parameters are exceeded. Once again, a load-free span with sheaves moving at constant speed will gradually have a change in total I span length due to differences in tension at the sheaves. The span will have an increment of cable of unstretched length' (5.1) [(1/(1 + (TiZEA0 ))) - (1/(1 + (T0 ZEA0 )))]dL added to it's length where T i is the tension above the initial sheave and T f is the tension above the end sheave (see equation 4.7). assumes no cable slip on the sheaves. This When a time increment is chosen for recalculation each span is solved in succession with the new cable length Io i . Response to charges in tension can be made at each increment, or at an integer multiple of this corresponding to a longer time span. speed. The response of the sheaves is an increment of the design A choice must be made how this change is to be modeled. If the speed of a sheave is to be raised an increment, it can be modeled as an instantaneous change with cable motion being immediately modified, or as a fractional change reaching the full speed increment at the next speed change increment. Due to the small speed changes (small changes in length) necessary to keep tensions within limits it has been assumed 49 that these instantaneous changes are acceptable. In the FORTRAN program BASE.FOR the sheave speed modification is allowed at variable increments of recalculation of span tensions. Variation in design speed and recalculation time were allowed, as well as the tension range to be maintained before correction was applied. It was found that a narrow range of variation from the design tension was best, since once tension had became high (or low) correction was more difficult. This results in a near constant state of sheave speed modification. Response Magnitude The amount of adjustment of sheave speed possible is limited by the ability of the individual sheave mechanism to' absorb or expend I energy. The power formula (5.2) Hp = FV/33,000 gives horsepower (Hp) in terms of differential force in pounds (F) and cable velocity in feet per minute (V). .Thus a sheave with 4000 pounds tension above, 5000 pounds below, and cable speed of 5 feet per second (300 ft./min.) is absorbing 9.1 horsepower, or 5000 foot-pounds per second. If the speed is increased to 5.1 feet per second the power absorbed is 9.3 horsepower or 5100 foot-pounds per second. The capabilities of the drive components will determine the ability of the system to respond to control commands. It can be seen that slower travel speeds will reduce the demands upon the drive components. The maximum available power change per unit time is an important parameter of the simulation. / I 50 BPKpnnHf* Preoedenoe The relief of excess differential tension is the most important task of the control system, both in the model and in reality. Slippage cannot be accurately simulated in the model, and cannot be allowed in the real system. Excess differential tension in the real system will cause the cable to slide through the drive sheaves with destructive effects on cable and sheaves, but ,the slippage will relieve the differential tension. In the model the differential tension, average tension, and angle of wrap must be monitored, at the sheave (see equation 4.9) and conditions leading to slippage prevented. As the system is analyzed at each sheave the tension on each side is found, and consequently the differential tension. Since models have been constructed with only x and z coordinate information, the maximum allowable differential tension has been estimated with a constant wrap angle (a). When the control commands are issued, direct relief of the differential tension by the motion of the drive sheave can be given a different increment than the correction of span tension. Experimentation must be done to optimize this increment difference. I 51 CHAPTER 6 \ OCMTrSDL OPTTMTRATTnM Oantrol of Teaisicni The goal of the use of intermediate control sheaves is to enable the system to be used over large elevation differences. An attempt has also been made in the writing of the program to allow the control of tension in the system. Two figures are included showing the effects of the control system implemented in the program compared to the tensions produced with no response to tensions, that is with uniform sheave speed. A 300 pound load is moved across a series of four spans, each of 100 foot x dimension, 30 foot z dimension, and design tension of 5000 pounds, with control at all sheaves. In Figure 19, the tension . variation is shown at the initial sheave as the load moves with design speed of five feet per second. It can be seen that the adjustment routine prevents the tension from reaching the peak magnitude of the unadjusted run. However the response of the system to the attempts at control result in excess correction and subsequent oscillation of tension. Figure 20 shows the effect in varying the increment of speed adjustment, with increments of 0.0001, 0.00005, and 0.00001 of the design speed. The smallest increment smooths the oscillation of the system to a more acceptible level. Figure 21 shows the effect of 52 varying the point of response initiation to 0.1%, 0.5%, and 1.0% of the design tension. Poaer IteauiTganpgifrs The program allows the monitoring of differential tension at a span so that it may be determined if: there will be a need for additional power ,supply or if the energy of braking will be sufficient to allow for the amount of driving necessary for the system. The efficiency of the power conversion will be an important consideration. Figure 22 shows the differential tension across the second sheave of the four span system mentioned in the previous section. Modelling different system layouts will allow maximum use to be made of the available braking energy. With end Without Speed Adjustment □ no adjustment Time (seconds) Figure 19. Tens i o n at first sheave. + adjusted D 0.0001 + Time (seconds) 0.00005 0 Q00001 Figure 20. Tension with v a r i ation of response increment. Figure 21. Tension with variation of response initiation. DiITerentiel T 25 Time (seconds) □ no adjustment + Figure 22. Differential tension. adjusted 57 OHETOR 7 OMraBims T h e computer program base, for has shown itself t o b e a valuable tool in t h e study of system feasibility for the proposed cable transportation of timber. Simulation can be made of a wide variety of system layouts and the program will lend itself to further modification t o allow improvement of the speed adjustment routine. A s the program now stands it allows simulation of the movement of 200 loads over a system of 100 sheaves of widely variable geometry. Future development of a three dimensional model would b e a logical step. It is hoped that this thesis m a y provide the basis for the development of a n actual system of timber transportation. REFERENCES CITED 59 Brown, K. M. 1969. "A Quadratically Convergent Newton-like Method BaSAl U p o n Gaussian Elimination” . SIAM J . N u m e r . A n a l . , V o l . 6, No. 4. Finlayson, B. A. 1980. Nonlinear Analysis in Chemical Engineering. New York: McGraw-Hill, Inc. Horribeck, R. W. 1975. Numerical Me t h o d s . Englewood Cliffs: Prentice Hall, Inc. Irvine, H. M. 1981. Cable Structures. Cambridge: M IT Press. Iarsen, W. E., Gonsior, M. J., Taylor, W. R. 1985. "USES - M SU Cooperative Research Project", USCA Forest Service Intecmountain Research Station and Montana State University College of Engineering. M a r o n , M. J. 1982. Numerical Analysis: A Practical Appr o a c h , N ew York: Macmillan Publishing C o . , Inc. Schneigert, Z. 1966. Aerial Tramways and Funicular Railways, N ew York: Pergamon Press. Shames, I. H. 1980. Engineering Mechanics: Statics and Dynamics, Englewood Cliffs: Prentice Hall, Inc. 60 I APPENDIX FORTRAN program base.for and subroutines. N 61 Figure 23. FORTRAN p r ogram base.for 1 ' ' 3 1 4 5 3/6/88 Al Turk 2 base.for 6 program base common /dlm/x(1 0 0 ),z(1 0 0 ),xs(0 :1 0 0 ),zs(0 :1 0 0 ),chord!1 0 0 ),chsl(1 0 0 ), stat(0 :1 0 0 ),noload,ao,e,mg,t.n /mag/f(2 0 0 ),th,tl,speed!0 :1 0 0 ) /calc/los,lo(1 0 0 ),te(1 0 0 ),to(1 0 0 ),theta(1 0 0 ),3 (2 0 0 ) + + + + 7 8 9 10 real’s x,z,lo, los.theta.te.to.ao.mg.e.xs.zs.s.f,t.th.tl real* 8 speed,chord,chsl Integer stat.n,noload U 12 13 14 15 # 16 * 17 18 19 This Is the main program of the mult Ispan moving load sImutation program. This program directs the flow of data to and from subroutines until the program run Is terminated. common vantables *" *# block dim ••••••••« * dimensions of the Ith span x(l),z(l): 22 position of the Ith sheave from origin (0 ,0 ) XS(I).zs(i)I 23 # chord length of the Ith span chord(I): 24 • chord slope of the Ith span chsl (I): 25 status of the Ith sheave (Idler/drive) statd): 26 number of loads to move across the system noload: 27 unstrained cable cross-sectional area ao: 28 cable weight per unstrained unit length mg: 29 design tension t: 30 number of spans In system n: 31 block calc •*••••• 32 total system span cable length Ios: 33 cable length of the Ith span Io(I): 34 e tension at Initial point of Ith span te(I): 35 * tension at terminal point of span to(I): 36 * cable slope at Initial point of the Ith span theta(I): 37 * * distance along cable from origin (0 ,0 ) to Ith s(i): 38 load 39 # block mag ••*••••• 40 magnitude of Ith load 41 f(I): upper limit of acceptIble tension range th: 42 lower limit of acceptible tension range tl : 43 speed of Ith sheave speed(I): 44 45 46 Subroutine Initial reads In the sheave coordinates and cable 47 data and the sheave status (Idler or drive). 48 49 50 call Initial 51 5? 20 21 54 55 56 57 58 • • Subroutine span finds the Initial chord slope and length which are the Initial estimates of theta and Lo. ca11 span 62 Figure 23. Continued 59 60 61 62 63 64 65 66 67 68 69 70 71 .......................... ................................................. .... * Subroutine newt finds the cable length of the unloaded spans * with the design tension as a maximum. Idler sheaves are • Included In the calculations. ............................................ ......... .......................... call newt .......................... ........................................................ • Now that the length of cable In each span and the tensions In * each span are known we prepare for the simulation of cable " motion by recording the load spacings and load magnitudes. 73 .......................... 74 call point 75 .......................... 76 ..................................................... 77 call sheave 78 end main Local Symbols Name Class X ......... Z ......... XS......... ZS......... CHORD ...... CHSL........ STAT........ NOLOAD...... AO......... E ......... MG......... T ......... N ......... F ......... TH......... TL......... SPEED ...... LOS........ LO......... TE......... TO......... THETA ...... S ......... ...... DIM ...... MAG ...... CALC ...... CALC ...... CALC Type REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S INTEGER"4 INTEGER'4 REAL' 8 REAL'S REAL'S REAL'S INTEGER-4 REAL'S REAL'S REAL- 8 REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S Size 800 800 SOS 808 800 SOO 404 4 8 8 8 8 4 1600 8 8 808 8 800 800 800 800 1600 Offset 0000 0320 0640 0968 0c90 OfbO 12 d0 1464 1468 1470 1478 1480 1488 0000 0640 0648 0650 0000 0008 0328 0648 0968 0 c8 8 79 ............................................ *.......... 80 • 81 Initial.for 3/6/88 Al Turk ............................................................. 82 subroutine Initial 83 .................................................... 84 common 85 + /dim/x(100),z(100).xs(0:100),zs(Os 100),chord!100),chsl(100), 86 + stat(0 :1 0 0 ),noload,ao,e,mg,t,n 63 Figure 23. Continued 87 + /mag/f(200).th.tl,3 peed(0 :1 0 0 ) I0 0 )'to(1 0 0 ).theta(1 0 0 ).3 (2 0 0 ) 88 89 90 91 92 93 94 95 96 97 98 99 real* 8 x.z,lo,1 •theta,te,to,ao,mg,e.xa.zs.rz.s.f.t,th.tl real* 8 speed,xl,zt,dla,chord.chaI,range Integer atat,n,noload,ans,an32,I character fllename* 2 0 Input cable data 100 100 101 102 103 104 105 106 107 108 109 HO 111 112 113 114 115 116 117 118 119 4 120 121 122 123 124 125 126 127 101 128 129 130 131 132 133 134 135 136 137 HO 138 139 140 111 141 142 143 144 write(#,e)'use default cable data? (y * I / n • 0 )' read(•,•Ians If (ans.eq.l) then e - 2d7 dla - 0.375d0 elseif (ana.eg.0 ) then wrlte(*,•)'Input cable modulusi (pal)' read(•,*)e wrlte(*,*)'Input cable diameter: (Inches)' read(*,*)dla else goto 100 endlf wrlteC,*)' Input desired tension: (lbs.)' read(*,B)t wrIte(B,B)'Input maxImum-mlnImum response range: (+ or - ?%)' read(*,*)range th * t * (I + range/1 0 0 ) tl * t • (I - range/10 0 ) wrlte(*,4)'high tension Is ',th,' lbs.' wrlte(e,4)'low tension Is ',tl,' lbs.' format(' ',a,f12.6 ,a) wrIteC,")'correctIon Is begun when these limits are reached' ao = 3.1415926536d0 • dla**2 / 4 mg = I.035d0 • (dla/0.75d0)ee2 Input coordinates of sheaves wrlte(*,e)'Input coordinates from file or keyboard?' wrltet*,*)' ( 0 * file, I * keyboard)' read(*,*)ans xs(0 ) = 0 Zs(O) - 0 routine to read pre-existing file If(ans.eq.O)then wrlte(e,•)'Input filename please read(•,1 1 0 )f1 1 ename format(a1 2 ) open(!,file - filename) read(1 ,1 1 1 )n format(13) xs(O) = 0 zs(0 ) * 0 do 102, I » l.n read(I,I1 2 )x(I) (2 0 characters max.)' 64 Figure 23. Continued 145 read(I,I1 2 )z(I) 146 X3(I) - XS(I-I) ♦ X(I) ZS(I) - ZS(I-I) + Z(I) 147 148 readd, HUstat(I) 149 1 1 2 format(f1 0 .2 ) continue 150 1 0 2 elself(ans.eq.Dthen 151 152 wrlte(","!'Initial (uppermost) sheave Is (0,0),' wrlte(*,e)'positive z Is toward the ground:' 153 154 wrlteC,")'create coordinate file to save?' wrlteC,")' (I - yes, 0 - no)' 155 read(*,*)ans2 156 157 routIne to create file 158 159 If(ans2 .eq.Dthen 160 wrlteC,*)' Input filename please' 161 wrlteC,")'( 2 0 characters max.)' 162 read(•,I1 0 )fIlename 163 164 open(I,fI Ie - fIlename,status -'new') wrlte(*,e)'how many spans? ( 1 0 0 max.)' 165 read(*,e)n 166 wrlted.UDn 167 wrltet*,")'Input sheave coordinates:' 168 wrlteC,")' x(0) - 0, z(0) - 0' 169 170 wrIte(",*)'caution: Idler sheaves cannot be at' wrlteC,")' 171 a higher elevation than the' wrlteC,")' 172 Immediately previous sheave' writer,")' 173 whether the previous sheave' 174 writer,')' Is an Idler or a driven' writer,")' sheavel' 175 do 103, I - I.n 176 writer,2 )'x(',I.') - ?' 177 178 read(",")xs(D 179 x(l) - XS(I)-XS(I-I) wrtte(I,I1 2 )x(I) 180 writer,2 )'z(',I,') - ?' 181 read(",")zs(I) 182 z(D - zs(l )-zs(l-l) 183 wrlte(I,I1 2 )z(I) 184 writer,")'Idler sheave?' 185 104 writer,")' I - yes, 0 - no' 186 read(",")stat(l) 187 If((stat(I).eq.I).or. 188 (stat(I).eq.0 ))then + 189 write!1 ,1 1 1 )stat(I) 190 else 191 go to 104 192 endlf 193 contInue 194 103 close!I) 195 elself(ans2 .eq.O)then. 196 197 routine for no file 198 199 writer,")'Input number of spans ( 1 0 0 max.)' 200 read(*,*)n 201 writer,")'Input coordinates of sheaves:' 202 (>5 Figure 23. Continued 203 204 205 206 207 208 209 writer,l)'x(l),z(l) to x(',n,'),z(',n,')' writer,Tx(O) - 0 , z(0 ) - 0 Is' writer,Tthe Initial sheave coordinate,' wrlteC,l)'x('.n,'),z(',n. ') Is the terminal sheave coordinate' writer,Tx(n) > x(n + I)' writer ,"!'caution: Idler sheaves cannot be at' writer,*)' a higher elevation than the' writer,*)' Immediately previous sheave' write(*,*)' whether the previous sheave' writer,*)' Is an Idler or a driven' writer,*)' sheavel' format(' ',2 (a,1 2 ).a) do 10 I - l,n writer,2 )'x(',I,') » 7 ' read(*,*)xs(l) X(I)- XS(I)-xs(1-1) writer,2 )'z(',I.') - 7' read(*,*)zs(I) Z(I) - ZS(I)-zs(1-1) writer,*)' Idler sheave?' writer ,*)'(I » yes, 0 - no)' read(*,*)stat(l) If((stat(I).eq.0 ).or.(stat(I).eq.I))then continue else go to 105 endlf contInue format(' ',a,12 ,a) + 210 211 212 213 214 215 I 216 217 218 219 220 221 222 223 105 224 225 226 227 228 229 230 231 10 232 2 233 234 • 235 236 237 238 239 initial dimensions, status, and coordinates have been entered endIf endIf return end INlTIA Local Symbols Name Class I ......... OlA........ ANS2........ ANS........ RANGE ...... FlLENA...... F ......... TH......... TL......... SPEED ...... LOS........ LO......... TE......... TO......... ...... CALC THETA...... Type INTEGER‘4 REAL- 8 INTEGER*4 INTEGER*4 REAL* 8 CHAR*20 REAL* 8 REAL'S REAL* 8 REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S Size Offset 4 0002 8 0006 000e 4 4 8 20 1600 8 8 808 8 800 800 800 800 0012 0016 OOle 0000 0640 0648 0650 0000 0008 0328 0648 0968 66 Figure 23. Continued IHITIA Name Local S y m b o l 3 Class S ......... X ......... Z ......... XS......... ZS......... CHORD ...... CHSL. . . . . . ...... DIM STAT........ NOLOAD...... ...... DIM AO......... E ......... MG......... T ......... N ......... Type Size Offset REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S INTEGER'4 INTEGER'4 REAL'S REAL'S REAL'S REAL'S INTEGER'4 1600 800 800 808 808 SOO SOO 404 4 0 88 0000 8 8 8 8 4 c 0320 0640 0968 0c90 OfbO 12 d0 1464 1468 1470 1478 1480 1488 240 ....................................................... 241 • end of subroutine Initial 242 ....................................................... q 243 ....................................................... 244 * subprogram span.for 3/7/88 AlTurk 245 ....................................................... 246 subroutine span 247 ....................................................... 248 common 249 + /dlm/x(100),z(100).xs(0:100),zs(0:100).chord(100),chsI(100), 250 + stat(0:100),noload,ao.e,mg,t,n 251 + /mag/f(200),th.tl,speed(0:100) 252 + /calc/los,lo(100),te(100),to(100),theta(100),s(200) 253 .......................... 254 real* 8 x.z,lo,los,theta,te,to,ao,mg,e,xs,zs,s,f,t,th.tl 255 real* 8 speed.chord,chsI 256 Integer stat,n,noIoad,I 257 ....................................................... 258 .......................... 259 ' find slope angle theta and chord length Io for all spans 260 ....... ",................. 261 los = 0 262 do I I = l.n 263 chord(I) » dsqrt(x(I)'"2 + z(l)""2) 264 los » los + Io(I) 265 chsI(I) = datan(z(I)/x(I)) 266 2 format(' ',a,I3,a,f8.3,a,f8.5,a) 267 write!",2)'For span ',I,' chord length » ',chord(l), 268 + ' feet and chord slope - ',ChsI(I),' radians.' 269 I continue 270 return 271 end 67 Figure 23. Continued SPAN Loca I Symbo Is Name Class I ......... X ......... Z ......... XS......... ZS......... CHORD ...... CHSL........ STAT........ NOLOAO...... AO......... E ......... MG......... T ......... N ......... F ......... TH......... TL......... ...... MAG SPEED ...... ...... MAG LOS........ LO......... TE......... TO......... ...... CALC THETA ...... S ......... Type Size INTEGER*4 REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S INTEGER"4 INTEGER'4 REAL'S REAL'S REAL'S REAL'S INTEGER*4 REAL'S REAL'S REAL' 8 REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S 273 • end of subroutine span.for 276 • real function asInh 278 279 280 281 282 real* 8 function aslnh(x) real* 8 >C asInh - dlog(x + dsqrt(x" return end 4 800 800 808 808 800 800 404 4 8 8 8 8 4 1600 8 8 808 8 800 800 800 800 1600 2 Offset 0032 0000 0320 0640 0968 0c90 OfbO I2 d0 1464 1468 1470 1478 1480 1488 0000 0640 0648 0650 0000 0008 0328 0648 0968 0 c8 8 + D) ASlNH Local Symbols Class Name ASINH ............ X ............... 283 284 285 286 287 288 289 290 291 . param . param Type SIze Offset 0006 0008 .................................................... .................................... ................ * subroutine newt.for 3/7/88 Al Turk .................................................... subroutIne newt .................................................... common + /dlm/x(100),z(100),xs(0:100),zs(0i100),chord!100),chsl(100), + stat(0 :1 0 0 ),noload,ao.e,mg,t.n 6 8 Figure 23. Continued 292 293 295 296 297 298 299 300 301 2 302 303 304 305 4 306 3 307 308 309 I 310 311 + /mag/f(200),th.tl,3 peed(0 :100) + /calc/los,lo(100),te(100),to(100),theta(100),s(200) real‘ 8 x.z,lo,lo3 ,theta,te,to,ao,mg,e,xs,z3 ,s,f,t real’s speed,sp,chord,chsI Integer stat.n,noload,I,Index character f1 1 ename’ 2 0 write!’,’)'Input name of data file ( 2 0 char, max) read(’,2 )fIIename format(alO) open(2,fIIe » f11ename,status ■ 'new') do 3, I * l,n write!’,4)chord(I),chsI(I),x(I),z(I),I formate ',4(f15.8), 13) cent Inue do I, I > I,n call newton(I) contInue return end NEWT Local Symbols Name I .............. FILENA........... X .............. Z .............. XS.............. ZS.............. CHORD ........... CHSL............ STAT............ NOLOAO........... AO.............. E .............. MG.............. T .............. N .............. F .............. TH.............. TL.............. SPEED ........... LOS............ LO.............. TE.............. TO.............. THETA ........... S ............. Class . . DIM . . DIM . . DIM . . CALC . . CALC . . CALC . . CALC Type INTEGER’4 CHAR*20 REAL’S REAL’S REAL’S REAL’S REAL’S REAL’S INTEGER’4 INTEGER’4 REAL’S REAL’S REAL’S REAL’S INTEGER’4 REAL’S REAL’S REAL’S REAL’S REAL’S REAL’S REAL’S REAL’S REAL’S REAL’S Size 4 20 800 800 808 808 800 800 404 4 8 8 8 8 4 1600 8 8 808 8 800 800 800 800 1600 Offset 0036 003a 0000 0320 0640 0968 0c90 OfbO 12 d0 1464 1468 1470 1478 1480 1488 0000 0640 0648 0650 0000 0008 0328 0648 0968 0 c8 8 312 ..................... .............*................. 313 subroutine newton(I) 314 .................................................... 315 common 316 + /dlm/x(100),z(100),xs(0:100),zs(0:100),chord(100),chs1(100), 317 + stat(0:100),noload,ao.e,mg,t,n 69 Figure 23. Continued 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 I 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 + /mag/f(2 0 0 ),th.tl,speed(0 i1 0 0 ) + /calc/los,lo(1 0 0 ),te(1 0 0 ),to(1 0 0 ).theta(1 0 0 ),3 (2 0 0 ) *8 mg, ,t, real x.z,lo,loa,theta,te,to,ao, e.xa.zs.s.f th.tl real* 8 speed,sp.xd.zd.ts,Iol,thetl,chord.chsl real* 8 dxt.dxl,dzt.dzl,dl,dt.a.b.c.d,lolnc.thtnc.det Integer stat,n,noload,I,Indexl find the A terms (partial derivatives w/respect to Io,theta) lolnc Is an Incremental change In lo, thlnc Is an Incremental change In theta theta(I) - chsl(I) stat(O) - 0 stat(n) * 0 Index! - 0 Index2 * 0 If(thetatI)-eq.O) theta(I) - O.OSdO check for Idler sheaves If(z(I).lt.0 )then If(stat(I).eg.Dthen wrlteC.T •••• WARNING ••••' wrltet*,*)' Idler sheave at higher elevation' wrlte(,,»)'than previous sheaveI High tension point.' endl f endIf set tension by sheave type If(Statd-I) .eq.O)then te(l) . t else ted) - to(l-l) endIf begin Iterative loop lolnc * chord(I) • I.OldO thlnc » theta(I) • I.OldO thetl - theta(I) If(Index2.eq.O)then Iol * chord(I) Index2 * I elself(lndex2 .eq.Dthen Iol * Io(I) endl f find dxl (partial of xd w/respect to lo) a - xd(lolnc,thetl,ted),mg.e.ao) b * xddoI,thetl,te(I),mg.e.ao) dxl - (a - b)/(0 .0 ld0 "lol) find dzl (partial of zd w/respect to lo) c » zd(lolnc,thetl,te(I),mg.e.ao) 70 Figure 23. Continued 376 d - zd(Iol,thetl,te(I),mg.e.ao) 377 dzl - (c - d)/(0.OldOeIoI) 378 379 find dxt.dzt (partial of xd.zd w/reapect to theta) 380 381 a » xd(Iol,thine,te<I),mg.e.ao) 382 c * zd(Iol,thine,te(I),mg.e.ao) 383 dxt - (a - b)/(0 .0 1 d0 ethetl) 384 dzt » (c - d)/(0 .0 1 d0 ethet1 ) 385 find the B terms (a » b - : 386 387 a - b - x(I) 388 389 c - d - z(I) 390 find the X terms 391 392 det ■ dxl*dzt - dzl*dxt 393 394 dl - (a • dzt - c e dxt)/det dt - (c • dxl - a • dzl)/det 395 theta(I) - thetl - dt 396 397 lo(I) * Iol - dl 398 If(theta(I).gt.I.57d0)then 399 theta(I) - (I.5 7 d0 +ch3 l(i))/2 d0 400 elaelf(theta(I).It.chal(I))then 401 theta(I) * chal(I) endIf 402 If(lo(I).lt.0 )then 403 404 Io(I) - lo(I)/2d0 elaelf(lo(I).gt.(2 echord(I)))then 405 Io(I) = chord(I)e2d0 406 endIf 407 If((daba(dt).It.Id-7).and.(daba(dl).It.Id-7))then 408 409 to(I) a daqrt((te(I)edcoa(theta(I) ) ) e e 2 > 410 + (te(I)edaln(theta(I))-lo(I)*mg)ee2 ) 411 wrlte(2,500)te(I),to(I),speed(I),lo(I),I format(4(f15.5),13) 412 500 413 write(e,501)x(I),z(I),lo(I).theta(I),te( I),to( I) 414 501 format(' ',6(2x,f10.4)) return 415 else 416 goto I 417 endl f 418 419 end of subprogram newt.for 420 421 end 422 NEWTON Local Symbols O O <P > Class . param . Ioca I . IocaI . local . Ioca I Type REAL‘ 8 REAL»8 REAL'S REAL'S Size 8 8 8 8 Offset 0006 004e 0056 005e 0066 71 Figure 23. Continued NEWTON Local Symbols Name DL......... DT......... DET........ LOI........ DXL........ INDEXl...... 1NDEX2...... DZL........ DXT........ DZT........ LOINC ...... THING ...... THETI ...... T ......... N ......... F ......... TH......... TL......... SPEED ...... LOS........ LO......... TE......... TO......... THETA ...... S ......... X ......... Z ......... XS......... ZS......... CHORD ...... CHSL........ STAT........ NOLOAD...... AO......... E ......... MG......... 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 Class Type ...... MAG ...... CALC ...... CALC ...... CALC REAL'S REAL'S REAL'S REAL'S REAL'S INTEGER'4 INTEGER'4 REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S INTEGER'4 REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S INTEGER'4 INTEGER'4 REAL'S REAL'S REAL'S Size 8 8 8 8 8 4 4 8 8 S S 8 8 8 4 1600 8 8 808 8 800 800 800 800 1600 800 800 808 808 800 800 404 4 8 8 8 Offset 006e 0076 007e 0086 OOSe 0096 009a 009e 0 0 a6 OOae 0 0 b6 OObe 0 0 c6 1480 1488 0000 0640 0648 0650 0000 0008 0328 0648 0968 0 c8 8 0000 0320 0640 0968 0c90 OfbO 12 d0 1464 1468 1470 1478 subprogram xd.for With the given parameters, this function determines the x location of the cable at the terminal end. real* 8 function xd(I,angle,ten,mg,e.ao) real* 8 angle,ten,I,ao,e,v,h,aslnh,mg,a,b,c h = ten • dcos(angle) v = ten * dsin(angle) 72 Figure 23. Continued 439 440 441 442 443 444 445 446 447 448 a = h • I/(e • ao) b = h / mg c = aslnh(v/h) - aslnh((v - mg’I)/h) xd = a + b’c • ’ return ###,H * end of subprogram xd.for end XO Local Symbols Class Name XO.............. AO.............. E .............. MG.............. TEN............ ANGLE ........... L .............. A .............. B ............ . C ............ H ............ V ............ 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 Type Size Offset 0006 0008 000c 0010 REAL’S REAL’S REAL’S REAL’S REAL’S 8 8 8 8 8 0014 0018 001c OOce 0 0 d6 OOde 0 0 e6 OOee ........ *... ..................... *... ................ . ....................................................... . * subprogram zd.for ....................................................... . • With the given parameters, this program finds the z location of * the terminal end of the cable. ....................................................... real* 8 function zd(I,angle,ten,mg,e,ao) ....................................................... real’s angle,I,ao,e,v,h,w,mg,ten,a,b,c ’ ’ ’ h => ten • dcos(angle) v = ten ’ dsln(angle) • ’ a = mg • I * I ’ (v/(mg e I)- 0.5d0)/(e • ao) b = h / mg c = dsqrtd + (v/h)“ 2) - dsqrt(I + ((v - mg • I)/h)“ 2) zd = a + b’c ’ • return ’ end of subprogram zd.for • end 73 Figure 23. Continued ZD Loca I Sytnbo Is Name Class Type Size 0006 0008 000c ZD. . AO. . E .. MG. . TEN . ANGLE L.. A .. B .. C . . H .. V.. 476 *' 477 • 478 * 479 .... 480 481 482 + 483 + 484 + 485 + 486 •* 487 488 489 490 *• 491 492 493 494 495 496 497 498 499 500 501 502 503 I 504 505 506 507 508 509 510 511 512 513 514 • 515 • 516 • Offset 0010 REAL'S REAL'S REAL'S REAL'S REAL'S subroutine point.for 8 8 8 8 8 3/9/88 0014 0018 001c 0 0 f6 OOfe 0106 OlOe 0116 Al Turk subroutine point common /dim/x(1 0 0 ).z(1 0 0 ).xs(0 :1 0 0 ),zs(0 :1 0 0 ),chordt1 0 0 ),chsI(1 0 0 ), Stat(OzlOO),noload.ao.e.mg.t.n /mag/f(200),th.tl,Speed(OzlOO) /calc/los,lo(1 0 0 ).te(1 0 0 ),to(1 0 0 ),theta(1 0 0 ),3 (2 0 0 ) real* 8 x,z,1o,los.theta.te.to.ao.mg.e.xs.zs.s.f,t.th.tl real" 8 speed,chord,chsI,pload,vload,r(2 0 0 ),mean integer stat.n.ansI,I,start,num.noload write(*,*)'Do you want constant or random load magnitudes?' wrltet",")' (I ■ constant, 0 » random)' read(*,e)ansl If(ansi -eq. Dthen write(e,*)'What Is the load magnitude? (pounds)' read(*,e)pload write(*,e)'How many loads do you wish to move' write(e,e)'across the system of spans? ( 2 0 0 max.)' read(e,e)num noload - nura do I, I - l.num f(I) ■ pload contInue elseIf(ansi.eq.0 )then wrltet*,e)'What Is the mean load magnitude? (pounds)' read(*,e)pload wrlte(*,e)'What Is the range of variation? (+/- ?)' read(e,•)vIoad pload » pload - vload vIoad a vload * 2 d0 wrltet*,e)'How many loads do you wish to move' write(•,‘!'across the system of spans? ( 2 0 0 max.)' read(*,*)num find random numbers 74 Figure 23. Continued 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 noload ■ num start - lnt(dsqrt(lo(n)'"2 /theta(1 )»"2 )) ca11 rand(start,num,r) mean * 0 do 2 , I - I,num F(I) - pload + vloader(l) mean » mean + F(I) contInue mean ■ mean/num wr1te(e,9)'Average weight Is ',mean,' pounds.' Formate ',a,F10.5,a) 2 9 3 4 * • • end! F wrlte(e,e)'Do you want random or constant load spaclngsT' wrltet*,*)' (I * constant, 0 » random)' read(e,e)ansl IF(ansl.eq.I)then wrlteC,") 'What Is the load spacing? (Feet)' read(e,*)pload do 3, I » I, num S(I) » pload continue elselF(ansl.eq.0)then start a lnt(dsqrt(lo(I)e*2 /theta(n)ee2 )) call rand(start,num,r) wrlte(",*)'What Is the mean load spacing? (Feet)' read(e,*)pload wrltee,*)'What Is the range oF variation? (♦/- ?)' read(•,*)vIoad pload = pload - vload vIoad » vload • 2 d0 mean » 0 do 4, I » I,num-I s(l) * pload + vload*r(I) mean - mean + s(I) contInue mean a mean/(num-I) wrlteC,9)'Average spacing Is ',mean,' Feet.' endIF s(n) = id7 return end oF subroutine point.For end POINT Local Symbols Name I ......... START ...... R ......... ANSI........ MEAN........ NUM........ PLOAD ...... VLOAD ...... Class Type Size OFFset INTEGER"4 INTEGER"4 REAL" 8 INTEGER"4 REAL'S INTEGER"4 REAL'S REAL'S 4 4 1600 4 Olle 8 a 4 8 0122 0126 0766 076a 0772 0776 077e 75 Figure 23. Continued POINT Local Symbols Class Name REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S INTEGER'4 INTEGER'4 REAL'S REAL'S REAL'S REAL'S INTEGER'4 REAL'S REAL'S TL......... SPEED ...... LOS........ LO......... TE......... TO......... THETA ...... S ......... X ......... Z ......... XS......... ZS......... CHORD ...... CHSL........ STAT........ NOLOAO...... AO......... E ......... MG......... T ......... N ......... F ......... TH......... 561 562 • 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 10 578 579 580 Type Size 8 808 8 800 800 800 800 1600 800 800 80S 808 800 800 404 4 8 8 8 8 4 1600 S Offset 0648 0650 0000 0008 0328 0648 0968 Oc8 8 0000 0320 0640 0968 0c90 OfbO 12 d0 1464 1468 1470 1478 1480 1488 0000 0640 subprogram rand.for subroutine rand(start,Int,r real'8 r(I),x Integer start,max,I,J,Int J - I max » start + Int do 10 1=1,max cal I random!x) If(I.ge.startlthen r(J) = X J » J + I endl f contInue return end RANO LocaI SymboIs Name Class R .................. param INT................ param START............... param Type Size Offset 0006 OOOa OOOe 76 Figure 23. Continued RAND Local Symbols Class Name INTEGER*4 INTEGER*4 REAL'S INTEGER*4 I ......... J ......... X ......... MAX........ 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 * 600 601 602 603 604 Type Size Offset 4 4 0786 078a 078e 0796 8 4 subprogram random.for subroutine random(z) real* 8 fm.fx.z Integer a.x data 1 /1 / If( I .eq. I) then I- 0 m = 2**20 fm ■ m x =» 566387 a - 2**10 + 3 endIf x = mod(a*x,m) fx = X z = fx/fm return end RANDOM Local Symbols Name Class Type Z ................. param A .................. local M .................. local FM.................. local X .................. local FX.................. local I .................. local 605 606 607 608 609 610 611 612 613 614 INTEGER*4 INTEGER*4 REAL* 8 INTEGER*4 REAL'S INTEGER*4 Size 4 4 8 4 8 4 Offset 0006 079a 079e 07a2 07aa 07ae 0b8a .................................................... . ............ *****................................... . * subroutine sheave.for 3/10/88 Al Turk *.........*.......................................... * This subroutine gathers the necessary data for sheave and * cable motion. .................................................... subroutine sheave common + /dlm/x(1 0 0 ),z(I0 0 ),xs(0 :1 0 0 ),zs(0 i1 0 0 ).chord!1 0 0 ),chsl(1 0 0 ), 77 Figure 23. Continued 615 + stat(0:100),noload,ao.e,mg,t,n 616 + /mag/f(2 0 0 ),th.tl,speed(0 :1 0 0 ) 617 + /calc/los,lo(100),te(100).to(100),theta(100),3 (2 0 0 ) 618 .............................. 619 real* 8 x.z,lo,los.theta,te,to.ao,mg,e,xs,zs,s,f,t,th.tl 620 real' 8 speed,chord,chsl,design,dealnc.dlfInc 621 real' 8 loload,loin,loout.ctnc 622 real' 8 time,tmon,tine,tadj,Inc 623 Integer stat,n.numlnc,noload,Itsave,111 624 data Itsave,111/-1,0/ 625 ...................................................... 626 write!',')'What Is the design speed of the system? (feet/sec)' 627 read!','!design 628 wrlte(',')'What Is the Increment of time for recalculation of 629 wrIte(',*)'system tensions? (second) (< 0.5 sec.)' 630 read(',')tlnc 631 wrlte(*,*)'How many time Increments pass before adjustment ' 632 write!',') 'of the sheave speed Is made? (M)' 633 read(',ll)numlnc 634 tadj » tine ' numlnc 635 wrlte(',')'What fraction of the designspeed Is the base' 636 write!',')'adjustment Increment? (x *design speed) ' 637 read(',*)Inc 638 deslnc * design'Inc 639 wrlte(*,')'How predominant should differential tension relief 640 write!',')'be over In-span tension relief? (Increment ' x)' 641 read(',')Inc 642 dlflnc = deslnc • Inc 643 ...................................................... 644 • Variables defined 645 dlflnc: speed Increment of differential tension relief 646 speed Increment of In-span tension relief 647 desInc: design speed desIgn: 648 time Increment of recalculation 649 tine: numlnc: time Increment of sheave speed adjustment* 650 651 set the Initial sheave speeds 652 653 If!1 1 1 .eq.0 )then 654 111 = »I 655 tmon = 0 656 time = 0 657 do I, I » 0 ,n 658 If(stat(I).eq.0 )then 659 speed!I) - design 660 elself(stat!I).eq.I)then 661 speed!D - O 662 endlf 663 contInue 664 l endIf 665 666 667 668 669 670 * £*7I 672 Find the amount of unstrained cable passing over each driven sheave, loin and loout are the amounts entering and leaving the span In question. Free sheaves are assigned a speed of zero, therefore they have no effect on changes In span length. loload = 0 78 Figure 23. Continued 2 do 2, I = I,n cine =* speed! 1 - 1 )*tlnc If(I.eq.I)then loin - clnc/(I + t/(e*ao)) loload a loload + loin write!*,4)loload format(' ','loload - ',f1 0 .2 ) elself!I.gt.Olthen loin » ctnc/(I + to!I-I)/(eeao)) endIf cine - speed!I)"tine loout » clnc/(I + to!I)/!e*ao)) lo! 1 1 - Io(I) + loin - loout contInue • * * * * * # * From this point on, the calculations are done with theta and tension as the unknowns, length Io Is now known for each span between powered sheaves. With Intermediate Idler sheaves the total length between the drive sheaves Is known, but the Individual span lengths will be found by Iteration along with the tension and theta at the Initial drive sheave. Loload Is the distance from the first sheave of the system to the first load entering the system (measured In unstrained cable). 673 3 674 675 676 677 678 679 4 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 do 101, I - I,n-1 wr1te(2,100)te(I),to!I),speed!I),Io(I),I 101 contInue format(4(f15.5),13) 100 If!Itsave.It.0 )then write!",")'pick a span to save graph data (span #)' read!",*)Itsave open(4,fIIe - 'Itsave.prn',status = 'new') endIf wr1te(4,103)te(Itsave),te(Itsave)-to!Itsave-I),to!Itsave), . + te(ltsave+1 )-to(Itsave),speed!Itsave),lo!Itsave),Itsave write(2 ,1 0 2 )te(n),to(n),speed(n),lo(n),n.tlme,loload format(4(f15.5),I3,2(fl5.5)) 10 2 format(6(f15.5),13) 103 open(3,fIIe » 'warning.dat',status » 'new') time = time + tine tmon = tmon + tine if(tmon.ge. (0.999*tadJDthen cal I adJust(desIgn,dIfInc,desInc,11me) tmon =* 0 end! f call newnewt!loload) goto 3 return end SHEAVE Local Symbols Name I ......... NUMlNC...... LOOUT ...... Class Type INTEGER*4 INTEGER*4 REAL* 8 Size 4 4 8 Offset 07b6 07ba 07be 79 Figure 23. Continued SHEAVE Local Symbols Name Class INC ... . CINC. . . . TADJ. . . . DIFINC. . . TlNC. . . . TIME. . . . LOIN. . . . DESINC. . . DESIGN. . . LOLOAD. . . TMON. . . . ITSAVE. . . Ill ... . MG...... T ...... N ...... F ...... TH...... TL...... SPEED . . . LOS ... . LO...... TE...... TO...... THETA . . . S ...... X ...... Z ...... XS...... ZS...... CHORD . . . CHSL. . . . STAT. . . . NOLOAD. . . AO...... E ...... ...... CALC Type REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S INTEGER'4 INTEGER'4 REAL'S REAL'S INTEGER'4 REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S INTEGER*4 INTEGER'4 REAL'S REAL'S Size 8 8 8 8 8 8 8 8 8 8 8 4 4 8 S 4 1600 8 8 80S S 800 800 800 800 1600 800 800 808 808 800 800 404 4 8 8 Offset 07c6 07ce 07d6 07de 07e6 07ee 07f6 07fe 0806 080e 0816 OdSc 0d60 1478 1480 1488 0000 0640 0648 0650 0000 0008 0328 0648 0968 0 c8 8 0000 0320 0640 0968 0c90 OfbO 12 d0 1464 1468 1470 U.L — ---------- --- --- ----- --- ----- ----------- ---- ...... 724 725 726 727 728 729 730 731 732 733 734 735 736 737 -" ••• • * *•• subroutine adJust.for 3/10/88 Al Turk This subroutine will change the speed of the sheaves to relieve the excessive <ar Insufficient tens Ions In the system. + + + + subroutIne adjust(desIgn.dlfInc,desInc.tIme) common /dIm/x(10 0 ),z(10 0 ),xs(0 :10 0 ),zs(0 :10 0 ),chord(1 0 0 ),chs1 (1 0 0 ), stat(0 :1 0 0 ),noload,ao,e,mg,t,n /mag/f(2 0 0 ),th,tl,speed!0 :1 0 0 ) /calc/los,lo(1 0 0 ),te(1 0 0 ),to(1 0 0 ),theta(1 0 0 ),3 (2 0 0 ) real* 8 x,z,lo,los,theta,te,to.ao.mg.e.xs.zs.s.f.t.th.tl real' 8 speed,chord,chsI,design,deslnc.dlfInc 80 Figure 23. Continued 738 739 740 741 ... 742 ... 743 • 744 • 745 ... 746 747 ... 748 • 749 ... 750 751 752 753 754 755 756 757 ... 758 759 ... 760 761 762 763 764 765 766 767 768 769 770 771 772 773 • 774 • 775 • • 776 •••• 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 200 real* 8 ta.tb.tc.tl,adjnum.a.b.c.avgspd.tlme Integer stat.n,Inc,numlnc.noload.J,I,Inlt data lnlt/0 / relieve the In-span tensions by adjusting sheave speeds by Increment deslnc If(Inlt.eq.Olthen enter these coefficient only once write(•,•)'Input the coefficient of friction (cable/sheaveIi' read(*,*)a wrlte(*,*)'Input the wrap angle estimate (In radians):' read(*,*)b wrlte(e,e)'Input the desired safety factor of slippage:' read(",*)c Inlt - I endIf do I, I > I.n If(stat(1-1 ).eg.Olthen If(te(I).ge.th)then speed(I-I) * speed!I-I) + deslnc elself(te(I).le.tl!then speed(l-l) # speed(1-1 ) - deslnc endIf If(to!I).gt.thlthen speed(I) » speed(I) - deslnc elself(to(I).It.tl)then speed(I) a speed(I) + deslnc endIf calculate allowable differential tension using b as the angle of wrap, a as the coefficient of friction, and c as the safety factor, adjust If necessary by Increment dlflnc If(I.eq,n)then tl ■ t elself(I.It.n)then tl « te(1+1 ) endlf If(to(I).ge.ti)then ta a to(I) tb - tl tC a - I elself(to(I).It.tl)then ta » tl tb » to(I) tC a I endIf adjnum a c*(ta-tb)/(dexp(b*a)-l) If(tb.lt.adjnum)then speed(I) a speed(I) + tc*dlfInc wrlte(3,200)te(I),to(I),speed(I),adjnum,time,I format(5(f15.5),13) 81 Figure 23. Continued 796 797 798 799 800 I 801 802 803 804 805 806 807 808 809 810 811 812 813 814 2 815 816 817 818 819 820 821 3 822 823 824 825 826 827 4 828 829 830 831 832 833 endIf eIse If(stat(I-1).eq.Dthen speed!1-1 ) - 0 endIf contInue reset the speed of Idler sheaves to zero.and find the average speed of the drive sheaves avgspd = 0 J-o do 2, I = 0,n If(stat(I).eq.I)then speed!I) * 0 elself(stat!I).eq.0 )then avgspd » avgspd + speed!I) J-Jtl endl f contInue avgspd m avgspd/J If(avgspd.ge.(design + deslnc))then do 3, I - 0,n If(stat!I).eq.0 )then speed!I) - speed!I) - deslnc endIf contInue elself(avgspd.le.(design - deslnc))then do 4, I= 0,n If(stat!I).eq.Olthen speed!I) - speed!I) + deslnc endIf contInue endIf end of subroutine adjust.for return end ADJUST Local Symbols Name TIME........ DESlNC...... OIFINC...... DESIGN...... A ......... B ......... C ......... AVGSPD...... I ......... J ......... TA......... TB......... TC......... TI......... Class Type Size Offset 0006 000a 000e 0012 REAL»8 REAL* 8 REAL" 8 REAL1S INTEGER14 INTEGER-4 REAL'S REAL'S REAL'S REAL'S 08Ie 0826 082e 0836 083e 0842 0846 084e 0856 085e 8 8 8 8 4 4 8 8 8 8 I 82 Figure 23. Continued ADJUST Local Symbols Class Name REAL'S INTEGER'4 REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S INTEGER'4 INTEGER*4 REAL'S REAL'S REAL'S REAL'S INTEGER'4 REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S ADJNUM...... INlT........ X ......... Z ......... XS......... ZS......... CHORD ...... CHSL........ STAT........ NOLOAO...... AO......... E ......... MG......... T ......... N ......... F ......... TH......... TL......... SPEED ...... LOS........ LO......... TE......... TO......... THETA ...... S ......... 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 Type subroutine newnewt.for > + + + Size 8 4 800 800 808 808 800 800 404 4 8 8 8 8 4 1600 8 8 808 8 800 800 800 800 1600 3/14/88 Offset 0866 Oeaa 0000 0320 0640 0968 0c90 OfbO 12 d0 1464 1468 1470 1478 1480 1488 0000 0640 0648 0650 0000 0008 0328 0648 0968 0 c8 8 Al Turk subroutine newnewt(loload) common /dlm/x(1 0 0 ).z(1 0 0 ),xs(0 :1 0 0 ).zs(0 :1 0 0 ),chord!1 0 0 ),chsl(1 0 0 ), stat(0 :1 0 0 ),noload,ao.e,mg,t.n /mag/f(2 0 0 ),th.tl,speed(0 :1 0 0 ) /calc/los,Io(IOO),te(100),to(100),theta(100),s(200) real' 8 x.z.xs.zs,chord,chsl,ao.e,mg,t real" 8 f,th.tl,speed real* 8 Ios,lo,te.to,theta.s real* 8 sigma(1 0 0 ,1 0 ),lp,1oad(1 0 0 ,1 0 ) real* 8 IoIoad,drspan(1 0 0 ),drtot(0 :1 0 0 ),si(1 0 ),fI(1 0 ) Integer span,stat.n,noload,lndx(100),dr!nd(100) find the cable length between drive sheaves drspan(I) Is the unstrained cable length between the Ith set of drive sheaves drInd(I) Is the number of spans within the drive sheave span J = I I= I 8 3 Figure 23. Continued 861 862 863 864 865 •• " "" I 866 867 span between 2 powered sheaves If((stat(I-I).eq.O).and.(state I).eq.O))then drspan(J) » Io(I) drtnd(J) » I If(I.eq.n) goto 2 868 J « J+ I 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 I- I+ I goto I *« " •« powered sheave followed by free sheave elseif((stat(I-1).eq.O).and.(stat(I).eq.I))then drspan(J) » Io(I) drlnd(J) » I If(I.eq.n) goto 2 I- I+ I goto I •' * *' free sheave followed by free sheave elself((stat(1-1 ).eq.I).and.(stat(I).eq.I))then drspan(j) * drspan(J) + Io(I) drInd(J) * drind(J) + I 886 1 887 goto I 888 = 1 + 1 • 889 • 890 • 891 892 893 894 895 896 897 898 899 2 900 901 902 903 3 904 905 » 906 * 907 908 909 910 911 912 913 914 915 916 4 917 918 • free sheave followed by powered sheave elself((stat(I-1).eq.I).and.(stat(I).eq.O))then drspan(j) * drspan(j) + Io(I) drInd(J) = drInd(J) + I If(I.eq.n) goto 2 J - J + I 1 = 1 + 1 goto I endl f contInue Js = J do 3, I = I,Js lndx(D = O contInue position loads within the driven spans. I.e. distance from the Initial drive sheave find the length of cable to each driven span drtot(l) is the cable distance to the Ith sheave drtot(O) = 0 drtot(l) = drspan(I) do 4, I = 2.J drtot(I) = drtot(I -I)+ drspan(l) contInue position the first load (IoIoad) 84 Figure 23. Continued 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 5 937 938 939 940 941 942 943 944 945 946 947 7 948 949 950 951 952 953 954 955 956 957 958 959 960 961 6 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 Ip Is the load position In cable from the origin check for loads exiting system I- I Ip » Ioload If(loload.ge.drtottJ))then Io Ioad « Ioload - s(I) Ip * Ioload noload » noload - I If(noload.eq.0 )then wrlte(*,*)'Al I loads have passed over system!' stop endl f do 5, I - I,noload s(l) - s(l + I) f(l) - f(l + I) contInue endIf position loads within driven span I e. sigma(l,2) Is the second load within the first span I * Index of load spacing k =» Index of load numbering J = Index of span numbering I- I k= I If(lp.ge.drtot(J-II!then slgma(J,k) » Ip - drtot(J-l) load(J.k) a f(11 Indx(J) » k Ip-lp-s(l) 1-1 + 1 k-k+ I go to 7 elselfdp. lt.drtot(J))then If(J.eq.I)go to 6 J-J-I k- I goto 7 endIf contInue the loads are now positioned within the driven span do 8 , I - I,Js k - Indx(I) If((k.eq.O).or.(k.eq.I)) go to 8 In the solution routine the loads and locations are related to the Individual Initial sheaves so the Indexing Is here changed, the (ln)th sigma load becomes the 1st si load, the (In - I)th sigma load becomes the 2 nd si load,....,the 1st slgna load becomes the (ln)th si load, etc. and then these values are placed back Into sigma and load with the orders now reversed do 9, J - 1,1ndx(I) 85 Figure 23. Continued 977 978 979 900 9 981 982 983 984 10 985 8 986 987 • 988 * 989 990 991 992 993 11 994 995 3l(k) * 3tgma(I,J) fI(K) - load(l.J) k-k- I continue do 10, J » I,lndx(I) signal I,J) » Sl(J) Ioad(I1 J) - fl(J) contInue contInue the loads are now properly Indexed for solution In subroutine raphson.for span = I do 11, I * I,Js cal I raphson(span,sigma,load,Indx.drspan.drlnd,I) contInue return end NEWNEW Local Symbols Name LOLOAO...... SI......... ORSPAN...... I ......... J ......... K ......... DRTOT ...... LP......... JS......... LOAD........ DRlNO ...... SIGMA ...... SPAN........ INOX........ Fl......... X ......... Z ......... XS......... ZS......... CHORD ...... CHSL........ STAT........ NOLOAO...... AO......... E ......... MG......... T ......... N ......... F ......... TH......... TL......... SPEED ...... LOS........ Class ...... DIM ...... DIM ...... MAG ...... CALC Type REAL‘ 8 REALeB INTEGER"4 INTEGER"4 INTEGER"4 REAL'S REAL'S INTEGER"4 REAL" 8 INTEGER"4 REAL'S INTEGER"4 INTEGER*4 REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S INTEGER"4 INTEGER*4 REAL'S REAL'S REAL'S REAL'S INTEGER"4 REAL'S REAL'S REAL'S REAL'S REAL'S Size SO 800 4 4 4 808 8 4 8000 400 8000 4 400 80 800 800 808 808 800 800 404 4 8 8 8 8 4 1600 8 8 808 8 Offset 0006 086e 08be Obde 0 be2 0 be6 Obea OflZ Ofla Ofle 2e5e 2 fee 4f2e 4f32 50c2 0000 0320 0640 0968 0c90 OfbO IZdO 1464 1468 1470 1478 1480 1488 0000 0640 0648 0650 0000 86 Figure 23. Continued NEWNEW Loca I Symbo 13 Class Name LO......... TE......... TO......... THETA ...... S ......... 996 997 998 999 Type Size Offset REAL’S REAL’S REAL’S REAL’S REAL’S 800 800 800 800 1600 0008 0328 0648 0968 0 c8 8 subroutine raphson.for This subroutine finds the values of t and theta which satisfy the given parameters using the two dimensional modified Newtons method. [A] = [ dxte dxth I (B) = [ xdlm - x ] [ zdlm - z ] t dzte dzth I 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 (X) = I dte ] [ dth ] (A)(X) = (B) therefore Inv.(A)(B) = (X) The values of theta and t are adjusted by the x values until these values become sufficiently small. This process Is finding the roots of the two equations: 1010 xdlm - x 1011 = 0 and zdlm - z = 0 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 100 1037 1038 1039 1040 1041 1042 + + + + subroutIne raphson(span,sIgma,Ioad,Indx,drspan,drInd,Inspan) common /dim/x(1 0 0 ),z(1 0 0 ),x3 (0 :l0 0 ),zs(0 :100).chord!100).chsl(100), stat(0 :1 0 0 ),noload.ao.e.mg.t.n /mag/f(200).th.tl,speedtO:100) /calc/los.Io(IOO),te(100),to(100),theta(100),3 (2 0 0 ) real* 8 x.z.xs.zs,chord,chsl,ao.e.mg.t real’ 8 f,th.tl,speed real* 8 Ios,lo.te,to,theta,s real’ 8 slgma(1 0 0 ,1 0 ),load(1 0 0 ,1 0 ),drspan!I),ten,angle,Iosp real’ 8 Sl(IO)1 I K 10),tolosp.savlen,tolo,engine,tenlnc,Ioinc real’ 8 xdlm,zdlm,xd,zd,a,b,c,d,dxl,dx2 ,dx,dte,det,dzte,dxth real* 8 dzth,dlo,dth,dxte,dxlo,toload,tespan,aa,bb,aaa,dzlo Integer stat.n.nl,noload,drlnd(I) Integer span,Inspan,Indx(I) find the A terms (partial derivatives w/respect to t,theta) tenInc Is an Incremental change In t, anglnc Is an Incremental change In theta to Iosp = 0 Irun = 0 if((stat(span-l).eq.O).and.(stat(span).eq.0 ))then Iosp = lo(span) nl = Indx(Inspan) do 10, I = I,nl sl(l) = slgmatInspan,I) 87 Figure 23. Continued 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 U(I) =» 1oad(inspan, I) contInue ten « te(span) angle * theta(span) tenInc - ten *I.OIdO anglnc » angle * I.OldO 10 I find dxte (partial of xdlm w/respect to t) a - xd1m(ao,e,losp.sl,tenlnc.angle.mg,1 1 ,n)) xdlm(ao,e,losp.sl.ten,angle.mg,1 1 ,nl) dxte * (a- b)/(0 .0 1 d0 *ten) b = find dzte (partial of zdlm w/respect to t) c » zdlm(ao,e,losp.sl,tenlnc.angle.mg,ll.nl) d - zdtm(ao,e,losp.sl,ten,angle,mg,ll.nl) dzte » (c - d)/(0 .0 1 d0 *ten) * find dxth.dzth (partials w/respect to theta) a a xdim(ao,e,losp.sl,ten,anglnc,mg,ll.nl) c a zdlm(ao,e,losp.sl,ten,anglnc,mg,1 1 ,nl) dxth a (a - b)/(0 .0 1 d0 *angle) dzth = (c - d)/(0 .0 1 d0 *angle) find the 8 terms (a » b - x a xdlm -x, c a d - z * Zdim - z) a = b - x(span) c a d - z(span) find the X terms 51 + det a dxte'dzth - dzte*dxth dte » (a * dzth - c * dxth)/det dth « (c * dxte - a * dzte)/det angle - angle - dth ten » ten - dte If(angle.It.chsl(span))then angle - chsl(span) elself(angle.gt.I.56d0)then angle a I.56d0 end! f If(ten.Ie.0 )then ten a dabs(ten) endl f if(ten.gt.(ao*135812d0))then ten = ao*135812d0 endIf if((dabs(dth).It.Id-6 ).and.(dabs(dte).It.Id-5))then te(span) » ten theta(span) a angle toload a o do 51, I » I,nl toload » toload > load(Inspan,I) contInue to(Inspan) a dsqrt((ten»dcos(angle) ) * * 2 + (ten*dsln(angle) - losp'mg - toload)**2 ) 88 Figure 23. Continued 1101 1102 1103 1104 1105 1106 1107 1108 1109 wrIte(•,50)te(span),to(span),theta(span) format(' ','te » ',fl0.5,' to . ',flO.5, ' theta - ',f10.8) span » span + I return 50 1110 + else goto I endlf end of Ioop for drIven spans 1111 1112 1113 1114 1115 1116 1 10 1117 1118 1119 • start loop for free spans eIself((stat(span-I).eq.0 ).and.(stat(span).eq.I))then If(Indx(Inspan).eq.0 )then toIosp » 0 J - span + drInd(Inspan) - 2 do loop for until the last span 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 31 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 do 30, I » span,J If(I.eq.span)then ten ■ te(I) elself(I.gt.span!then ten * to(I - I) endIf angle » theta(I) Iosp * Io(I) lolnc - Iosp • I.OldO anglnc =■ angle • I.OldO A terms (partial derivatives) find dxlo (partial of xdlm w/respect to lo) a = xd(lolnc,angle,ten,mg,e,ao) b * xd(losp,angle,ten,mg,e.ao) dxlo = (a - b)/(0.OldOlIosp) find dzlo (partial of zdlm w/respect to lo) c * zd(lolnc,angle,ten,mg,e.ao) d = zd(losp,angle,ten,mg,e.ao) dzlo = (c - d)/(0.OldOlIosp) find dxth.dzth (partlals w/respect to theta) a « xd(Iosp,anglnc,ten,mg,e.ao) c » zd(losp,anglnc,ten,mg,e.ao) dxth - (a - b)/(0 .0 1 d0 1 angle) dzth = (c - d)/(0 .0 ld0 eangle) find the B terms (a » b - x ■ xd - x, c » d - z - zd - z) a " b - x(l) c * d - z(l) find the X terms 89 Figure 23. Continued 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 ' 1187 1188 1189 1190 1191 33 1192 30 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 det - dxloedzth - dzlo'dxth dlo * (a • cteth - c • dxth)/det dth - ( c 1* dxlo - a • ctelo)/det angle - angle - dth Ioap * Ioap - dlo range bracketing + + If(angle.It.chal(I))then angle - chal(I) elaelf(angle.gt.I.56d0)then angle - I.56d0 end If If(loap.le.(Io(I)e0.5d0))then Ioap - Io(I)eO.5d0 elaelf(losp.gt.(I.5dOelo(I)))then Ioap - loape1.5d0 endl f If((daba(dth).It.Id-6). and.(daba(dlo).It.Id-6))then Io(I) - Ioap toIoap * toIoap + Ioap theta(I) - angIe to(I) - daqrt((tenedcoa(angIe))ee2 > (tenedaln(angle) - loapemg)ee2) te(I) - ten go to 33 el ae go to 31 end If continue continue end of do loop for Interior apana toIoap la now the aum of prevloua apan lengtha from the drive aheave over the Idler aheavea up to the next to Iaat apan before another drive aheave - the total length between the drive aheavea Ia known ao with the Initial tenalon gueaa at the first aheave the free apan lengtha are found. If the gueaa Is correct there will be the right amount of cable left for the last span to reach the final (drive) sheave. Iosp * drspan(Inspan) - toIosp Ioap Ia the length of cable left for the final apan 4 te(l) - to(l-l) ten - to(l-I) angle = theta(I) angInc » angIeeI.OldO a = zddoap.anglnc.ten.mg.e.ao) b » zddoap,angle.ten,mg,e.ao) dzth = (a-b)/(0 .0 ld0 eangle) c - b - zd) 90 Figure 23. Continued 1217 1218 1219 1220 1221 1222 1223 1224 "" 1225 • 1226 * 1227 • 1228 • 1229 •• 1230 1231 "" 1232 • 1233 " 1234 1235 1236 1237 •• 1238 • 1239 ** 1240 1241 1242 1243 1244 1245 1246 •• 1247 • 1248 •« 1249 1250 1251 1252 1253 1254 1255 •• 1256 " 1257 •' 1258 1259 1260 1261 1262 1263 1264 " 1265 * 1266 " 1267 1268 1269 1270 1271 1272 1273 1274 dth » c/dzth angle =» angle - dth if(angle.gt.I.56d0)then angle » I.56d0 elself(angle.1 1 .0 .0 0 0 IdO)then angle » 0.OOOldO endIf If the change In angle (dth) Is less than a certain amount then another run will be made with an Incremented value of te(span) to allow numerical differentiation and solution for the proper value of te(span) If(dabs(dth).ge.ld-8 )then recalculate the value of theta If dth Is not small enough goto 4 elself(dabs(dth).It.ld-8 )then If((run.eg.O)then 1st run with Initial value of theta(span) Irun » I aa » xd(losp,angle,ten.mg,e,ao) dxl -x(l) - aa tespan * te(span) te(span) » I.OOldO^te(Span) goto 1 1 0 2 nd run with Incremented value of theta(span) eIseIf(Irun.eg.I)then Irun - 0 bb » xd(losp,angle,ten.mg,e.ao) dx = (bb-aa)/(0 .0 0 1 d0 *tespan) aaa « dxl/dx te(span) * tespan + aaa bracket te(span) If(te(span).It.(tespan/2 ))then te(span) = tespan/ 2 endlf If(te(span).gt.2 "tespan)then te(span) => 2 *tespan endIf check root approximation of te(span) + > If(dabs(aaa).It.Id-7)then te(I) = ten tod) * dsqrt( (ten*dcos(angle) ) * <* 2 + (ten'dsln(angle) - losp*mg)**2 ) theta(I) » angIe Irun =» 2 to(span) = dsqrt((ten*dcos(angle) ) * * 2 + (ten*dsln(angle) - lo(span)*mg)**2 ) 91 Figure 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 23. Continued goto 110 elself(daba(aaa).gt.Id-7)then to(l) - dsqrt((ten'dcoalangle))•l,2 + (ten'dsIn(angIe) - losp*mg)""2) theta(I) * angIe te(l) * ten go to 110 endIf eIseIf(Irun.eq.2)then Irun - 0 toll) a dsqrtl(ten'dcoa(angle))ee2 + (ten'dslnlangle) - lo3pemg)**2) theta!I) » angle loll) a losp go to 7 endIf endIf contInue 7 *•* • ••• • ••• end of loop for unloaded spans begin loop for loads on span (Indx(Inspan) > 0) elself(Indxl Inspan).gt.0)then tolosp a o J « 3 pan + drlndlInspan) - 2 710 do loop for until the last span * ••• JJ = I k a | do 66, I « span,j If11.eq.span)then ten a tel I) elself11.gt.span)then ten a toll - I) endIf angle » theta!I) losp a Io(I) Iolnc a losp • I.OldO angInc » angle • I.OldO 61 position loads within span • 60 + nl • o lf((sIgmaIInspan,JJ).gt.tolosp).and. (sigma!Inspan,JJ).Ie.ItoIosp+Iosp)))then IflJJ.gt.Indxl Inspan))then ka I go to 62 endIf silk) a slgmalInspan,JJ) IIlk) a load!Inspan,JJ) nl a k k=k> I JJ = JJ > I go to 60 else 92 Figure 23. Continued 1333 1334 1335 1336 1337 1338 1339 62 1340 1341 1342 1343 • 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 k* I endlf A terms (partial derivatives) find dxlo (partial of xdlm w/reapect to lo) a - xdlm(ao,e,lolnc.a!,ten,angle,mg,11 ,nl) b " xdlm(ao,e,losp.sl,ten,angle,mg,II,nl) dxlo « (a - b)/(0.OldOeIosp) find dzlo (partial of zdlm w/reapect to lo) - c a zdlm(ao,e,lolnc.aI,ten,angle,mg,11,nl) d - zdlm(ao,e,losp.sl.ten,angle.mg,ll.nl) dzlo • (c - d)/(0.OldOeIoap) find dxth,dzth (partIaIa w/reapect to theta) a * xdtm(ao,e,loap.sl,ten.anginc.mg,ll.nl) c » zdlm(ao,e,losp.sl,ten.anglnc.mg,II,nl) dxth - (a - b)/(0.01d0*angle) dzth - (c - d)/(O.OldO’angle) find the B terms (a * b a a b C » d - find -Xa Xd - X, C a d - Z a Zd - z) X(I) Z(I) the X terms det « dx!o*dzth - dzlo'dxth dlo * (a • dzth - c • dxth)/det dth a (c • dxlo - a • dzlo)/det angle a angle - dth Ioap « Ioap - dlo range bracketing + + If(angle.It.chal(I))then angle = chal(I) elself(angle.gt.I.56d0)then angIe = I.56d0 endIf If(loap.le.(Io(I)*0.5d0))then Ioap a lo(I)*0.5d0 elself(losp.gt.(I.5d0*lo(I)))then Iosp « losp'l.SdO endlf If((dabs(dth).It.Id-6). and.(dabs(dlo).It.Id-6))then Io(I) » loap toIoap a toIosp + loap theta(I) » angIe to(I) a dsqrt((ten*dcoa(angle)),e2 + (ten'dain(angle) - losp'mg)••2) te(I) » ten 9 3 Figure 23. Continued 1391 1392 1393 1394 1395 63 1396 66 1397 ••• 1398 * 1399 """ 1400 1401 " 1402 • 1403 * 1404 • 1405 * 1406 " 1407 " 1408 ••• 1409 1410 ••• 1411 * 1412 1413 1414 1415 1416 74 1417 *•* 1418 • 1419 1420 70 1421 1422 + 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 •• 1437 72 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 •• go to 63 else go to 61 endIf contInue contInue end of do loop for Interior spans toIosp Is now the sum of previous span lengths from the drive sheave over the Idler sheaves up to the next to last span before another drive sheave - the total length between the drive sheaves Is known so with the initial tension guess at the first sheave the free span lengths are found. If the guess Is correct there will be the right amount of cable left for the last span to reach the final (drive) sheave. Iosp = drspan(Inspan) - toIosp losp Is the length of cable left for the final span te(I) = to(l-l) ten = to(1-1) angle = theta(I) anglnc = angle*I.OldO position loads on span nI =0 If((sigma(Inspan,JJ).gt.toIosp).and. (slgma(Inspan,JJ).Ie.(tolosp+Iosp)))then If(JJ-gt.Indx(Inspan)Jthen k= I go to 72 endIf si(k) » Slgma(InspanlJJ) 11(k) - Ioad(Inspan1JJ) nl - k k-k+ I JJ = JJ + I go to 70 else k= I endIf a = zdim(ao,e,losp.sl,ten.anglnc.mg,11,nl) b = zdlm(ao,e,losp.sl,ten,angle,mg,11,nl) dzth a (a-b)/(0.01d0*angle) c=b-z(l) dth = c/dzth angle - angle - dth If(angle.gt.I.56d0)then angle - I.56d0 elseif(angle.11.0.0001dO)then angle » 0.OOOldO endIf 94 Figure 23. Continued 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 If the change In angle (dth) Ia Ieaa than a certain amount then another run will be made with an Incremented value of te(apan) to allow numerical differentiation and solution for the proper value of te(span) if(dabs(dth).ge.Id-8)then recalculate the value of theta If dth Ia not sma11 enough goto 74 elseIf(dabs(dth).It.Id-8)then If(lrun.eq.0)then Iat run with Initial value of theta(span) Irun ■ I aa - xdlm(ao,e,loap.sl.ten.angle.mg.11,nl) dxl ■ x(I) - aa teapan * te(apan) te(apan) - I.00ld0*te(apan) goto 710 2nd run with Incremented value of theta(span) elaelf(Irun.eg. Dthen Irun » 0 bb = xdlm(ao,e.loap.sl,ten,angle,mg,1 1 ,nl) dx = (bb-aa)/(0.001dO'teapan) aaa » dxI/dx te(span) => teapan + aaa bracket te(apan) If(te(apan).It.(tespan/2))then te(apan) - teapan/2 endIf lf(te(apan).gt.2"teapan)then te(apan) - 2'teapan endIf check root approximation of te(apan) If(daba(aaa).It.Id-7)then te(I) » ten to(I) a dsqrt((ten'dcos(angle))•*2 + (ten*daln(angle) - loap,mg),e2) theta(I) a angle Irun a 2 to(span) a dsqrt((ten*dcoa(angle))•,2 + (ten'daln(angle) - lo(apan)*mg)»,2) goto 710 elaelf(daba(aaa).gt.Id-7)then to(l) a daqrt((ten'dcoalangle) ) ' « 2 + (ten'daln(angle) - lo3p*mg)»*2) theta(I) a angle te(I) a ten go to 710 endlf 95 Figure 23. Continued 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1510 1519 1520 1521 1522 1523 1524 1525 1526 elself(Irun.eq.2)then Irun » 0 to(l) - dsqrt((ten'dcos(angle))"2 + (ten*dsln(angle) - losp*mg)e*2) theta(I) x angle Io(I) - Iosp go to 77 endlf + endIf contInue 77 .... endIf endIf ............................ * end of loop forfree spans ............................ return ... *........................ • end of subprogramnewnewt.for end RAPHSO Local Symbols Name INSPAN...... GRIND ...... ORSPAN...... INDX........ LOAD........ SIGMA ...... SPAN........ A ......... TENlNC...... AA......... B ......... AAA........ TOLOAO...... C ......... 80......... D ......... SI......... I ......... J ......... K ......... TESPAN...... DXl........ JJ......... NL......... OX......... DET........ DTE........ OLO........ DTH........ T0L0SP...... ANGLE ...... TEN........ Class Type REAL*8 REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S INTEGER*4 INTEGER'4 INTEGER'4 REAL'S REAL'S INTEGER'4 INTEGER*4 REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S Size 8 8 8 8 8 8 8 8 8 SO 4 4 4 8 8 4 4 8 8 8 8 8 8 8 8 Offset 0006 000a 000e 0012 0016 001a OOle 5112 51 la 5122 512a 5132 513a 5142 514a 5152 515a Slaa Slae 51b2 51b6 Slbe 5lc6 Slca Slce 51d6 Side 5le6 5lee 51f6 Slfe 5206 96 Figure 23. Continued RAPHSO LocaI SymboI3 Name ANGINO. OXTE. . LOlNC . OXLO. . OZTE. . OXTH. . DZLO. . OZTH. . LI. . . IRUN. . LOSP. . X ... Z ... XS. . . ZS. . . CHORD . CHSL. . STAT. . NOLOAO. AO. . . E ... MG. . . T ... N ... F ... TH. . . TL. . . SPEED . LOS . . LO. . . TE. . . TO. . . THETA . S ... 1527 1528 1529 1530 1531 1532 * 1533 • 1534 * 1535 1536 1537 1538 1539 1540 1541 1542 Class ........DIM ........DIM ........DIM ........DIM ........MAG ........MAG ........CALC ........CALC ........CALC ........CALC .......... CALC Type Size Offset REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S INTEGER'4 REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S INTEGER'4 INTEGER'4 REAL'S REAL'S REAL'S REAL'S INTEGER'4 REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S 8 8 8 8 8 8 8 8 80 4 8 800 800 808 808 800 800 404 4 S 8 8 8 4 1600 8 8 808 S 800 800 800 800 1600 520e 5216 52Ie 5226 522e 5236 523e 5246 524e 529e 52a2 0000 0320 0640 0968 0c90 OfbO I2d0 1464 1468 1470 1478 1480 1488 0000 0640 0648 0650 0000 0008 0328 0648 0968 0c88 subprogram xdlm.for With the given 1parameters, this function determines the x location of the cable at the coordinate s.SIs the distance from the sheave,sis the distance from the sheave to the point Ioad 11. real*8 function xdlm(ao,e,len.sl,ten.angle.mg,11,n!) real'8 Sl(I)1Il(I),up(-l:10),ups(-1:10),3(0:10),v,h,w real'8 ao,e.Ien,asinh,mg,ten,angle real'8 one.two.three,four.five,a,phi,chi ,beta w= Ien ' mg 97 Figure 23. Continued 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 I 2 4 3 do I, I = I,nI up(I) » ll(l)/w contInue up(-l) = 0 up(0) = 0 UP3(-1) * 0 do 2, I= 0,nl ups(I) = ups(l-l) + UP(I) contInue do 4, I = I,nl s(l) = 3l(l)/len contInue 3(0) = 0 chI = hZw phi =» vZw beta = wZ(ao*e) one = asinh(phiZchl) two = aslnh((phi - ups(nl) - DZchI) three = 0 do 3, I = O.nl four = as Inh((phi - ups(I) - S(D)Zchl) five = asinh((phi - ups(I-I) - s(D)Zchl) three = three + four - five contInue a = one - two + three xdim = (a + beta)"chi"Ien return 1573 • end of subprogram xdlm.for 1575 end XDIM Loca I Symbo Ia Name XDlM........ NL......... LI......... MG......... ANGLE ...... TEN........ SI......... LEN....... E ......... AO......... A ........ H ......... I ........ S ........ CHI...... V ........ W ........ BETA...... PHI...... ONE...... UP........ Class Type REAL*8 REAL'S INTEGER"4 REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S Size Offset 8 8 4 88 8 8 8 8 8 8 96 0006 0008 OOOc 0010 0014 0018 OOlc 0020 0024 0028 52aa 52b2 52ba 52be 5316 53Ie 5326 532e 5336 533e 5346 98 Figure 23. Continued XDIM LocaI SymboI3 Name Class FIVE........ THREE ...... UPS........ TWO........ FOUR........ Type REAL*8 REAL'S REAL'S REAL'S REAL'S Size 8 S 96 S 8 Offset 53a6 53ae 53b6 5416 54Ie 1576 1577 subprogram zdlm.for 1579 1580 1581 With the given parameters, this program finds the z location of point s, a distance s from the Initial sheave. s is the distance from the sheave to the point load 11. 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 I 1595 1596 1597 1598 1599 1600 2 1601 1602 1603 3 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 4 1618 1619 real*8 function zdlm(ao,e,len.sl,ten,angle,mg,11,nl) 1621 1622 * real'8 up(-l:10),ups(-l:10),11 (I),3(0:10),si(I) real'8 ao,e,len,v,h,w,mg,ten,angle,chi,phi,beta real*8 one,two,three,four,five,six,seven w = mg ' Ien h = ten * dcos(angle) v = ten • dsin(angle) do I, I » I,nl up(l) = 11(I)/W contInue up(-l) = 0 up(0) = 0 ups(-l) = 0 do 2, I = 0,nl ups(I) » ups(l-l) > up(l) contInue do 3, I = I,nl s(I) » sI( I)/ Ien contInue s(0) - 0 chi » h/w phi = v/w beta = w / (ao'e) one = beta*(phi - 0.5d0) two = dsqrt(chl"2 + phi "2) three = dsqrt(chl"2 + (phi - ups(nl) - I)"2) four » 0 do 4, I= 0,nl five = beta'up(I) * (s(I) - I) six = dsqrt(chl "2 + (phi - ups( I) - s( I) )"2) seven = dsqrt(chl “ 2 * (phi - ups( I- 1) - s( I) )"2) four = four + five + six - seven contInue zdlm = Ien ' (one + two - three + four) return end of subprogram zdlm.for 99 Figure 23. Continued 1623 end ZDIM LocaI Symbols Name Class ZDlM. . . . NL...... LI...... MG...... ANGLE . . . TEN ... . SI...... LEN ... . E ...... AO...... SEVEN . . . H ...... I ...... S ...... CHI ... . V ...... W ...... BETA. . . . PHI ... . ONE ... . UP...... FIVE. . . . SIX ... . THREE . . . UPS ... . TWO ... . FOUR. . . . Type REAL*8 REAL'S INTEGER'4 REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S REAL'S Size Offset 8 8 4 88 8 8 8 8 8 8 96 8 8 8 96 8 8 0006 0008 OOOc 0010 0014 0018 OOlc 0020 0024 0028 5426 542e 5436 543a 5492 549a 54a2 54aa 54b2 54ba 54c2 5522 552a 5532 553a 559a 55a2 Global Symbols Name ADJUST......... ASINH ......... CALC........... DIM........... INITIA......... MAG........... NEWNEW......... NEWT........... NEWTON......... POINT......... RAND........... RANDOM......... RAPHSO......... SHEAVE......... SPAN........... XD............ XDIM........... ZD............ Class Type Size Offset 4808 5260 21e8 0a6b 0000 0000 002c 0000 2856 REAL'S 2424 Oaaa . . . FSUBRT . . . FSUBRT . . . FSUBRT REAL'S . . . FFUNCT REAL'S REAL'S Obef 1564 lae9 lbb8 30c4 Ic4b 08e2 132b 5IfO 1436 / 100 Figure 23. Continued GIobaI SymboIa Name Class Type ZDlM............... FFUNCT REAL'S main............... FSUBRT ••• Code size = 59db (23003) Data size = 100a (4106) Bss size = SSaa (21930) No errors detected Size Offset ' 55f6 OOOO