perm filename BEND.SAI[V,VDS] blob
sn#196101 filedate 1978-03-23 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00008 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 BEGIN "BEND - COMPUTES THEORETICAL BENDING STRESSES IN FORCE BALANCE"
C00004 00003 ⊃ THE FOLLOWING IS THE DEFINITION OF THE FORCE BALANCE STRUCTURE:
C00006 00004 ⊃ READ IN THE VARIABLE GEOMETRY PARAMETERS
C00009 00005 ⊃ FOR A FORCE APPLIED IN THE X OR Y DIRECTION
C00011 00006 ⊃ FOR A FORCE APPLIED IN THE Z DIRECTION
C00013 00007 ⊃ FOR A MOMENT APPLIED ABOUT THE X OR Y AXIS
C00017 00008 ⊃ FOR A MOMENT APPLIED ABOUT THE Z AXIS
C00020 ENDMK
C⊗;
BEGIN "BEND - COMPUTES THEORETICAL BENDING STRESSES IN FORCE BALANCE"
DEFINE ⊃="COMMENT ",CRLF="('15&'12)",FF="'14",CR←"'15";
REAL WEBT,WEBS,WEBL,FLXT,FLXS,FLXL,E,G,IWT,IWS,IFT,IFS,GAGPOS;
REAL FX,FY,FZ,TX,TY,TZ,ALW,BEW,ALF,BEF,MAXSTR,ODRAD,GAGD;
REAL HUBH,HUBS,IHUB,IHUBS;
STRING ANS,REPLY;
INTEGER DUM,CHAN;
SIMPLE REAL PROCEDURE I(REAL B,H);
RETURN (B*H↑3/12);
SIMPLE PROCEDURE PRINT(STRING STR;REAL VAL);
BEGIN
REPLY←REPLY&STR&CVF(VAL)&CRLF;
RETURN;
END;
SIMPLE PROCEDURE SAY(STRING STR);
BEGIN
REPLY←REPLY&STR;
RETURN;
END;
SIMPLE PROCEDURE GETV(STRING STR;REFERENCE REAL VAL);
BEGIN
STRING ANS;
INTEGER DUM;
OUTSTR(STR);
LODED(CVF(VAL)&CR);
ANS←INCHWL;
VAL←REALSCAN(ANS,DUM);
END;
⊃ SET UP THE DISK FILE;
CHAN←1;
OPEN(CHAN,"DSK",0,0,2,120,DUM,DUM);
LOOKUP(CHAN,"BEND.DAT",DUM);
ENTER(CHAN,"BEND.DAT",DUM);
START_CODE
UGETF 1,2;
END;
OUTSTR(CRLF&CRLF&"FORCE BALANCE SCALING PROGRAM"&CRLF);
SETFORMAT (8,4);
⊃ THE FOLLOWING IS THE DEFINITION OF THE FORCE BALANCE STRUCTURE:
WEBT = WIDTH OF THE WEB LOOKING INTO THE F.B. IN INCHES
WEBS = DEPTH " " " " " " " " "
WEBL = LENGTH " " " " " " " " "
FLXT = WIDTH OF THE SIDE FLEXURES IN INCHES
FLXS = DEPTH " " " " " "
FLXL = LENGTH" " " " " "
HUBH = HEIGHT OF THE CENTER HUB IN INCHES
HUBS = SIDE LENGTH OF HUB IN INCHES
E = MODULUS OF ELASTICITY IN PSI
G = MODULUS OF SHEAR IN PSI
I = MOMENT OF INERTIA
ALW = ALPHA TWIST FACTOR FOR WEB
BEW = BETA " " " "
ALF = ALPHA " " " FLEXURE
BEF = BETA " " " "
GAGPOS = DISTANCE OF STRAIN GAGE FROM END OF WEB
GAGD = " " " " " END OF WEB CONNECTED
TO THE CENTER HUB
MAXSTR = MAXIMUM STRAIN LEVEL
ODRAD = RADIUS TO THE OVERLOAD PROTECTION
;
E←1.0@7;
G←4.0@6;
⊃ INITIAL VALUES FOR PHYSICAL PARAMETERS;
FLXT←0.025; FLXS←0.300; FLXL←1.000;
WEBT←.2; WEBS←.2; WEBL←.7;
HUBH←.7; HUBS←.9;
GAGD←.1; ODRAD←1.6;
FX←30; FY←30; FZ←50;
TX←72; TY←72; TZ←120;
⊃ READ IN THE VARIABLE GEOMETRY PARAMETERS;
DO BEGIN "READLP"
REPLY←"";
OUTSTR(CRLF&"DO THE WEBS HAVE A SQUARE CROSS-SECTION (Y,N)? ");
ANS←INCHWL;
IF EQU("Y",ANS) THEN BEGIN
GETV("WEB THICKNESS IN INCHES = ",WEBT);
WEBS←WEBT;
ALW←0.208; BEW←0.141;
END
ELSE BEGIN
GETV("WEB WIDTH IN INCHES = ",WEBT);
GETV("WEB DEPTH IN INCHES = ",WEBS);
GETV("ALPHA FOR WEB = ",ALW);
GETV("BETA FOR WEB = ",BEW);
END;
GETV("WEB LENGTH IN INCHES = ",WEBL);
IWT←I(WEBT,WEBS); IWS←I(WEBS,WEBT);
GETV("FLEXURE THICKNESS IN INCHES = ",FLXT);
GETV("FLEXURE WIDTH IN INCHES = ",FLXS);
GETV("FLEXURE LENGTH IN INCHES = ",FLXL);
ALF←0.320; BEF←0.320;
IFT←I(FLXT,FLXS); IFS←I(FLXS,FLXT);
GETV("HUB HEIGHT IN INCHES = ",HUBH);
GETV("HUB SIDE WIDTH IN INCHES = ",HUBS);
IHUB←I(HUBS,HUBH);
IHUBS←I(HUBH,HUBS);
GETV("RADIUS TO OVERLOAD PROTECTION = ",ODRAD);
GETV("DISTANCE OF GAGES FROM CENTER HUB = ",GAGD);
GAGPOS←WEBL-GAGD;
GETV("FORCE ALONG X,Y DIRECTION = ",FX);
FY←FX;
GETV("FORCE ALONG Z DIRECTION = ",FZ);
GETV("MOMENT ABOUT X,Y = ",TX);
TY←TX;
GETV("MOMENT ABOUT Z = ",TZ);
⊃ WRITE OUT THE DATA TO THE DISK;
SAY("WEB DIMENSIONS (T,S,L,A,B)= "&CVF(WEBT)&","&CVF(WEBS)&","
&CVF(WEBL)&","&CVF(ALW)&","&CVF(BEW)
&CRLF&"FLEXURE DIMENSIONS (T,S,L,A,B)= "&CVF(FLXT)
&","&CVF(FLXS)&","&CVF(FLXL)&","&CVF(ALF)&","&CVF(BEF)
&CRLF&"GAGE DISTANCE FROM FLEXURE = "&CVF(GAGPOS)&CRLF
&"HUB DIMENSIONS (H,S) = "&CVF(HUBH)&","&CVF(HUBS)&CRLF
&"FLEXURE DIMENSIONS(T,W,L) = "&CVF(FLXT)&","&CVF(FLXS)&
","&CVF(FLXL)&CRLF);
SAY("FORCES AND MOMENTS IN LBS & IN-LBS"&CRLF&CVF(FX)&","&CVF(FY)&
","&CVF(FZ)&","&CVF(TX)&","&CVF(TY)&","&CVF(TZ)&CRLF);
⊃ FOR A FORCE APPLIED IN THE X OR Y DIRECTION ;
BEGIN "XF"
REAL D5,D1,D2,F1,F2,SS1,SN1,SS2,SN2,T,M,P;
D5←(FLXL↑3)/(192.0*E*IFS); ⊃ BENDING IN FLEX PERP TO FORCE;
D1←WEBL/(WEBT*WEBS*E); ⊃ COMPRESSION IN WEB PARA TO FOR;
D2←WEBL↑3/(3.0*E*IWS); ⊃ BENDING IN WEB PERP TO FORCE;
T←(FLXL*IWS/(8.0*IFS))+2.0*WEBL;
D2←D2*(1.0-((3.0*WEBL)/(2.0*T))); ⊃ CONTRIBUTION OF FLEX BENDING;
⊃ GEOMETRY REQUIRES THAT F1*(D1+D5) = F2*D2 WHERE F1 AND F2 ARE THE
PROPORTIONAL FORCES THAT ACT ON EACH WEB;
P←D2/(D1+D5);
⊃ THE ACTUAL FORCES IN LBS IS THEN;
F2←0.5*FX/(1.0+P);
F1←0.5*FX-F2;
⊃ THE STRESSES(SS) AND THE STRAINS(SN) IN EACH MEMBER CAN NOW BE DETERMINED;
SS1←F1/(WEBT*WEBS); ⊃ IN PSI;
SN1←SS1*10↑6/E; ⊃ IN MICRO INCHES;
M←F2*(GAGPOS-(WEBL↑2/T));
SS2←M*0.5*WEBT/IWS;
SN2←SS2*10↑6/E;
SAY("FOR THE FORCE APPLIED IN THE X OR Y DIRECTION"&CRLF);
PRINT(" COMPRESSIVE STRESS = ",SS1);
PRINT(" STRAIN = ",SN1);
PRINT(" BENDING STESS = ",SS2);
PRINT(" STRAIN = ",SN2);
D2←D2*F2; ⊃ DEFLECTION FOR FX FORCE;
PRINT(" MAXIMUM DEFLECTION = ",D2);
END "XF";
⊃ FOR A FORCE APPLIED IN THE Z DIRECTION ;
BEGIN "ZF"
REAL THETA1,M1,M,F1,SS1,SN1,D1;
THETA1←(FLXL/4.0)/(BEF*FLXS*FLXT↑3*G); ⊃ TWISTING OF FLEXURE
⊃ FROM GEOMETRIC CONSIDERATIONS THE TWISTING OF THE FLEXURE (THETA1) FOR
A APPLIED MOMENT(M1) MUST BE EQUAL TO THE ANGLE OF THE END OF THE MATING
WEB. THE WEB SEES A FORCE (F1) FROM THE HUB AND THE REACTION
MOMENT (M1). THE EQUATION RELATING M1 TO A GIVEN FORCE F1 IS THEN;
M1←(WEBL↑2/(2.0*E*IWT))/(THETA1+(WEBL/(E*IWT)));
F1←FZ/4.0; ⊃ FORCE DIVIDED AMONG FOUR WEBS;
M←(GAGPOS-M1)*F1; ⊃ MAXIMUM BENDING MOMENT;
SS1←M*0.5*WEBS/IWT; ⊃ MAX STRESS IN PSI;
SN1←SS1*10↑6/E; ⊃ MAX STRAIN IN MICRO INCHES;
SAY(CRLF&"FOR THE FORCE APPLIED IN THE Z DIRECTION:"&CRLF);
PRINT(" BENDING STRESS = ",SS1);
PRINT(" STRAIN = ",SN1);
D1←F1*WEBL↑3/(3.0*E*IWT); ⊃ DEFLECTION DUE TO HUB FORCE;
D1←D1-F1*M1*WEBL↑2/(2.0*E*IWT); ⊃ CORRECTION FOR REACTION MOM.;
PRINT(" MAXIMUM DISPLACEMENT=",D1);
END "ZF";
⊃ FOR A MOMENT APPLIED ABOUT THE X OR Y AXIS ;
BEGIN "XM"
REAL THETA5,M2_M5,M5_M2,THETA2,T2,MM2,TT2,D2;
REAL M2_M1,M1,M2,SS1,SS2,SN1,SN2,LL,LL2,LLH;
REAL CT2M2,CT5M2,CT2M5,CT5M5;
THETA5←(FLXL/4.0)/(BEF*FLXS*FLXT↑3*G); ⊃ TWISTING OF FLEXURE
⊃ REPEATING THE SAME ARGUMENT AS IN THE PREVIOUS CASE, THE TWISTING OF
THE FLEXURE MUST EQUAL THE ANGLE AT THE END OF THE MATING WEB. IN THIS
INSTANCE, THE WEB SEES TWO MOMENTS, ONE APPLIED AT THE CENTER HUB (M2)
AND THE REACTION MOMENT AT ITS END (M5). THE GEOMETRICAL CONSTRANT
IS THEN THAT ANG OF WEB(M5)+ANG(M2)= ANG OF FLEXURE(M5) ;
LLH←HUBS/2.0; LL2←WEBL;
LL←LL2+LLH;
CT2M2←(1/(3.0*LL↑2))*((LL2↑3/(E*IWT))+
LLH*(3.0*LL2↑2+3.0*LL2*LLH+LLH↑2)/(E*IHUB));
CT5M2←(1/(6.0*LL↑2))*((LL2↑2*(LL2+3.0*LLH)/(E*IWT))+
LLH↑2*(3.0*LL2+LLH)/(E*IHUB));
CT2M5←(1/(6.0*LL↑2))*((LLH↑2*(LLH+3.0*LL2)/(E*IHUB))+
LL2↑2*(3.0*LLH+LL2)/(E*IWT));
CT5M5←(1/(3.0*LL↑2))*((LLH↑3/(E*IHUB))+
LL2*(3.0*LLH+3.0*LLH*LL2+LL2↑2)/(E*IWT));
M5_M2←CT5M2/(THETA5-CT5M5);
M2_M5←1.0/M5_M2;
THETA2←CT2M2+CT2M5*M5_M2;
⊃ TWIST OF HUB DUE TO M2;
⊃ FOR THE WEBS IN TORSION DUE TO A MOMENT (M1) THE HUB ANGLE OF TWIST
IS GIVEN BY T2;
T2←WEBL/(BEW*WEBS*WEBT↑3*G); ⊃ TWISTING OF SHAFT OF RECT CS;
M2_M1←T2/THETA2; ⊃ RATIO BETWEEN M2 AND M1;
M1←0.5*TX/(1.0+M2_M1); ⊃ MOMENT M1 IN INCH-LBS;
M2←0.5*TX-M1;
MM2←M2*(GAGPOS/LL)+M5_M2*M2*(GAGPOS-LL)/LL;
SS2←MM2*0.5*WEBS/IWT; ⊃ MAX BENDING STRESS IN PSI;
SN2←SS2*10↑6/E; ⊃ " " STRAIN IN MIC. IN.;
SS1←M1/(ALW*WEBS*WEBT↑2); ⊃ " TORSIONAL STRESS IN PSI;
SN1←SS1*10↑6/E; ⊃ " " STRAIN IN MIC. IN;
SAY(CRLF&"FOR THE MOMENT APPLIED ABOUT X OR Y:"&CRLF);
PRINT(" TORSIONAL STRESS = ",SS1);
PRINT(" STRAIN = ",SN1);
PRINT(" BENDING STRESS = ",SS2);
PRINT(" STRAIN = ",SN2);
TT2←THETA2*M2; ⊃ ANGLE OF TWIST OF HUB IN RAD;
D2←TT2*ODRAD; ⊃ DISPLACEMENT AT OD OF F.B.;
PRINT(" MAXIMUM DISPLACEMENT=",D2);
END "XM";
⊃ FOR A MOMENT APPLIED ABOUT THE Z AXIS ;
BEGIN "ZM"
REAL THETA5,M2_M5,M2,M5,M,SS2,SN2,D2,T2,M5_M2;
REAL M2_M1,M1,LL,LL2,LLH;
REAL CT2M2,CT5M2,CT2M5,CT5M5;
THETA5←FLXL/(16.0*E*IFS); ⊃ TWISTING IN FLEXURE DUE TO M5;
⊃ AS IN THE PREVIOUS CASE THETA2 MUST BE EQUAL TO THE ANGLE AT THE END
OF THE WEB, WHERE M2 IS THE MOMEMT BEING APPLIED TO THE WEB AND M5
IS THE MOMENT APPLIED TO THE FLEXURE.;
LLH←HUBS/2.0; LL2←WEBL;
LL←LL2+LLH;
CT2M2←(1/(3.0*LL↑2))*((LL2↑3/(E*IWS))+
LLH*(3.0*LL2↑2+3.0*LL2*LLH+LLH↑2)/(E*IHUBS));
CT5M2←(1/(6.0*LL↑2))*((LL2↑2*(LL2+3.0*LLH)/(E*IWS))+
LLH↑2*(3.0*LL2+LLH)/(E*IHUBS));
CT2M5←(1/(6.0*LL↑2))*((LLH↑2*(LLH+3.0*LL2)/(E*IHUBS))+
LL2↑2*(3.0*LLH+LL2)/(E*IWS));
CT5M5←(1/(3.0*LL↑2))*((LLH↑3/(E*IHUBS))+
LL2*(3.0*LLH+3.0*LLH*LL2+LL2↑2)/(E*IWS));
M5_M2←CT5M2/(THETA5-CT5M5);
M2_M5←1.0/M5_M2;
M2←TZ/4.0; ⊃ MOMENT CARRIED ON ONE WEB;
M5←M2/M2_M5; ⊃ REACTION MOMENT OF FLEXURE;
M←M2*(GAGPOS/LL)+M5_M2*M2*(GAGPOS-LL)/LL;
⊃ MAXIMUM BENDING MOMENT;
SS2←M*0.5*WEBT/IWS; ⊃ MAX BENDING STRESS IN PSI;
SN2←SS2*10↑6/E; ⊃ MAX " STRAIN IN MIC IN.;
SAY(CRLF&"FOR THE MOMENT APPLIED ABOUT THE Z AXIS: "&CRLF);
PRINT(" BENDING STRESS = ",SS2);
PRINT(" STRAIN = ",SN2);
T2←CT2M2+CT2M5*M5_M2;
T2←T2*M2;
D2←T2*ODRAD; ⊃ CORRE. MOVEMENT AT OD EDGE;
PRINT(" MAXIMUM DISPLACEMENT=",D2);
END "ZM";
⊃ PRINT RESULTS AND ASK TO SAVE ON DISK;
OUTSTR(CRLF&REPLY);
OUTSTR("SAVE RESULTS ON THE DISK (Y.N)? ");
ANS←INCHWL;
IF ¬EQU("N",ANS) THEN OUT(CHAN,FF&REPLY);
OUTSTR("DO YOU WANT TO DO MORE SCALING (Y,N)? ");
ANS←INCHWL;
END "READLP" UNTIL EQU("N",ANS);
RELEASE(CHAN);
END