1
0
mirror of https://github.com/metrostroi-repo/MetrostroiAddon.git synced 2026-05-02 00:42:29 +00:00
Files
MetrostroiAddon/lua/metrostroi/systems/sys_gen_res_703.lua
g_brzhezinskiy 1d05caf866 init
2021-01-02 12:51:45 +03:00

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