-------------------------------------------------------------------------------- -- 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