mirror of
https://github.com/metrostroi-repo/MetrostroiAddon.git
synced 2026-05-02 00:42:29 +00:00
391 lines
17 KiB
Lua
391 lines
17 KiB
Lua
--------------------------------------------------------------------------------
|
|
-- Resistor arrays calculations
|
|
--------------------------------------------------------------------------------
|
|
-- Copyright (C) 2013-2018 Metrostroi Team & FoxWorks Aerospace s.r.o.
|
|
-- Contains proprietary code. See license.txt for additional information.
|
|
--------------------------------------------------------------------------------
|
|
--[[
|
|
Rxx PS PP1 PP2 PT1 PT2 PS1 PPS2 PT1-1 PT1-2 PT2-1 PT2-2 S1 S2
|
|
R01 = 4.963 0.000 0.000 3.331 0.203 2.873 2.090 1.665 1.666 0.000 0.203 0.000 0.000
|
|
R02 = 4.963 0.000 0.000 3.331 0.203 2.873 2.090 1.665 1.666 0.000 0.203 0.011 0.011
|
|
R03 = 3.959 0.000 0.000 3.331 0.203 1.869 2.090 1.665 1.666 0.000 0.203 0.046 0.046
|
|
R04 = 3.169 0.000 0.000 3.331 0.203 1.869 1.300 1.665 1.666 0.000 0.203 0.110 0.110
|
|
R05 = 2.599 0.000 0.000 3.331 0.203 1.299 1.300 1.665 1.666 0.000 0.203 0.392 0.392
|
|
R06 = 2.245 0.000 0.000 3.201 0.203 0.945 1.300 1.535 1.666 0.000 0.203 0.392 0.392
|
|
R07 = 1.891 0.130 0.000 3.071 0.310 0.945 0.946 1.535 1.536 0.107 0.203 0.392 0.392
|
|
R08 = 1.707 0.130 0.130 2.887 0.359 0.945 0.762 1.535 1.352 0.107 0.252 0.392 0.392
|
|
R09 = 1.523 0.130 0.314 2.703 0.410 0.761 0.762 1.351 1.352 0.107 0.303 0.392 0.392
|
|
R10 = 1.299 0.314 0.314 2.479 0.508 0.537 0.762 1.127 1.352 0.205 0.303 0.392 0.392
|
|
R11 = 1.075 0.538 0.314 2.255 0.585 0.537 0.538 1.127 1.128 0.281 0.303 0.392 0.392
|
|
R12 = 0.851 0.538 0.538 2.031 0.629 0.537 0.314 1.127 0.904 0.281 0.348 0.392 0.392
|
|
R13 = 0.627 0.538 0.762 1.807 0.662 0.313 0.314 0.903 0.904 0.281 0.381 0.392 0.392
|
|
R14 = 0.444 0.762 0.762 1.624 0.713 0.130 0.314 0.720 0.904 0.333 0.381 0.392 0.392
|
|
R15 = 0.260 0.945 0.762 1.440 0.744 0.130 0.130 0.720 0.720 0.363 0.381 0.392 0.392
|
|
R16 = 0.130 0.945 0.946 1.310 0.837 0.130 0.000 0.720 0.590 0.363 0.474 0.392 0.392
|
|
R17 = 0.000 0.945 1.206 1.180 0.923 0.000 0.000 0.590 0.590 0.440 0.483 0.392 0.392
|
|
R18 = 0.000 1.211 1.206 1.180 1.046 0.000 0.000 0.590 0.590 0.456 0.590 0.110 0.110
|
|
]]--
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Resistor arrays calculations - auto-generated by gen.lua
|
|
--------------------------------------------------------------------------------
|
|
Metrostroi.DefineSystem("Gen_Res_703")
|
|
|
|
local R = {}
|
|
|
|
local P1_3
|
|
local P3_4
|
|
local P4_5
|
|
local P5_6
|
|
local P6_7
|
|
local P7_8
|
|
local P8_9
|
|
local P9_10
|
|
local P10_11
|
|
local P11_12
|
|
local P12_13
|
|
local P11_14
|
|
|
|
local P15_16
|
|
local P16_17
|
|
local P17_18
|
|
local P18_19
|
|
local P19_20
|
|
local P20_21
|
|
local P21_22
|
|
local P22_23
|
|
local P23_24
|
|
local P24_25
|
|
local P25_26
|
|
local P25_27
|
|
|
|
local L26_31
|
|
local P31_30
|
|
local P30_29
|
|
local P29_28
|
|
|
|
local L25_37
|
|
local P37_36
|
|
local P36_35
|
|
local P35_K2
|
|
|
|
function TRAIN_SYSTEM.InitializeResistances_81_703(Train)
|
|
P12_13 = Train.KF_47A["P12-P13"]
|
|
P11_12 = Train.KF_47A["P11-P12"]
|
|
P10_11 = Train.KF_47A["P10-P11"]
|
|
P9_10 = Train.KF_47A["P9-P10"]
|
|
P8_9 = Train.KF_47A["P8-P9"]
|
|
P7_8 = Train.KF_47A["P7-P8"]
|
|
P6_7 = Train.KF_47A["P6-P7"]
|
|
P5_6 = Train.KF_47A["P5-P6"]
|
|
P4_5 = Train.KF_47A["P4-P5"]
|
|
P3_4 = Train.KF_47A["P3-P4"]
|
|
P1_3 = Train.KF_47A["P1-P3"]
|
|
|
|
P11_14 = Train.KF_47A["P11-P14"]
|
|
|
|
P25_26 = Train.KF_47A["P25-P26"]
|
|
P24_25 = Train.KF_47A["P24-P25"]
|
|
P23_24 = Train.KF_47A["P23-P24"]
|
|
P22_23 = Train.KF_47A["P22-P23"]
|
|
P21_22 = Train.KF_47A["P21-P22"]
|
|
P20_21 = Train.KF_47A["P20-P21"]
|
|
P19_20 = Train.KF_47A["P19-P20"]
|
|
P18_19 = Train.KF_47A["P18-P19"]
|
|
P17_18 = Train.KF_47A["P17-P18"]
|
|
P16_17 = Train.KF_47A["P16-P17"]
|
|
P15_16 = Train.KF_47A["P15-P16"]
|
|
|
|
P25_27 = Train.KF_47A["P25-P27"]
|
|
|
|
P29_P28 = Train.KF_50A["P29-P28"]
|
|
P30_P29 = Train.KF_50A["P30-P29"]
|
|
P31_P30 = Train.KF_50A["P31-P30"]
|
|
L26_P31 = Train.KF_50A["L26-P31"]
|
|
|
|
P35_K2 = Train.KF_50A["P35-K2"]
|
|
P36_P35 = Train.KF_50A["P36-P35"]
|
|
P37_P36 = Train.KF_50A["P37-P36"]
|
|
L25_P37 = Train.KF_50A["L25-P37"]
|
|
|
|
P33_P42 = Train.YAS_44V["P33-P42"]
|
|
P13_P33 = Train.YAS_44V["P13-P33"]
|
|
P13_P42 = Train.KF_47A["P13-P42"]
|
|
end
|
|
|
|
function TRAIN_SYSTEM.R1C1(Train)
|
|
local RK = Train.RheostatController
|
|
local T = Train.PositionSwitch
|
|
R[1] = ((RK[15])^-1 + (T[20])^-1)^-1
|
|
R[2] = ((RK[17])^-1 + (P11_12)^-1)^-1
|
|
R[3] = ((RK[19])^-1 + (P12_13+R[2])^-1)^-1
|
|
R[4] = ((T[22])^-1 + (P10_11)^-1)^-1
|
|
R[5] = ((T[1])^-1 + (P4_5)^-1)^-1
|
|
R[6] = ((RK[1])^-1 + (P1_3)^-1)^-1
|
|
R[7] = ((RK[9])*(P7_8)+(RK[9])*(P6_7)+(P7_8)*(P6_7))/(RK[9])
|
|
R[8] = ((RK[9])*(P7_8)+(RK[9])*(P6_7)+(P7_8)*(P6_7))/(P7_8)
|
|
R[9] = ((RK[9])*(P7_8)+(RK[9])*(P6_7)+(P7_8)*(P6_7))/(P6_7)
|
|
R[10] = ((RK[11])^-1 + (R[9])^-1)^-1
|
|
R[11] = ((RK[7])^-1 + (R[8])^-1)^-1
|
|
R[12] = ((P5_6)*(R[7])+(P5_6)*(R[11])+(R[7])*(R[11]))/(P5_6)
|
|
R[13] = ((P5_6)*(R[7])+(P5_6)*(R[11])+(R[7])*(R[11]))/(R[7])
|
|
R[14] = ((P5_6)*(R[7])+(P5_6)*(R[11])+(R[7])*(R[11]))/(R[11])
|
|
R[15] = ((RK[5])^-1 + (R[13])^-1)^-1
|
|
R[16] = ((R[12])^-1 + (R[10])^-1)^-1
|
|
R[17] = ((R[14])*(R[15])+(R[14])*(R[5]+P3_4)+(R[15])*(R[5]+P3_4))/(R[14])
|
|
R[18] = ((R[14])*(R[15])+(R[14])*(R[5]+P3_4)+(R[15])*(R[5]+P3_4))/(R[15])
|
|
R[19] = ((R[14])*(R[15])+(R[14])*(R[5]+P3_4)+(R[15])*(R[5]+P3_4))/(R[5]+P3_4)
|
|
R[20] = ((RK[3])^-1 + (R[17])^-1)^-1
|
|
R[21] = ((R[19])^-1 + (R[16])^-1)^-1
|
|
R[22] = ((RK[13])*(R[4]+P9_10)+(RK[13])*(P8_9)+(R[4]+P9_10)*(P8_9))/(RK[13])
|
|
R[23] = ((RK[13])*(R[4]+P9_10)+(RK[13])*(P8_9)+(R[4]+P9_10)*(P8_9))/(R[4]+P9_10)
|
|
R[24] = ((RK[13])*(R[4]+P9_10)+(RK[13])*(P8_9)+(R[4]+P9_10)*(P8_9))/(P8_9)
|
|
R[25] = ((R[24])^-1 + (R[1])^-1)^-1
|
|
R[26] = ((R[23])^-1 + (R[21])^-1)^-1
|
|
R[27] = ((R[22])*(R[26])+(R[22])*(R[18])+(R[26])*(R[18]))/(R[22])
|
|
R[28] = ((R[22])*(R[26])+(R[22])*(R[18])+(R[26])*(R[18]))/(R[26])
|
|
R[29] = ((R[22])*(R[26])+(R[22])*(R[18])+(R[26])*(R[18]))/(R[18])
|
|
R[30] = ((R[25])^-1 + (R[29])^-1)^-1
|
|
R[31] = ((R[28])^-1 + (R[6]+T[19]+P11_14)^-1)^-1
|
|
R[32] = ((R[27])^-1 + (R[20])^-1)^-1
|
|
R[33] = ((R[30])^-1 + (R[31]+R[32])^-1)^-1
|
|
return R[33]+R[3]
|
|
end
|
|
|
|
function TRAIN_SYSTEM.R1C2(Train)
|
|
local RK = Train.RheostatController
|
|
local T = Train.PositionSwitch
|
|
R[1] = ((RK[15])^-1 + (T[20])^-1)^-1
|
|
R[2] = ((RK[17])^-1 + (P11_12)^-1)^-1
|
|
R[3] = ((T[22])^-1 + (P10_11)^-1)^-1
|
|
R[4] = ((T[1])^-1 + (P4_5)^-1)^-1
|
|
R[5] = ((RK[1])^-1 + (P1_3)^-1)^-1
|
|
R[6] = ((R[2])^-1 + (RK[19]+P12_13)^-1)^-1
|
|
R[7] = ((RK[9])*(P7_8)+(RK[9])*(P6_7)+(P7_8)*(P6_7))/(RK[9])
|
|
R[8] = ((RK[9])*(P7_8)+(RK[9])*(P6_7)+(P7_8)*(P6_7))/(P7_8)
|
|
R[9] = ((RK[9])*(P7_8)+(RK[9])*(P6_7)+(P7_8)*(P6_7))/(P6_7)
|
|
R[10] = ((R[9])^-1 + (RK[11])^-1)^-1
|
|
R[11] = ((R[8])^-1 + (RK[7])^-1)^-1
|
|
R[12] = ((R[7])*(R[11])+(R[7])*(P5_6)+(R[11])*(P5_6))/(R[7])
|
|
R[13] = ((R[7])*(R[11])+(R[7])*(P5_6)+(R[11])*(P5_6))/(R[11])
|
|
R[14] = ((R[7])*(R[11])+(R[7])*(P5_6)+(R[11])*(P5_6))/(P5_6)
|
|
R[15] = ((R[10])^-1 + (R[14])^-1)^-1
|
|
R[16] = ((RK[5])^-1 + (R[12])^-1)^-1
|
|
R[17] = ((RK[13])*(P8_9)+(RK[13])*(R[3]+P9_10)+(P8_9)*(R[3]+P9_10))/(RK[13])
|
|
R[18] = ((RK[13])*(P8_9)+(RK[13])*(R[3]+P9_10)+(P8_9)*(R[3]+P9_10))/(P8_9)
|
|
R[19] = ((RK[13])*(P8_9)+(RK[13])*(R[3]+P9_10)+(P8_9)*(R[3]+P9_10))/(R[3]+P9_10)
|
|
R[20] = ((R[1])^-1 + (R[18])^-1)^-1
|
|
R[21] = ((R[15])^-1 + (R[19])^-1)^-1
|
|
R[22] = ((R[13])*(R[17])+(R[13])*(R[21])+(R[17])*(R[21]))/(R[13])
|
|
R[23] = ((R[13])*(R[17])+(R[13])*(R[21])+(R[17])*(R[21]))/(R[17])
|
|
R[24] = ((R[13])*(R[17])+(R[13])*(R[21])+(R[17])*(R[21]))/(R[21])
|
|
R[25] = ((R[16])^-1 + (R[23])^-1)^-1
|
|
R[26] = ((R[22])^-1 + (R[20])^-1)^-1
|
|
R[27] = ((R[25])*(R[4]+P3_4)+(R[25])*(R[24])+(R[4]+P3_4)*(R[24]))/(R[25])
|
|
R[28] = ((R[25])*(R[4]+P3_4)+(R[25])*(R[24])+(R[4]+P3_4)*(R[24]))/(R[4]+P3_4)
|
|
R[29] = ((R[25])*(R[4]+P3_4)+(R[25])*(R[24])+(R[4]+P3_4)*(R[24]))/(R[24])
|
|
R[30] = ((R[26])^-1 + (R[28])^-1)^-1
|
|
R[31] = ((R[29])^-1 + (RK[3])^-1)^-1
|
|
R[32] = ((R[27])^-1 + (R[5]+T[19]+P11_14)^-1)^-1
|
|
R[33] = ((R[30])*(R[32])+(R[30])*(R[6])+(R[32])*(R[6]))/(R[30])
|
|
R[34] = ((R[30])*(R[32])+(R[30])*(R[6])+(R[32])*(R[6]))/(R[32])
|
|
R[35] = ((R[30])*(R[32])+(R[30])*(R[6])+(R[32])*(R[6]))/(R[6])
|
|
R[36] = ((R[31])^-1 + (R[35])^-1)^-1
|
|
R[37] = ((R[36])^-1 + (R[34]+R[33])^-1)^-1
|
|
return R[37]
|
|
end
|
|
|
|
function TRAIN_SYSTEM.R1C3(Train)
|
|
local RK = Train.RheostatController
|
|
local T = Train.PositionSwitch
|
|
R[1] = ((RK[15])^-1 + (T[20])^-1)^-1
|
|
R[2] = ((RK[17])^-1 + (P11_12)^-1)^-1
|
|
R[3] = ((T[22])^-1 + (P10_11)^-1)^-1
|
|
R[4] = ((T[1])^-1 + (P4_5)^-1)^-1
|
|
R[5] = ((RK[1])^-1 + (P1_3)^-1)^-1
|
|
R[6] = ((RK[19]+P12_13)^-1 + (R[2])^-1)^-1
|
|
R[7] = ((RK[9])*(P7_8)+(RK[9])*(P6_7)+(P7_8)*(P6_7))/(RK[9])
|
|
R[8] = ((RK[9])*(P7_8)+(RK[9])*(P6_7)+(P7_8)*(P6_7))/(P7_8)
|
|
R[9] = ((RK[9])*(P7_8)+(RK[9])*(P6_7)+(P7_8)*(P6_7))/(P6_7)
|
|
R[10] = ((R[9])^-1 + (RK[11])^-1)^-1
|
|
R[11] = ((R[8])^-1 + (RK[7])^-1)^-1
|
|
R[12] = ((P5_6)*(R[11])+(P5_6)*(R[7])+(R[11])*(R[7]))/(P5_6)
|
|
R[13] = ((P5_6)*(R[11])+(P5_6)*(R[7])+(R[11])*(R[7]))/(R[11])
|
|
R[14] = ((P5_6)*(R[11])+(P5_6)*(R[7])+(R[11])*(R[7]))/(R[7])
|
|
R[15] = ((R[10])^-1 + (R[12])^-1)^-1
|
|
R[16] = ((R[14])^-1 + (RK[5])^-1)^-1
|
|
R[17] = ((RK[13])*(P9_10+R[3])+(RK[13])*(P8_9)+(P9_10+R[3])*(P8_9))/(RK[13])
|
|
R[18] = ((RK[13])*(P9_10+R[3])+(RK[13])*(P8_9)+(P9_10+R[3])*(P8_9))/(P9_10+R[3])
|
|
R[19] = ((RK[13])*(P9_10+R[3])+(RK[13])*(P8_9)+(P9_10+R[3])*(P8_9))/(P8_9)
|
|
R[20] = ((R[15])^-1 + (R[18])^-1)^-1
|
|
R[21] = ((R[19])^-1 + (R[1])^-1)^-1
|
|
R[22] = ((R[20])*(R[17])+(R[20])*(R[13])+(R[17])*(R[13]))/(R[20])
|
|
R[23] = ((R[20])*(R[17])+(R[20])*(R[13])+(R[17])*(R[13]))/(R[17])
|
|
R[24] = ((R[20])*(R[17])+(R[20])*(R[13])+(R[17])*(R[13]))/(R[13])
|
|
R[25] = ((R[24])^-1 + (R[21])^-1)^-1
|
|
R[26] = ((R[16])^-1 + (R[23])^-1)^-1
|
|
R[27] = ((R[22])*(R[26])+(R[22])*(R[4]+P3_4)+(R[26])*(R[4]+P3_4))/(R[22])
|
|
R[28] = ((R[22])*(R[26])+(R[22])*(R[4]+P3_4)+(R[26])*(R[4]+P3_4))/(R[26])
|
|
R[29] = ((R[22])*(R[26])+(R[22])*(R[4]+P3_4)+(R[26])*(R[4]+P3_4))/(R[4]+P3_4)
|
|
R[30] = ((R[25])^-1 + (R[29])^-1)^-1
|
|
R[31] = ((R[27])^-1 + (RK[3])^-1)^-1
|
|
R[32] = ((T[19]+R[5])*(R[31])+(T[19]+R[5])*(R[28])+(R[31])*(R[28]))/(T[19]+R[5])
|
|
R[33] = ((T[19]+R[5])*(R[31])+(T[19]+R[5])*(R[28])+(R[31])*(R[28]))/(R[31])
|
|
R[34] = ((T[19]+R[5])*(R[31])+(T[19]+R[5])*(R[28])+(R[31])*(R[28]))/(R[28])
|
|
R[35] = ((R[30])^-1 + (R[32])^-1)^-1
|
|
R[36] = ((R[33])^-1 + (P11_14)^-1)^-1
|
|
R[37] = ((R[35])*(R[36])+(R[35])*(R[6])+(R[36])*(R[6]))/(R[35])
|
|
R[38] = ((R[35])*(R[36])+(R[35])*(R[6])+(R[36])*(R[6]))/(R[36])
|
|
R[39] = ((R[35])*(R[36])+(R[35])*(R[6])+(R[36])*(R[6]))/(R[6])
|
|
R[40] = ((R[39])^-1 + (R[34])^-1)^-1
|
|
R[41] = ((R[40])^-1 + (R[37]+R[38])^-1)^-1
|
|
return R[41]
|
|
end
|
|
|
|
function TRAIN_SYSTEM.R2C1(Train)
|
|
local RK = Train.RheostatController
|
|
local T = Train.PositionSwitch
|
|
R[1] = ((RK[16])^-1 + (T[17])^-1)^-1
|
|
R[2] = ((T[16])^-1 + (P24_25)^-1)^-1
|
|
R[3] = ((RK[18])^-1 + (P25_26)^-1)^-1
|
|
R[4] = ((T[15])^-1 + (P18_19)^-1)^-1
|
|
R[5] = ((RK[2])^-1 + (P16_17)^-1)^-1
|
|
R[6] = ((RK[8])*(P20_21)+(RK[8])*(P19_20)+(P20_21)*(P19_20))/(RK[8])
|
|
R[7] = ((RK[8])*(P20_21)+(RK[8])*(P19_20)+(P20_21)*(P19_20))/(P20_21)
|
|
R[8] = ((RK[8])*(P20_21)+(RK[8])*(P19_20)+(P20_21)*(P19_20))/(P19_20)
|
|
R[9] = ((R[8])^-1 + (RK[10])^-1)^-1
|
|
R[10] = ((R[7])^-1 + (RK[6])^-1)^-1
|
|
R[11] = ((R[6])*(R[10])+(R[6])*(R[4]+P17_18)+(R[10])*(R[4]+P17_18))/(R[6])
|
|
R[12] = ((R[6])*(R[10])+(R[6])*(R[4]+P17_18)+(R[10])*(R[4]+P17_18))/(R[10])
|
|
R[13] = ((R[6])*(R[10])+(R[6])*(R[4]+P17_18)+(R[10])*(R[4]+P17_18))/(R[4]+P17_18)
|
|
R[14] = ((R[9])^-1 + (R[13])^-1)^-1
|
|
R[15] = ((RK[4])^-1 + (R[11])^-1)^-1
|
|
R[16] = ((R[12])*(R[5]+P25_27+P15_16+RK[20]+T[21])+(R[12])*(R[15])+(R[5]+P25_27+P15_16+RK[20]+T[21])*(R[15]))/(R[12])
|
|
R[17] = ((R[12])*(R[5]+P25_27+P15_16+RK[20]+T[21])+(R[12])*(R[15])+(R[5]+P25_27+P15_16+RK[20]+T[21])*(R[15]))/(R[5]+P25_27+P15_16+RK[20]+T[21])
|
|
R[18] = ((R[12])*(R[5]+P25_27+P15_16+RK[20]+T[21])+(R[12])*(R[15])+(R[5]+P25_27+P15_16+RK[20]+T[21])*(R[15]))/(R[15])
|
|
R[19] = ((R[17])^-1 + (R[14])^-1)^-1
|
|
R[20] = ((R[16])^-1 + (R[1])^-1)^-1
|
|
R[21] = ((RK[12])*(P22_23)+(RK[12])*(P21_22)+(P22_23)*(P21_22))/(RK[12])
|
|
R[22] = ((RK[12])*(P22_23)+(RK[12])*(P21_22)+(P22_23)*(P21_22))/(P22_23)
|
|
R[23] = ((RK[12])*(P22_23)+(RK[12])*(P21_22)+(P22_23)*(P21_22))/(P21_22)
|
|
R[24] = ((R[19])^-1 + (R[22])^-1)^-1
|
|
R[25] = ((R[23])^-1 + (RK[14])^-1)^-1
|
|
R[26] = ((R[18])*(R[24])+(R[18])*(R[21])+(R[24])*(R[21]))/(R[18])
|
|
R[27] = ((R[18])*(R[24])+(R[18])*(R[21])+(R[24])*(R[21]))/(R[24])
|
|
R[28] = ((R[18])*(R[24])+(R[18])*(R[21])+(R[24])*(R[21]))/(R[21])
|
|
R[29] = ((R[25])^-1 + (R[26])^-1)^-1
|
|
R[30] = ((R[20])^-1 + (R[28])^-1)^-1
|
|
R[31] = ((R[27])^-1 + (P23_24+R[2])^-1)^-1
|
|
R[32] = ((R[30])^-1 + (R[31]+R[29])^-1)^-1
|
|
return R[32]+R[3]
|
|
end
|
|
|
|
function TRAIN_SYSTEM.R2C2(Train)
|
|
local RK = Train.RheostatController
|
|
local T = Train.PositionSwitch
|
|
R[1] = ((RK[16])^-1 + (T[17])^-1)^-1
|
|
R[2] = ((T[16])^-1 + (P24_25)^-1)^-1
|
|
R[3] = ((RK[18])^-1 + (P25_26)^-1)^-1
|
|
R[4] = ((T[15])^-1 + (P18_19)^-1)^-1
|
|
R[5] = ((RK[2])^-1 + (P16_17)^-1)^-1
|
|
R[6] = ((RK[8])*(P20_21)+(RK[8])*(P19_20)+(P20_21)*(P19_20))/(RK[8])
|
|
R[7] = ((RK[8])*(P20_21)+(RK[8])*(P19_20)+(P20_21)*(P19_20))/(P20_21)
|
|
R[8] = ((RK[8])*(P20_21)+(RK[8])*(P19_20)+(P20_21)*(P19_20))/(P19_20)
|
|
R[9] = ((R[8])^-1 + (RK[10])^-1)^-1
|
|
R[10] = ((R[7])^-1 + (RK[6])^-1)^-1
|
|
R[11] = ((R[6])*(R[10])+(R[6])*(R[4]+P17_18)+(R[10])*(R[4]+P17_18))/(R[6])
|
|
R[12] = ((R[6])*(R[10])+(R[6])*(R[4]+P17_18)+(R[10])*(R[4]+P17_18))/(R[10])
|
|
R[13] = ((R[6])*(R[10])+(R[6])*(R[4]+P17_18)+(R[10])*(R[4]+P17_18))/(R[4]+P17_18)
|
|
R[14] = ((R[9])^-1 + (R[13])^-1)^-1
|
|
R[15] = ((RK[4])^-1 + (R[11])^-1)^-1
|
|
R[16] = ((R[12])*(R[14])+(R[12])*(P21_22)+(R[14])*(P21_22))/(R[12])
|
|
R[17] = ((R[12])*(R[14])+(R[12])*(P21_22)+(R[14])*(P21_22))/(R[14])
|
|
R[18] = ((R[12])*(R[14])+(R[12])*(P21_22)+(R[14])*(P21_22))/(P21_22)
|
|
R[19] = ((R[18])^-1 + (R[15])^-1)^-1
|
|
R[20] = ((R[16])^-1 + (RK[12])^-1)^-1
|
|
R[21] = ((R[17])*(R[20])+(R[17])*(P22_23)+(R[20])*(P22_23))/(R[17])
|
|
R[22] = ((R[17])*(R[20])+(R[17])*(P22_23)+(R[20])*(P22_23))/(R[20])
|
|
R[23] = ((R[17])*(R[20])+(R[17])*(P22_23)+(R[20])*(P22_23))/(P22_23)
|
|
R[24] = ((R[19])^-1 + (R[23])^-1)^-1
|
|
R[25] = ((RK[14])^-1 + (R[21])^-1)^-1
|
|
R[26] = ((R[25])*(R[22])+(R[25])*(P23_24+R[2])+(R[22])*(P23_24+R[2]))/(R[25])
|
|
R[27] = ((R[25])*(R[22])+(R[25])*(P23_24+R[2])+(R[22])*(P23_24+R[2]))/(R[22])
|
|
R[28] = ((R[25])*(R[22])+(R[25])*(P23_24+R[2])+(R[22])*(P23_24+R[2]))/(P23_24+R[2])
|
|
R[29] = ((R[28])^-1 + (R[24])^-1)^-1
|
|
R[30] = ((R[27])^-1 + (R[1])^-1)^-1
|
|
R[31] = ((R[26])^-1 + (R[5]+P25_27+P15_16+RK[20]+T[21])^-1)^-1
|
|
R[32] = ((R[30])*(R[31])+(R[30])*(R[3])+(R[31])*(R[3]))/(R[30])
|
|
R[33] = ((R[30])*(R[31])+(R[30])*(R[3])+(R[31])*(R[3]))/(R[31])
|
|
R[34] = ((R[30])*(R[31])+(R[30])*(R[3])+(R[31])*(R[3]))/(R[3])
|
|
R[35] = ((R[29])^-1 + (R[34])^-1)^-1
|
|
R[36] = ((R[33]+R[32])^-1 + (R[35])^-1)^-1
|
|
return R[36]
|
|
end
|
|
|
|
function TRAIN_SYSTEM.R2C3(Train)
|
|
local RK = Train.RheostatController
|
|
local T = Train.PositionSwitch
|
|
R[1] = ((RK[16])^-1 + (T[17])^-1)^-1
|
|
R[2] = ((T[16])^-1 + (P24_25)^-1)^-1
|
|
R[3] = ((RK[18])^-1 + (P25_26)^-1)^-1
|
|
R[4] = ((T[15])^-1 + (P18_19)^-1)^-1
|
|
R[5] = ((RK[2])^-1 + (P16_17)^-1)^-1
|
|
R[6] = ((RK[8])*(P20_21)+(RK[8])*(P19_20)+(P20_21)*(P19_20))/(RK[8])
|
|
R[7] = ((RK[8])*(P20_21)+(RK[8])*(P19_20)+(P20_21)*(P19_20))/(P20_21)
|
|
R[8] = ((RK[8])*(P20_21)+(RK[8])*(P19_20)+(P20_21)*(P19_20))/(P19_20)
|
|
R[9] = ((RK[10])^-1 + (R[8])^-1)^-1
|
|
R[10] = ((RK[6])^-1 + (R[7])^-1)^-1
|
|
R[11] = ((RK[12])*(P22_23)+(RK[12])*(P21_22)+(P22_23)*(P21_22))/(RK[12])
|
|
R[12] = ((RK[12])*(P22_23)+(RK[12])*(P21_22)+(P22_23)*(P21_22))/(P22_23)
|
|
R[13] = ((RK[12])*(P22_23)+(RK[12])*(P21_22)+(P22_23)*(P21_22))/(P21_22)
|
|
R[14] = ((R[9])^-1 + (R[12])^-1)^-1
|
|
R[15] = ((RK[14])^-1 + (R[13])^-1)^-1
|
|
R[16] = ((R[6])*(R[4]+P17_18)+(R[6])*(R[10])+(R[4]+P17_18)*(R[10]))/(R[6])
|
|
R[17] = ((R[6])*(R[4]+P17_18)+(R[6])*(R[10])+(R[4]+P17_18)*(R[10]))/(R[4]+P17_18)
|
|
R[18] = ((R[6])*(R[4]+P17_18)+(R[6])*(R[10])+(R[4]+P17_18)*(R[10]))/(R[10])
|
|
R[19] = ((R[16])^-1 + (RK[4])^-1)^-1
|
|
R[20] = ((R[14])^-1 + (R[17])^-1)^-1
|
|
R[21] = ((R[18])*(R[11])+(R[18])*(R[20])+(R[11])*(R[20]))/(R[18])
|
|
R[22] = ((R[18])*(R[11])+(R[18])*(R[20])+(R[11])*(R[20]))/(R[11])
|
|
R[23] = ((R[18])*(R[11])+(R[18])*(R[20])+(R[11])*(R[20]))/(R[20])
|
|
R[24] = ((R[15])^-1 + (R[21])^-1)^-1
|
|
R[25] = ((R[22])^-1 + (R[19])^-1)^-1
|
|
R[26] = ((R[5]+P15_16+RK[20]+T[21])*(R[23])+(R[5]+P15_16+RK[20]+T[21])*(R[25])+(R[23])*(R[25]))/(R[5]+P15_16+RK[20]+T[21])
|
|
R[27] = ((R[5]+P15_16+RK[20]+T[21])*(R[23])+(R[5]+P15_16+RK[20]+T[21])*(R[25])+(R[23])*(R[25]))/(R[23])
|
|
R[28] = ((R[5]+P15_16+RK[20]+T[21])*(R[23])+(R[5]+P15_16+RK[20]+T[21])*(R[25])+(R[23])*(R[25]))/(R[25])
|
|
R[29] = ((R[24])^-1 + (R[26])^-1)^-1
|
|
R[30] = ((P23_24+R[2])*(R[29])+(P23_24+R[2])*(R[28])+(R[29])*(R[28]))/(P23_24+R[2])
|
|
R[31] = ((P23_24+R[2])*(R[29])+(P23_24+R[2])*(R[28])+(R[29])*(R[28]))/(R[29])
|
|
R[32] = ((P23_24+R[2])*(R[29])+(P23_24+R[2])*(R[28])+(R[29])*(R[28]))/(R[28])
|
|
R[33] = ((R[31])^-1 + (P25_27)^-1)^-1
|
|
R[34] = ((R[32])^-1 + (R[1])^-1)^-1
|
|
R[35] = ((R[27])^-1 + (R[30])^-1)^-1
|
|
R[36] = ((R[3])*(R[34])+(R[3])*(R[33])+(R[34])*(R[33]))/(R[3])
|
|
R[37] = ((R[3])*(R[34])+(R[3])*(R[33])+(R[34])*(R[33]))/(R[34])
|
|
R[38] = ((R[3])*(R[34])+(R[3])*(R[33])+(R[34])*(R[33]))/(R[33])
|
|
R[39] = ((R[36])^-1 + (R[37]+R[38])^-1)^-1
|
|
R[40] = ((R[39])^-1 + (R[35])^-1)^-1
|
|
return R[40]
|
|
end
|
|
|
|
function TRAIN_SYSTEM.S1(Train)
|
|
local RK = Train.RheostatController
|
|
local T = Train.PositionSwitch
|
|
R[1] = ((P29_P28)^-1 + (1e-9+1e9*(1.0-Train.KSH3.Value))^-1)^-1
|
|
R[2] = ((L26_P31)^-1 + (RK[21])^-1)^-1
|
|
R[3] = ((RK[23])^-1 + (P31_P30+R[2])^-1)^-1
|
|
R[4] = ((P30_P29+R[3])^-1 + (RK[25])^-1)^-1
|
|
return R[4]+R[1]
|
|
end
|
|
|
|
function TRAIN_SYSTEM.S2(Train)
|
|
local RK = Train.RheostatController
|
|
local T = Train.PositionSwitch
|
|
R[1] = ((P35_K2)^-1 + (1e-9+1e9*(1.0-Train.KSH4.Value))^-1)^-1
|
|
R[2] = ((L25_P37)^-1 + (RK[22])^-1)^-1
|
|
R[3] = ((RK[24])^-1 + (P37_P36+R[2])^-1)^-1
|
|
R[4] = ((P36_P35+R[3])^-1 + (RK[26])^-1)^-1
|
|
return R[4]+R[1]
|
|
end
|
|
|