17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-11-10 13:43:14 +01:00

AI braking: predict the ESt3 brake force from the distributor characteristic

This commit is contained in:
pwarszawski
2026-11-02 17:01:32 +01:00
parent bb43f559e8
commit 6374e2d32e
4 changed files with 17 additions and 0 deletions

View File

@@ -5091,6 +5091,7 @@ void TMoverParameters::ComputeTotalForce(double dt)
double TMoverParameters::BrakeForceR(double ratio, double velocity)
{
double press = 0;
ratio = Hamulec->GetBrakeRatio(ratio);
if (MBPM > 2)
{
press = MaxBrakePress[1] + (MaxBrakePress[3] - MaxBrakePress[1]) * std::min(1.0, (TotalMass - Mass) / (MBPM - Mass));

View File

@@ -351,6 +351,17 @@ double TNESt3::GetCRP()
// return Miedzypoj.P;
}
double TNESt3::GetBrakeRatio( double const Ratio ) const // udzial cisnienia w cylindrze dla udzialu spadku w PG
{
if( MaxBP <= 0.0 || BVM <= 0.0 ) {
return Ratio;
}
// pelny spadek sluzbowy w PG (HPP - LPP), odtworzony z przelozenia
double const spadek{ MaxBP / BVM + dPSprezyny };
double const cel{ ( Ratio * spadek - dPSprezyny ) * BVM };
return ( cel > 0.0 ? std::max( cel, pStopnia ) / MaxBP : 0.0 );
}
double TNESt3::CelBCP( double const CVP, double const VVP ) const // docelowe cisnienie w cylindrze
{
double const cel{ ( CVP - dPSprezyny - VVP ) * BVM };

View File

@@ -197,6 +197,7 @@ class TNESt3 : public TBrake {
double GetCRP() override;
double GetRapidRatio(double const Vel) const override;
double CelBCP(double const CVP, double const VVP) const; // docelowe cisnienie w cylindrze
double GetBrakeRatio(double const Ratio) const override; // udzial cisnienia w cylindrze dla udzialu spadku w PG
void CheckState(double const BCP, double &dV1); // glowny przyrzad rozrzadczy
void CheckReleaser(double const dt); // odluzniacz
double CVs(double const BP) const; // napelniacz sterujacego

View File

@@ -421,6 +421,10 @@ class TBrake
double GetVRP() const; // cisnienie komory wstepnej rozdzielacza
/// <summary>Returns control reservoir (ZS) pressure [bar]; defaults to the auxiliary reservoir for valves without a dedicated ZS.</summary>
virtual double GetCRP(); // cisnienie zbiornika sterujacego
/// <summary>Share of the full cylinder pressure the distributor settles at for the given share
/// of the full service pipe drop. Used only to predict the brake force; the default is proportional.</summary>
/// <param name="Ratio">Share of the full service brake pipe drop.</param>
virtual double GetBrakeRatio(double const Ratio) const { return Ratio; }
/// <summary>
/// Sets the brake delay (G/P/R/M) selector if requested mode is supported.
/// </summary>