Re 139: estimate differential efficiency for top speed, use average track grip (1.1) for low and high speed cornering calculation
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@3338 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: e66617fd305db8b2d564c4d7c423923ddd159739 Former-commit-id: 54b6a2354982cfc5b1744781645a17be0b94d4a7
This commit is contained in:
parent
d703a76fde
commit
b0e5d6c076
1 changed files with 15 additions and 5 deletions
|
@ -369,7 +369,7 @@ void GfCar::load(void* hparmCar)
|
|||
(GfParmGetNum(hparmCar, SECT_REARRGTWHEEL, PRM_MU, 0, 1.0)
|
||||
+ GfParmGetNum(hparmCar, SECT_REARLFTWHEEL, PRM_MU, 0, 1.0)) / 2.0f;
|
||||
_fLowSpeedGrip =
|
||||
(_fFrontRearMassRatio * fMuFront + (1.0f - _fFrontRearMassRatio) * fMuRear) * G;
|
||||
1.1 * (_fFrontRearMassRatio * fMuFront + (1.0f - _fFrontRearMassRatio) * fMuRear) * G;
|
||||
|
||||
// "Aerodynamic = High speed" grip (same + with aero down-force).
|
||||
const tdble fRefCarSpeed2 = 40000 / 12.96f; //200 km/h square in m/s
|
||||
|
@ -403,8 +403,8 @@ void GfCar::load(void* hparmCar)
|
|||
(fTotalFrontClift * (fFrontAxleXpos - fFrontWingXpos) + fTotalRearClift * (fFrontAxleXpos - fRearWingXpos))
|
||||
/(fFrontAxleXpos - fRearAxleXpos);
|
||||
_fHighSpeedGrip =
|
||||
(tdble)((_fFrontRearMassRatio * _fMass * G + fFrontAeroLoad) * fMuFront
|
||||
+ ((1.0 - _fFrontRearMassRatio) * _fMass * G + fRearAeroLoad) * fMuRear) / _fMass;
|
||||
(tdble)(1.1 * ((_fFrontRearMassRatio * _fMass * G + fFrontAeroLoad) * fMuFront
|
||||
+ ((1.0 - _fFrontRearMassRatio) * _fMass * G + fRearAeroLoad) * fMuRear) / _fMass);
|
||||
|
||||
// Cornering: axle distance divided by the inertia around the Z axis.
|
||||
const tdble fMassRepCoef = GfParmGetNum(hparmCar, SECT_CAR, PRM_CENTR, 0, 1.0f);
|
||||
|
@ -424,8 +424,18 @@ void GfCar::load(void* hparmCar)
|
|||
ossSpecPath << SECT_GEARBOX << '/' << ARR_GEARS << '/' << pszGearName[_nGears];
|
||||
const tdble fTopGearEff =
|
||||
GfParmGetNum(hparmCar, ossSpecPath.str().c_str(), PRM_EFFICIENCY, 0, 1.0f);
|
||||
// TODO: RWD, FWD, 4WD differential efficiency
|
||||
const tdble fDiffEff = 0.95f; // For now, use an average number
|
||||
// calculate differential efficiency
|
||||
tdble fDiffEff = 0.95f;
|
||||
const char *fTransType = GfParmGetStr(hparmCar, SECT_DRIVETRAIN, PRM_TYPE, VAL_TRANS_RWD);
|
||||
if (strcmp(VAL_TRANS_RWD, fTransType) == 0) {
|
||||
fDiffEff = GfParmGetNum(hparmCar, SECT_REARDIFFERENTIAL, PRM_EFFICIENCY, 0, 1.0f);
|
||||
} else if (strcmp(VAL_TRANS_FWD, fTransType) == 0) {
|
||||
fDiffEff = GfParmGetNum(hparmCar, SECT_FRNTDIFFERENTIAL, PRM_EFFICIENCY, 0, 1.0f);
|
||||
} else if (strcmp(VAL_TRANS_4WD, fTransType) == 0) {
|
||||
fDiffEff = ( GfParmGetNum(hparmCar, SECT_REARDIFFERENTIAL, PRM_EFFICIENCY, 0, 1.0f)
|
||||
+ GfParmGetNum(hparmCar, SECT_FRNTDIFFERENTIAL, PRM_EFFICIENCY, 0, 1.0f) ) * 0.5
|
||||
* GfParmGetNum(hparmCar, SECT_CENTRALDIFFERENTIAL, PRM_EFFICIENCY, 0, 1.0f);
|
||||
}
|
||||
const tdble eff = fTopGearEff * fDiffEff; // gear * differential efficiencies
|
||||
const tdble Cd =
|
||||
0.645f * fCx * fFrontArea
|
||||
|
|
Loading…
Reference in a new issue