Математическая модель. Рабочий протокол на условия программирования модели РП - РГС, страница 3

4.2     Формульное   описание   блока  RUN  в идентификаторах.

Обозначения:

int()             –        выделение целой части;

log10()       -         десятичный логарифм;

sqrt()          –        извлечение квадратного корня.

Подготовительные операции:

LAM = CvS/Ftr

(1)

KURS = Ksh * PI / 180.0

(2)

XAM[1] = 30

(3)

YAM[1] = 14

(4)

ZAM[1] = 5

(5)

XAM[2] = 30

(6)

YAM[2] = 14

(7)

ZAM[2] = -5

(8)

XAM[3] = -25

(9)

YAM[3] = 16

(10)

ZAM[3] = 7

(11)

XAM[4] = -25

(12)

YAM[4] = 16

(13)

ZAM[4] = -7

(14)

WB[0] = 0

(15)

WB[1] = 0.104

(16)

WB[2] = 0.315

(17)

WB[3] = 0.526

(18)

WB[4] = 0.84

(19)

WB[5] = 1.25

(20)

WB[6] = 2.1

(21)

WB[7] = 4.22

Kzch = int(tauzh/Del_t)

(23)

Ksbr = int(tausb/Del_t)

(24)

                                              Перебор всех ракет:                     

Цикл по NR от 1  до 48  действия (26) – (182)

(25)

если  (Imis[NR] ¹1) то действия (27) – (37),  иначе действия (38) – (182)

(26)

zimis[NR] = Imis[NR]

(27)

Basic[NR] = 0

(28)

Istop[NR]=0

(29)

VDcu[NR]  = 0.0

(30)

Nc[NR] = 0

(31)

Nci[NR] = 0

(32)

LZch[NR] = 0

(33)

Zch[NR] = 0

(34)

Qo[NR] = 0.0

(35)

Qtf[NR]= 0.0

(36)

Qdop[NR] = 0.0

(37)

XR = Xmis[NR] - Xsh

(38)

YR = Ymis[NR] - Ysh

(39)

ZR = Zmis[NR] - Zsh

(40)

TAN = Nju_mis[NR] * PI / 180.0

(41)

PSI = Psi_mis[NR] * PI / 180.0

(42)

DXrgs = Del_X[NR]

(43)

DYrgs = Del_Y[NR]

(44)

DZrgs = Del_Z[NR]

(45)

                                             Первый ввод параметров по NR-й ракете:

если  (zimis[NR] = 0)  то   действия (47) – (59)

(46)

TTR[NR] = 0

(47)

Istop[NR] = 0

(48)

Lftr[NR] = 0

(49)

IZch[NR] = 0

(50)

Mzch[NR] = 0

(51)

Jvkl[NR] = 0

(52)

Isbr[NR] = 0

(53)

Msbr[NR] = 0

(54)

Jsbr[NR] = 0

(55)

LZch[NR] = 0

(56)

Zch[NR] = 0

(57)

dfd[NR] = 0

(58)

Цикл по Itg  от 1  до 16 :  TAUf[NR][Itg] = Tfil

(59)

                         Переключение параметров сканирования при полете ракеты:

TTR[NR] = TTR[NR] + Del_t                                     

(60)

если (TTR[NR]  ³ Tpas)  то  действия (62) – (63),  иначе  действия (64) – (65)

(61)

Kdp[NR] = int(taudp2/Del_t)

(62)

Fmx[NR] = Fmx2

(63)

Kdp[NR] = int(taudp1/Del_t)

(64)

Fmx[NR] = Fmx1

(65)

                                              Перебор всех целей:

Цикл по Itg от 1  до 16 :   действия (67) – (104)

(66)

если (Aim[Itg] = 0)  то  действия (68) – (70),      иначе  действия (71) – (104)

(67)

Q5[NR][Itg] = 1e-18

(68)

Q6[NR][Itg] = 1e-18

(69)

ASN[NR][Itg] = 0 

(70)

XT = Xc_i[Itg] - Xsh

(71)

YT = Yc_i[Itg] - Ysh

(72)

ZT = Zc_i[Itg] - Zsh

(73)

SIG = EPR[Itg]

(74)

                                        Перебор всех прожекторов:

