-------------------------------------------------------------------------------- -- 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 = 4.639 0.000 4.639 0.000 0.000 0.188 0.188 1.000 1.000 0.000 R02 = 4.639 0.000 4.639 0.000 0.000 0.188 0.188 0.000 1.000 0.000 R03 = 2.434 0.000 3.205 0.000 0.000 0.188 0.188 0.000 1.000 0.000 R04 = 1.662 0.000 2.433 0.000 0.000 0.188 0.188 0.000 1.000 0.000 R05 = 1.329 0.000 2.100 0.000 0.000 0.188 0.188 0.000 1.000 0.000 R06 = 1.066 0.000 1.837 0.000 0.000 0.188 0.188 0.000 1.000 0.000 R07 = 0.816 0.000 1.587 0.000 0.000 0.188 0.188 0.000 1.000 0.000 R08 = 0.608 0.000 1.379 0.000 0.000 0.188 0.188 0.000 1.000 0.000 R09 = 0.387 0.000 1.158 0.000 0.000 0.188 0.188 0.000 1.000 0.000 R10 = 0.190 0.000 0.961 0.000 0.000 0.188 0.188 0.000 1.000 0.000 R11 = 0.000 0.000 0.771 0.000 0.000 0.188 0.188 0.000 1.000 0.000 R12 = 0.000 0.000 0.771 0.000 0.000 0.188 0.188 1.000 1.000 0.000 R13 = 0.000 0.000 0.771 0.000 0.000 0.019 0.019 1.000 0.000 0.000 R14 = 0.000 1.993 0.593 0.994 0.999 0.019 0.019 0.000 0.000 0.000 R15 = 0.000 1.329 0.548 0.661 0.668 0.188 0.188 0.000 0.000 0.000 R16 = 0.000 0.816 0.495 0.411 0.405 0.188 0.188 0.000 0.000 0.000 R17 = 0.000 0.387 0.427 0.190 0.197 0.188 0.188 0.000 0.000 0.000 R18 = 0.000 0.000 0.328 0.000 0.000 0.188 0.188 0.000 0.000 0.000 R19 = 0.000 0.000 0.328 0.000 0.000 0.188 0.188 1.000 0.000 0.000 R20 = 0.000 0.000 0.328 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_702c") 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] = ((P12_11)^-1 + (T[12])^-1)^-1 R[6] = ((P13_11)^-1 + (RK[11]+R[5])^-1)^-1 R[7] = ((RK[13])^-1 + (P10_13)^-1)^-1 R[8] = ((RK[7])^-1 + (RK[9]+Pon+Moff)^-1)^-1 R[9] = ((RK[1])^-1 + (P6_7)^-1)^-1 R[10] = ((RK[3])^-1 + (P7_8+R[9])^-1)^-1 R[11] = ((P8_9+R[10])^-1 + (RK[5])^-1)^-1 R[12] = ((P9_10+R[11])^-1 + (R[8])^-1)^-1 R[13] = ((P4_11+R[3])^-1 + (R[4])^-1)^-1 R[14] = ((Pon)*(R[13])+(Pon)*(Poff+T[10]+P14_1)+(R[13])*(Poff+T[10]+P14_1))/(Pon) R[15] = ((Pon)*(R[13])+(Pon)*(Poff+T[10]+P14_1)+(R[13])*(Poff+T[10]+P14_1))/(R[13]) R[16] = ((Pon)*(R[13])+(Pon)*(Poff+T[10]+P14_1)+(R[13])*(Poff+T[10]+P14_1))/(Poff+T[10]+P14_1) R[17] = ((Poff)^-1 + (R[16])^-1)^-1 R[18] = ((R[12])*(Poff)+(R[12])*(R[7]+R[6])+(Poff)*(R[7]+R[6]))/(R[12]) R[19] = ((R[12])*(Poff)+(R[12])*(R[7]+R[6])+(Poff)*(R[7]+R[6]))/(Poff) R[20] = ((R[12])*(Poff)+(R[12])*(R[7]+R[6])+(Poff)*(R[7]+R[6]))/(R[7]+R[6]) R[21] = ((R[20])^-1 + (Pon)^-1)^-1 R[22] = ((R[19])^-1 + (R[14])^-1)^-1 R[23] = ((R[21])*(R[22])+(R[21])*(R[15])+(R[22])*(R[15]))/(R[21]) R[24] = ((R[21])*(R[22])+(R[21])*(R[15])+(R[22])*(R[15]))/(R[22]) R[25] = ((R[21])*(R[22])+(R[21])*(R[15])+(R[22])*(R[15]))/(R[15]) R[26] = ((R[17])^-1 + (R[23])^-1)^-1 R[27] = ((R[25])^-1 + (R[18])^-1)^-1 R[28] = ((R[27])*(R[26])+(R[27])*(Moff)+(R[26])*(Moff))/(R[27]) R[29] = ((R[27])*(R[26])+(R[27])*(Moff)+(R[26])*(Moff))/(R[26]) R[30] = ((R[27])*(R[26])+(R[27])*(Moff)+(R[26])*(Moff))/(Moff) R[31] = ((R[30])^-1 + (R[24])^-1)^-1 R[32] = ((R[31])^-1 + (R[29]+R[28])^-1)^-1 return R[32] 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] = ((P12_11)^-1 + (T[12])^-1)^-1 R[6] = ((P13_11)^-1 + (RK[11]+R[5])^-1)^-1 R[7] = ((RK[13])^-1 + (P10_13)^-1)^-1 R[8] = ((RK[7])^-1 + (RK[9]+Pon+Moff)^-1)^-1 R[9] = ((RK[1])^-1 + (P6_7)^-1)^-1 R[10] = ((Poff+Pon)^-1 + (P4_11+R[3])^-1)^-1 R[11] = ((R[10])^-1 + (R[4])^-1)^-1 R[12] = ((Pon+Poff)^-1 + (R[8])^-1)^-1 R[13] = ((R[9]+P7_8)^-1 + (RK[3])^-1)^-1 R[14] = ((P8_9+R[13])^-1 + (RK[5])^-1)^-1 R[15] = ((R[12])^-1 + (R[14]+P9_10)^-1)^-1 R[16] = ((R[11])*(R[6])+(R[11])*(Moff)+(R[6])*(Moff))/(R[11]) R[17] = ((R[11])*(R[6])+(R[11])*(Moff)+(R[6])*(Moff))/(R[6]) R[18] = ((R[11])*(R[6])+(R[11])*(Moff)+(R[6])*(Moff))/(Moff) R[19] = ((R[18])^-1 + (R[7]+R[15]+Poff+T[10]+P14_1)^-1)^-1 R[20] = ((R[19])^-1 + (R[17]+R[16])^-1)^-1 return R[20] 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] = ((P12_11)^-1 + (T[12])^-1)^-1 R[6] = ((P13_11)^-1 + (RK[11]+R[5])^-1)^-1 R[7] = ((RK[13])^-1 + (P10_13)^-1)^-1 R[8] = ((R[4])^-1 + (P4_11+R[3])^-1)^-1 R[9] = ((RK[7])^-1 + (Pon+Poff)^-1)^-1 R[10] = ((R[9])^-1 + (RK[9]+Pon+Moff)^-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[10])^-1 + (R[13]+P9_10)^-1)^-1 R[15] = ((R[8])^-1 + (Poff+Pon)^-1)^-1 R[16] = ((Poff+T[10]+P14_1+R[15])*(Moff)+(Poff+T[10]+P14_1+R[15])*(R[6]+R[7])+(Moff)*(R[6]+R[7]))/(Poff+T[10]+P14_1+R[15]) R[17] = ((Poff+T[10]+P14_1+R[15])*(Moff)+(Poff+T[10]+P14_1+R[15])*(R[6]+R[7])+(Moff)*(R[6]+R[7]))/(Moff) R[18] = ((Poff+T[10]+P14_1+R[15])*(Moff)+(Poff+T[10]+P14_1+R[15])*(R[6]+R[7])+(Moff)*(R[6]+R[7]))/(R[6]+R[7]) R[19] = ((R[17])^-1 + (R[16]+R[18])^-1)^-1 R[20] = ((R[19])^-1 + (R[14])^-1)^-1 return R[20] 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