4569846498

01.05.2017 Views

Appendix B: Fortran tyre model subroutines 485 C -- As for longitudinal forces, Linear Decay to Sliding Friction C above critical slip ratio -- C -- MU_S apparently not passed through? -- C FYFZ*(1-EXP(-Ay))*(MU-(ABS(ALPHA)ALPHA_C)/ ALPHA_M*(MUMU_S)) C FYFY*B*SIGN(1.0D0,ALPHA) C -- Try U instead? -- FYFZ*(1-EXP(-Ay))*U*B*SIGN(1.0D0,ALPHA) ENDIF C C ********** FIALA CALCULATIONS ************** C C C C Calculate critical value of slip angle C C C ASTARATAN(ABS(3.D0*U*FZ/CA)) C C C C Compute Fiala lateral force and aligning torque (FY & TZ) C C C IF(ABS(ALPHA) .LE. 1.D-10) THEN C FY0.D0 C TZ0.D0 C ELSE IF(ABS(ALPHA) .LE. ASTAR) THEN C H1.D0 - CA*ABS(TAN(ALPHA))/(3.D0*U*ABS(FZ)) C FY-U*ABS(FZ)*(1.D0-H**3)*SIGN(1.0D0,ALPHA) C TZU*ABS(FZ)*2.D0*R2*(1.D0-H)*(H**3)*SIGN (1.0D0,ALPHA) C ELSE C FY-U*ABS(FZ)*SIGN(1.0D0,ALPHA) C TZ0.D0 C ENDIF C C C C ******************************************** C -- Add camber force to FY - “Taut String” -- FYFYFZ*TAN(CAMBER) C Mitigate FY depending on “Friction Ellipse” FR_ELLIP(FX/(FZ*U))**2(FY/(FZ*U*B))**2.0 IF (FR_ELLIP .GT. 1.0) THEN LSLIPSLIP_C-5.0 IF(SLIP .LT. LSLIP) THEN C -- Friction Ellipse treatment for comprehensive slip below C critical slip ratio -- FY-((1-(FX/(FZ*U))**2)*(FZ*U*B)**2)**0.5*SIGN (1.0D0,ALPHA) ELSE C -- Just kill the lateral force if slip ratio is above C critical slip ratio -- USLIPSLIP_C15.0 SCMIN0.03 CALL STEP(SLIP, LSLIP, ONE, USLIP, SCMIN, IORD, * SCFACT, ERFLG) FY-((1-(FX/(FZ*U))**2)*(FZ*U*B)**2)**0.5*SIGN (1.0D0,ALPHA)

486 Multibody Systems Approach to Vechicle Dynamics FYSCFACT*FY ENDIF ENDIF C Aligning Torque based on final FY including camber force C Not quite right as Camber force has no pneumatic trail. C Pay attention if using this for motorcycle work; C consider reworking so that TZ does not include camber force. C Aligning torque form is a bit poor anyway. C -- Contact Patch Length CP_LEN(R1**2 - (R1FZ/CZ)**2)**0.5*2.0 IF(ABS(ALPHA) .GT. 1.D-10) THEN IF(ABS(ALPHA) .LE. ALPHA_C) THEN TZ-FY*CP_LEN*(1-ABS(ALPHA)/ALPHA_C)/4 ELSE TZ0.0 ENDIF ENDIF C C Other Calculations as FIALA Tyre: Rolling resistance moment (TY) CALL STEP(ABS(WSPIN), .25D0*WSPNMX, ZERO, WSPNMX, * ONE, IORD, SCFACT, ERFLG) IF (WSPIN .GE. 0.0) THEN TY-SCFACT*CR*FZ ELSE TYSCFACT*CR*FZ ENDIF C Compute righting moment due to lateral Contact Patch Shift (TX) C Use CG as “shape factor” to add to or subtract righting moment C from MSC.ADAMS’ Toroidal assumption. CG 1 fatter than toroid C CG 1 more like blade C C TXFZ*0.5*SIN(2*CAMBER)*R2/2*(CG - 1) C Copy the calculated values for FX, FY, FZ, TY & TZ to FSAE C and TSAE arrays and return. Scale them to start with to C let the simulation wake up gently. But not FZ, otherwise C we fall through the floor. 1000 CALL STEP(TIME, ZERO, ZERO, ONE, ONE, IORD, TSCALE, ERFLG) FSAE(1) FX*TSCALE FSAE(2) FY*TSCALE FSAE(3) FZ TSAE(1) TX*TSCALE TSAE(2) TY*TSCALE TSAE(3) TZ*TSCALE FPROP(1) 0.0 FPROP(2) 0.0 C RETURN END

486 Multibody Systems Approach to Vechicle Dynamics<br />

FYSCFACT*FY<br />

ENDIF<br />

ENDIF<br />

C Aligning Torque based on final FY including camber force<br />

C Not quite right as Camber force has no pneumatic trail.<br />

C Pay attention if using this for motorcycle work;<br />

C consider reworking so that TZ does not include camber force.<br />

C Aligning torque form is a bit poor anyway.<br />

C -- Contact Patch Length <br />

CP_LEN(R1**2 - (R1FZ/CZ)**2)**0.5*2.0<br />

IF(ABS(ALPHA) .GT. 1.D-10) THEN<br />

IF(ABS(ALPHA) .LE. ALPHA_C) THEN<br />

TZ-FY*CP_LEN*(1-ABS(ALPHA)/ALPHA_C)/4<br />

ELSE<br />

TZ0.0<br />

ENDIF<br />

ENDIF<br />

C<br />

C<br />

Other Calculations as FIALA Tyre:<br />

Rolling resistance moment (TY)<br />

CALL STEP(ABS(WSPIN), .25D0*WSPNMX, ZERO, WSPNMX,<br />

* ONE, IORD, SCFACT, ERFLG)<br />

IF (WSPIN .GE. 0.0) THEN<br />

TY-SCFACT*CR*FZ<br />

ELSE<br />

TYSCFACT*CR*FZ<br />

ENDIF<br />

C Compute righting moment due to lateral Contact Patch Shift (TX)<br />

C Use CG as “shape factor” to add to or subtract righting moment<br />

C from MSC.ADAMS’ Toroidal assumption. CG 1 fatter than toroid<br />

C CG 1 more like blade<br />

C<br />

C TXFZ*0.5*SIN(2*CAMBER)*R2/2*(CG - 1)<br />

C Copy the calculated values for FX, FY, FZ, TY & TZ to FSAE<br />

C and TSAE arrays and return. Scale them to start with to<br />

C let the simulation wake up gently. But not FZ, otherwise<br />

C we fall through the floor.<br />

1000 CALL STEP(TIME, ZERO, ZERO, ONE, ONE, IORD, TSCALE,<br />

ERFLG)<br />

FSAE(1) FX*TSCALE<br />

FSAE(2) FY*TSCALE<br />

FSAE(3) FZ<br />

TSAE(1) TX*TSCALE<br />

TSAE(2) TY*TSCALE<br />

TSAE(3) TZ*TSCALE<br />

FPROP(1) 0.0<br />

FPROP(2) 0.0<br />

C<br />

RETURN<br />

END

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!