| project | rusty-wire |
|---|---|
| doc | docs/math.md |
| status | living |
| last_updated | 2026-04-30 |
This document defines the formulas and optimization objectives used in Rusty Wire.
Internal unit policy: all core calculations are performed in meters; feet values are derived only for imperial output display/export.
Rusty Wire uses MHz-domain handbook formulas with velocity-factor scaling.
Base wavelength relation:
with
Velocity-factor convention (important). The metric coefficients below are the
classic imperial handbook rules (468/936/234/1005 ft) expressed in meters. These
rules already include the ~0.95 bare-wire end-effect shortening relative to the
free-space half/quarter/full wavelength — e.g. corpus/.
Practical ham formulas (with
Equivalent imperial constants (used internally in some code paths) are the same relations expressed as 468, 936, 234, and 1005 in feet.
Notes:
- The loop formula intentionally uses
$306.32/f$ m (equivalent to$1005/f$ ft), consistent with common full-wave loop practice. - The "full-wave dipole" value in output is still the doubled half-wave reference for dipole family guidance.
A drooping dipole typically resonates with shorter wire than a flat dipole.
Rusty Wire applies empirical shortening factors:
Leg and span relations:
For a ratio
Given assumed feedpoint impedance
Estimated mismatch efficiency:
Reported efficiency percent:
Mismatch loss in dB:
Rusty Wire currently applies a bounded logarithmic correction for non-1:1 transformer selections:
where nec_calibrated_dipole_r, ~58–87 Ω over
ground, interpolated on height-in-wavelengths from nec2c solves), not a fixed
73 Ω. At the default 1:1 ratio this correction is a no-op, so it does not affect
default resonant lengths.
This is a practical approximation, not a substitute for NEC-based segment/current modeling.
For each selected band, Rusty Wire generates resonance points from the physical
resonant quarter-wave
Each harmonic
-
low-Z (
$h$ odd:$\lambda/4, 3\lambda/4, \dots$ ) — current-fed, ~35–50 Ω, near 50 Ω and easy for a tuner or even a direct feed; -
high-Z (
$h$ even$=$ half-wave multiples$\lambda/2, \lambda, \dots$ ) — voltage-fed, hundreds to thousands of ohms, genuinely hard to match.
The non-resonant optimizer avoids only the high-Z set — the lengths a tuner struggles with — while the desirable low-Z lengths are left available:
The on-screen and exported resonant-points lists show every resonance tagged
low-Z/high-Z, so the recommended length (which may sit near a low-Z point) is
always reconcilable against the listed points. To keep near-edge clearance
honest, the optimizer's avoid-set for each band is padded by one half-wave so the
nearest high-Z point just outside the window is still counted.
For candidate wire length
Global non-resonant objective:
When multiple equal optima exist, the displayed recommendation is the one closest to preferred center length
For each band
Minimax objective (closest shared compromise to all selected bands):
Rusty Wire returns top local minima near the best value so users can choose practical alternatives.
For total wire length
Clearance metric across bands (nearest quarter-wave harmonic clearance):
Objective:
Tie-break prefers proximity to classic one-third feed:
Advise mode combines mismatch and geometry-shift terms:
Higher score ranks earlier.
Current models are intentionally lightweight and fast:
- Partial mitigation implemented: standardized antenna-height presets (7 m, 10 m, 12 m) now apply a first-order skip-distance scaling model.
- Feedpoint resistance is estimated frequency-aware from NEC corpus anchors interpolated on height-in-wavelengths (
nec_calibrated_dipole_r, §4); the reactance ($X$ ) is not modelled and there is no full R/X sweep vs conductor diameter. - No common-mode choke model or ferrite core loss/thermal derating.
- No full current-distribution solver in the optimization loop.
Current height scaling used for skip distance estimates:
Current ground-class scaling:
Current conductor-diameter correction for resonant-length estimation
(metric-only input, default baseline
The template calibration CSV in nec_conductor_reference.csv fits the current slope constant exactly (k = 0.011542) at 1.0 mm, 2.0 mm, and 4.0 mm. The runtime clamp remains intentionally broader than that observed span (0.97 .. 1.03 instead of 0.992 .. 1.008) until real NEC sweep data is committed.
For mission-critical designs, use Rusty Wire results as initial conditions and validate with NEC simulation and on-air/instrument measurements.
For the practical calibration workflow (data format and fitting script), see nec-calibration.md.
The trap-dipole total is a coarse whole-wire budget estimate:
The
When two or more bands are selected, Rusty Wire emits a per-band-pair guidance
section (upper band
-
Inner leg (per side) — the upper-band element inboard of the trap, cut to a
quarter-wave for
$f_u$ : $$ L_{\mathrm{inner}} = \frac{71.58}{f_u},VF \quad(\approx 234.85/f_u\ \mathrm{ft}) $$ -
Total leg (per side) — resonant on the lower band. It is ~4 % shorter than a
plain quarter-wave because the trap's inductance electrically lengthens the
outer section, so less physical wire reaches
$f_l$ resonance: $$ L_{\mathrm{leg}} = \frac{68.58}{f_l},VF \quad(\approx 225/f_l\ \mathrm{ft}),\qquad L_{\mathrm{outer}} = \max(L_{\mathrm{leg}} - L_{\mathrm{inner}},,0) $$ -
Trap — parallel-resonant at
$f_u$ , isolating the outer section on the upper band. From$f = 1/(2\pi\sqrt{LC})$ the required$L\text{–}C$ product is $$ L[\mu\mathrm{H}]\cdot C[\mathrm{pF}] = \frac{10^6}{4\pi^2,f_u^2} = \frac{25{,}330}{f_u^2} $$ and Rusty Wire lists a few practical$(C, L)$ component pairs satisfying it.
This is a first-order single-trap-per-side model; multi-trap and mutual-coupling effects are not solved.
- ARRL Antenna Book (latest editions): practical dipole, loop, EFHW, OCFD, and inverted-V design constants.
- RSGB Antenna Handbook: comparative geometry effects and practical construction corrections.
- Kraus, J. D., and Marhefka, R. J., Antennas for All Applications: canonical reflection/mismatch relations.
- Pozar, D. M., Microwave Engineering: reflection coefficient and mismatch-loss derivations.
- ITU-R recommendations and regional band plans: operating allocations used for band tables.