Problem definition
Canonical benchmark implementation
Canonical RHS excerpt from the registered callable used for this benchmark cell. Expand it to verify the state equations; it is not a standalone runnable fixture.
Show canonical RHS excerpt
def rhs(t, y):
x_m, y_m, Vm, th_m = y[0], y[1], y[2], y[3]
x_t, y_t, Vt, th_t = y[4], y[5], y[6], y[7]
dx = x_t - x_m
dy = y_t - y_m
r = np.sqrt(dx * dx + dy * dy) + _EPS_RANGE
lam = np.arctan2(dy, dx)
vx_m = Vm * np.cos(th_m)
vy_m = Vm * np.sin(th_m)
vx_t = Vt * np.cos(th_t)
vy_t = Vt * np.sin(th_t)
dlam_dt = (dx * (vy_t - vy_m) - dy * (vx_t - vx_m)) / (r * r)
V_c = -(dx * (vx_t - vx_m) + dy * (vy_t - vy_m)) / r
# target normal acceleration (perfect knowledge)
a_t = Vt * omega_t
# project target accel normal to LOS
a_t_normal = a_t * np.cos(th_t - lam + np.pi / 2.0)
# augmented PN: standard PN + (N/2)*a_t_normal
a_m = N * V_c * dlam_dt + (N / 2.0) * a_t_normal
d = np.empty(8)
d[0] = vx_m
d[1] = vy_m
d[2] = 0.0
d[3] = a_m / max(abs(Vm), 1.0)
d[4] = vx_t
d[5] = vy_t
d[6] = 0.0
d[7] = omega_t # target is maneuvering
return d
def rhs_ig_apn_2d(t, y):
"""Default IG-APN-2D instance."""
return _IG_APN_2D_RHS(t, y)- Parameters
- N = 3
- _EPS_RANGE = 1e-06
- omega_t = 0.05
- Initial condition
- y(0) = [0, 0, 100, 0, 3000, 0, 30, 3.14159265359]
- Horizon
- t ∈ [0, 60]
Canonical RHS excerpt captured from the same registered callable used for the published benchmark. Frozen closure values are summarized below; helper imports and solver settings are intentionally omitted.
Cite this page
Replace the access date. Pin the freeze ID and library versions when comparing against a later export. Cite it as what it is — a self-reported vendor benchmark, not an independently verified result. The note field says so; please keep it.
@misc{resonix_evidence_augmented_proportional_navigation_2d_2026,
title = {Resonix Evidence Portal: Augmented proportional navigation (2D)},
author = {{Resonix Labs (Canada) Inc.}},
year = {2026},
howpublished = {\url{https://resonix.tech/evidence/problems/augmented-proportional-navigation-2d}},
note = {Self-reported vendor benchmark; internally generated by Resonix Labs and not independently verified. Accessed YYYY-MM-DD. Freeze 2026-08-13; libsolvsrk 2.3.0; SciPy 1.14.}
}TRL 4–5 · simulation-lab validated · 398 problems · 14 solver arms · clean + 5 noise levels
Freeze: 2026-08-13 · scipy 1.14 · libsolvsrk 2.3.0 · Methodology
Self-reported by Resonix Labs · not independently verified · Verification status