7 #ifndef __tire_BrushTire_h__ 8 #define __tire_BrushTire_h__ 35 add(stiffness, FE_USE(
"tire:z:stiffness"));
36 add(damping, FE_USE(
"tire:z:damping"));
37 add(camberStiffness, FE_USE(
"brush:camber_stiffness"));
38 add(brakingStiffness, FE_USE(
"brush:braking_stiffness"));
39 add(corneringStiffness, FE_USE(
"brush:cornering_stiffness"));
40 add(selfAligningStiffness,
41 FE_USE(
"brush:self_aligning_stiffness"));
42 add(latInitialLoadStiffnessScale,
43 FE_USE(
"brush:lat_init_load_stiff_scale"));
44 add(longInitialLoadStiffnessScale,
45 FE_USE(
"brush:long_init_load_stiff_scale"));
46 add(designLoad, FE_USE(
"brush:design_load"));
47 add(slipSpeedFade, FE_USE(
"brush:slip_speed_fade"));
48 add(sensSlope, FE_USE(
"brush:load_sensitivy_slope"));
49 add(finalSens, FE_USE(
"brush:load_sensitivy_final"));
50 add(finalLoad, FE_USE(
"brush:load_sensitivy_final_load"));
51 add(tireHalfGripSpeed, FE_USE(
"brush:half_grip_speed"));
52 add(latGrip, FE_USE(
"brush:lat_grip"));
53 add(longGrip, FE_USE(
"brush:long_grip"));
54 add(slideGrip, FE_USE(
"brush:slide_grip"));
79 t_moa_real mA, mB, mC, mD;
83 void Init( t_moa_real zeroSlope, t_moa_real finalSens,
84 t_moa_real finalLoad );
86 t_moa_real Sensitivity(
const t_moa_real tireLoad )
const 88 const t_moa_real x = (tireLoad > mMaxLoad) ? mMaxLoad : tireLoad;
89 return (mD + (x * (mC + (x * (mB + (x * mA))))));
95 :
virtual public TireI,
103 void step(t_moa_real a_dt);
112 void setVelocity(
const t_moa_v3 &a_velocity);
113 void setAngularVelocity(
const t_moa_v3 &a_ang_velocity);
114 void setContact(
const t_moa_real a_radius,
115 const t_moa_real a_inclination);
117 void setExternalFactor(
const t_moa_real a_factor);
118 void setFrame(
const t_moa_v3 &a_pos,
125 const t_moa_v3 &getAngularVelocity(
void);
126 const t_moa_real &getRadius(
void) {
return m_radius; }
128 t_moa_real &contactRadius(
void) {
return m_contact_radius; }
129 t_moa_real &inclination(
void) {
return m_inclination; }
135 void setGeometry( t_moa_real a_radius,
137 void setFrictionCoefficient(
138 const t_moa_v2 &a_friction_coefficient);
139 void setMode(
unsigned int a_mode) { m_mode = a_mode; }
144 void printf(FILE *fp);
146 void initialize(
void);
152 t_moa_real fHubVelocity;
153 t_moa_real fSinSlipAngle;
154 t_moa_real fCosSlipAngle;
160 t_velocities Velocities;
161 t_moa_real fSinCamber;
175 t_moa_real fCCamberRelative;
177 t_moa_real fMaxSlideSpeedFade;
178 t_moa_real fMaxSlideSpeed;
180 t_moa_real fLateralViscoGrip;
181 t_moa_real fLateralViscoSlope;
184 t_internal m_internal;
192 t_moa_real m_contact_radius;
193 t_moa_real m_inclination;
198 t_moa_real m_stiffness_filter;
199 t_moa_real m_damping_filter;
206 t_moa_real m_deflectionStiffness;
207 t_moa_real m_deflectionDamping;
208 t_moa_real m_brakingStiffness;
209 t_moa_real m_corneringStiffness;
210 t_moa_real m_selfAligningStiffness;
211 t_moa_real m_latInitialLoadStiffnessScale;
212 t_moa_real m_longInitialLoadStiffnessScale;
213 t_moa_real m_designLoad;
215 t_moa_real m_sensSlope;
216 t_moa_real m_finalSens;
217 t_moa_real m_finalLoad;
218 t_moa_real m_tireHalfGripSpeed;
219 t_moa_real m_latGrip;
220 t_moa_real m_longGrip;
221 t_moa_real m_slideGrip;
223 t_moa_real m_externalFactor;
225 TireLoadSens m_loadSensitivity;
229 #ifdef FE_ENABLE_CHANNEL_LOGGING 235 void GetForce(
const t_contact& rContact,
236 const t_moa_real fNormalForce,
237 const t_moa_real fGroundSpeed,
239 t_moa_real* pfPneumaticTrail,
240 t_moa_real* pfAdhesiveWeight);
241 void GetHighSpeedForce(
const t_contact& rContact,
242 const t_moa_real fNormalForce,
244 t_moa_real* pfPneumaticTrail,
245 t_moa_real* pfAdhesiveWeight);
246 void GetLowSpeedForce(
const t_contact& rContact,
247 const t_moa_real fNormalForce,
249 t_moa_real* pfAdhesiveWeight)
const;
251 t_moa_real GetTreadSlideGripFactor(
const t_contact& rContact,
252 t_moa_real fLambda)
const;
263 void initialize(
void);
265 virtual void compile(
const t_note_id &a_note_id);
266 virtual void step(t_moa_real a_dt);
267 void step(t_moa_real a_dt,
unsigned int i_tire);
273 std::vector< Record > m_r_tires;
Set of accessors.
Definition: AccessorSet.h:18
Tire.
Definition: tireAS.h:36
kernel
Definition: namespace.dox:3
Real Time Brush Tire.
Definition: BrushTire.h:16
Time Stepping System.
Definition: Stepper.h:15
Per-class participation in the Initialized <> mechanism.
Definition: Initialized.h:117
Run Time Single Contact Tire Model.
Definition: tireAS.h:49
The most simple least common denominator, single contact, patch oriented Many (most?) "tire models" are this, or use this.
Definition: TireI.h:17
Reference to an instance of a Layout.
Definition: RecordSB.h:35
Brush Tire Model System.
Definition: BrushTire.h:256
Brush Tire Model.
Definition: BrushTire.h:94
Brush Tire Model.
Definition: BrushTire.h:28
Per-class participation non-RTTI fallback dynamic casting mechanism.
Definition: Castable.h:192