%------------------------------------------------------------------------------ % trk_circle.pvs % ACCoRD v.1.0 % % Track circle solutions satisfy the following equations: % sq(s+v*t) = sq(D) [2D] % || v + vi || = || vo || [2D] % abs(s+v*t)`z) = H % % It is shown that track circle solutions are track only solutions % for the ownship. % % The sign value dir determines horizontal direction (Entry/Exit). % The sign value irt determines two possible track circle solutions. %------------------------------------------------------------------------------
s,nvo : VAR Vect3
sp : VAR Sp2_vect3
vo,vi : VAR Nzv2_vect3
dir,irt,
epsh,epsv : VAR Sign
%------------% % ALGORITHMS % %------------%
% vectors_2D.zero indicates no track solution
trk_circle(s,vo,vi,dir,irt): {nvo | nz_vect2?(nvo) =>
trk_only_3D?(vo)(nvo)} = IF vo`z = vi`z THEN zero ELSE LET t = Theta_H(s`z,vo`z-vi`z,-dir) IN IF t > 0 THEN LET nvo2 = trk_only_circle(s,vo,vi,t,dir,irt) IN
nvo2 WITH [ z |-> vo`z ] ELSE
zero ENDIF ENDIF
trk_vertical_irt(s,vo,vi,epsh,epsv,irt): {nvo | nz_vect2?(nvo) =>
trk_only_3D?(vo)(nvo)} = IF vo`z = vi`z THEN zero ELSE LET v = vo-vi,
dir:Sign = IF abs(s`z) >= H THEN epsv*sign(s`z) ELSE Entry ENDIF,
t = Theta_H(s`z,v`z,-dir) IN IF t > 0 AND epsv = sign(s`z + t*v`z) THEN LET nvo2 = trk_only_vertical(s,vo,vi,t,dir,irt) IN IF horizontal_los?(s) OR horizontal_criterion?(s,epsh)(nvo2-vo) THEN
nvo2 WITH [z |-> vo`z] ELSE
zero ENDIF ELSE
zero ENDIF ENDIF
trk_vertical(s,vo,vi,epsh,epsv): {nvo | nz_vect2?(nvo) =>
trk_only_3D?(vo)(nvo)} = LET vo1 = trk_vertical_irt(s,vo,vi,epsh,epsv,1),
vo2 = trk_vertical_irt(s,vo,vi,epsh,epsv,-1) IN IF vo2 = zero THEN vo1 ELSIF vo1 = zero OR
le?(vo)(vo2,vo1) THEN vo2 ELSE vo1 ENDIF
trk_circle_independence: THEOREM
trk_circle?(s,vo,vi,dir)(nvo) IMPLIES NOT conflict_ever?(s,nvo-vi)
trk_circle_complete: THEOREM
vo`z /= vi`z AND
trk_only_3D?(vo)(nvo) AND
circle_solution?(s,nvo-vi,Theta_H(s`z,vo`z-vi`z,-dir),dir) AND NOT trk_special_case?(s,vo,vi,Theta_H(s`z,vo`z-vi`z,-dir)) IMPLIES
trk_circle?(s,vo,vi,dir)(nvo)
trk_vertical_eps : LEMMA LET nvo = trk_vertical(s,vo,vi,epsh,epsv) IN
nz_vect2?(nvo) IMPLIES
trk_vertical?(s,vo,vi,epsh,epsv)(nvo)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.