ЦИКЛ по Irp от 1  до  4 :  действия (76) – (79)            

(75)

если (Co[Irp] = 1) то  Ptr[Irp] = PW   иначе    Ptr[Irp] = 0

(76)

P_ShD[Irp] = ShD[Irp]

(77)

если (ShD[Irp] = 1)  то  DET1[Irp] = TTwide   иначе  DET1[Irp] = TTnarr

(78)

если (ShD[Irp] = 1)  то  Grp[Irp] = Gwide     иначе   Grp[Irp] = Gnarr        

(79)

Вызов процедуры POW12

(80)

Входы: XR,YR,ZR,XT,YT,ZT,KURS,TAN,PSI,DXrgs,DYrgs,DZrgs,XAM,YAM,ZAM

Выходы: Q1, Q2, Q4

Вызов процедуры POW3

(81)

Входы: XR, YR, ZR, XT, YT, ZT,DXrgs,DYrgs,DZrgs

Выход: Q3

если (Q1 < 1e-18)  то  Q1 = 1e-18                            

(82)

если (Q2 < 1e-18)  то  Q2 = 1e-18

(83)

если (Q3 < 1e-18)  то  Q3 = 1e-18

(84)

если (Q4 < 1e-18)  то  Q4 = 1e-18                            

(85)

Sop[NR] = sqrt(Q1)                                         

(86)

U5[NR][Itg] = sqrt(Q2 * Q3)                             

(87)

U6[NR][Itg] = sqrt(Q4)                                    

(88)

если (Qdop[NR] > Qpug) то TAUf[NR][Itg] = Del_t  иначе  TAUf[NR][Itg] = Tfil

(89)

A90 = Del_t / TAUf[NR][Itg]

(90)

B90 = 1.0 - A90

(91)

если (zimis[NR] = 0) то  действия (93) – (95)                        

(92)

Sf[NR] = Sop[NR]

(93)

Q5[NR][Itg] = U5[NR][Itg]

(94)

Q6[NR][Itg] = U6[NR][Itg]

(95)

Sf[NR] = B90 * Sf[NR] + A90 * Sop[NR]

(96)

Q5[NR][Itg] = B90 * Q5[NR][Itg] + A90 * U5[NR][Itg]

(97)

Q6[NR][Itg] = B90 * Q6[NR][Itg] + A90 * U6[NR][Itg] 

(98)

QNop = 20 * log10(Sf[NR])                                        

(99)

QNug = 20 * log10(Q5[NR][Itg])  

(100)

Qo[NR] = QNop - QQ133                                

(101)

Qpr[NR][Itg] = QNug - QQ164              

(102)

если (Qo[NR] > Qpug)    то  Basic[NR] = 1   иначе  Basic[NR] = 0

(103)

если (Qpr[NR][Itg] > Qpug)  то  ASN[NR][Itg] = 1   иначе  ASN[NR][Itg] = 0

(104)

если (LZch[NR]=1)  то  действия (106) – (129),  иначе  действия (130) – (174)

(105)

NNc = Nci[NR]

(106)

VDcu[NR] = Votn_rc[NR][NNc] + Votn_kc[NNc]

(107)

fdo = -Ftr * VDcu[NR] / CvS

(108)

dfd[NR] = 0.0

(109)

Qs = Q5[NR][NNc]

(110)

Qp = Q6[NR][NNc]

(111)

VDck = Votn_kc[NNc]

(112)

VDrk = Votn_kr[NR]

(113)

VDrc = Votn_rc[NR][NNc]

(114)

Вызов процедуры  SNR

(115)

Входы: fdo, Qs, Qp, VDck, VDrk, VDrc

Выход: QU

Qd[NR] = QU

(116)

                                                Строб сопровождения по памяти

если (Jsbr[NR] = 0)  то  действие (118)

(117)

если (Qd[NR] £ Qpdop)    то  Jsbr[NR] = 1     

(118)

если (Jsbr[NR] = 1)    то  действия (120) – (129)

(119)

Msbr[NR] = Msbr[NR] + 1

(120)

если (Qd[NR] £ Qpdop)      то    Isbr[NR] = Isbr[NR] + 1

(121)

если (Msbr[NR] = Ksbr)    то  действия (123) – (128)

(122)

если (Isbr[NR] = Ksbr)    то  действия (124) – (125),  иначе  LZch[NR] = 1

(123)

LZch[NR] = 0                   

(124)

Istop[NR] = 0                   

(125)

Isbr[NR] = 0

(126)

Msbr[NR] = 0

(127)

Jsbr[NR] = 0                                                     

(128)

Qdop[NR] = Qd[NR]

(129)

если ( Istop[NR]=0 )   то  действия (131) – (152),   иначе  действия (153) – (174)

(130)

VDcu[NR]  = VDo[NR]                                    

(131)

Qmax[NR] = 0.0

(132)

Kd10 = 20 * Kdp[NR] / 2

(133)

qnn3 = 2.0 * Fmx[NR] / Kd10                

(134)

                                                                Перебор всех целей

Цикл по  Itg   от 1  до 16  :   действия (136) – (149)                         

(135)

если (Aim[Itg] ¹ 0) то  действия (137) – (149),  иначе нет действий (137) – (149)

(136)

Qs = Q5[NR][Itg]

(137)

Qp = Q6[NR][Itg]

(138)

VDck = Votn_kc[Itg]

(139)

VDrk = Votn_kr[NR]

(140)

VDrc = Votn_rc[NR][Itg]

(141)

                                                         Сканирование по частоте Доплера

Цикл по j10  от 0  до  Kd10 :  действия (143) – (149)

(142)

dfd[NR] = -Fmx[NR] + qnn3 * j10

(143)

fdo = -Ftr * VDcu[NR] / CvS + dfd[NR]

(144)

Вызов процедуры  SNR

(145)

Входы: fdo, Qs, Qp, VDck, VDrk, VDrc

Выход: QU

если (QU > Qmax[NR]) то  действия (147) – (149)

(146)

Qmax[NR] = QU

(147)

fcu[NR] = fdo

(148)

Nci[NR] = Itg

(149)

NNc = Nci[NR]

(150)

Qdop[NR] = Qmax[NR]

(151)

если (Qmax[NR] > Qpdop) то  Istop[NR] = 1             

(152)

NNc = Nci[NR]

(153)

Qs = Q5[NR][NNc]

(154)

Qp = Q6[NR][NNc]

(155)

VDck = Votn_kc[NNc]

(156)

VDrk = Votn_kr[NR]

(157)

VDrc = Votn_rc[NR][NNc]

(158)

fdo = fcu[NR]

(159)

Вызов процедуры  SNR

(160)

Входы: fdo, Qs, Qp, VDck, VDrk, VDrc

Выход: QU

Qd[NR] = QU

(161)

                                               Строб подтверждения ЗЧ

если (Jvkl[NR] = 0) то  действие (163)

(162)

если (Qd[NR] > Qpdop)  то  Jvkl[NR] = 1                  

(163)

если (Jvkl[NR] = 1) то  действия (165) – (173)

(164)

Mzch[NR] = Mzch[NR] + 1

(165)

если (Qd[NR] > Qpdop) то  IZch[NR] = IZch[NR] + 1

(166)

если (Mzch[NR] = Kzch)   то  действия (168) – (173)

(167)

если (IZch[NR] = Kzch)  то  LZch[NR] = 1 , иначе действия (169) – (170)

(168)

LZch[NR] = 0                   

(169)

Istop[NR] = 0                   

(170)

IZch[NR] = 0

(171)

Mzch[NR] = 0

(172)

Jvkl[NR] = 0

(173)

Qdop[NR] = Qd[NR]

(174)

NNc = Nci[NR]

(175)

ASC[NR] = ASN[NR][NNc]

(176)

Qtf[NR]= Qpr[NR][NNc]

(177)

если (Lftr[NR] = 0)  то  действие (179)

(178)

если (ASC[NR] = 1) то  Lftr[NR] = 1                

(179)

если (Lftr[NR] = 1 ) то  Zch[NR] = LZch[NR] , иначе  Zch[NR] = 0  

(180)

если (Zch[NR] = 1)  то  Nc[NR] = Nci[NR] , иначе  Nc[NR] = 0       

(181)

zimis[NR] = Imis[NR]

(182)