Working on simulations for: Badger_Mala_Trat, Cevak_PT40_272, Torino50 and Torun_PT05_2015
- builds OK, flow and mass are simulated, reference counter does not count.
This commit is contained in:
parent
ca78f36f8f
commit
38c4073632
@ -28,6 +28,7 @@ namespace TBF.BenchControl
|
||||
public static float Flow3sim; /// flow in [m3/h] through RV3
|
||||
public static float Flow4sim; /// flow in [m3/h] through RV4
|
||||
public static float Flow5sim; /// flow in [m3/h] through RV5
|
||||
public static float Flow6sim; /// flow in [m3/h] through RV5
|
||||
|
||||
///
|
||||
/// Valves and diverters
|
||||
@ -49,6 +50,7 @@ namespace TBF.BenchControl
|
||||
Flow3sim = 0.0f;
|
||||
Flow4sim = 0.0f;
|
||||
Flow5sim = 0.0f;
|
||||
Flow6sim = 0.0f;
|
||||
RouteSim = 0; /// Initialize other valves
|
||||
Div1sim = false;
|
||||
Div2sim = false;
|
||||
@ -80,6 +82,7 @@ namespace TBF.BenchControl
|
||||
const ulong VP2 = (1L << 5);
|
||||
const ulong VP4 = (1L << 6);
|
||||
const ulong VP5 = (1L << 7);
|
||||
|
||||
const ulong VP6 = (1L << 8);
|
||||
const ulong VL12 = (1L << 9);
|
||||
const ulong VL22 = (1L << 10);
|
||||
@ -88,6 +91,7 @@ namespace TBF.BenchControl
|
||||
const ulong VI13 = (1L << 13);
|
||||
const ulong VI21 = (1L << 14);
|
||||
const ulong VI22 = (1L << 15);
|
||||
|
||||
const ulong VI2P = (1L << 16);
|
||||
const ulong VI31 = (1L << 17);
|
||||
const ulong VI32 = (1L << 18);
|
||||
@ -96,6 +100,7 @@ namespace TBF.BenchControl
|
||||
const ulong VI42 = (1L << 21);
|
||||
const ulong VI43 = (1L << 22);
|
||||
const ulong VI4P = (1L << 23);
|
||||
|
||||
const ulong VB1 = (1L << 24);
|
||||
const ulong VB1a = (1L << 25);
|
||||
const ulong VB2 = (1L << 26);
|
||||
@ -104,11 +109,14 @@ namespace TBF.BenchControl
|
||||
const ulong VM2 = (1L << 29);
|
||||
const ulong VM3 = (1L << 30);
|
||||
const ulong VM4 = ((ulong)1 << 31);
|
||||
|
||||
const ulong Pump1 = ((ulong)1 << 32);
|
||||
const ulong Block = ((ulong)1 << 33);
|
||||
const ulong VZ8 = ((ulong)1 << 37);
|
||||
|
||||
const ulong EmptyValve1 = VB1 | VB1a;
|
||||
const ulong EmptyValve2 = VB2 | VB2a;
|
||||
|
||||
const ulong Path1 = VZ1 | VL12 | VI11 | VI13;
|
||||
const ulong Path2 = VZ1 | VL11 | VL12 | VI21 | VI22 | VI13;
|
||||
const ulong Path3 = VZ1 | VL11 | VL12 | VI31 | VI32;
|
||||
@ -269,6 +277,158 @@ namespace TBF.BenchControl
|
||||
const ulong Path3 = VL12 | VI31 | VI32;
|
||||
const ulong Path4 = VL12 | VI41 | VI42;
|
||||
const ulong Path5 = VL12 | VI41 | VI43;
|
||||
#elif BADGER_MALA_TRAT
|
||||
const ulong VZ34 = (1L << 0);
|
||||
const ulong VZ35 = (1L << 1);
|
||||
const ulong VZ39 = (1L << 2);
|
||||
const ulong VZ37 = (1L << 3);
|
||||
const ulong VZ38 = (1L << 4);
|
||||
const ulong VL31 = (1L << 5);
|
||||
const ulong VV1 = (1L << 6);
|
||||
const ulong VS33 = (1L << 7);
|
||||
|
||||
const ulong VS31 = (1L << 8);
|
||||
const ulong VS32 = (1L << 9);
|
||||
const ulong VV2 = (1L << 10);
|
||||
const ulong VL32 = (1L << 11);
|
||||
const ulong VI31 = (1L << 12);
|
||||
const ulong VI32 = (1L << 13);
|
||||
const ulong VI33 = (1L << 14);
|
||||
const ulong VI34 = (1L << 15);
|
||||
|
||||
const ulong DIV1 = (1L << 16);
|
||||
const ulong DIV2 = (1L << 17);
|
||||
const ulong VB1 = (1L << 18);
|
||||
const ulong VB1a = (1L << 19);
|
||||
const ulong VB2 = (1L << 20);
|
||||
const ulong VB2a = (1L << 21);
|
||||
const ulong P1 = (1L << 22);
|
||||
const ulong P2 = (1L << 23);
|
||||
|
||||
const ulong EmptyValve1 = VB1 | VB1a;
|
||||
const ulong EmptyValve2 = VB2 | VB2a;
|
||||
|
||||
const ulong Path1 = VI31;
|
||||
const ulong Path2 = VI32;
|
||||
const ulong Path3 = VI33;
|
||||
const ulong Path4 = VI34;
|
||||
#elif CEVAK_PT40_272
|
||||
const ulong VL11 = (1L << 0);
|
||||
const ulong VL13 = (1L << 1);
|
||||
const ulong VL18 = (1L << 2);
|
||||
const ulong VZ12 = (1L << 3);
|
||||
const ulong VL15 = (1L << 4);
|
||||
const ulong VL21 = (1L << 5);
|
||||
const ulong VL23 = (1L << 6);
|
||||
const ulong VL28 = (1L << 7);
|
||||
|
||||
const ulong VZ5 = (1L << 8);
|
||||
const ulong VI1 = (1L << 9);
|
||||
const ulong VI2 = (1L << 10);
|
||||
const ulong VI3 = (1L << 11);
|
||||
const ulong VZ9 = (1L << 12);
|
||||
const ulong VBa = (1L << 13);
|
||||
const ulong VB = (1L << 14);
|
||||
const ulong DIV1 = (1L << 15);
|
||||
|
||||
const ulong P1 = (1L << 16);
|
||||
const ulong P2 = (1L << 17);
|
||||
const ulong VL9 = (1L << 18);
|
||||
const ulong VV1 = (1L << 19);
|
||||
const ulong VV2 = (1L << 20);
|
||||
const ulong VZ6 = (1L << 21);
|
||||
const ulong VV3 = (1L << 22);
|
||||
const ulong Gate = (1L << 23);
|
||||
|
||||
const ulong EmptyValve1 = VB | VBa;
|
||||
const ulong EmptyValve2 = 0x0000FFFFFFFFFFFF;
|
||||
|
||||
const ulong Path1 = VI1;
|
||||
const ulong Path2 = VI2;
|
||||
const ulong Path3 = VI3;
|
||||
const ulong Path4 = 0;
|
||||
const ulong Path5 = 0;
|
||||
#elif TORINO50
|
||||
const ulong nic1 = (1L << 0);
|
||||
const ulong nic2 = (1L << 1);
|
||||
const ulong VL11 = (1L << 2);
|
||||
const ulong VL13 = (1L << 3);
|
||||
const ulong VL18 = (1L << 4);
|
||||
const ulong VZ13 = (1L << 5);
|
||||
const ulong VL15 = (1L << 6);
|
||||
const ulong VZ10 = (1L << 7);
|
||||
|
||||
const ulong VZ6 = (1L << 8);
|
||||
const ulong VV1 = (1L << 9);
|
||||
const ulong VV4 = (1L << 10);
|
||||
const ulong VL12 = (1L << 11);
|
||||
const ulong VI1 = (1L << 12);
|
||||
const ulong VI2 = (1L << 13);
|
||||
const ulong VI3 = (1L << 14);
|
||||
const ulong VI4 = (1L << 15);
|
||||
|
||||
const ulong VB1 = (1L << 16);
|
||||
const ulong VB1a = (1L << 17);
|
||||
const ulong VB2 = (1L << 18);
|
||||
const ulong VB2a = (1L << 19);
|
||||
const ulong DIV1 = (1L << 20);
|
||||
const ulong DIV2 = (1L << 21);
|
||||
const ulong P1 = (1L << 22);
|
||||
const ulong P3 = (1L << 23);
|
||||
|
||||
const ulong P2 = (1L << 24);
|
||||
|
||||
const ulong EmptyValve1 = VB1 | VB1a;
|
||||
const ulong EmptyValve2 = VB2 | VB2a;
|
||||
|
||||
const ulong Path1 = VI1;
|
||||
const ulong Path2 = VI2;
|
||||
const ulong Path3 = VI3;
|
||||
const ulong Path3 = VI4;
|
||||
const ulong Path5 = 0;
|
||||
#elif TORUN_PT50_2015
|
||||
const ulong VL11 = (1L << 0);
|
||||
const ulong VL13 = (1L << 1);
|
||||
const ulong VL15 = (1L << 2);
|
||||
const ulong VL21 = (1L << 3);
|
||||
const ulong VL23 = (1L << 4);
|
||||
const ulong VL18 = (1L << 5);
|
||||
const ulong VL28 = (1L << 6);
|
||||
const ulong VZ5 = (1L << 7);
|
||||
|
||||
const ulong VZ6 = (1L << 8);
|
||||
const ulong DIV1 = (1L << 9);
|
||||
const ulong DIV2 = (1L << 10);
|
||||
const ulong P1 = (1L << 11);
|
||||
const ulong P2 = (1L << 12);
|
||||
const ulong P3 = (1L << 13);
|
||||
const ulong DIV3 = (1L << 14);
|
||||
const ulong rez1 = (1L << 15);
|
||||
|
||||
const ulong nic1 = (1L << 16);
|
||||
const ulong nic2 = (1L << 17);
|
||||
const ulong VI1 = (1L << 18);
|
||||
const ulong VI2 = (1L << 19);
|
||||
const ulong VI3 = (1L << 20);
|
||||
const ulong VI4 = (1L << 21);
|
||||
const ulong VI5 = (1L << 22);
|
||||
const ulong VB = (1L << 23);
|
||||
|
||||
const ulong VV12 = (1L << 24);
|
||||
const ulong VV22 = (1L << 25);
|
||||
const ulong VI6 = (1L << 26);
|
||||
const ulong VV3 = (1L << 27);
|
||||
const ulong VB2 = (1L << 28);
|
||||
|
||||
const ulong EmptyValve1 = VB1 | VB1a;
|
||||
const ulong EmptyValve2 = VB2 | VB2a;
|
||||
|
||||
const ulong Path1 = VI1;
|
||||
const ulong Path2 = VI2;
|
||||
const ulong Path3 = VI3;
|
||||
const ulong Path4 = VI4;
|
||||
const ulong Path5 = VI5;
|
||||
const ulong Path6 = VI6;
|
||||
#else
|
||||
/// Paths modulating the flows
|
||||
const ulong V1 = (1L << 1);
|
||||
@ -331,12 +491,28 @@ namespace TBF.BenchControl
|
||||
Mass2sim += diff;
|
||||
log.WarnFormat("Path5: Div3, Mass2 += {0}kg, flow={1}m3/h, Mass2={2}kg", diff, Flow1sim, Mass2sim);
|
||||
}
|
||||
#elif BADGER_MALA_TRAT || TORINO50 /// Path1,2 do WT1, Path3,4 do WT2
|
||||
if (Div1sim && (RouteSim & Path1) == Path1) Mass1sim += DiffKg(Flow1sim, time);
|
||||
if (Div1sim && (RouteSim & Path2) == Path2) Mass1sim += DiffKg(Flow2sim, time);
|
||||
if (Div2sim && (RouteSim & Path3) == Path3) Mass2sim += DiffKg(Flow3sim, time);
|
||||
if (Div2sim && (RouteSim & Path4) == Path4) Mass2sim += DiffKg(Flow4sim, time);
|
||||
#elif CEVAK_PT40_272 /// Path1,2,3 do WT1
|
||||
if (Div1sim && (RouteSim & Path1) == Path1) Mass1sim += DiffKg(Flow1sim, time);
|
||||
if (Div1sim && (RouteSim & Path2) == Path2) Mass1sim += DiffKg(Flow2sim, time);
|
||||
if (Div1sim && (RouteSim & Path3) == Path3) Mass1sim += DiffKg(Flow3sim, time);
|
||||
#elif TORUN_PT50_2015 /// Path1,2,3,4,5 do WT1, Path6 do WT2
|
||||
if (Div1sim && (RouteSim & Path1) == Path1) Mass1sim += DiffKg(Flow1sim, time);
|
||||
if (Div1sim && (RouteSim & Path2) == Path2) Mass1sim += DiffKg(Flow2sim, time);
|
||||
if (Div1sim && (RouteSim & Path3) == Path3) Mass1sim += DiffKg(Flow3sim, time);
|
||||
if (Div2sim && (RouteSim & Path4) == Path4) Mass1sim += DiffKg(Flow4sim, time);
|
||||
if (Div2sim && (RouteSim & Path5) == Path5) Mass1sim += DiffKg(Flow5sim, time);
|
||||
if (Div3sim && (RouteSim & Path6) == Path6) Mass2sim += DiffKg(Flow4sim, time);
|
||||
#else
|
||||
if (Div1sim && (RouteSim & Path1) == Path1) Mass1sim += DiffKg(Flow1sim, time);
|
||||
if (Div2sim && (RouteSim & Path2) == Path2) Mass2sim += DiffKg(Flow2sim, time);
|
||||
#endif
|
||||
|
||||
if ((RouteSim & EmptyValve1) == EmptyValve1) Mass1sim -= DiffKg(100.0f, time);
|
||||
if ((RouteSim & EmptyValve1) == EmptyValve1) Mass1sim -= DiffKg(100.0f, time);
|
||||
if (Mass1sim < 0) Mass1sim = 0;
|
||||
|
||||
if ((RouteSim & EmptyValve2) == EmptyValve2) Mass2sim -= DiffKg(10.0f, time);
|
||||
@ -426,6 +602,52 @@ namespace TBF.BenchControl
|
||||
if (toTank) { throw (new Exception()); }
|
||||
break;
|
||||
}
|
||||
#elif BADGER_MALA_TRAT || TORINO50
|
||||
switch (regulValveNo)
|
||||
{
|
||||
case 1:
|
||||
case 2:
|
||||
Div1sim = toTank;
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
Div2sim = toTank;
|
||||
break;
|
||||
default:
|
||||
if (toTank) { throw (new Exception()); }
|
||||
break;
|
||||
}
|
||||
#elif CEVAK_PT40_272
|
||||
switch (regulValveNo)
|
||||
{
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
Div1sim = toTank;
|
||||
break;
|
||||
default:
|
||||
if (toTank) { throw (new Exception()); }
|
||||
break;
|
||||
}
|
||||
#elif TORUN_PT50_2015
|
||||
switch (regulValveNo)
|
||||
{
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
Div1sim = toTank;
|
||||
break;
|
||||
case 4:
|
||||
case 5:
|
||||
Div2sim = toTank;
|
||||
break;
|
||||
case 6:
|
||||
Div3sim = toTank;
|
||||
break;
|
||||
default:
|
||||
if (toTank) { throw (new Exception()); }
|
||||
break;
|
||||
}
|
||||
#else
|
||||
switch (regulValveNo)
|
||||
{
|
||||
@ -436,7 +658,7 @@ namespace TBF.BenchControl
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@ -475,6 +697,7 @@ namespace TBF.BenchControl
|
||||
case 3: Flow3sim = A * Flow3sim + B * targetFlow; break;
|
||||
case 4: Flow4sim = A * Flow4sim + B * targetFlow; break;
|
||||
case 5: Flow5sim = A * Flow5sim + B * targetFlow; break;
|
||||
case 6: Flow6sim = A * Flow6sim + B * targetFlow; break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user