mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 01:19:19 +02:00
Merge pull request #14 from antonisauren/tmj-master
Parametrisation of maximum brake overload pressure and pressure decre…
This commit is contained in:
@@ -1077,10 +1077,12 @@ public:
|
|||||||
double P2FTrans = 0.0;
|
double P2FTrans = 0.0;
|
||||||
double TrackBrakeForce = 0.0; /*sila nacisku hamulca szynowego*/
|
double TrackBrakeForce = 0.0; /*sila nacisku hamulca szynowego*/
|
||||||
int BrakeMethod = 0; /*flaga rodzaju hamulca*/
|
int BrakeMethod = 0; /*flaga rodzaju hamulca*/
|
||||||
bool Handle_AutomaticOverload = false;
|
bool Handle_AutomaticOverload = false; //automatyczna asymilacja na pozycji napelniania
|
||||||
bool Handle_ManualOverload = false;
|
bool Handle_ManualOverload = false; //reczna asymilacja na guzik
|
||||||
double Handle_GenericDoubleParameter1 = 0.0;
|
double Handle_GenericDoubleParameter1 = 0.0;
|
||||||
double Handle_GenericDoubleParameter2 = 0.0;
|
double Handle_GenericDoubleParameter2 = 0.0;
|
||||||
|
double Handle_OverloadMaxPressure = 1.0; //maksymalne zwiekszenie cisnienia przy asymilacji
|
||||||
|
double Handle_OverloadPressureDecrease = 0.002; //predkosc spadku cisnienia przy asymilacji
|
||||||
/*max. cisnienie w cyl. ham., stala proporcjonalnosci p-K*/
|
/*max. cisnienie w cyl. ham., stala proporcjonalnosci p-K*/
|
||||||
double HighPipePress = 0.0;
|
double HighPipePress = 0.0;
|
||||||
double LowPipePress = 0.0;
|
double LowPipePress = 0.0;
|
||||||
|
|||||||
@@ -10017,6 +10017,8 @@ void TMoverParameters::LoadFIZ_Cntrl( std::string const &line ) {
|
|||||||
extract_value( Handle_ManualOverload, "HMO", line, "" );
|
extract_value( Handle_ManualOverload, "HMO", line, "" );
|
||||||
extract_value( Handle_GenericDoubleParameter1, "HGDP1", line, "" );
|
extract_value( Handle_GenericDoubleParameter1, "HGDP1", line, "" );
|
||||||
extract_value( Handle_GenericDoubleParameter2, "HGDP2", line, "" );
|
extract_value( Handle_GenericDoubleParameter2, "HGDP2", line, "" );
|
||||||
|
extract_value( Handle_OverloadMaxPressure, "OMP", line, "" );
|
||||||
|
extract_value( Handle_OverloadPressureDecrease, "OPD", line, "" );
|
||||||
// brakelochandle
|
// brakelochandle
|
||||||
{
|
{
|
||||||
std::map<std::string, TBrakeHandle> locbrakehandles{
|
std::map<std::string, TBrakeHandle> locbrakehandles{
|
||||||
@@ -11072,7 +11074,7 @@ bool TMoverParameters::CheckLocomotiveParameters(bool ReadyFlag, int Dir)
|
|||||||
default:
|
default:
|
||||||
Handle = std::make_shared<TDriverHandle>();
|
Handle = std::make_shared<TDriverHandle>();
|
||||||
}
|
}
|
||||||
Handle->SetParams(Handle_AutomaticOverload, Handle_ManualOverload, Handle_GenericDoubleParameter1, Handle_GenericDoubleParameter2);
|
Handle->SetParams(Handle_AutomaticOverload, Handle_ManualOverload, Handle_GenericDoubleParameter1, Handle_GenericDoubleParameter2, Handle_OverloadMaxPressure, Handle_OverloadPressureDecrease);
|
||||||
|
|
||||||
switch( BrakeLocHandle ) {
|
switch( BrakeLocHandle ) {
|
||||||
case TBrakeHandle::FD1:
|
case TBrakeHandle::FD1:
|
||||||
|
|||||||
@@ -2592,7 +2592,7 @@ double TMHZ_EN57::GetPF( double i_bcp, double PP, double HP, double dt, double e
|
|||||||
|
|
||||||
if ((TP > 0)&&(CP > 4.9))
|
if ((TP > 0)&&(CP > 4.9))
|
||||||
{
|
{
|
||||||
DP = 0.045;
|
DP = OverloadPressureDecrease;
|
||||||
if (EQ(i_bcp, 0))
|
if (EQ(i_bcp, 0))
|
||||||
TP = TP - DP * dt;
|
TP = TP - DP * dt;
|
||||||
Sounds[s_fv4a_t] = DP;
|
Sounds[s_fv4a_t] = DP;
|
||||||
@@ -2636,7 +2636,7 @@ double TMHZ_EN57::GetPF( double i_bcp, double PP, double HP, double dt, double e
|
|||||||
{
|
{
|
||||||
if ((TP < 5))
|
if ((TP < 5))
|
||||||
TP = TP + dt; // 5/10
|
TP = TP + dt; // 5/10
|
||||||
if ((TP < 1))
|
if ((TP < OverloadMaxPressure))
|
||||||
TP = TP - 0.5 * dt; // 5/10
|
TP = TP - 0.5 * dt; // 5/10
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2711,12 +2711,14 @@ double TMHZ_EN57::LPP_RP(double pos) // cisnienie z zaokraglonej pozycji;
|
|||||||
return 5.0;
|
return 5.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TMHZ_EN57::SetParams(bool AO, bool MO, double OverP, double)
|
void TMHZ_EN57::SetParams(bool AO, bool MO, double OverP, double, double OMP, double OPD)
|
||||||
{
|
{
|
||||||
AutoOvrld = AO;
|
AutoOvrld = AO;
|
||||||
ManualOvrld = MO;
|
ManualOvrld = MO;
|
||||||
UnbrakeOverPressure = std::max(0.0, OverP);
|
UnbrakeOverPressure = std::max(0.0, OverP);
|
||||||
Fala = (OverP > 0.01);
|
Fala = (OverP > 0.01);
|
||||||
|
OverloadMaxPressure = OMP;
|
||||||
|
OverloadPressureDecrease = OPD;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2747,7 +2749,7 @@ double TMHZ_K5P::GetPF(double i_bcp, double PP, double HP, double dt, double ep)
|
|||||||
|
|
||||||
if ((TP > 0)&&(CP>4.9))
|
if ((TP > 0)&&(CP>4.9))
|
||||||
{
|
{
|
||||||
DP = 0.004;
|
DP = OverloadPressureDecrease;
|
||||||
TP = TP - DP * dt;
|
TP = TP - DP * dt;
|
||||||
Sounds[s_fv4a_t] = DP;
|
Sounds[s_fv4a_t] = DP;
|
||||||
}
|
}
|
||||||
@@ -2785,7 +2787,7 @@ double TMHZ_K5P::GetPF(double i_bcp, double PP, double HP, double dt, double ep)
|
|||||||
|
|
||||||
if ((EQ(i_bcp, -1) && (AutoOvrld)) || ((i_bcp<0.5) && (UniversalFlag & TUniversalBrake::ub_Overload)))
|
if ((EQ(i_bcp, -1) && (AutoOvrld)) || ((i_bcp<0.5) && (UniversalFlag & TUniversalBrake::ub_Overload)))
|
||||||
{
|
{
|
||||||
if ((TP < 1))
|
if ((TP < OverloadMaxPressure))
|
||||||
TP = TP + 0.03 * dt;
|
TP = TP + 0.03 * dt;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2839,13 +2841,15 @@ double TMHZ_K5P::GetCP()
|
|||||||
return CP;
|
return CP;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TMHZ_K5P::SetParams(bool AO, bool MO, double OverP, double)
|
void TMHZ_K5P::SetParams(bool AO, bool MO, double OverP, double, double OMP, double OPD)
|
||||||
{
|
{
|
||||||
AutoOvrld = AO;
|
AutoOvrld = AO;
|
||||||
ManualOvrld = MO;
|
ManualOvrld = MO;
|
||||||
UnbrakeOverPressure = std::max(0.0, OverP);
|
UnbrakeOverPressure = std::max(0.0, OverP);
|
||||||
Fala = (OverP > 0.01);
|
Fala = (OverP > 0.01);
|
||||||
|
OverloadMaxPressure = OMP;
|
||||||
|
OverloadPressureDecrease = OPD;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TMHZ_K5P::EQ(double pos, double i_pos)
|
bool TMHZ_K5P::EQ(double pos, double i_pos)
|
||||||
@@ -2875,7 +2879,7 @@ double TMHZ_6P::GetPF(double i_bcp, double PP, double HP, double dt, double ep)
|
|||||||
|
|
||||||
if ((TP > 0)&&(CP>4.9))
|
if ((TP > 0)&&(CP>4.9))
|
||||||
{
|
{
|
||||||
DP = 0.004;
|
DP = OverloadPressureDecrease;
|
||||||
TP = TP - DP * dt;
|
TP = TP - DP * dt;
|
||||||
Sounds[s_fv4a_t] = DP;
|
Sounds[s_fv4a_t] = DP;
|
||||||
}
|
}
|
||||||
@@ -2919,7 +2923,7 @@ double TMHZ_6P::GetPF(double i_bcp, double PP, double HP, double dt, double ep)
|
|||||||
|
|
||||||
if ((EQ(i_bcp, -1) && (AutoOvrld)) || ((i_bcp<0.5) && (UniversalFlag & TUniversalBrake::ub_Overload)))
|
if ((EQ(i_bcp, -1) && (AutoOvrld)) || ((i_bcp<0.5) && (UniversalFlag & TUniversalBrake::ub_Overload)))
|
||||||
{
|
{
|
||||||
if ((TP < 1))
|
if ((TP < OverloadMaxPressure))
|
||||||
TP = TP + 0.03 * dt;
|
TP = TP + 0.03 * dt;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2973,12 +2977,14 @@ double TMHZ_6P::GetCP()
|
|||||||
return CP;
|
return CP;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TMHZ_6P::SetParams(bool AO, bool MO, double OverP, double)
|
void TMHZ_6P::SetParams(bool AO, bool MO, double OverP, double, double OMP, double OPD)
|
||||||
{
|
{
|
||||||
AutoOvrld = AO;
|
AutoOvrld = AO;
|
||||||
ManualOvrld = MO;
|
ManualOvrld = MO;
|
||||||
UnbrakeOverPressure = std::max(0.0, OverP);
|
UnbrakeOverPressure = std::max(0.0, OverP);
|
||||||
Fala = (OverP > 0.01);
|
Fala = (OverP > 0.01);
|
||||||
|
OverloadMaxPressure = OMP;
|
||||||
|
OverloadPressureDecrease = OPD;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -545,7 +545,7 @@ class TDriverHandle {
|
|||||||
virtual double GetSound(int i); //pobranie glosnosci wybranego dzwieku
|
virtual double GetSound(int i); //pobranie glosnosci wybranego dzwieku
|
||||||
virtual double GetPos(int i); //pobranie numeru pozycji o zadanym kodzie (funkcji)
|
virtual double GetPos(int i); //pobranie numeru pozycji o zadanym kodzie (funkcji)
|
||||||
virtual double GetEP(double pos); //pobranie sily hamulca ep
|
virtual double GetEP(double pos); //pobranie sily hamulca ep
|
||||||
virtual void SetParams(bool AO, bool MO, double, double) {}; //ustawianie jakichs parametrów dla zaworu
|
virtual void SetParams(bool AO, bool MO, double, double, double OMP, double OPD) {}; //ustawianie jakichs parametrow dla zaworu
|
||||||
virtual void OvrldButton(bool Active); //przycisk recznego przeladowania/asymilacji
|
virtual void OvrldButton(bool Active); //przycisk recznego przeladowania/asymilacji
|
||||||
virtual void SetUniversalFlag(int flag); //przycisk uniwersalny
|
virtual void SetUniversalFlag(int flag); //przycisk uniwersalny
|
||||||
inline TDriverHandle() { memset( Sounds, 0, sizeof( Sounds ) ); }
|
inline TDriverHandle() { memset( Sounds, 0, sizeof( Sounds ) ); }
|
||||||
@@ -603,6 +603,8 @@ class TMHZ_EN57 : public TDriverHandle {
|
|||||||
double RedAdj = 0.0; //dostosowanie reduktora cisnienia (krecenie kapturkiem)
|
double RedAdj = 0.0; //dostosowanie reduktora cisnienia (krecenie kapturkiem)
|
||||||
bool Fala = false;
|
bool Fala = false;
|
||||||
double UnbrakeOverPressure = 0.0;
|
double UnbrakeOverPressure = 0.0;
|
||||||
|
double OverloadMaxPressure = 1.0; //maksymalne zwiekszenie cisnienia przy asymilacji
|
||||||
|
double OverloadPressureDecrease = 0.045; //predkosc spadku cisnienia przy asymilacji
|
||||||
static double const pos_table[11]; //= { -2, 10, -1, 0, 0, 2, 9, 10, 0, 0, 0 };
|
static double const pos_table[11]; //= { -2, 10, -1, 0, 0, 2, 9, 10, 0, 0, 0 };
|
||||||
|
|
||||||
double LPP_RP(double pos);
|
double LPP_RP(double pos);
|
||||||
@@ -616,7 +618,7 @@ class TMHZ_EN57 : public TDriverHandle {
|
|||||||
double GetPos(int i)/*override*/;
|
double GetPos(int i)/*override*/;
|
||||||
double GetCP()/*override*/;
|
double GetCP()/*override*/;
|
||||||
double GetEP(double pos);
|
double GetEP(double pos);
|
||||||
void SetParams(bool AO, bool MO, double OverP, double);
|
void SetParams(bool AO, bool MO, double OverP, double, double OMP, double OPD);
|
||||||
inline TMHZ_EN57(void) :
|
inline TMHZ_EN57(void) :
|
||||||
TDriverHandle()
|
TDriverHandle()
|
||||||
{}
|
{}
|
||||||
@@ -631,6 +633,8 @@ private:
|
|||||||
double RedAdj = 0.0; //dostosowanie reduktora cisnienia (krecenie kapturkiem)
|
double RedAdj = 0.0; //dostosowanie reduktora cisnienia (krecenie kapturkiem)
|
||||||
bool Fala = false; //czy jest napelnianie uderzeniowe
|
bool Fala = false; //czy jest napelnianie uderzeniowe
|
||||||
double UnbrakeOverPressure = 0.0;
|
double UnbrakeOverPressure = 0.0;
|
||||||
|
double OverloadMaxPressure = 1.0; //maksymalne zwiekszenie cisnienia przy asymilacji
|
||||||
|
double OverloadPressureDecrease = 0.002; //predkosc spadku cisnienia przy asymilacji
|
||||||
static double const pos_table[11]; //= { -2, 10, -1, 0, 0, 2, 9, 10, 0, 0, 0 };
|
static double const pos_table[11]; //= { -2, 10, -1, 0, 0, 2, 9, 10, 0, 0, 0 };
|
||||||
|
|
||||||
bool EQ(double pos, double i_pos);
|
bool EQ(double pos, double i_pos);
|
||||||
@@ -642,7 +646,7 @@ public:
|
|||||||
double GetSound(int i)/*override*/;
|
double GetSound(int i)/*override*/;
|
||||||
double GetPos(int i)/*override*/;
|
double GetPos(int i)/*override*/;
|
||||||
double GetCP()/*override*/;
|
double GetCP()/*override*/;
|
||||||
void SetParams(bool AO, bool MO, double, double); /*ovveride*/
|
void SetParams(bool AO, bool MO, double, double, double OMP, double OPD); /*ovveride*/
|
||||||
|
|
||||||
inline TMHZ_K5P(void) :
|
inline TMHZ_K5P(void) :
|
||||||
TDriverHandle()
|
TDriverHandle()
|
||||||
@@ -658,6 +662,8 @@ private:
|
|||||||
double RedAdj = 0.0; //dostosowanie reduktora cisnienia (krecenie kapturkiem)
|
double RedAdj = 0.0; //dostosowanie reduktora cisnienia (krecenie kapturkiem)
|
||||||
bool Fala = false; //czy jest napelnianie uderzeniowe
|
bool Fala = false; //czy jest napelnianie uderzeniowe
|
||||||
double UnbrakeOverPressure = 0.0; //wartosc napelniania uderzeniowego
|
double UnbrakeOverPressure = 0.0; //wartosc napelniania uderzeniowego
|
||||||
|
double OverloadMaxPressure = 1.0; //maksymalne zwiekszenie cisnienia przy asymilacji
|
||||||
|
double OverloadPressureDecrease = 0.002; //predkosc spadku cisnienia przy asymilacji
|
||||||
static double const pos_table[11]; //= { -2, 10, -1, 0, 0, 2, 9, 10, 0, 0, 0 };
|
static double const pos_table[11]; //= { -2, 10, -1, 0, 0, 2, 9, 10, 0, 0, 0 };
|
||||||
|
|
||||||
bool EQ(double pos, double i_pos);
|
bool EQ(double pos, double i_pos);
|
||||||
@@ -669,7 +675,7 @@ public:
|
|||||||
double GetSound(int i)/*override*/;
|
double GetSound(int i)/*override*/;
|
||||||
double GetPos(int i)/*override*/;
|
double GetPos(int i)/*override*/;
|
||||||
double GetCP()/*override*/;
|
double GetCP()/*override*/;
|
||||||
void SetParams(bool AO, bool MO, double, double); /*ovveride*/
|
void SetParams(bool AO, bool MO, double, double, double OMP, double OPD); /*ovveride*/
|
||||||
|
|
||||||
inline TMHZ_6P(void) :
|
inline TMHZ_6P(void) :
|
||||||
TDriverHandle()
|
TDriverHandle()
|
||||||
|
|||||||
Reference in New Issue
Block a user