Add dual sensor models and single-stage simulator; fix energy-conservation bug
- physics/sensors.py: optical/Hall (velocity-independent) and inductive (velocity-scaled, sech^2 spatial sensitivity) trigger events for solve_ivp - sim/stage.py: flight-to-trigger -> fire delay -> discharge -> energy accounting, returning StageResult(feasible=False, reason=...) instead of raising when a sensor never fires or discharge never commutates - Found and fixed a real bug caught by the energy-conservation test: the saturation clamp was applied to the mechanical force but not the electrical back-EMF term, silently breaking energy balance by ~15%. Removed the dynamic clamp (documented as a deferred nonlinear-L(x,I) limitation) and kept saturation as a diagnostic-only warning (StageResult.saturation_warning) so numbers stay honest rather than quietly wrong. Balance error is now ~0.02%. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
13
PLAN.md
13
PLAN.md
@@ -18,6 +18,19 @@ ChipDip, Cable.ru и др.).
|
||||
в SQLite. Никаких приукрашенных цифр — если модель показывает низкий КПД или
|
||||
нереализуемость, это тоже результат.
|
||||
|
||||
**Найденная и исправленная ошибка (Этап 3):** насыщение сердечника изначально
|
||||
клэмпилось только в механическом уравнении (F=0.5·I²·dL/dx), но не в
|
||||
электрическом (наведённая ЭДС всё ещё считалась по полной dL/dx) — это
|
||||
незаметно ломало точный энергобаланс на ~15%. Тест на сохранение энергии
|
||||
(этого же честного протокола, который просил пользователь) это поймал.
|
||||
Решение: клэмп насыщения убран из динамики (F=0.5·I²·dL/dx без клэмпа,
|
||||
энергобаланс теперь точен до ~0.02%), а `solenoid_field_estimate_tesla`/
|
||||
`saturation_scale` оставлены как ДИАГНОСТИКА — `StageResult.saturation_warning`
|
||||
честно предупреждает, когда конфигурация физически выходит за пределы
|
||||
насыщения материала снаряда, не подменяя динамику. Полная нелинейная
|
||||
L(x, I)-модель с coenergy-выводом силы — в разделе "ограничения модели"
|
||||
как будущая работа, не как текущая гарантия точности.
|
||||
|
||||
Полный план архитектуры: см. историю обсуждения / `physics`, `sim`, `optim`,
|
||||
`storage`, `report` модули ниже.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user