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_702o.lua
g_brzhezinskiy 1d05caf866 init
2021-01-02 12:51:45 +03:00

204 lines
7.7 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 S P T P1 P2 S1 S2 S(XT) P(T) M(X)
R01 = 3.851 0.000 3.851 0.000 0.000 0.188 0.188 1.000 1.000 0.000
R02 = 3.091 0.000 3.851 0.000 0.000 0.188 0.188 0.000 1.000 0.000
R03 = 2.211 0.000 2.971 0.000 0.000 0.188 0.188 0.000 1.000 0.000
R04 = 1.770 0.000 2.530 0.000 0.000 0.188 0.188 0.000 1.000 0.000
R05 = 1.329 0.000 2.089 0.000 0.000 0.188 0.188 0.000 1.000 0.000
R06 = 1.066 0.000 1.826 0.000 0.000 0.188 0.188 0.000 1.000 0.000
R07 = 0.816 0.000 1.576 0.000 0.000 0.188 0.188 0.000 1.000 0.000
R08 = 0.608 0.000 1.368 0.000 0.000 0.188 0.188 0.000 1.000 0.000
R09 = 0.387 0.000 1.147 0.000 0.000 0.188 0.188 0.000 1.000 0.000
R10 = 0.190 0.000 0.950 0.000 0.000 0.188 0.188 0.000 1.000 0.000
R11 = 0.000 0.000 0.760 0.000 0.000 0.188 0.188 0.000 1.000 0.000
R12 = 0.000 0.000 0.760 0.000 0.000 0.188 0.188 1.000 1.000 0.000
R13 = 0.000 0.000 0.760 0.000 0.000 0.019 0.019 1.000 0.000 0.000
R14 = 0.000 2.211 0.597 1.102 1.109 0.019 0.019 0.000 0.000 0.000
R15 = 0.000 1.329 0.543 0.661 0.668 0.188 0.188 0.000 0.000 0.000
R16 = 0.000 0.816 0.491 0.411 0.405 0.188 0.188 0.000 0.000 0.000
R17 = 0.000 0.387 0.424 0.190 0.197 0.188 0.188 0.000 0.000 0.000
R18 = 0.000 0.000 0.326 0.000 0.000 0.188 0.188 0.000 0.000 0.000
R19 = 0.000 0.000 0.326 0.000 0.000 0.188 0.188 1.000 0.000 0.000
R20 = 0.000 0.000 0.326 0.000 0.000 0.019 0.019 1.000 0.000 0.000
]]--
--------------------------------------------------------------------------------
-- Resistor arrays calculations - auto-generated by gen.lua
--------------------------------------------------------------------------------
Metrostroi.DefineSystem("Gen_Res_702o")
local R = {}
local P14_1
local P1_2
local P2_3
local P3_4
local P4_11
local P13_11
local P12_11
local P9_10
local P8_9
local P7_8
local P6_7
local P10_13
local P20_21
local P21_22
local P23_24
local P24_25
function TRAIN_SYSTEM.InitializeResistances_81_702(Train)
P14_1 = Train.KF_6A["P14-P1"]
P1_2 = Train.KF_6A["P1-P2"]
P2_3 = Train.KF_6A["P2-P3"]
P3_4 = Train.KF_6A["P3-P4"]
P4_11 = Train.KF_6A["P4-P11"]
P13_11 = Train.KF_6A["P13-P11"]
P10_13 = Train.KF_6A["P10-P13"]
P12_11 = Train.KF_6A["P12-P11"]
P9_10 = Train.KF_6A["P9-P10"]
P8_9 = Train.KF_6A["P8-P9"]
P7_8 = Train.KF_6A["P7-P8"]
P6_7 = Train.KF_6A["P6-P7"]
P20_21 = Train.KF_7A["P20-P21"]
P21_22 = Train.KF_7A["P21-P22"]
P23_24 = Train.KF_7A["P23-P24"]
P24_25 = Train.KF_7A["P24-P25"]
end
function TRAIN_SYSTEM.R1(Train)
local RK = Train.RheostatController
local T = Train.PositionSwitch
local Poff = 1e-9+1e9*(1-RK.P1)
local Moff = 1e-9+1e9*(1-Train.M.Value)
local Pon = 1e-9+1e9*(RK.P1)
local Sh = 1e-9+1e9*(1-Train.SH1.Value)
R[1] = ((RK[2])^-1 + (P1_2)^-1)^-1
R[2] = ((RK[4])^-1 + (P2_3+R[1])^-1)^-1
R[3] = ((RK[6])^-1 + (P3_4+R[2])^-1)^-1
R[4] = ((RK[10]+Pon+Moff)^-1 + (RK[8])^-1)^-1
R[5] = ((P13_11)^-1 + (RK[11]+T[12])^-1)^-1
R[6] = ((RK[13])^-1 + (P10_13)^-1)^-1
R[7] = ((P4_11+R[3])^-1 + (R[4])^-1)^-1
R[8] = ((RK[7])^-1 + (RK[9]+Pon+Moff)^-1)^-1
R[9] = ((RK[1])^-1 + (P6_7)^-1)^-1
R[10] = ((R[9]+P7_8)^-1 + (RK[3])^-1)^-1
R[11] = ((P8_9+R[10])^-1 + (RK[5])^-1)^-1
R[12] = ((R[8])^-1 + (P9_10+R[11])^-1)^-1
R[13] = ((Pon)*(Poff+T[10]+P14_1)+(Pon)*(R[7])+(Poff+T[10]+P14_1)*(R[7]))/(Pon)
R[14] = ((Pon)*(Poff+T[10]+P14_1)+(Pon)*(R[7])+(Poff+T[10]+P14_1)*(R[7]))/(Poff+T[10]+P14_1)
R[15] = ((Pon)*(Poff+T[10]+P14_1)+(Pon)*(R[7])+(Poff+T[10]+P14_1)*(R[7]))/(R[7])
R[16] = ((Poff)^-1 + (R[14])^-1)^-1
R[17] = ((R[5]+R[6])*(Poff)+(R[5]+R[6])*(R[12])+(Poff)*(R[12]))/(R[5]+R[6])
R[18] = ((R[5]+R[6])*(Poff)+(R[5]+R[6])*(R[12])+(Poff)*(R[12]))/(Poff)
R[19] = ((R[5]+R[6])*(Poff)+(R[5]+R[6])*(R[12])+(Poff)*(R[12]))/(R[12])
R[20] = ((R[17])^-1 + (Pon)^-1)^-1
R[21] = ((R[13])^-1 + (R[18])^-1)^-1
R[22] = ((R[15])*(R[20])+(R[15])*(R[21])+(R[20])*(R[21]))/(R[15])
R[23] = ((R[15])*(R[20])+(R[15])*(R[21])+(R[20])*(R[21]))/(R[20])
R[24] = ((R[15])*(R[20])+(R[15])*(R[21])+(R[20])*(R[21]))/(R[21])
R[25] = ((R[23])^-1 + (R[16])^-1)^-1
R[26] = ((R[19])^-1 + (R[22])^-1)^-1
R[27] = ((R[25])*(R[26])+(R[25])*(Moff)+(R[26])*(Moff))/(R[25])
R[28] = ((R[25])*(R[26])+(R[25])*(Moff)+(R[26])*(Moff))/(R[26])
R[29] = ((R[25])*(R[26])+(R[25])*(Moff)+(R[26])*(Moff))/(Moff)
R[30] = ((R[24])^-1 + (R[29])^-1)^-1
R[31] = ((R[30])^-1 + (R[28]+R[27])^-1)^-1
return R[31]
end
function TRAIN_SYSTEM.R2C1(Train)
local RK = Train.RheostatController
local T = Train.PositionSwitch
local Poff = 1e-9+1e9*(1-RK.P1)
local Moff = 1e-9+1e9*(1-Train.M.Value)
local Pon = 1e-9+1e9*(RK.P1)
local Sh = 1e-9+1e9*(1-Train.SH1.Value)
R[1] = ((RK[2])^-1 + (P1_2)^-1)^-1
R[2] = ((RK[4])^-1 + (P2_3+R[1])^-1)^-1
R[3] = ((RK[6])^-1 + (P3_4+R[2])^-1)^-1
R[4] = ((RK[10]+Pon+Moff)^-1 + (RK[8])^-1)^-1
R[5] = ((P13_11)^-1 + (RK[11]+T[12])^-1)^-1
R[6] = ((RK[13])^-1 + (P10_13)^-1)^-1
R[7] = ((Poff+Pon)^-1 + (R[4])^-1)^-1
R[8] = ((RK[7])^-1 + (Pon+Poff)^-1)^-1
R[9] = ((R[8])^-1 + (RK[9]+Pon+Moff)^-1)^-1
R[10] = ((RK[1])^-1 + (P6_7)^-1)^-1
R[11] = ((R[10]+P7_8)^-1 + (RK[3])^-1)^-1
R[12] = ((R[11]+P8_9)^-1 + (RK[5])^-1)^-1
R[13] = ((R[9])^-1 + (R[12]+P9_10)^-1)^-1
R[14] = ((R[7])^-1 + (P4_11+R[3])^-1)^-1
R[15] = ((Moff)*(R[5])+(Moff)*(R[14])+(R[5])*(R[14]))/(Moff)
R[16] = ((Moff)*(R[5])+(Moff)*(R[14])+(R[5])*(R[14]))/(R[5])
R[17] = ((Moff)*(R[5])+(Moff)*(R[14])+(R[5])*(R[14]))/(R[14])
R[18] = ((R[15])^-1 + (R[16]+R[17])^-1)^-1
R[19] = ((R[18])^-1 + (Poff+T[10]+P14_1+R[13]+R[6])^-1)^-1
return R[19]
end
function TRAIN_SYSTEM.R2C2(Train)
local RK = Train.RheostatController
local T = Train.PositionSwitch
local Poff = 1e-9+1e9*(1-RK.P1)
local Moff = 1e-9+1e9*(1-Train.M.Value)
local Pon = 1e-9+1e9*(RK.P1)
local Sh = 1e-9+1e9*(1-Train.SH1.Value)
R[1] = ((RK[2])^-1 + (P1_2)^-1)^-1
R[2] = ((RK[4])^-1 + (P2_3+R[1])^-1)^-1
R[3] = ((RK[6])^-1 + (P3_4+R[2])^-1)^-1
R[4] = ((RK[10]+Pon+Moff)^-1 + (RK[8])^-1)^-1
R[5] = ((P13_11)^-1 + (RK[11]+T[12])^-1)^-1
R[6] = ((RK[13])^-1 + (P10_13)^-1)^-1
R[7] = ((Poff+Pon)^-1 + (R[4])^-1)^-1
R[8] = ((RK[7])^-1 + (Pon+Poff)^-1)^-1
R[9] = ((R[8])^-1 + (RK[9]+Pon+Moff)^-1)^-1
R[10] = ((R[7])^-1 + (P4_11+R[3])^-1)^-1
R[11] = ((RK[1])^-1 + (P6_7)^-1)^-1
R[12] = ((R[11]+P7_8)^-1 + (RK[3])^-1)^-1
R[13] = ((R[12]+P8_9)^-1 + (RK[5])^-1)^-1
R[14] = ((R[9])^-1 + (R[13]+P9_10)^-1)^-1
R[15] = ((Moff)*(Poff+T[10]+P14_1+R[10])+(Moff)*(R[5]+R[6])+(Poff+T[10]+P14_1+R[10])*(R[5]+R[6]))/(Moff)
R[16] = ((Moff)*(Poff+T[10]+P14_1+R[10])+(Moff)*(R[5]+R[6])+(Poff+T[10]+P14_1+R[10])*(R[5]+R[6]))/(Poff+T[10]+P14_1+R[10])
R[17] = ((Moff)*(Poff+T[10]+P14_1+R[10])+(Moff)*(R[5]+R[6])+(Poff+T[10]+P14_1+R[10])*(R[5]+R[6]))/(R[5]+R[6])
R[18] = ((R[15])^-1 + (R[16]+R[17])^-1)^-1
R[19] = ((R[18])^-1 + (R[14])^-1)^-1
return R[19]
end
function TRAIN_SYSTEM.S1(Train)
local RK = Train.RheostatController
local T = Train.PositionSwitch
local Poff = 1e-9+1e9*(1-RK.P1)
local Moff = 1e-9+1e9*(1-Train.M.Value)
local Pon = 1e-9+1e9*(RK.P1)
local Sh = 1e-9+1e9*(1-Train.SH1.Value)
R[1] = ((P21_22)^-1 + (RK[12])^-1)^-1
return R[1]+Sh+P20_21
end
function TRAIN_SYSTEM.S2(Train)
local RK = Train.RheostatController
local T = Train.PositionSwitch
local Poff = 1e-9+1e9*(1-RK.P1)
local Moff = 1e-9+1e9*(1-Train.M.Value)
local Pon = 1e-9+1e9*(RK.P1)
local Sh = 1e-9+1e9*(1-Train.SH1.Value)
R[1] = ((P24_25)^-1 + (RK[12])^-1)^-1
return R[1]+Sh+P23_24
end