mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 16:19:19 +02:00
Zmiana obiektów na wskaźniki zgodnie z konwerterem Borlanda.
This commit is contained in:
22
EU07.bpr
22
EU07.bpr
@@ -4,16 +4,16 @@
|
|||||||
<MACROS>
|
<MACROS>
|
||||||
<VERSION value="BCB.05.03"/>
|
<VERSION value="BCB.05.03"/>
|
||||||
<PROJECT value="E:\Gry\MaSzyna_15_04\EU07.exe"/>
|
<PROJECT value="E:\Gry\MaSzyna_15_04\EU07.exe"/>
|
||||||
<OBJFILES value="QueryParserComp.obj McZapkie\_mover.obj McZapkie\hamulce.obj
|
<OBJFILES value="QueryParserComp.obj McZapkie\_mover.obj McZapkie\hamulce.obj EU07.obj
|
||||||
McZapkie\Oerlikon_ESt.obj EU07.obj dumb3d.obj Camera.obj Texture.obj
|
dumb3d.obj Camera.obj Texture.obj World.obj Model3d.obj MdlMngr.obj
|
||||||
World.obj Model3d.obj MdlMngr.obj Train.obj wavread.obj Timer.obj
|
Train.obj wavread.obj Timer.obj Event.obj MemCell.obj Logs.obj Spring.obj
|
||||||
Event.obj MemCell.obj Logs.obj Spring.obj Button.obj Globals.obj Gauge.obj
|
Button.obj Globals.obj Gauge.obj AnimModel.obj Ground.obj TrkFoll.obj
|
||||||
AnimModel.obj Ground.obj TrkFoll.obj Segment.obj Sound.obj AdvSound.obj
|
Segment.obj Sound.obj AdvSound.obj Track.obj DynObj.obj RealSound.obj
|
||||||
Track.obj DynObj.obj RealSound.obj EvLaunch.obj FadeSound.obj Traction.obj
|
EvLaunch.obj FadeSound.obj Traction.obj TractionPower.obj parser.obj
|
||||||
TractionPower.obj parser.obj sky.obj AirCoupler.obj opengl\glew.obj
|
sky.obj AirCoupler.obj opengl\glew.obj ResourceManager.obj VBO.obj
|
||||||
ResourceManager.obj VBO.obj mtable.obj TextureDDS.obj
|
mtable.obj TextureDDS.obj opengl\ARB_Multisample.obj Float3d.obj
|
||||||
opengl\ARB_Multisample.obj Float3d.obj Classes.obj Driver.obj Names.obj
|
Classes.obj Driver.obj Names.obj Console.obj Mover.obj
|
||||||
Console.obj Mover.obj Console\PoKeys55.obj Forth.obj Console\LPT.obj
|
McZapkie\Oerlikon_ESt.obj Console\PoKeys55.obj Forth.obj Console\LPT.obj
|
||||||
PyInt.obj"/>
|
PyInt.obj"/>
|
||||||
<RESFILES value="EU07.res"/>
|
<RESFILES value="EU07.res"/>
|
||||||
<IDLFILES value=""/>
|
<IDLFILES value=""/>
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
<LIBRARIES value="dclocx50.bpi bcbsmp50.bpi VCLX50.lib bcbsmp50.lib Vcl50.lib"/>
|
<LIBRARIES value="dclocx50.bpi bcbsmp50.bpi VCLX50.lib bcbsmp50.lib Vcl50.lib"/>
|
||||||
<SPARELIBS value="Vcl50.lib bcbsmp50.lib VCLX50.lib bcbsmp50.bpi dclocx50.bpi"/>
|
<SPARELIBS value="Vcl50.lib bcbsmp50.lib VCLX50.lib bcbsmp50.bpi dclocx50.bpi"/>
|
||||||
<PACKAGES value="Vcl50.bpi Vclx50.bpi"/>
|
<PACKAGES value="Vcl50.bpi Vclx50.bpi"/>
|
||||||
<PATHCPP value=".;opengl;Console"/>
|
<PATHCPP value=".;opengl;McZapkie;Console"/>
|
||||||
<PATHPAS value=".;McZapkie"/>
|
<PATHPAS value=".;McZapkie"/>
|
||||||
<PATHRC value=".;"/>
|
<PATHRC value=".;"/>
|
||||||
<PATHASM value=".;"/>
|
<PATHASM value=".;"/>
|
||||||
|
|||||||
2
EU07.cpp
2
EU07.cpp
@@ -82,7 +82,7 @@ USEUNIT("Console.cpp");
|
|||||||
USEUNIT("Mover.cpp");
|
USEUNIT("Mover.cpp");
|
||||||
USEUNIT("McZapkie\_mover.pas");
|
USEUNIT("McZapkie\_mover.pas");
|
||||||
USEUNIT("McZapkie\hamulce.pas");
|
USEUNIT("McZapkie\hamulce.pas");
|
||||||
USEUNIT("McZapkie\Oerlikon_ESt.pas");
|
USEUNIT("McZapkie\Oerlikon_ESt.cpp");
|
||||||
USEUNIT("Console\PoKeys55.cpp");
|
USEUNIT("Console\PoKeys55.cpp");
|
||||||
USEUNIT("Forth.cpp");
|
USEUNIT("Forth.cpp");
|
||||||
USEUNIT("Console\LPT.cpp");
|
USEUNIT("Console\LPT.cpp");
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
#pragma delphiheader begin
|
#pragma delphiheader begin
|
||||||
#pragma option push -w-
|
#pragma option push -w-
|
||||||
#pragma option push -Vx
|
#pragma option push -Vx
|
||||||
#include <Oerlikon_ESt.hpp> // Pascal unit
|
#include <Oerlikon_ESt.h> // Pascal unit
|
||||||
#include <hamulce.hpp> // Pascal unit
|
#include <hamulce.hpp> // Pascal unit
|
||||||
#include <SysUtils.hpp> // Pascal unit
|
#include <SysUtils.hpp> // Pascal unit
|
||||||
#include <mctools.hpp> // Pascal unit
|
#include <mctools.hpp> // Pascal unit
|
||||||
|
|||||||
@@ -13,24 +13,23 @@ Copyright (C) 2007-2014 Maciej Cierniak
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "Oerlikon_ESt.h"
|
#include "Oerlikon_ESt.h"
|
||||||
|
#include <typeinfo>
|
||||||
|
|
||||||
double d2A(double d)
|
double d2A(double d)
|
||||||
{ double result;
|
{
|
||||||
d2A =( d*d )*0.7854*1.0/1000;
|
return (d * d) * 0.7854 * 1.0 / 1000;
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------ RURA ------
|
// ------ RURA ------
|
||||||
|
|
||||||
double TRura::P()
|
double __fastcall TRura::P(void)
|
||||||
{ double result;
|
{
|
||||||
P =Next.P;
|
return Next->P();
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TRura::Update(double dt)
|
void TRura::Update(double dt)
|
||||||
{
|
{
|
||||||
Next.Flow( dVol );
|
Next->Flow(dVol);
|
||||||
dVol = 0;
|
dVol = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,33 +44,35 @@ void TPrzeciwposlizg::Update(double dt)
|
|||||||
{
|
{
|
||||||
if ((Poslizg))
|
if ((Poslizg))
|
||||||
{
|
{
|
||||||
BrakeRes.Flow( dVol );
|
BrakeRes->Flow(dVol);
|
||||||
Next.Flow( PF( Next.P, 0, d2A( 10 ) )*dt );
|
Next->Flow(PF(Next->P(), 0, d2A(10)) * dt);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Next.Flow( dVol );
|
Next->Flow(dVol);
|
||||||
dVol = 0;
|
dVol = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ------ PRZEKLADNIK ------
|
// ------ PRZEKLADNIK ------
|
||||||
|
|
||||||
void TPrzekladnik::Update(double dt)
|
void TPrzekladnik::Update(double dt)
|
||||||
{ double BCP; double BVP; double dV;
|
{
|
||||||
|
double BCP;
|
||||||
|
double BVP;
|
||||||
|
double dV;
|
||||||
|
|
||||||
|
BCP = Next->P();
|
||||||
BCP =Next.P;
|
BVP = BrakeRes->P();
|
||||||
BVP =BrakeRes.P;
|
|
||||||
|
|
||||||
if ((BCP > P))
|
if ((BCP > P))
|
||||||
dV =-PFVd( BCP, 0, d2A( 10 ), P )*dt;else
|
dV = -PFVd(BCP, 0, d2A(10), P) * dt;
|
||||||
if( ( BCP<P ) )
|
else if ((BCP < P))
|
||||||
dV =PFVa( BVP, BCP, d2A( 10 ), P )*dt;else dV =0;
|
dV = PFVa(BVP, BCP, d2A(10), P) * dt;
|
||||||
|
else
|
||||||
|
dV = 0;
|
||||||
|
|
||||||
Next.Flow( dV );
|
Next->Flow(dV);
|
||||||
if (dV > 0)
|
if (dV > 0)
|
||||||
BrakeRes.Flow( -dV );
|
BrakeRes->Flow(-dV);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------ PRZEKLADNIK RAPID ------
|
// ------ PRZEKLADNIK RAPID ------
|
||||||
@@ -98,10 +99,14 @@ void TRapid::SetRapidStatus(bool rs)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void TRapid::Update(double dt)
|
void TRapid::Update(double dt)
|
||||||
{ double BCP; double BVP; double dV; double ActMult;
|
{
|
||||||
|
double BCP;
|
||||||
|
double BVP;
|
||||||
|
double dV;
|
||||||
|
double ActMult;
|
||||||
|
|
||||||
BVP =BrakeRes.P;
|
BVP = BrakeRes->P();
|
||||||
BCP =Next.P;
|
BCP = Next->P();
|
||||||
|
|
||||||
if ((RapidStatus))
|
if ((RapidStatus))
|
||||||
{
|
{
|
||||||
@@ -113,14 +118,15 @@ void TRapid::Update(double dt)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((BCP * RapidMult > P * ActMult))
|
if ((BCP * RapidMult > P * ActMult))
|
||||||
dV =-PFVd( BCP, 0, DL, P*ActMult*1.0/RapidMult )*dt;else
|
dV = -PFVd(BCP, 0, DL, P * ActMult * 1.0 / RapidMult) * dt;
|
||||||
if( ( BCP*RapidMult<P*ActMult ) )
|
else if ((BCP * RapidMult < P * ActMult))
|
||||||
dV =PFVa( BVP, BCP, DN, P*ActMult*1.0/RapidMult )*dt;else dV =0;
|
dV = PFVa(BVP, BCP, DN, P * ActMult * 1.0 / RapidMult) * dt;
|
||||||
|
else
|
||||||
|
dV = 0;
|
||||||
|
|
||||||
Next.Flow( dV );
|
Next->Flow(dV);
|
||||||
if (dV > 0)
|
if (dV > 0)
|
||||||
BrakeRes.Flow( -dV );
|
BrakeRes->Flow(-dV);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------ PRZEK£ADNIK CI¥G£Y ------
|
// ------ PRZEK£ADNIK CI¥G£Y ------
|
||||||
@@ -131,20 +137,24 @@ void TPrzekCiagly::SetMult(double m)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void TPrzekCiagly::Update(double dt)
|
void TPrzekCiagly::Update(double dt)
|
||||||
{ double BCP; double BVP; double dV;
|
{
|
||||||
|
double BCP;
|
||||||
|
double BVP;
|
||||||
|
double dV;
|
||||||
|
|
||||||
BVP =BrakeRes.P;
|
BVP = BrakeRes->P();
|
||||||
BCP =Next.P;
|
BCP = Next->P();
|
||||||
|
|
||||||
if ((BCP > P * mult))
|
if ((BCP > P * mult))
|
||||||
dV =-PFVd( BCP, 0, d2A( 8 ), P*mult )*dt;else
|
dV = -PFVd(BCP, 0, d2A(8), P * mult) * dt;
|
||||||
if( ( BCP<P*mult ) )
|
else if ((BCP < P * mult))
|
||||||
dV =PFVa( BVP, BCP, d2A( 8 ), P*mult )*dt;else dV =0;
|
dV = PFVa(BVP, BCP, d2A(8), P * mult) * dt;
|
||||||
|
else
|
||||||
|
dV = 0;
|
||||||
|
|
||||||
Next.Flow( dV );
|
Next->Flow(dV);
|
||||||
if (dV > 0)
|
if (dV > 0)
|
||||||
BrakeRes.Flow( -dV );
|
BrakeRes->Flow(-dV);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------ PRZEK£ADNIK CI¥G£Y ------
|
// ------ PRZEK£ADNIK CI¥G£Y ------
|
||||||
@@ -155,22 +165,27 @@ void TPrzek_PZZ::SetLBP(double P)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void TPrzek_PZZ::Update(double dt)
|
void TPrzek_PZZ::Update(double dt)
|
||||||
{ double BCP; double BVP; double dV; double Pgr;
|
{
|
||||||
|
double BCP;
|
||||||
|
double BVP;
|
||||||
|
double dV;
|
||||||
|
double Pgr;
|
||||||
|
|
||||||
BVP =BrakeRes.P;
|
BVP = BrakeRes->P();
|
||||||
BCP =Next.P;
|
BCP = Next->P();
|
||||||
|
|
||||||
Pgr = Max0R(LBP, P);
|
Pgr = Max0R(LBP, P);
|
||||||
|
|
||||||
if ((BCP > Pgr))
|
if ((BCP > Pgr))
|
||||||
dV =-PFVd( BCP, 0, d2A( 8 ), Pgr )*dt;else
|
dV = -PFVd(BCP, 0, d2A(8), Pgr) * dt;
|
||||||
if( ( BCP<Pgr ) )
|
else if ((BCP < Pgr))
|
||||||
dV =PFVa( BVP, BCP, d2A( 8 ), Pgr )*dt;else dV =0;
|
dV = PFVa(BVP, BCP, d2A(8), Pgr) * dt;
|
||||||
|
else
|
||||||
|
dV = 0;
|
||||||
|
|
||||||
Next.Flow( dV );
|
Next->Flow(dV);
|
||||||
if (dV > 0)
|
if (dV > 0)
|
||||||
BrakeRes.Flow( -dV );
|
BrakeRes->Flow(-dV);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------ PRZECIWPOSLIG ------
|
// ------ PRZECIWPOSLIG ------
|
||||||
@@ -182,127 +197,143 @@ void TPrzekED::SetP(double P)
|
|||||||
|
|
||||||
void TPrzekED::Update(double dt)
|
void TPrzekED::Update(double dt)
|
||||||
{
|
{
|
||||||
if( Next.P>MaxP )
|
if (Next->P > MaxP)
|
||||||
{
|
{
|
||||||
BrakeRes.Flow( dVol );
|
BrakeRes->Flow(dVol);
|
||||||
Next.Flow( PFVd( Next.P, 0, d2A( 10 )*dt, MaxP ) );
|
Next->Flow(PFVd(Next->P, 0, d2A(10) * dt, MaxP));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Next.Flow( dVol );
|
Next->Flow(dVol);
|
||||||
dVol = 0;
|
dVol = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ------ OERLIKON EST NA BOGATO ------
|
// ------ OERLIKON EST NA BOGATO ------
|
||||||
|
|
||||||
double TNESt3::GetPF(double PP, double dt, double Vel) // przeplyw miedzy komora wstepna i PG
|
double TNESt3::GetPF(double PP, double dt, double Vel) // przeplyw miedzy komora wstepna i PG
|
||||||
{ double result; double dV; double dV1; double temp;
|
{
|
||||||
double VVP; double BVP; double BCP; double CVP; double MPP; double nastG;
|
double dV;
|
||||||
|
double dV1;
|
||||||
|
double temp;
|
||||||
|
double VVP;
|
||||||
|
double BVP;
|
||||||
|
double BCP;
|
||||||
|
double CVP;
|
||||||
|
double MPP;
|
||||||
|
double nastG;
|
||||||
unsigned char i;
|
unsigned char i;
|
||||||
|
|
||||||
BVP =BrakeRes.P;
|
BVP = BrakeRes->P();
|
||||||
VVP =ValveRes.P;
|
VVP = ValveRes->P();
|
||||||
// BCP:=BrakeCyl.P;
|
// BCP:=BrakeCyl.P;
|
||||||
BCP =Przekladniki[ 1 ].P;
|
BCP = Przekladniki[1]->P();
|
||||||
CVP = CntrlRes.P - 0.0;
|
CVP = CntrlRes.P - 0.0;
|
||||||
MPP =Miedzypoj.P;
|
MPP = Miedzypoj->P();
|
||||||
dV1 = 0;
|
dV1 = 0;
|
||||||
|
|
||||||
nastG =( BrakeDelayFlag && bdelay_G );
|
nastG = (BrakeDelayFlag & bdelay_G);
|
||||||
|
|
||||||
// sprawdzanie stanu
|
// sprawdzanie stanu
|
||||||
CheckState(BCP, dV1);
|
CheckState(BCP, dV1);
|
||||||
CheckReleaser(dt);
|
CheckReleaser(dt);
|
||||||
|
|
||||||
// luzowanie
|
// luzowanie
|
||||||
if( ( BrakeStatus && b_hld )==b_off )
|
if ((BrakeStatus & b_hld) == b_off)
|
||||||
dV =PF( 0, BCP, Nozzles[ dTO ]*nastG+( 1-nastG )*Nozzles[ dOO ] )*dt*( 0.1+4.9*Min0R( 0.2, BCP-( ( CVP-0.05-VVP )*BVM+0.1 ) ) );else dV =0;
|
dV = PF(0, BCP, Nozzles[dTO] * nastG + (1 - nastG) * Nozzles[dOO]) * dt *
|
||||||
// BrakeCyl.Flow(-dV);
|
(0.1 + 4.9 * Min0R(0.2, BCP - ((CVP - 0.05 - VVP) * BVM + 0.1)));
|
||||||
Przekladniki[ 1 ].Flow( -dV );
|
|
||||||
if( ( ( BrakeStatus && b_on )==b_on )&&( Przekladniki[ 1 ].P*HBG300<MaxBP ) )
|
|
||||||
dV =PF( BVP, BCP, Nozzles[ dTN ]*( nastG+2*unsigned char( BCP<Podskok ) )+Nozzles[ dON ]*( 1-nastG ) )*dt*( 0.1+4.9*Min0R( 0.2, ( CVP-0.05-VVP )*BVM-BCP ) );else dV =0;
|
|
||||||
// BrakeCyl.Flow(-dV);
|
|
||||||
Przekladniki[ 1 ].Flow( -dV );
|
|
||||||
BrakeRes.Flow( dV );
|
|
||||||
|
|
||||||
{ long i_end = 4 ; for( i = 1 ; i < i_end ; ++i )
|
|
||||||
{
|
|
||||||
Przekladniki[ i ].Update( dt );
|
|
||||||
if( ( Przekladniki[ i ] is TRapid ) )
|
|
||||||
{
|
|
||||||
RapidStatus =( ( ( BrakeDelayFlag && bdelay_R )==bdelay_R ) && ( ( abs( Vel )>70 ) || ( ( RapidStatus ) && ( abs( Vel )>50 ) ) || ( RapidStaly ) ) );
|
|
||||||
( Przekladniki[ i ] as TRapid ).SetRapidStatus( RapidStatus );
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
if( ( Przekladniki[ i ] is TPrzeciwposlizg ) )
|
dV = 0;
|
||||||
( Przekladniki[ i ] as TPrzeciwposlizg ).SetPoslizg( ( BrakeStatus && b_asb )==b_asb );else
|
// BrakeCyl.Flow(-dV);
|
||||||
if( ( Przekladniki[ i ] is TPrzekED ) )
|
Przekladniki[1]->Flow(-dV);
|
||||||
if( ( Vel<-15 ) )
|
if (((BrakeStatus & b_on) == b_on) && (Przekladniki[1]->P * HBG300 < MaxBP))
|
||||||
( Przekladniki[ i ] as TPrzekED ).SetP( 0 );else ( Przekladniki[ i ] as TPrzekED ).SetP( MaxBP*3 );else
|
dV = PF(BVP, BCP, Nozzles[dTN] * (nastG + 2 * unsigned char(BCP < Podskok)) +
|
||||||
if( ( Przekladniki[ i ] is TPrzekCiagly ) )
|
Nozzles[dON] * (1 - nastG)) *
|
||||||
( Przekladniki[ i ] as TPrzekCiagly ).SetMult( LoadC );else
|
dt * (0.1 + 4.9 * Min0R(0.2, (CVP - 0.05 - VVP) * BVM - BCP));
|
||||||
if( ( Przekladniki[ i ] is TPrzek_PZZ ) )
|
else
|
||||||
( Przekladniki[ i ] as TPrzek_PZZ ).SetLBP( LBP );
|
dV = 0;
|
||||||
}}
|
// BrakeCyl.Flow(-dV);
|
||||||
|
Przekladniki[1]->Flow(-dV);
|
||||||
|
BrakeRes->Flow(dV);
|
||||||
|
|
||||||
|
{
|
||||||
|
short i_end = 4;
|
||||||
|
for (i = 1; i < i_end; ++i)
|
||||||
|
{
|
||||||
|
Przekladniki[i]->Update(dt);
|
||||||
|
if (typeid(Przekladniki[i]) == typeid(TRapid))
|
||||||
|
{
|
||||||
|
RapidStatus =
|
||||||
|
(((BrakeDelayFlag & bdelay_R) == bdelay_R) &&
|
||||||
|
((abs(Vel) > 70) || ((RapidStatus) && (abs(Vel) > 50)) || (RapidStaly)));
|
||||||
|
Przekladniki[i]->SetRapidStatus(RapidStatus);
|
||||||
|
}
|
||||||
|
else if (typeid(Przekladniki[i]) == typeid(TPrzeciwposlizg))
|
||||||
|
Przekladniki[i]->SetPoslizg((BrakeStatus & b_asb) == b_asb);
|
||||||
|
else if (typeid(Przekladniki[i]) == typeid(TPrzekED))
|
||||||
|
if ((Vel < -15))
|
||||||
|
Przekladniki[i]->SetP(0);
|
||||||
|
else
|
||||||
|
Przekladniki[i]->SetP(MaxBP * 3);
|
||||||
|
else if (typeid(Przekladniki[i]) == typeid(TPrzekCiagly))
|
||||||
|
Przekladniki[i]->SetMult(LoadC);
|
||||||
|
else if (typeid(Przekladniki[i]) == typeid(TPrzek_PZZ))
|
||||||
|
Przekladniki[i]->SetLBP(LBP);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// przeplyw testowy miedzypojemnosci
|
// przeplyw testowy miedzypojemnosci
|
||||||
dV = PF(MPP, VVP, BVs(BCP)) + PF(MPP, CVP, CVs(BCP));
|
dV = PF(MPP, VVP, BVs(BCP)) + PF(MPP, CVP, CVs(BCP));
|
||||||
if ((MPP - 0.05 > BVP))
|
if ((MPP - 0.05 > BVP))
|
||||||
dV = dV + PF(MPP - 0.05, BVP, Nozzles[dPT] * nastG + (1 - nastG) * Nozzles[dPO]);
|
dV = dV + PF(MPP - 0.05, BVP, Nozzles[dPT] * nastG + (1 - nastG) * Nozzles[dPO]);
|
||||||
if( MPP>VVP ) dV =dV+PF( MPP, VVP, d2A( 5 ) );
|
if (MPP > VVP)
|
||||||
Miedzypoj.Flow( dV*dt*0.15 );
|
dV = dV + PF(MPP, VVP, d2A(5));
|
||||||
|
Miedzypoj->Flow(dV * dt * 0.15);
|
||||||
|
|
||||||
// przeplyw ZS <-> PG
|
// przeplyw ZS <-> PG
|
||||||
temp = CVs(BCP);
|
temp = CVs(BCP);
|
||||||
dV = PF(CVP, MPP, temp) * dt;
|
dV = PF(CVP, MPP, temp) * dt;
|
||||||
CntrlRes.Flow( +dV );
|
CntrlRes->Flow(+dV);
|
||||||
ValveRes.Flow( -0.02*dV );
|
ValveRes->Flow(-0.02 * dV);
|
||||||
dV1 = dV1 + 0.98 * dV;
|
dV1 = dV1 + 0.98 * dV;
|
||||||
|
|
||||||
// przeplyw ZP <-> MPJ
|
// przeplyw ZP <-> MPJ
|
||||||
if ((MPP - 0.05 > BVP))
|
if ((MPP - 0.05 > BVP))
|
||||||
dV =PF( BVP, MPP-0.05, Nozzles[ dPT ]*nastG+( 1-nastG )*Nozzles[ dPO ] )*dt;else dV =0;
|
dV = PF(BVP, MPP - 0.05, Nozzles[dPT] * nastG + (1 - nastG) * Nozzles[dPO]) * dt;
|
||||||
BrakeRes.Flow( dV );
|
else
|
||||||
|
dV = 0;
|
||||||
|
BrakeRes->Flow(dV);
|
||||||
dV1 = dV1 + dV * 0.98;
|
dV1 = dV1 + dV * 0.98;
|
||||||
ValveRes.Flow( -0.02*dV );
|
ValveRes->Flow(-0.02 * dV);
|
||||||
// przeplyw PG <-> rozdzielacz
|
// przeplyw PG <-> rozdzielacz
|
||||||
dV = PF(PP, VVP, 0.005) * dt; // 0.01
|
dV = PF(PP, VVP, 0.005) * dt; // 0.01
|
||||||
ValveRes.Flow( -dV );
|
ValveRes->Flow(-dV);
|
||||||
|
|
||||||
|
ValveRes->Act();
|
||||||
ValveRes.Act;
|
BrakeCyl->Act();
|
||||||
BrakeCyl.Act;
|
BrakeRes->Act();
|
||||||
BrakeRes.Act;
|
CntrlRes->Act();
|
||||||
CntrlRes.Act;
|
Miedzypoj->Act();
|
||||||
Miedzypoj.Act;
|
Przekladniki[1]->Act();
|
||||||
Przekladniki[ 1 ].Act;
|
Przekladniki[2]->Act();
|
||||||
Przekladniki[ 2 ].Act;
|
Przekladniki[3]->Act();
|
||||||
Przekladniki[ 3 ].Act;
|
return dV - dV1;
|
||||||
GetPF =dV-dV1;
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TNESt3::EStParams(double i_crc) // parametry charakterystyczne dla ESt
|
void TNESt3::EStParams(double i_crc) // parametry charakterystyczne dla ESt
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TNESt3::Init(double PP, double HPP, double LPP, double BP, unsigned char BDF)
|
void TNESt3::Init(double PP, double HPP, double LPP, double BP, unsigned char BDF)
|
||||||
{
|
{
|
||||||
ValveRes.CreatePress( 1*PP );
|
ValveRes->CreatePress(1 * PP);
|
||||||
BrakeCyl.CreatePress( 1*BP );
|
BrakeCyl->CreatePress(1 * BP);
|
||||||
BrakeRes.CreatePress( 1*PP );
|
BrakeRes->CreatePress(1 * PP);
|
||||||
CntrlRes =TReservoir.Create;
|
CntrlRes = new TReservoir();
|
||||||
CntrlRes.CreateCap( 15 );
|
CntrlRes->CreateCap(15);
|
||||||
CntrlRes.CreatePress( 1*HPP );
|
CntrlRes->CreatePress(1 * HPP);
|
||||||
BrakeStatus = unsigned char(BP > 1) * 1;
|
BrakeStatus = unsigned char(BP > 1) * 1;
|
||||||
Miedzypoj =TReservoir.Create;
|
Miedzypoj = new TReservoir();
|
||||||
Miedzypoj.CreateCap( 5 );
|
Miedzypoj->CreateCap(5);
|
||||||
Miedzypoj.CreatePress( PP );
|
Miedzypoj->CreatePress(PP);
|
||||||
|
|
||||||
BVM = 1 * 1.0 / (HPP - 0.05 - LPP) * MaxBP;
|
BVM = 1 * 1.0 / (HPP - 0.05 - LPP) * MaxBP;
|
||||||
|
|
||||||
@@ -310,118 +341,130 @@ void TNESt3::Init(double PP, double HPP, double LPP, double BP, unsigned char B
|
|||||||
|
|
||||||
Zamykajacy = false;
|
Zamykajacy = false;
|
||||||
|
|
||||||
if( !( ( FM is TDisk1 ) || ( FM is TDisk2 ) ) ) //jesli zeliwo to schodz
|
if (!(typeid(FM) == typeid(TDisk1) || typeid(FM) == typeid(TDisk2))) // jesli zeliwo to schodz
|
||||||
RapidStaly =false;else
|
RapidStaly = false;
|
||||||
|
else
|
||||||
RapidStaly = true;
|
RapidStaly = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
double TNESt3::GetCRP()
|
double TNESt3::GetCRP()
|
||||||
{ double result;
|
{
|
||||||
GetCRP =CntrlRes.P;
|
return CntrlRes->P();
|
||||||
// GetCRP:=Przekladniki[1].P;
|
// return Przekladniki[1].P;
|
||||||
// GetCRP:=Miedzypoj.P;
|
// return Miedzypoj.P;
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TNESt3::CheckState(double BCP, double &dV1) // glowny przyrzad rozrzadczy
|
void TNESt3::CheckState(double BCP, double &dV1) // glowny przyrzad rozrzadczy
|
||||||
{ double VVP; double BVP; double CVP; double MPP;
|
{
|
||||||
|
double VVP;
|
||||||
|
double BVP;
|
||||||
|
double CVP;
|
||||||
|
double MPP;
|
||||||
|
|
||||||
BVP =BrakeRes.P; //-> tu ma byc komora rozprezna
|
BVP = BrakeRes->P(); //-> tu ma byc komora rozprezna
|
||||||
VVP =ValveRes.P;
|
VVP = ValveRes->P();
|
||||||
CVP =CntrlRes.P;
|
CVP = CntrlRes->P();
|
||||||
MPP =Miedzypoj.P;
|
MPP = Miedzypoj->P();
|
||||||
|
|
||||||
if( ( BCP<0.25 )&&( VVP+0.08>CVP ) ) Przys_blok =false;
|
if ((BCP < 0.25) && (VVP + 0.08 > CVP))
|
||||||
|
Przys_blok = false;
|
||||||
|
|
||||||
// sprawdzanie stanu
|
// sprawdzanie stanu
|
||||||
// if ((BrakeStatus and 1)=1)and(BCP>0.25)then
|
// if ((BrakeStatus and 1)=1)and(BCP>0.25)then
|
||||||
if ((VVP + 0.01 + BCP * 1.0 / BVM < CVP - 0.05) && (Przys_blok))
|
if ((VVP + 0.01 + BCP * 1.0 / BVM < CVP - 0.05) && (Przys_blok))
|
||||||
BrakeStatus =( BrakeStatus || 3 ) //hamowanie stopniowe;else if( ( VVP-0.01+( BCP-0.1 )*1.0/BVM>CVP-0.05 ) )
|
BrakeStatus =
|
||||||
BrakeStatus =( BrakeStatus && 252 ) //luzowanie;else if( ( VVP+BCP*1.0/BVM>CVP-0.05 ) )
|
(BrakeStatus |
|
||||||
BrakeStatus =( BrakeStatus && 253 ) //zatrzymanie napelaniania;else if( ( VVP+( BCP-0.1 )*1.0/BVM<CVP-0.05 )&&( BCP>0.25 ) ) //zatrzymanie luzowania
|
3) // hamowanie stopniowe;else if( ( VVP-0.01+( BCP-0.1 )*1.0/BVM>CVP-0.05 ) )
|
||||||
BrakeStatus =( BrakeStatus || 1 );
|
BrakeStatus = (BrakeStatus & 252) // luzowanie;else if( ( VVP+BCP*1.0/BVM>CVP-0.05 ) )
|
||||||
|
BrakeStatus =
|
||||||
|
(BrakeStatus & 253) // zatrzymanie napelaniania;else if( ( VVP+( BCP-0.1
|
||||||
|
// )*1.0/BVM<CVP-0.05 )&&( BCP>0.25 ) ) //zatrzymanie luzowania
|
||||||
|
BrakeStatus = (BrakeStatus | 1);
|
||||||
|
|
||||||
if( ( BrakeStatus && 1 )==0 )
|
if ((BrakeStatus & 1) == 0)
|
||||||
SoundFlag =SoundFlag || sf_CylU;
|
SoundFlag = SoundFlag | sf_CylU;
|
||||||
|
|
||||||
if ((VVP + 0.10 < CVP) && (BCP < 0.25)) // poczatek hamowania
|
if ((VVP + 0.10 < CVP) && (BCP < 0.25)) // poczatek hamowania
|
||||||
if ((!Przys_blok))
|
if ((!Przys_blok))
|
||||||
{
|
{
|
||||||
ValveRes.CreatePress( 0.1*VVP );
|
ValveRes->CreatePress(0.1 * VVP);
|
||||||
SoundFlag =SoundFlag || sf_Acc;
|
SoundFlag = SoundFlag | sf_Acc;
|
||||||
ValveRes.Act;
|
ValveRes->Act();
|
||||||
Przys_blok = true;
|
Przys_blok = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ((BCP > 0.5))
|
if ((BCP > 0.5))
|
||||||
Zamykajacy =true;else if( ( VVP-0.6<MPP ) )
|
Zamykajacy = true;
|
||||||
|
else if ((VVP - 0.6 < MPP))
|
||||||
Zamykajacy = false;
|
Zamykajacy = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TNESt3::CheckReleaser(double dt) // odluzniacz
|
void TNESt3::CheckReleaser(double dt) // odluzniacz
|
||||||
{
|
{
|
||||||
double VVP; double CVP;
|
double VVP;
|
||||||
|
double CVP;
|
||||||
|
|
||||||
VVP =ValveRes.P;
|
VVP = ValveRes->P();
|
||||||
CVP =CntrlRes.P;
|
CVP = CntrlRes->P();
|
||||||
|
|
||||||
// odluzniacz automatyczny
|
// odluzniacz automatyczny
|
||||||
if( ( BrakeStatus && b_rls==b_rls ) )
|
if ((BrakeStatus & b_rls == b_rls))
|
||||||
{
|
{
|
||||||
CntrlRes.Flow( +PF( CVP, 0, 0.02 )*dt );
|
CntrlRes->Flow(+PF(CVP, 0, 0.02) * dt);
|
||||||
if ((CVP < VVP + 0.3) || (!autom))
|
if ((CVP < VVP + 0.3) || (!autom))
|
||||||
BrakeStatus =BrakeStatus && 247;
|
BrakeStatus = BrakeStatus & 247;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
double TNESt3::CVs(double BP) // napelniacz sterujacego
|
double TNESt3::CVs(double BP) // napelniacz sterujacego
|
||||||
{ double result; double CVP; double MPP;
|
{
|
||||||
|
double CVP;
|
||||||
|
double MPP;
|
||||||
|
|
||||||
CVP =CntrlRes.P;
|
CVP = CntrlRes->P();
|
||||||
MPP =Miedzypoj.P;
|
MPP = Miedzypoj->P();
|
||||||
|
|
||||||
// przeplyw ZS <-> PG
|
// przeplyw ZS <-> PG
|
||||||
if ((MPP < CVP - 0.17))
|
if ((MPP < CVP - 0.17))
|
||||||
CVs =0;else
|
return 0;
|
||||||
if( ( MPP>CVP-0.08 ) )
|
else if ((MPP > CVP - 0.08))
|
||||||
CVs =Nozzles[ dSd ];else
|
return Nozzles[dSd];
|
||||||
CVs =Nozzles[ dSm ];
|
else
|
||||||
return result;
|
return Nozzles[dSm];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
double TNESt3::BVs(double BCP) // napelniacz pomocniczego
|
double TNESt3::BVs(double BCP) // napelniacz pomocniczego
|
||||||
{ double result; double CVP; double MPP;
|
{
|
||||||
|
double CVP;
|
||||||
|
double MPP;
|
||||||
|
|
||||||
CVP =CntrlRes.P;
|
CVP = CntrlRes->P();
|
||||||
MPP =Miedzypoj.P;
|
MPP = Miedzypoj->P();
|
||||||
|
|
||||||
// przeplyw ZP <-> rozdzielacz
|
// przeplyw ZP <-> rozdzielacz
|
||||||
if ((MPP < CVP - 0.3))
|
if ((MPP < CVP - 0.3))
|
||||||
BVs =Nozzles[ dP ];else
|
return Nozzles[dP];
|
||||||
if( ( BCP<0.5 ) )
|
else if ((BCP < 0.5))
|
||||||
if ((Zamykajacy))
|
if ((Zamykajacy))
|
||||||
BVs =Nozzles[ dPm ] //1.25;else
|
return Nozzles[dPm]; // 1.25
|
||||||
BVs =Nozzles[ dPd ];else
|
else
|
||||||
BVs =0;
|
return Nozzles[dPd];
|
||||||
return result;
|
else
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TNESt3::PLC(double mass)
|
void TNESt3::PLC(double mass)
|
||||||
{
|
{
|
||||||
LoadC =1+unsigned char( mass<LoadM )*( ( TareBP+( MaxBP-TareBP )*( mass-TareM )*1.0/( LoadM-TareM ) )*1.0/MaxBP-1 );
|
LoadC =
|
||||||
|
1 +
|
||||||
|
unsigned char(mass < LoadM) *
|
||||||
|
((TareBP + (MaxBP - TareBP) * (mass - TareM) * 1.0 / (LoadM - TareM)) * 1.0 / MaxBP -
|
||||||
|
1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TNESt3::ForceEmptiness()
|
void TNESt3::ForceEmptiness()
|
||||||
{
|
{
|
||||||
ValveRes.CreatePress( 0 );
|
ValveRes->CreatePress(0);
|
||||||
BrakeRes.CreatePress(0);
|
BrakeRes.CreatePress(0);
|
||||||
Miedzypoj.CreatePress(0);
|
Miedzypoj.CreatePress(0);
|
||||||
CntrlRes.CreatePress(0);
|
CntrlRes.CreatePress(0);
|
||||||
@@ -434,7 +477,6 @@ void TNESt3::ForceEmptiness()
|
|||||||
CntrlRes.Act();
|
CntrlRes.Act();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TNESt3::SetLP(double TM, double LM, double TBP)
|
void TNESt3::SetLP(double TM, double LM, double TBP)
|
||||||
{
|
{
|
||||||
TareM = TM;
|
TareM = TM;
|
||||||
@@ -442,14 +484,11 @@ void TNESt3::SetLP(double TM, double LM, double TBP)
|
|||||||
TareBP = TBP;
|
TareBP = TBP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TNESt3::SetLBP(double P)
|
void TNESt3::SetLBP(double P)
|
||||||
{
|
{
|
||||||
LBP = P;
|
LBP = P;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void TNESt3::SetSize(int size, std::string params) // ustawianie dysz (rozmiaru ZR)
|
void TNESt3::SetSize(int size, std::string params) // ustawianie dysz (rozmiaru ZR)
|
||||||
{
|
{
|
||||||
static double /*?*/ const dNO1l = 1.250;
|
static double /*?*/ const dNO1l = 1.250;
|
||||||
@@ -459,39 +498,47 @@ void TNESt3::SetSize(int size, std::string params) //ustawianie dysz (rozmi
|
|||||||
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if (params.find("ESt3") != std::string::npos)
|
||||||
if( Pos( "ESt3", params )>0 )
|
|
||||||
{
|
{
|
||||||
Podskok = 0.7;
|
Podskok = 0.7;
|
||||||
Przekladniki[ 1 ] =TRura.Create;
|
Przekladniki[1] = new TRura();
|
||||||
Przekladniki[ 3 ] =TRura.Create;
|
Przekladniki[3] = new TRura();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Podskok = -1;
|
Podskok = -1;
|
||||||
Przekladniki[ 1 ] =TRapid.Create;
|
Przekladniki[1] = new TRapid();
|
||||||
if( Pos( "-s216", params )>0 )
|
if (params.find("-s216") != std::string::npos)
|
||||||
( Przekladniki[ 1 ] as TRapid ).SetRapidParams( 2, 16 );else
|
Przekladniki[1]->SetRapidParams(2, 16);
|
||||||
( Przekladniki[ 1 ] as TRapid ).SetRapidParams( 2, 0 );
|
else
|
||||||
Przekladniki[ 3 ] =TPrzeciwposlizg.Create;
|
Przekladniki[1]->SetRapidParams(2, 0);
|
||||||
if( Pos( "-ED", params )>0 )
|
Przekladniki[3] = new TPrzeciwposlizg();
|
||||||
|
if (params.find("-ED") != std::string::npos)
|
||||||
{
|
{
|
||||||
Przekladniki[ 3 ].Free( );
|
delete Przekladniki[3]; //tutaj ma byæ destruktor
|
||||||
( Przekladniki[ 1 ] as TRapid ).SetRapidParams( 2, 18 );
|
Przekladniki[1]->SetRapidParams(2, 18);
|
||||||
Przekladniki[ 3 ] =TPrzekED.Create;
|
Przekladniki[3] = new TPrzekED();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( Pos( "AL2", params )>0 )
|
if (params.find("AL2") != std::string::npos)
|
||||||
Przekladniki[ 2 ] =TPrzekCiagly.Create;else
|
Przekladniki[2] = new TPrzekCiagly();
|
||||||
if( Pos( "PZZ", params )>0 )
|
else if (params.find("PZZ") != std::string::npos)
|
||||||
Przekladniki[ 2 ] =TPrzek_PZZ.Create;else
|
Przekladniki[2] = new TPrzek_PZZ();
|
||||||
Przekladniki[ 2 ] =TRura.Create;
|
else
|
||||||
|
Przekladniki[2] = new TRura();
|
||||||
|
|
||||||
if( ( Pos( "3d", params )+Pos( "4d", params )>0 ) ) autom =false;else autom =true;
|
if ((params.find("3d") + params.find("4d") != std::string::npos))
|
||||||
if( ( Pos( "HBG300", params )>0 ) ) HBG300 =1;else HBG300 =0;
|
autom = false;
|
||||||
|
else
|
||||||
|
autom = true;
|
||||||
|
if ((params.find("HBG300") != std::string::npos))
|
||||||
|
HBG300 = 1;
|
||||||
|
else
|
||||||
|
HBG300 = 0;
|
||||||
|
|
||||||
switch( size ) {
|
switch (size)
|
||||||
|
{
|
||||||
case 16:
|
case 16:
|
||||||
{ // dON,dOO,dTN,dTO,dP,dS
|
{ // dON,dOO,dTN,dTO,dP,dS
|
||||||
Nozzles[dON] = 5.0; // 5.0;
|
Nozzles[dON] = 5.0; // 5.0;
|
||||||
@@ -604,22 +651,25 @@ void TNESt3::SetSize(int size, std::string params) //ustawianie dysz (rozmi
|
|||||||
Nozzles[dSm] = 0.9;
|
Nozzles[dSm] = 0.9;
|
||||||
|
|
||||||
// przeliczanie z mm^2 na l/m
|
// przeliczanie z mm^2 na l/m
|
||||||
{ long i_end = dMAX+1 ; for( i = 0 ; i < i_end ; ++i )
|
{
|
||||||
|
for (i = 0; i < dMAX; ++i)
|
||||||
{
|
{
|
||||||
Nozzles[i] = d2A(Nozzles[i]); //(/1000^2*pi/4*1000)
|
Nozzles[i] = d2A(Nozzles[i]); //(/1000^2*pi/4*1000)
|
||||||
}}
|
}
|
||||||
|
|
||||||
{ long i_end = 4 ; for( i = 1 ; i < i_end ; ++i )
|
|
||||||
{
|
|
||||||
Przekladniki[ i ].BrakeRes =&BrakeRes;
|
|
||||||
Przekladniki[ i ].CreateCap( i );
|
|
||||||
Przekladniki[ i ].CreatePress( BrakeCyl.P );
|
|
||||||
if( i<3 )
|
|
||||||
Przekladniki[ i ].Next =&Przekladniki[ i+1 ];else
|
|
||||||
Przekladniki[ i ].Next =&BrakeCyl;
|
|
||||||
}}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
for (i = 1; i < 4; ++i)
|
||||||
|
{
|
||||||
|
Przekladniki[i]->BrakeRes = &BrakeRes;
|
||||||
|
Przekladniki[i]->CreateCap(i);
|
||||||
|
Przekladniki[i]->CreatePress(BrakeCyl->P());
|
||||||
|
if (i < 3)
|
||||||
|
Przekladniki[i]->Next = &Przekladniki[i + 1];
|
||||||
|
else
|
||||||
|
Przekladniki[i]->Next = &BrakeCyl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// END
|
// END
|
||||||
|
|||||||
@@ -23,6 +23,9 @@ http://mozilla.org/MPL/2.0/.
|
|||||||
#include <mctools.hpp> // Pascal unit
|
#include <mctools.hpp> // Pascal unit
|
||||||
#include <SysInit.hpp> // Pascal unit
|
#include <SysInit.hpp> // Pascal unit
|
||||||
#include <System.hpp> // Pascal unit
|
#include <System.hpp> // Pascal unit
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
using namespace Hamulce;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
(C) youBy
|
(C) youBy
|
||||||
@@ -48,60 +51,53 @@ Co brakuje:
|
|||||||
- PZZ dla dodatkowego
|
- PZZ dla dodatkowego
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
static int /*?*/ const dMAX = 11; // dysze
|
||||||
static double/*?*/ const dMAX = 10; //dysze
|
static int /*?*/ const dON = 0; // osobowy napelnianie (+ZP)
|
||||||
static double/*?*/ const dON = 0; //osobowy napelnianie (+ZP)
|
static int /*?*/ const dOO = 1; // osobowy oproznianie
|
||||||
static double/*?*/ const dOO = 1; //osobowy oproznianie
|
static int /*?*/ const dTN = 2; // towarowy napelnianie (+ZP)
|
||||||
static double/*?*/ const dTN = 2; //towarowy napelnianie (+ZP)
|
static int /*?*/ const dTO = 3; // towarowy oproznianie
|
||||||
static double/*?*/ const dTO = 3; //towarowy oproznianie
|
static int /*?*/ const dP = 4; // zbiornik pomocniczy
|
||||||
static double/*?*/ const dP = 4; //zbiornik pomocniczy
|
static int /*?*/ const dSd = 5; // zbiornik sterujacy
|
||||||
static double/*?*/ const dSd = 5; //zbiornik sterujacy
|
static int /*?*/ const dSm = 6; // zbiornik sterujacy
|
||||||
static double/*?*/ const dSm = 6; //zbiornik sterujacy
|
static int /*?*/ const dPd = 7; // duzy przelot zamykajcego
|
||||||
static double/*?*/ const dPd = 7; //duzy przelot zamykajcego
|
static int /*?*/ const dPm = 8; // maly przelot zamykajacego
|
||||||
static double/*?*/ const dPm = 8; //maly przelot zamykajacego
|
static int /*?*/ const dPO = 9; // zasilanie pomocniczego O
|
||||||
static double/*?*/ const dPO = 9; //zasilanie pomocniczego O
|
static int /*?*/ const dPT = 10; // zasilanie pomocniczego T
|
||||||
static double/*?*/ const dPT = 10; //zasilanie pomocniczego T
|
|
||||||
|
|
||||||
// przekladniki
|
// przekladniki
|
||||||
static double/*?*/ const p_none = 0;
|
static int /*?*/ const p_none = 0;
|
||||||
static double/*?*/ const p_rapid = 1;
|
static int /*?*/ const p_rapid = 1;
|
||||||
static double/*?*/ const p_pp = 2;
|
static int/*?*/ const p_pp = 2;
|
||||||
static double/*?*/ const p_al2 = 3;
|
static int /*?*/ const p_al2 = 3;
|
||||||
static double/*?*/ const p_ppz = 4;
|
static int /*?*/ const p_ppz = 4;
|
||||||
static double/*?*/ const P_ed = 5;
|
static int /*?*/ const P_ed = 5;
|
||||||
|
|
||||||
|
class TPrzekladnik : public TReservoir // przekladnik (powtarzacz)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
struct/*class*/ TPrzekladnik: public TReservoir //przekladnik (powtarzacz)
|
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
PReservoir BrakeRes;
|
TReservoir *BrakeRes;
|
||||||
PReservoir Next;
|
TReservoir *Next;
|
||||||
virtual void Update(double dt);
|
virtual void Update(double dt);
|
||||||
|
void SetPoslizg(bool flag) {};
|
||||||
|
void SetP(double P) {};
|
||||||
|
void SetMult(double m) {};
|
||||||
|
void SetLBP(double P) {};
|
||||||
|
void SetRapidParams(double mult, double size) {};
|
||||||
|
void SetRapidStatus(bool rs) {};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class TRura : public TPrzekladnik // nieprzekladnik, rura laczaca
|
||||||
|
|
||||||
struct/*class*/ TRura: public TPrzekladnik //nieprzekladnik, rura laczaca
|
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
double P()/*override*/;
|
virtual __fastcall double P(void) /*override*/;
|
||||||
void Update(double dt)/*override*/;
|
virtual void Update(double dt) /*override*/;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class TPrzeciwposlizg : public TRura // przy napelnianiu - rura, przy poslizgu - upust
|
||||||
|
|
||||||
struct/*class*/ TPrzeciwposlizg: public TRura //przy napelnianiu - rura, przy poslizgu - upust
|
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
@@ -110,30 +106,25 @@ private:
|
|||||||
public:
|
public:
|
||||||
void SetPoslizg(bool flag);
|
void SetPoslizg(bool flag);
|
||||||
void Update(double dt) /*override*/;
|
void Update(double dt) /*override*/;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class TRapid : public TPrzekladnik // przekladnik dwustopniowy
|
||||||
|
|
||||||
struct/*class*/ TRapid: public TPrzekladnik //przekladnik dwustopniowy
|
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
bool RapidStatus; // status rapidu
|
bool RapidStatus; // status rapidu
|
||||||
double RapidMult; // przelozenie (w dol)
|
double RapidMult; // przelozenie (w dol)
|
||||||
// Komora2: real;
|
// Komora2: real;
|
||||||
double DN; double DL; //srednice dysz napelniania i luzowania
|
double DN;
|
||||||
|
double DL; // srednice dysz napelniania i luzowania
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void SetRapidParams(double mult, double size);
|
void SetRapidParams(double mult, double size);
|
||||||
void SetRapidStatus(bool rs);
|
void SetRapidStatus(bool rs);
|
||||||
void Update(double dt) /*override*/;
|
void Update(double dt) /*override*/;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class TPrzekCiagly : public TPrzekladnik // AL2
|
||||||
|
|
||||||
struct/*class*/ TPrzekCiagly: public TPrzekladnik //AL2
|
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
@@ -142,12 +133,9 @@ private:
|
|||||||
public:
|
public:
|
||||||
void SetMult(double m);
|
void SetMult(double m);
|
||||||
void Update(double dt) /*override*/;
|
void Update(double dt) /*override*/;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class TPrzek_PZZ : public TPrzekladnik // podwojny zawor zwrotny
|
||||||
|
|
||||||
struct/*class*/ TPrzek_PZZ: public TPrzekladnik //podwojny zawor zwrotny
|
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
@@ -156,23 +144,16 @@ private:
|
|||||||
public:
|
public:
|
||||||
void SetLBP(double P);
|
void SetLBP(double P);
|
||||||
void Update(double dt) /*override*/;
|
void Update(double dt) /*override*/;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class TPrzekZalamany : public TPrzekladnik // Knicksventil
|
||||||
|
|
||||||
struct/*class*/ TPrzekZalamany: public TPrzekladnik //Knicksventil
|
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class TPrzekED : public TRura // przy napelnianiu - rura, przy hamowaniu - upust
|
||||||
|
|
||||||
struct/*class*/ TPrzekED: public TRura //przy napelnianiu - rura, przy hamowaniu - upust
|
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
@@ -181,28 +162,26 @@ private:
|
|||||||
public:
|
public:
|
||||||
void SetP(double P);
|
void SetP(double P);
|
||||||
void Update(double dt) /*override*/;
|
void Update(double dt) /*override*/;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class TNESt3 : public TBrake
|
||||||
|
|
||||||
struct/*class*/ TNESt3: public TBrake
|
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
double Nozzles[dMAX+1]; //dysze
|
double Nozzles[dMAX]; // dysze
|
||||||
TReservoir CntrlRes; //zbiornik sterujšcy
|
TReservoir *CntrlRes; // zbiornik sterujšcy
|
||||||
double BVM; // przelozenie PG-CH
|
double BVM; // przelozenie PG-CH
|
||||||
// ValveFlag: byte; //polozenie roznych zaworkow
|
// ValveFlag: byte; //polozenie roznych zaworkow
|
||||||
bool Zamykajacy; // pamiec zaworka zamykajacego
|
bool Zamykajacy; // pamiec zaworka zamykajacego
|
||||||
// Przys_wlot: boolean; //wlot do komory przyspieszacza
|
// Przys_wlot: boolean; //wlot do komory przyspieszacza
|
||||||
bool Przys_blok; // blokada przyspieszacza
|
bool Przys_blok; // blokada przyspieszacza
|
||||||
TReservoir Miedzypoj; //pojemnosc posrednia (urojona) do napelniania ZP i ZS
|
TReservoir *Miedzypoj; // pojemnosc posrednia (urojona) do napelniania ZP i ZS
|
||||||
TPrzekladnik Przekladniki[ /*?*//*1..3*/ (3)-(1)+1 ];
|
TPrzekladnik *Przekladniki[4];
|
||||||
bool RapidStatus;
|
bool RapidStatus;
|
||||||
bool RapidStaly;
|
bool RapidStaly;
|
||||||
double LoadC;
|
double LoadC;
|
||||||
double TareM; double LoadM; //masa proznego i pelnego
|
double TareM;
|
||||||
|
double LoadM; // masa proznego i pelnego
|
||||||
double TareBP; // cisnienie dla proznego
|
double TareBP; // cisnienie dla proznego
|
||||||
double HBG300; // zawor ograniczajacy cisnienie
|
double HBG300; // zawor ograniczajacy cisnienie
|
||||||
double Podskok; // podskok preznosci poczatkowej
|
double Podskok; // podskok preznosci poczatkowej
|
||||||
@@ -211,10 +190,11 @@ private:
|
|||||||
double LBP; // cisnienie hamulca pomocniczego
|
double LBP; // cisnienie hamulca pomocniczego
|
||||||
|
|
||||||
public:
|
public:
|
||||||
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
virtual double __fastcall GetPF(double PP, double dt,
|
||||||
|
double Vel) /*override*/; // przeplyw miedzy komora wstepna i PG
|
||||||
void EStParams(double i_crc); // parametry charakterystyczne dla ESt
|
void EStParams(double i_crc); // parametry charakterystyczne dla ESt
|
||||||
void Init(double PP, double HPP, double LPP, double BP, unsigned char BDF)/*override*/;
|
virtual void __fastcall Init(double PP, double HPP, double LPP, double BP, unsigned char BDF) /*override*/;
|
||||||
double GetCRP()/*override*/;
|
virtual double __fastcall GetCRP() /*override*/;
|
||||||
void CheckState(double BCP, double &dV1); // glowny przyrzad rozrzadczy
|
void CheckState(double BCP, double &dV1); // glowny przyrzad rozrzadczy
|
||||||
void CheckReleaser(double dt); // odluzniacz
|
void CheckReleaser(double dt); // odluzniacz
|
||||||
double CVs(double BP); // napelniacz sterujacego
|
double CVs(double BP); // napelniacz sterujacego
|
||||||
@@ -222,15 +202,11 @@ public:
|
|||||||
void SetSize(int size, std::string params); // ustawianie dysz (rozmiaru ZR), przekladniki
|
void SetSize(int size, std::string params); // ustawianie dysz (rozmiaru ZR), przekladniki
|
||||||
void PLC(double mass); // wspolczynnik cisnienia przystawki wazacej
|
void PLC(double mass); // wspolczynnik cisnienia przystawki wazacej
|
||||||
void SetLP(double TM, double LM, double TBP); // parametry przystawki wazacej
|
void SetLP(double TM, double LM, double TBP); // parametry przystawki wazacej
|
||||||
void ForceEmptiness()/*override*/; //wymuszenie bycia pustym
|
virtual void __fastcall ForceEmptiness() /*override*/; // wymuszenie bycia pustym
|
||||||
void SetLBP(double P); // cisnienie z hamulca pomocniczego
|
void SetLBP(double P); // cisnienie z hamulca pomocniczego
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern double d2A(double d);
|
||||||
double d2A(double d);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif // INCLUDED_OERLIKON_EST_H
|
#endif // INCLUDED_OERLIKON_EST_H
|
||||||
// END
|
// END
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
#pragma delphiheader begin
|
#pragma delphiheader begin
|
||||||
#pragma option push -w-
|
#pragma option push -w-
|
||||||
#pragma option push -Vx
|
#pragma option push -Vx
|
||||||
#include <Oerlikon_ESt.hpp> // Pascal unit
|
#include <Oerlikon_ESt.h> // Pascal unit
|
||||||
#include <hamulce.hpp> // Pascal unit
|
#include <hamulce.hpp> // Pascal unit
|
||||||
#include <SysUtils.hpp> // Pascal unit
|
#include <SysUtils.hpp> // Pascal unit
|
||||||
#include <mctools.hpp> // Pascal unit
|
#include <mctools.hpp> // Pascal unit
|
||||||
|
|||||||
Reference in New Issue
Block a user