mirror of
https://github.com/metrostroi-repo/MetrostroiAddon.git
synced 2026-05-02 00:42:29 +00:00
326 lines
14 KiB
Lua
326 lines
14 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 PS1 PS2 PP1 PP2 PT1 PT2 T3 PS PT S1 S2
|
|
R01 = 2.892 2.029 0.000 0.000 1.056 1.029 0.285 4.921 2.371 0.042 0.042
|
|
R02 = 2.892 2.029 0.000 0.000 1.056 1.029 0.000 4.921 2.086 0.042 0.042
|
|
R03 = 1.822 2.029 0.000 0.000 0.888 1.029 0.000 3.851 1.918 0.070 0.070
|
|
R04 = 1.822 1.313 0.000 0.000 0.888 0.835 0.000 3.135 1.723 0.133 0.133
|
|
R05 = 1.337 1.313 0.000 0.000 0.774 0.835 0.000 2.650 1.609 0.429 0.429
|
|
R06 = 0.970 1.313 0.000 0.000 0.660 0.835 0.000 2.283 1.495 0.429 0.429
|
|
R07 = 0.970 0.970 0.144 0.000 0.660 0.710 0.000 1.940 1.370 0.429 0.429
|
|
R08 = 0.970 0.780 0.144 0.120 0.660 0.628 0.000 1.750 1.288 0.429 0.429
|
|
R09 = 0.780 0.780 0.144 0.533 0.588 0.628 0.000 1.560 1.216 0.429 0.429
|
|
R10 = 0.557 0.780 0.557 0.533 0.489 0.628 0.000 1.337 1.117 0.429 0.429
|
|
R11 = 0.557 0.557 0.780 0.533 0.489 0.516 0.000 1.114 1.005 0.429 0.429
|
|
R12 = 0.557 0.334 0.780 0.756 0.489 0.384 0.000 0.891 0.873 0.429 0.429
|
|
R13 = 0.334 0.334 0.780 0.979 0.369 0.384 0.000 0.668 0.753 0.429 0.429
|
|
R14 = 0.144 0.334 1.003 0.979 0.245 0.384 0.000 0.478 0.629 0.429 0.429
|
|
R15 = 0.144 0.144 1.193 0.979 0.245 0.251 0.000 0.288 0.496 0.429 0.429
|
|
R16 = 0.144 0.000 1.193 1.169 0.245 0.165 0.000 0.144 0.410 0.429 0.429
|
|
R17 = 0.000 0.000 1.193 1.169 0.182 0.165 0.000 0.000 0.348 0.429 0.429
|
|
R18 = 0.000 0.000 1.193 1.169 0.182 0.104 0.000 0.000 0.286 0.429 0.429
|
|
]]--
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Resistor arrays calculations - auto-generated by gen.lua
|
|
--------------------------------------------------------------------------------
|
|
Metrostroi.DefineSystem("Gen_Res_710")
|
|
|
|
local R = {}
|
|
|
|
local P12_13
|
|
local P11_12
|
|
local P10_11
|
|
local P9_10
|
|
local P8_9
|
|
local P7_8
|
|
local P6_7
|
|
local P5_6
|
|
local P4_5
|
|
local P3_4
|
|
local P1_3
|
|
|
|
local P25_26
|
|
local P24_25
|
|
local P23_24
|
|
local P22_23
|
|
local P21_22
|
|
local P20_21
|
|
local P19_20
|
|
local P18_19
|
|
local P17_18
|
|
local P16_17
|
|
|
|
local P3_P14
|
|
local P17_P76
|
|
local P76_P27
|
|
|
|
local P29_P28
|
|
local P30_P29
|
|
local P31_P30
|
|
local L76_P31
|
|
|
|
local P35_K2
|
|
local P36_P35
|
|
local P37_P36
|
|
local L74_P37
|
|
|
|
local P33_P42
|
|
local P13_P33
|
|
local P13_P42
|
|
|
|
function TRAIN_SYSTEM.InitializeResistances_81_710(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"]
|
|
|
|
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"]
|
|
|
|
P3_P14 = Train.KF_47A["P3-P14"]
|
|
P17_P76 = Train.KF_47A["P17-P76"]
|
|
P76_P27 = Train.KF_47A["P76-P27"]
|
|
|
|
P29_P28 = Train.KF_50A["P29-P28"]
|
|
P30_P29 = Train.KF_50A["P30-P29"]
|
|
P31_P30 = Train.KF_50A["P31-P30"]
|
|
L76_P31 = Train.KF_50A["L76-P31"]
|
|
|
|
P35_K2 = Train.KF_50A["P35-K2"]
|
|
P36_P35 = Train.KF_50A["P36-P35"]
|
|
P37_P36 = Train.KF_50A["P37-P36"]
|
|
L74_P37 = Train.KF_50A["L74-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[17])^-1 + (P11_12)^-1)^-1
|
|
R[2] = ((RK[19])^-1 + (P12_13+R[1])^-1)^-1
|
|
R[3] = ((T[22])^-1 + (P10_11)^-1)^-1
|
|
R[4] = ((RK[3])^-1 + (1e-9+1e9*(1.0-Train.TR1.Value))^-1)^-1
|
|
R[5] = ((P3_P14)^-1 + (RK[1]+P1_3)^-1)^-1
|
|
R[6] = ((RK[7])*(P6_7)+(RK[7])*(P5_6)+(P6_7)*(P5_6))/(RK[7])
|
|
R[7] = ((RK[7])*(P6_7)+(RK[7])*(P5_6)+(P6_7)*(P5_6))/(P6_7)
|
|
R[8] = ((RK[7])*(P6_7)+(RK[7])*(P5_6)+(P6_7)*(P5_6))/(P5_6)
|
|
R[9] = ((RK[9])^-1 + (R[8])^-1)^-1
|
|
R[10] = ((RK[5])^-1 + (R[7])^-1)^-1
|
|
R[11] = ((R[9])*(R[6])+(R[9])*(P7_8)+(R[6])*(P7_8))/(R[9])
|
|
R[12] = ((R[9])*(R[6])+(R[9])*(P7_8)+(R[6])*(P7_8))/(R[6])
|
|
R[13] = ((R[9])*(R[6])+(R[9])*(P7_8)+(R[6])*(P7_8))/(P7_8)
|
|
R[14] = ((R[13])^-1 + (R[10])^-1)^-1
|
|
R[15] = ((RK[11])^-1 + (R[12])^-1)^-1
|
|
R[16] = ((T[19]+R[5])*(P3_4)+(T[19]+R[5])*(R[4])+(P3_4)*(R[4]))/(T[19]+R[5])
|
|
R[17] = ((T[19]+R[5])*(P3_4)+(T[19]+R[5])*(R[4])+(P3_4)*(R[4]))/(P3_4)
|
|
R[18] = ((T[19]+R[5])*(P3_4)+(T[19]+R[5])*(R[4])+(P3_4)*(R[4]))/(R[4])
|
|
R[19] = ((R[16])^-1 + (RK[5]+T[1])^-1)^-1
|
|
R[20] = ((RK[15]+T[20])*(P9_10+R[3])+(RK[15]+T[20])*(R[2])+(P9_10+R[3])*(R[2]))/(RK[15]+T[20])
|
|
R[21] = ((RK[15]+T[20])*(P9_10+R[3])+(RK[15]+T[20])*(R[2])+(P9_10+R[3])*(R[2]))/(P9_10+R[3])
|
|
R[22] = ((RK[15]+T[20])*(P9_10+R[3])+(RK[15]+T[20])*(R[2])+(P9_10+R[3])*(R[2]))/(R[2])
|
|
R[23] = ((R[22])^-1 + (RK[13])^-1)^-1
|
|
R[24] = ((R[21])^-1 + (R[17])^-1)^-1
|
|
R[25] = ((P4_5)*(R[19])+(P4_5)*(R[18])+(R[19])*(R[18]))/(P4_5)
|
|
R[26] = ((P4_5)*(R[19])+(P4_5)*(R[18])+(R[19])*(R[18]))/(R[19])
|
|
R[27] = ((P4_5)*(R[19])+(P4_5)*(R[18])+(R[19])*(R[18]))/(R[18])
|
|
R[28] = ((R[24])^-1 + (R[25])^-1)^-1
|
|
R[29] = ((R[27])^-1 + (R[14])^-1)^-1
|
|
R[30] = ((R[29])*(R[11])+(R[29])*(R[26])+(R[11])*(R[26]))/(R[29])
|
|
R[31] = ((R[29])*(R[11])+(R[29])*(R[26])+(R[11])*(R[26]))/(R[11])
|
|
R[32] = ((R[29])*(R[11])+(R[29])*(R[26])+(R[11])*(R[26]))/(R[26])
|
|
R[33] = ((R[32])^-1 + (R[15])^-1)^-1
|
|
R[34] = ((R[31])^-1 + (R[28])^-1)^-1
|
|
R[35] = ((R[33])*(R[30])+(R[33])*(P8_9)+(R[30])*(P8_9))/(R[33])
|
|
R[36] = ((R[33])*(R[30])+(R[33])*(P8_9)+(R[30])*(P8_9))/(R[30])
|
|
R[37] = ((R[33])*(R[30])+(R[33])*(P8_9)+(R[30])*(P8_9))/(P8_9)
|
|
R[38] = ((R[23])^-1 + (R[36])^-1)^-1
|
|
R[39] = ((R[20])^-1 + (R[35])^-1)^-1
|
|
R[40] = ((R[39]+R[38])^-1 + (R[37])^-1)^-1
|
|
R[41] = ((R[40])^-1 + (R[34])^-1)^-1
|
|
return R[41]
|
|
end
|
|
|
|
function TRAIN_SYSTEM.R1C2(Train)
|
|
local RK = Train.RheostatController
|
|
local T = Train.PositionSwitch
|
|
R[1] = ((RK[17])^-1 + (P11_12)^-1)^-1
|
|
R[2] = ((RK[19])^-1 + (P12_13+R[1])^-1)^-1
|
|
R[3] = ((T[22])^-1 + (P10_11)^-1)^-1
|
|
R[4] = ((RK[3])^-1 + (1e-9+1e9*(1.0-Train.TR1.Value))^-1)^-1
|
|
R[5] = ((P3_P14)^-1 + (RK[1]+P1_3)^-1)^-1
|
|
R[6] = ((RK[7])*(P6_7)+(RK[7])*(P5_6)+(P6_7)*(P5_6))/(RK[7])
|
|
R[7] = ((RK[7])*(P6_7)+(RK[7])*(P5_6)+(P6_7)*(P5_6))/(P6_7)
|
|
R[8] = ((RK[7])*(P6_7)+(RK[7])*(P5_6)+(P6_7)*(P5_6))/(P5_6)
|
|
R[9] = ((RK[9])^-1 + (R[8])^-1)^-1
|
|
R[10] = ((RK[5])^-1 + (R[7])^-1)^-1
|
|
R[11] = ((R[9])*(R[6])+(R[9])*(P7_8)+(R[6])*(P7_8))/(R[9])
|
|
R[12] = ((R[9])*(R[6])+(R[9])*(P7_8)+(R[6])*(P7_8))/(R[6])
|
|
R[13] = ((R[9])*(R[6])+(R[9])*(P7_8)+(R[6])*(P7_8))/(P7_8)
|
|
R[14] = ((R[13])^-1 + (R[10])^-1)^-1
|
|
R[15] = ((R[12])^-1 + (RK[11])^-1)^-1
|
|
R[16] = ((RK[15]+T[20])*(T[19]+R[2]+R[5])+(RK[15]+T[20])*(R[3]+P9_10)+(T[19]+R[2]+R[5])*(R[3]+P9_10))/(RK[15]+T[20])
|
|
R[17] = ((RK[15]+T[20])*(T[19]+R[2]+R[5])+(RK[15]+T[20])*(R[3]+P9_10)+(T[19]+R[2]+R[5])*(R[3]+P9_10))/(T[19]+R[2]+R[5])
|
|
R[18] = ((RK[15]+T[20])*(T[19]+R[2]+R[5])+(RK[15]+T[20])*(R[3]+P9_10)+(T[19]+R[2]+R[5])*(R[3]+P9_10))/(R[3]+P9_10)
|
|
R[19] = ((RK[13])^-1 + (R[17])^-1)^-1
|
|
R[20] = ((R[18])^-1 + (R[4])^-1)^-1
|
|
R[21] = ((P4_5)*(P3_4)+(P4_5)*(RK[5]+T[1])+(P3_4)*(RK[5]+T[1]))/(P4_5)
|
|
R[22] = ((P4_5)*(P3_4)+(P4_5)*(RK[5]+T[1])+(P3_4)*(RK[5]+T[1]))/(P3_4)
|
|
R[23] = ((P4_5)*(P3_4)+(P4_5)*(RK[5]+T[1])+(P3_4)*(RK[5]+T[1]))/(RK[5]+T[1])
|
|
R[24] = ((R[14])^-1 + (R[22])^-1)^-1
|
|
R[25] = ((R[20])^-1 + (R[21])^-1)^-1
|
|
R[26] = ((R[24])*(R[11])+(R[24])*(R[23])+(R[11])*(R[23]))/(R[24])
|
|
R[27] = ((R[24])*(R[11])+(R[24])*(R[23])+(R[11])*(R[23]))/(R[11])
|
|
R[28] = ((R[24])*(R[11])+(R[24])*(R[23])+(R[11])*(R[23]))/(R[23])
|
|
R[29] = ((R[25])^-1 + (R[27])^-1)^-1
|
|
R[30] = ((R[28])^-1 + (R[15])^-1)^-1
|
|
R[31] = ((R[16])*(R[19])+(R[16])*(P8_9)+(R[19])*(P8_9))/(R[16])
|
|
R[32] = ((R[16])*(R[19])+(R[16])*(P8_9)+(R[19])*(P8_9))/(R[19])
|
|
R[33] = ((R[16])*(R[19])+(R[16])*(P8_9)+(R[19])*(P8_9))/(P8_9)
|
|
R[34] = ((R[29])^-1 + (R[33])^-1)^-1
|
|
R[35] = ((R[30])^-1 + (R[31])^-1)^-1
|
|
R[36] = ((R[32])^-1 + (R[26])^-1)^-1
|
|
R[37] = ((R[36]+R[35])^-1 + (R[34])^-1)^-1
|
|
return R[37]
|
|
end
|
|
|
|
function TRAIN_SYSTEM.R2C1(Train)
|
|
local RK = Train.RheostatController
|
|
local T = Train.PositionSwitch
|
|
R[1] = ((T[16])^-1 + (P24_25)^-1)^-1
|
|
R[2] = ((RK[18])^-1 + (P25_26)^-1)^-1
|
|
R[3] = ((RK[4])^-1 + (1e-9+1e9*(1.0-Train.TR2.Value))^-1)^-1
|
|
R[4] = ((P76_P27)^-1 + (RK[27])^-1)^-1
|
|
R[5] = ((P17_P76+R[4])^-1 + (RK[2]+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] = ((RK[14])^-1 + (R[13])^-1)^-1
|
|
R[15] = ((R[12])^-1 + (R[9])^-1)^-1
|
|
R[16] = ((R[15])*(R[11])+(R[15])*(R[6])+(R[11])*(R[6]))/(R[15])
|
|
R[17] = ((R[15])*(R[11])+(R[15])*(R[6])+(R[11])*(R[6]))/(R[11])
|
|
R[18] = ((R[15])*(R[11])+(R[15])*(R[6])+(R[11])*(R[6]))/(R[6])
|
|
R[19] = ((R[18])^-1 + (R[14])^-1)^-1
|
|
R[20] = ((R[17])^-1 + (R[10])^-1)^-1
|
|
R[21] = ((RK[6]+T[15])*(P18_19)+(RK[6]+T[15])*(P17_18)+(P18_19)*(P17_18))/(RK[6]+T[15])
|
|
R[22] = ((RK[6]+T[15])*(P18_19)+(RK[6]+T[15])*(P17_18)+(P18_19)*(P17_18))/(P18_19)
|
|
R[23] = ((RK[6]+T[15])*(P18_19)+(RK[6]+T[15])*(P17_18)+(P18_19)*(P17_18))/(P17_18)
|
|
R[24] = ((R[20])^-1 + (R[23])^-1)^-1
|
|
R[25] = ((R[22])^-1 + (R[3])^-1)^-1
|
|
R[26] = ((R[16])*(R[19])+(R[16])*(P23_24+R[1])+(R[19])*(P23_24+R[1]))/(R[16])
|
|
R[27] = ((R[16])*(R[19])+(R[16])*(P23_24+R[1])+(R[19])*(P23_24+R[1]))/(R[19])
|
|
R[28] = ((R[16])*(R[19])+(R[16])*(P23_24+R[1])+(R[19])*(P23_24+R[1]))/(P23_24+R[1])
|
|
R[29] = ((RK[16]+T[14])^-1 + (R[26])^-1)^-1
|
|
R[30] = ((R[28])^-1 + (R[24])^-1)^-1
|
|
R[31] = ((R[27])*(R[30])+(R[27])*(R[21])+(R[30])*(R[21]))/(R[27])
|
|
R[32] = ((R[27])*(R[30])+(R[27])*(R[21])+(R[30])*(R[21]))/(R[30])
|
|
R[33] = ((R[27])*(R[30])+(R[27])*(R[21])+(R[30])*(R[21]))/(R[21])
|
|
R[34] = ((R[29])^-1 + (R[33])^-1)^-1
|
|
R[35] = ((R[25])^-1 + (R[31])^-1)^-1
|
|
R[36] = ((R[32])*(R[34])+(R[32])*(R[2])+(R[34])*(R[2]))/(R[32])
|
|
R[37] = ((R[32])*(R[34])+(R[32])*(R[2])+(R[34])*(R[2]))/(R[34])
|
|
R[38] = ((R[32])*(R[34])+(R[32])*(R[2])+(R[34])*(R[2]))/(R[2])
|
|
R[39] = ((R[35])^-1 + (R[38])^-1)^-1
|
|
R[40] = ((R[37])^-1 + (R[5]+T[21])^-1)^-1
|
|
R[41] = ((R[36])^-1 + (R[39]+R[40])^-1)^-1
|
|
return R[41]
|
|
end
|
|
|
|
function TRAIN_SYSTEM.R2C2(Train)
|
|
local RK = Train.RheostatController
|
|
local T = Train.PositionSwitch
|
|
R[1] = ((T[16])^-1 + (P24_25)^-1)^-1
|
|
R[2] = ((RK[18])^-1 + (P25_26)^-1)^-1
|
|
R[3] = ((RK[4])^-1 + (1e-9+1e9*(1.0-Train.TR2.Value))^-1)^-1
|
|
R[4] = ((P76_P27)^-1 + (RK[27])^-1)^-1
|
|
R[5] = ((P17_P76+R[4])^-1 + (RK[2]+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] = ((R[6])*(R[9])+(R[6])*(P21_22)+(R[9])*(P21_22))/(R[6])
|
|
R[12] = ((R[6])*(R[9])+(R[6])*(P21_22)+(R[9])*(P21_22))/(R[9])
|
|
R[13] = ((R[6])*(R[9])+(R[6])*(P21_22)+(R[9])*(P21_22))/(P21_22)
|
|
R[14] = ((RK[12])^-1 + (R[11])^-1)^-1
|
|
R[15] = ((R[10])^-1 + (R[13])^-1)^-1
|
|
R[16] = ((RK[14])*(P22_23)+(RK[14])*(P23_24+R[1])+(P22_23)*(P23_24+R[1]))/(RK[14])
|
|
R[17] = ((RK[14])*(P22_23)+(RK[14])*(P23_24+R[1])+(P22_23)*(P23_24+R[1]))/(P22_23)
|
|
R[18] = ((RK[14])*(P22_23)+(RK[14])*(P23_24+R[1])+(P22_23)*(P23_24+R[1]))/(P23_24+R[1])
|
|
R[19] = ((RK[16]+T[14])^-1 + (R[17])^-1)^-1
|
|
R[20] = ((R[14])^-1 + (R[18])^-1)^-1
|
|
R[21] = ((RK[6]+T[15])*(P18_19)+(RK[6]+T[15])*(P17_18)+(P18_19)*(P17_18))/(RK[6]+T[15])
|
|
R[22] = ((RK[6]+T[15])*(P18_19)+(RK[6]+T[15])*(P17_18)+(P18_19)*(P17_18))/(P18_19)
|
|
R[23] = ((RK[6]+T[15])*(P18_19)+(RK[6]+T[15])*(P17_18)+(P18_19)*(P17_18))/(P17_18)
|
|
R[24] = ((R[15])^-1 + (R[23])^-1)^-1
|
|
R[25] = ((R[22])^-1 + (R[3])^-1)^-1
|
|
R[26] = ((R[12])*(R[21])+(R[12])*(R[24])+(R[21])*(R[24]))/(R[12])
|
|
R[27] = ((R[12])*(R[21])+(R[12])*(R[24])+(R[21])*(R[24]))/(R[21])
|
|
R[28] = ((R[12])*(R[21])+(R[12])*(R[24])+(R[21])*(R[24]))/(R[24])
|
|
R[29] = ((R[20])^-1 + (R[27])^-1)^-1
|
|
R[30] = ((R[26])^-1 + (R[25])^-1)^-1
|
|
R[31] = ((R[5]+T[21]+R[2])*(R[19])+(R[5]+T[21]+R[2])*(R[16])+(R[19])*(R[16]))/(R[5]+T[21]+R[2])
|
|
R[32] = ((R[5]+T[21]+R[2])*(R[19])+(R[5]+T[21]+R[2])*(R[16])+(R[19])*(R[16]))/(R[19])
|
|
R[33] = ((R[5]+T[21]+R[2])*(R[19])+(R[5]+T[21]+R[2])*(R[16])+(R[19])*(R[16]))/(R[16])
|
|
R[34] = ((R[29])^-1 + (R[31])^-1)^-1
|
|
R[35] = ((R[30])^-1 + (R[33])^-1)^-1
|
|
R[36] = ((R[32])^-1 + (R[28])^-1)^-1
|
|
R[37] = ((R[36]+R[34])^-1 + (R[35])^-1)^-1
|
|
return R[37]
|
|
end
|
|
|
|
function TRAIN_SYSTEM.R3(Train)
|
|
local RK = Train.RheostatController
|
|
local T = Train.PositionSwitch
|
|
R[1] = ((P13_P42)^-1 + (RK[20])^-1)^-1
|
|
R[2] = ((R[1])^-1 + (P13_P33+P33_P42)^-1)^-1
|
|
return R[2]
|
|
end
|
|
|
|
function TRAIN_SYSTEM.S1(Train)
|
|
local RK = Train.RheostatController
|
|
local T = Train.PositionSwitch
|
|
R[1] = ((L76_P31)^-1 + (RK[21])^-1)^-1
|
|
R[2] = ((RK[23])^-1 + (P31_P30+R[1])^-1)^-1
|
|
R[3] = ((P30_P29+R[2])^-1 + (RK[25])^-1)^-1
|
|
return P29_P28+R[3]
|
|
end
|
|
|
|
function TRAIN_SYSTEM.S2(Train)
|
|
local RK = Train.RheostatController
|
|
local T = Train.PositionSwitch
|
|
R[1] = ((L74_P37)^-1 + (RK[22])^-1)^-1
|
|
R[2] = ((RK[24])^-1 + (P37_P36+R[1])^-1)^-1
|
|
R[3] = ((P36_P35+R[2])^-1 + (RK[26])^-1)^-1
|
|
return P35_K2+R[3]
|
|
end
|
|
|