Skip to content

Make the fan-dipole summary and tuning chart per-band - #13

Merged
skip17331 merged 2 commits into
mainfrom
fan-summary-tuning
Jun 3, 2026
Merged

Make the fan-dipole summary and tuning chart per-band#13
skip17331 merged 2 commits into
mainfrom
fan-summary-tuning

Conversation

@skip17331

Copy link
Copy Markdown
Owner

Problem (reported)

For a fan dipole, the summary and build sheet only described the antenna at the single operating frequency:

  • The summary's "Other bands" line ran the harmonic-match scan; the coupled fan legs miss it, so a multiband antenna read as "not a close match (2:1 or better) on other amateur bands."
  • The build sheet's tuning chart was one whole-antenna table (from the summed leg length) — meaningless for a fan, and only "the first frequency."

Fix — per-band for a fan dipole

  • Summary: a fan dipole now gets a per-leg report (fan_dipole_legs_report) that solves at each leg's own design frequency, and the summary lists every band the antenna covers with its SWR — "Bands covered — one dipole leg per band; trim each leg to tune its own band."
  • Build sheet: a per-band tuning table (BandTuningRow) — each leg's length and the trim that shifts its band ~1% — replaces the meaningless overall chart (which is suppressed for a fan). Templates render whichever applies.

Tests

+5: the per-leg report covers every leg band; the summary's "Bands covered" section (no more "not a close match"); the per-band tuning table replacing the overall chart; non-fan antennas keep the overall chart. Suite 521 → 526, green locally.

Honest note (separate follow-up)

The per-leg SWRs surface that the modelled fan legs interact strongly at their default half-wave lengths — with several closely-spaced legs in the 30° fan sharing one feed, some bands read high SWR until trimmed (and trimming alone may not fully fix coupling). That's a fan-dipole geometry-fidelity matter (wider/separated legs, drooping, per-leg trim), distinct from this presentation fix. Happy to take it on next if you'd like — the summary now makes the effect visible, which is the right first step.

🤖 Generated with Claude Code

skip17331 and others added 2 commits June 3, 2026 10:42
A fan dipole is multiband by leg, but the summary and build sheet treated it
as a single-band antenna at the operating frequency.

Summary: the "Other bands" line ran the harmonic-match scan, which the coupled
fan legs miss, so a multiband antenna read as "not a close match on other
bands". A fan dipole now gets a per-leg report instead — fan_dipole_legs_report
solves at each leg's own design frequency, and the summary lists every band the
antenna covers with its SWR ("Bands covered — one dipole leg per band").

Build sheet: the tuning chart was one whole-antenna table from the summed leg
length, meaningless for a fan. A fan dipole now gets a per-band tuning table
(BandTuningRow) — each leg's length and the trim that shifts its band ~1% —
and the overall chart is suppressed. Templates render whichever applies.

Tests cover the per-leg report, the summary's "Bands covered" section, the
per-band tuning table replacing the overall chart, and that non-fan antennas
keep the overall chart. Suite 521 -> 526.

Note: the per-leg SWRs surface that the modelled legs interact strongly at
their default half-wave lengths (some bands read high until trimmed) — a
fan-dipole geometry-fidelity matter, separate from this presentation fix.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The fan geometry used a fixed 30° azimuth fan, so the spacing between adjacent
leg ends was an uncontrolled by-product of angle × leg length — and came out
backwards: the legs closest in frequency (nearly the same length) ended up
closest together, maximising the coupling that detunes them.

Replace it with a controlled end spacing — the distance between adjacent leg
ends, which is what a spreader actually sets. FanDipoleModel gains
end_spacing_m (default 0.3 m); leg_end_offsets_m centres the legs and steps
their ends by that much, and the card builder fans each leg to put its end at
that perpendicular offset (a longer leg takes a shallower angle). The model
rejects a spacing too large for the shortest leg.

A "Leg-end spacing" field on the fan-dipole input drives it (auto-saved and
unit-aware like the other length inputs). Widening it measurably reduces the
inter-leg coupling on most bands; perfect multiband still needs per-leg
trimming (the per-band tuning chart), since a leg can also be a harmonic on
another leg's band.

Tests: the end offsets step by the spacing, the deck's leg ends match, an
over-large spacing is rejected, and the field round-trips through the form.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@skip17331
skip17331 merged commit ad9a86a into main Jun 3, 2026
6 checks passed
@skip17331
skip17331 deleted the fan-summary-tuning branch June 3, 2026 16:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant