{
  "schema": "tvv320-final-editorial-edition-v1",
  "date": "2026-10-27",
  "editorial_ready": true,
  "release_ready": false,
  "new_field_solutions": 0,
  "title": "Итоговая учебная редакция с разделами в разработке",
  "under_development": [
    25,
    26,
    27,
    29,
    33,
    36
  ],
  "conventions": [
    [
      "Машина и базы",
      "ТВВ-320-2; 300 МВт, 353 МВ·А, 20 кВ, 50 Гц, p=1; 3000 об/мин. Число 320 не задаёт Pном."
    ],
    [
      "Напряжение и ток",
      "ULL и I — линейное напряжение и фазный ток RMS основной симметричной составляющей; Uф=ULL/√3. id,iq — амплитудные компоненты, If — постоянный ток возбуждения."
    ],
    [
      "Парковское преобразование",
      "Множитель 2/3, строка q содержит −sin; q на +90° от d. При нулевой последовательности pabc=(3/2)(udid+uqiq)+3u0i0."
    ],
    [
      "Направления",
      "Токи положительны внутрь машины, Pg и Qg — отдаваемые мощности. θe=pθm, положительный θm и момент — против часовой стрелки. δ=atan2(ud,uq) отсчитывается от q к d по часовой стрелке."
    ],
    [
      "Потокосцепление",
      "λ фазы — среднее двух равных параллельных ветвей; в каждой ветви I/2. Интеграл dV и mo_getcircuitproperties уже учитывают активную длину; повторный множитель длины не нужен."
    ],
    [
      "ЭДС и напряжение",
      "e=−dλ/dt — ЭДС индукции; u=Ri+dλ/dt — пассивное клеммное уравнение. В Eh присутствует множитель порядка h. Для несинусоидального линейного сигнала используют разность фаз, а не общий множитель √3."
    ],
    [
      "Энергия карты",
      "M=diag(3/2,3/2,1), ∇W′=Mλ, ML симметрична. Это весовая взаимность, а не требование симметрии невзвешенной матрицы L с цепью возбуждения."
    ],
    [
      "Границы модели",
      "Rs=0,001335 Ом, Rf=0,1145 Ом при 15 °C; без подтверждённой лобовой индуктивности. Нет вихретоковых контуров, гистерезиса, нагрева и механической динамики турбоагрегата. B(H) и часть размеров — документированные условные входы."
    ]
  ],
  "lessons": [
    {
      "number": 1,
      "id": "tg-provenance",
      "title": "Паспорт ТВВ-320-2: какие числа являются исходными",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Паспорт документированных входов учебной модели. Наличие значения в исследовательском файле не означает заводское подтверждение; открытые вопросы происхождения сохранены.",
      "limitations": [
        "Полный паспорт не завершён: см. восемь вопросов readiness.json."
      ],
      "formula_count": 6,
      "downloads": [
        "downloads/tvv320/v1/run_basics.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/numerics.py",
        "downloads/tvv320/v1/readiness.json",
        "downloads/tvv320/v1/README.md"
      ],
      "source_chains": []
    },
    {
      "number": 2,
      "id": "tg-planar-limits",
      "title": "Активная длина и смысл поперечной модели",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Сравнение терминальных напряжений требует подтверждённой поправки лобового рассеяния."
      ],
      "formula_count": 5,
      "downloads": [
        "downloads/tvv320/v1/run_basics.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/numerics.py",
        "downloads/tvv320/v1/readiness.json",
        "downloads/tvv320/v1/README.md"
      ],
      "source_chains": []
    },
    {
      "number": 3,
      "id": "tg-conventions",
      "title": "Направления и нормировка abc–dq",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Равное деление токов ветвей — ограничение текущей модели; при несимметрии требуется проверка реальной схемы и циркулирующих токов."
      ],
      "formula_count": 5,
      "downloads": [
        "downloads/tvv320/v1/run_basics.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/numerics.py",
        "downloads/tvv320/v1/readiness.json",
        "downloads/tvv320/v1/README.md"
      ],
      "source_chains": [
        "park-energy"
      ]
    },
    {
      "number": 4,
      "id": "tg-field-energy",
      "title": "Магнитостатическое поле, энергия и коэнергия",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Энергия и потокосцепления ненулевых состояний проверены в занятии 15, статические силы и момент — в занятии 28. Отдельный материальный опыт дан в занятии 9. Проверка момента производной коэнергии по углу здесь не заявляется; происхождение входов остаётся ограничением учебной модели."
      ],
      "formula_count": 6,
      "downloads": [
        "downloads/tvv320/v1/run_basics.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/numerics.py",
        "downloads/tvv320/v1/readiness.json",
        "downloads/tvv320/v1/README.md"
      ],
      "source_chains": [
        "field-equation",
        "material-energy"
      ]
    },
    {
      "number": 5,
      "id": "tg-envelope",
      "title": "5. Габариты: координаты и четыре окружности",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Этот этап проверяет габариты и программную геометрию. Ненулевые расчёты собранной модели и их ограничения приведены в занятиях 11–15 и 28."
      ],
      "formula_count": 7,
      "downloads": [
        "downloads/tvv320/v1/run_construction_steps.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/build.py",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/examples/checked-02/construction/05-Габариты.fem",
        "downloads/tvv320/v1/examples/checked-02/construction/05-Габариты.ans"
      ],
      "source_chains": [
        "geometry"
      ]
    },
    {
      "number": 6,
      "id": "tg-stator",
      "title": "6. Паз статора: координатный профиль и открытое устье",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Детали выточки и размещение эквивалентных сторон ещё требуют документальной сверки; шаблон подтверждает построение, а не заводское исполнение."
      ],
      "formula_count": 8,
      "downloads": [
        "downloads/tvv320/v1/run_construction_steps.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/build.py",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/examples/checked-02/construction/06-Паз статора.fem",
        "downloads/tvv320/v1/examples/checked-02/construction/06-Паз статора-edges.csv"
      ],
      "source_chains": [
        "geometry"
      ]
    },
    {
      "number": 7,
      "id": "tg-rotor",
      "title": "7. Ротор: касательные скругления, 52 деления и 36 пазов",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Концы размерной линии 149,5 мм, верхняя выточка, конверт обмотки и клин остаются предметом сверки."
      ],
      "formula_count": 8,
      "downloads": [
        "downloads/tvv320/v1/run_construction_steps.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/build.py",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/examples/checked-02/construction/07-Паз ротора.fem",
        "downloads/tvv320/v1/examples/checked-02/construction/07-Паз ротора-edges.csv"
      ],
      "source_chains": [
        "geometry"
      ]
    },
    {
      "number": 8,
      "id": "tg-windings",
      "title": "8. Обмоточная таблица: стороны, ветви и ампер-витки",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Фазная таблица и её алгебра проверены. Заводские соединения ветвей и циркуляционные токи ещё не подтверждены."
      ],
      "formula_count": 6,
      "downloads": [
        "downloads/tvv320/v1/run_construction_steps.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/build.py",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/examples/checked-02/construction/08-Стороны обмоток.csv",
        "downloads/tvv320/v1/examples/checked-02/construction/results.json"
      ],
      "source_chains": [
        "flux"
      ]
    },
    {
      "number": 9,
      "id": "tg-materials",
      "title": "9. Материалы: две B(H) статора и проверяемое продолжение",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Материальные опыты и чувствительность проверены. Участок B(H) ниже примерно 0,6 Тл и продолжение за последней точкой остаются гипотезами; это не аттестация стали.",
      "limitations": [
        "Выполнен проверяемый программный опыт, а не аттестация материалов машины. Измерения слабого поля, ориентация листов и происхождение kFe остаются открыты."
      ],
      "formula_count": 9,
      "downloads": [
        "downloads/tvv320/v1/run_materials.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/stator-cross-bh.json",
        "downloads/tvv320/v1/examples/checked-02/materials/results.csv",
        "downloads/tvv320/v1/run_bh_check.py",
        "downloads/tvv320/v1/material_coupon.py",
        "downloads/tvv320/v1/material_variants.py",
        "downloads/tvv320/v1/run_low_field_check.py",
        "downloads/tvv320/v1/examples/checked-materials-forces/verification.json"
      ],
      "source_chains": [
        "field-equation",
        "material-energy"
      ]
    },
    {
      "number": 10,
      "id": "tg-assembly",
      "title": "10. Сборка полного сечения и проверка сохранённого FEM",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Сохранение, повторное открытие и нулевая топология проверены. Четыре ненулевых состояния рассматриваются в занятии 11, численная сходимость — в занятиях 12–14, отдельная проверка статических сил всех четырёх состояний — в занятии 28."
      ],
      "formula_count": 4,
      "downloads": [
        "downloads/tvv320/v1/run_geometry.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/build.py",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/readiness.json"
      ],
      "source_chains": [
        "geometry"
      ]
    },
    {
      "number": 11,
      "id": "tg-four-states",
      "title": "11. Четыре задания токов: от d–q к ампер-виткам",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Учебная модель с документированными входами. Заводская и экспериментальная точность не заявляются.",
        "Первичная серия содержит сеточную проверку состояния 2; позднее выполнена отдельная проверка статических сил всех четырёх состояний на трёх сетках (занятие 28). Задания токов не являются автоматически паспортными режимами."
      ],
      "formula_count": 4,
      "downloads": [
        "downloads/tvv320/v1/run_fields.py",
        "downloads/tvv320/v1/field_results.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/build.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/stator-cross-bh.json",
        "downloads/tvv320/v1/field-plan.json",
        "downloads/tvv320/v1/model-scope.json",
        "downloads/tvv320/v1/current-mapping.json",
        "downloads/tvv320/v1/run_field_analysis.py",
        "downloads/tvv320/v1/field_analysis.py",
        "downloads/tvv320/v1/material_variants.py",
        "downloads/tvv320/v1/examples/checked-03/field-integrals.csv",
        "downloads/tvv320/v1/examples/checked-03/field-verification.json"
      ],
      "source_chains": []
    },
    {
      "number": 12,
      "id": "tg-mesh",
      "title": "12. Три сетки: что именно считается сошедшимся",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Учебная модель с документированными входами. Заводская и экспериментальная точность не заявляются.",
        "Эта серия проверяет интегралы состояния 2. Расширенная проверка сил около нуля приведена в занятии 28; локальные максимумы не аттестованы. Каждый другой рабочий режим требует собственной проверки."
      ],
      "formula_count": 2,
      "downloads": [
        "downloads/tvv320/v1/run_fields.py",
        "downloads/tvv320/v1/field_results.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/build.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/stator-cross-bh.json",
        "downloads/tvv320/v1/field-plan.json",
        "downloads/tvv320/v1/model-scope.json",
        "downloads/tvv320/v1/current-mapping.json",
        "downloads/tvv320/v1/run_field_analysis.py",
        "downloads/tvv320/v1/field_analysis.py",
        "downloads/tvv320/v1/material_variants.py",
        "downloads/tvv320/v1/examples/checked-03/field-integrals.csv",
        "downloads/tvv320/v1/examples/checked-03/field-verification.json"
      ],
      "source_chains": []
    },
    {
      "number": 13,
      "id": "tg-boundary",
      "title": "13. Внешняя граница и геометрическая дискретизация",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Учебная модель с документированными входами. Заводская и экспериментальная точность не заявляются.",
        "Проверка относится к интегралам состояния 2; локальные поля на кромках и все силовые режимы требуют отдельного контроля."
      ],
      "formula_count": 3,
      "downloads": [
        "downloads/tvv320/v1/run_fields.py",
        "downloads/tvv320/v1/field_results.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/build.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/stator-cross-bh.json",
        "downloads/tvv320/v1/field-plan.json",
        "downloads/tvv320/v1/model-scope.json",
        "downloads/tvv320/v1/current-mapping.json",
        "downloads/tvv320/v1/run_field_analysis.py",
        "downloads/tvv320/v1/field_analysis.py",
        "downloads/tvv320/v1/material_variants.py",
        "downloads/tvv320/v1/examples/checked-03/field-integrals.csv",
        "downloads/tvv320/v1/examples/checked-03/field-verification.json",
        "downloads/tvv320/v1/examples/checked-03/field-plan-arc-1.json",
        "downloads/tvv320/v1/examples/checked-03/field-plan-arc-05.json"
      ],
      "source_chains": []
    },
    {
      "number": 14,
      "id": "tg-angular-convergence",
      "title": "14. Полный оборот и сходимость углового шага",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Проверена основная гармоника выбранной серии. Малый шаг по углу не доказывает автоматически сходимость всех высших гармоник и силовых пульсаций.",
      "limitations": [
        "Учебная модель с документированными входами. Заводская и экспериментальная точность не заявляются.",
        "Угловая сходимость силовых пульсаций ещё не доказана; совпадение начала и конца периода её не заменяет."
      ],
      "formula_count": 3,
      "downloads": [
        "downloads/tvv320/v1/run_fields.py",
        "downloads/tvv320/v1/field_results.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/build.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/stator-cross-bh.json",
        "downloads/tvv320/v1/field-plan.json",
        "downloads/tvv320/v1/model-scope.json",
        "downloads/tvv320/v1/current-mapping.json",
        "downloads/tvv320/v1/run_field_analysis.py",
        "downloads/tvv320/v1/field_analysis.py",
        "downloads/tvv320/v1/material_variants.py",
        "downloads/tvv320/v1/examples/checked-03/field-integrals.csv",
        "downloads/tvv320/v1/examples/checked-03/field-verification.json",
        "downloads/tvv320/v1/examples/checked-03/field-plan-closure.json"
      ],
      "source_chains": [
        "harmonic-emf",
        "multiposition"
      ]
    },
    {
      "number": 15,
      "id": "tg-flux",
      "title": "15. Потокосцепления: цепь и интеграл по проводникам",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Учебная модель с документированными входами. Заводская и экспериментальная точность не заявляются.",
        "Схема равных токов ветвей не моделирует их циркулирующие токи. Сильнополевое продолжение B(H) остаётся допущением."
      ],
      "formula_count": 5,
      "downloads": [
        "downloads/tvv320/v1/run_fields.py",
        "downloads/tvv320/v1/field_results.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/build.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/stator-cross-bh.json",
        "downloads/tvv320/v1/field-plan.json",
        "downloads/tvv320/v1/model-scope.json",
        "downloads/tvv320/v1/current-mapping.json",
        "downloads/tvv320/v1/run_field_analysis.py",
        "downloads/tvv320/v1/field_analysis.py",
        "downloads/tvv320/v1/material_variants.py",
        "downloads/tvv320/v1/examples/checked-03/field-integrals.csv",
        "downloads/tvv320/v1/examples/checked-03/field-verification.json"
      ],
      "source_chains": [
        "flux"
      ]
    },
    {
      "number": 16,
      "id": "tg-harmonics",
      "title": "16. Гармоники потокосцепления и предел разрешения",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Спектральные формулы и выбранная серия проверены. Для каждой заявляемой высшей гармоники требуется собственная проверка углового разрешения.",
      "limitations": [
        "Учебная модель с документированными входами. Заводская и экспериментальная точность не заявляются.",
        "Сходимость полного спектра и THD требует более мелкой угловой сетки."
      ],
      "formula_count": 3,
      "downloads": [
        "downloads/tvv320/v1/run_fields.py",
        "downloads/tvv320/v1/field_results.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/build.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/stator-cross-bh.json",
        "downloads/tvv320/v1/field-plan.json",
        "downloads/tvv320/v1/model-scope.json",
        "downloads/tvv320/v1/current-mapping.json",
        "downloads/tvv320/v1/run_field_analysis.py",
        "downloads/tvv320/v1/field_analysis.py",
        "downloads/tvv320/v1/material_variants.py",
        "downloads/tvv320/v1/examples/checked-03/field-integrals.csv",
        "downloads/tvv320/v1/examples/checked-03/field-verification.json"
      ],
      "source_chains": [
        "harmonic-emf"
      ]
    },
    {
      "number": 17,
      "id": "tg-emf",
      "title": "17. От потокосцепления к ЭДС и напряжению",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Учебная модель с документированными входами. Заводская и экспериментальная точность не заявляются.",
        "Нагруженный режим, лобовое рассеяние и паспортное напряжение здесь не рассчитаны."
      ],
      "formula_count": 5,
      "downloads": [
        "downloads/tvv320/v1/run_fields.py",
        "downloads/tvv320/v1/field_results.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/build.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/stator-cross-bh.json",
        "downloads/tvv320/v1/field-plan.json",
        "downloads/tvv320/v1/model-scope.json",
        "downloads/tvv320/v1/current-mapping.json",
        "downloads/tvv320/v1/run_field_analysis.py",
        "downloads/tvv320/v1/field_analysis.py",
        "downloads/tvv320/v1/material_variants.py",
        "downloads/tvv320/v1/examples/checked-03/field-integrals.csv",
        "downloads/tvv320/v1/examples/checked-03/field-verification.json"
      ],
      "source_chains": [
        "harmonic-emf",
        "phasor-norm"
      ]
    },
    {
      "number": 18,
      "id": "tg-loaded",
      "title": "18. Прямой и обратный расчёт нагрузки",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Учебная модель с документированными входами; заводская точность не заявляется.",
        "Полный выпуск требует независимого аудита всех точек, файлов и границ применимости."
      ],
      "formula_count": 12,
      "downloads": [
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/characteristic-plan.json",
        "downloads/tvv320/v1/model-scope.json",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/numerics.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/series_session.py",
        "downloads/tvv320/v1/build_series.py",
        "downloads/tvv320/v1/run_characteristics.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/regimes.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/examples/checked-04/nominal/curve.csv",
        "downloads/tvv320/v1/examples/checked-04/nominal/reproduce.py",
        "downloads/tvv320/v1/examples/checked-04/nominal/manifest.json"
      ],
      "source_chains": [
        "phasor-norm",
        "steady-power"
      ]
    },
    {
      "number": 19,
      "id": "tg-dq",
      "title": "19. Преобразование abc–dq и дифференциальные параметры",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Условная учебная модель активного сечения; сопротивления при 15 °C; заводская точность не заявляется.",
        "Карта охватывает только заявленную область малой нагрузки; номинальные токи в неё не входят."
      ],
      "formula_count": 6,
      "downloads": [
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/numerics.py",
        "downloads/tvv320/v1/energy_map.py",
        "downloads/tvv320/v1/map_processing.py",
        "downloads/tvv320/v1/flux_dynamics.py",
        "downloads/tvv320/v1/run_magnetic_map.py",
        "downloads/tvv320/v1/run_map_processing.py",
        "downloads/tvv320/v1/run_dynamics.py",
        "downloads/tvv320/v1/dynamic-plan.json",
        "downloads/tvv320/v1/field_session.py",
        "downloads/tvv320/v1/build.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/regimes.py",
        "downloads/tvv320/v1/magnetic-map-plan.json",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/model-scope.json"
      ],
      "source_chains": [
        "park-energy"
      ]
    },
    {
      "number": 20,
      "id": "tg-occ",
      "title": "20. Характеристика холостого хода",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Учебная модель с документированными входами; заводская точность не заявляется.",
        "Полный выпуск требует независимого аудита всех точек, файлов и границ применимости."
      ],
      "formula_count": 7,
      "downloads": [
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/characteristic-plan.json",
        "downloads/tvv320/v1/model-scope.json",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/numerics.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/series_session.py",
        "downloads/tvv320/v1/build_series.py",
        "downloads/tvv320/v1/run_characteristics.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/regimes.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/examples/checked-04/occ/curve.csv",
        "downloads/tvv320/v1/examples/checked-04/occ/reproduce.py",
        "downloads/tvv320/v1/examples/checked-04/occ/manifest.json"
      ],
      "source_chains": [
        "steady-power"
      ]
    },
    {
      "number": 21,
      "id": "tg-scc",
      "title": "21. Установившееся симметричное короткое замыкание",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Учебная модель с документированными входами; заводская точность не заявляется.",
        "Полный выпуск требует независимого аудита всех точек, файлов и границ применимости."
      ],
      "formula_count": 11,
      "downloads": [
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/characteristic-plan.json",
        "downloads/tvv320/v1/model-scope.json",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/numerics.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/series_session.py",
        "downloads/tvv320/v1/build_series.py",
        "downloads/tvv320/v1/run_characteristics.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/regimes.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/examples/checked-04/scc/curve.csv",
        "downloads/tvv320/v1/examples/checked-04/scc/reproduce.py",
        "downloads/tvv320/v1/examples/checked-04/scc/manifest.json"
      ],
      "source_chains": [
        "steady-power"
      ]
    },
    {
      "number": 22,
      "id": "tg-load-curves",
      "title": "22. Внешняя характеристика при постоянном возбуждении",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Учебная модель с документированными входами; заводская точность не заявляется.",
        "Полный выпуск требует независимого аудита всех точек, файлов и границ применимости."
      ],
      "formula_count": 10,
      "downloads": [
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/characteristic-plan-v3.json",
        "downloads/tvv320/v1/model-scope.json",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/run_characteristics_v3.py",
        "downloads/tvv320/v1/numerics.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/series_session.py",
        "downloads/tvv320/v1/build_series.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/regimes.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/examples/checked-04/external/curve.csv",
        "downloads/tvv320/v1/examples/checked-04/external/reproduce.py",
        "downloads/tvv320/v1/examples/checked-04/external/manifest.json"
      ],
      "source_chains": [
        "steady-power"
      ]
    },
    {
      "number": 23,
      "id": "tg-regulation",
      "title": "23. Регулировочная характеристика",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Учебная модель с документированными входами; заводская точность не заявляется.",
        "Полный выпуск требует независимого аудита всех точек, файлов и границ применимости."
      ],
      "formula_count": 10,
      "downloads": [
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/characteristic-plan-v3.json",
        "downloads/tvv320/v1/model-scope.json",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/run_characteristics_v3.py",
        "downloads/tvv320/v1/numerics.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/series_session.py",
        "downloads/tvv320/v1/build_series.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/regimes.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/examples/checked-04/regulation/curve.csv",
        "downloads/tvv320/v1/examples/checked-04/regulation/reproduce.py",
        "downloads/tvv320/v1/examples/checked-04/regulation/manifest.json"
      ],
      "source_chains": [
        "steady-power"
      ]
    },
    {
      "number": 24,
      "id": "tg-power-angle",
      "title": "24. Угловая характеристика при заданной сети",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Учебная модель с документированными входами; заводская точность не заявляется.",
        "Полный выпуск требует независимого аудита всех точек, файлов и границ применимости."
      ],
      "formula_count": 11,
      "downloads": [
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/characteristic-plan-v3.json",
        "downloads/tvv320/v1/model-scope.json",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/run_characteristics_v3.py",
        "downloads/tvv320/v1/numerics.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/series_session.py",
        "downloads/tvv320/v1/build_series.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/regimes.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/examples/checked-04/angle/curve.csv",
        "downloads/tvv320/v1/examples/checked-04/angle/reproduce.py",
        "downloads/tvv320/v1/examples/checked-04/angle/manifest.json"
      ],
      "source_chains": [
        "steady-power"
      ]
    },
    {
      "number": 25,
      "id": "tg-u-curves",
      "title": "25. U-образные характеристики: постановка, поиск и диагностика отказа",
      "status": "in_development",
      "label": "В разработке",
      "notice": "U-образная характеристика — в разработке. Подготовлены методика, нижняя электрическая граница тока и разбор неуспешного поиска. Принятой полевой U-кривой нет; соединять промежуточные итерации запрещено.",
      "limitations": [
        "Расчётная проверка U-кривой не закрыта. Пример этого занятия — проверяемая диагностика отказа, не готовая характеристика."
      ],
      "formula_count": 6,
      "downloads": [
        "downloads/tvv320/v1/run_editorial_checks.py",
        "downloads/tvv320/v1/editorial_checks.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/release-gates.json",
        "downloads/tvv320/v1/formula-source-audit.json",
        "downloads/tvv320/v1/examples/editorial-review/input-manifest.json",
        "downloads/tvv320/v1/examples/editorial-review/u-search-evaluations.json",
        "downloads/tvv320/v1/examples/editorial-review/u-search-receipt.json",
        "downloads/tvv320/v1/examples/editorial-review/verified/results.json",
        "downloads/tvv320/v1/examples/editorial-review/verified/trajectory-check-requests.json",
        "downloads/tvv320/v1/examples/editorial-review/verified/receipt.json"
      ],
      "source_chains": [
        "phasor-norm",
        "u-curve",
        "steady-power"
      ]
    },
    {
      "number": 26,
      "id": "tg-sequences",
      "title": "26. Несимметричные токи и последовательности",
      "status": "in_development",
      "label": "В разработке",
      "notice": "Расчёт несимметрии — в разработке. Полные угловые серии сохранены, но сходимость пульсаций и пространственная сходимость вариантов ещё не подтверждены. Эти результаты предварительные.",
      "limitations": [
        "Учебная модель; нет заводской аттестации.",
        "Вычислены все 48 положений. Критерий сходимости пульсаций не пройден; пространственная сходимость вариантов также не подтверждена. Раздел публикуется как материал в разработке; пульсации имеют предварительный статус."
      ],
      "formula_count": 3,
      "downloads": [
        "downloads/tvv320/v1/run_studies.py",
        "downloads/tvv320/v1/study_physics.py",
        "downloads/tvv320/v1/build_study.py",
        "downloads/tvv320/v1/build_series.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/study-plan.json",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/model-scope.json",
        "downloads/tvv320/v1/examples/checked-studies/verification.json"
      ],
      "source_chains": [
        "multiposition"
      ]
    },
    {
      "number": 27,
      "id": "tg-multiposition",
      "title": "27. Поле в системах статора и ротора",
      "status": "in_development",
      "label": "В разработке",
      "notice": "Сопоставление систем отсчёта — в разработке в части численной приёмки полных серий. Преобразования определены; общие результаты наследуют ограничения занятия 26. Нагрев ротора не рассчитан.",
      "limitations": [
        "Учебная модель; нет заводской аттестации.",
        "Вычислены все 48 положений. Критерий сходимости пульсаций не пройден; пространственная сходимость вариантов также не подтверждена. Раздел публикуется как материал в разработке; пульсации имеют предварительный статус."
      ],
      "formula_count": 3,
      "downloads": [
        "downloads/tvv320/v1/run_studies.py",
        "downloads/tvv320/v1/study_physics.py",
        "downloads/tvv320/v1/build_study.py",
        "downloads/tvv320/v1/build_series.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/study-plan.json",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/model-scope.json",
        "downloads/tvv320/v1/examples/checked-studies/verification.json"
      ],
      "source_chains": [
        "multiposition"
      ]
    },
    {
      "number": 28,
      "id": "tg-forces",
      "title": "28. Силы, момент и независимое интегрирование",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Статические силы четырёх состояний проверены на трёх сетках и независимым весовым интегралом. Эти проверки не закрывают сходимость пульсаций серий занятий 26–29.",
      "limitations": [
        "Четыре снимка проверены по сетке и независимому интегралу. Проверка угловых пульсаций относится к отдельным полным сериям.",
        "Заводская и экспериментальная точность не заявляются."
      ],
      "formula_count": 10,
      "downloads": [
        "downloads/tvv320/v1/exact_stress.py",
        "downloads/tvv320/v1/run_shell_check.py",
        "downloads/tvv320/v1/run_stress_check.py",
        "downloads/tvv320/v1/run_lorentz_check.py",
        "downloads/tvv320/v1/study_physics.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/examples/checked-materials-forces/verification.json"
      ],
      "source_chains": [
        "force"
      ]
    },
    {
      "number": 29,
      "id": "tg-eccentricity",
      "title": "29. Статический эксцентриситет",
      "status": "in_development",
      "label": "В разработке",
      "notice": "Эксцентриситет — в разработке. Серия из 48 положений рассчитана; критерии пульсаций не пройдены, трёхсеточная проверка смещённого варианта ещё требуется. Перенос момента к оси ротора объяснён отдельно.",
      "limitations": [
        "Учебная модель; нет заводской аттестации.",
        "Вычислены все 48 положений. Критерий сходимости пульсаций не пройден; пространственная сходимость вариантов также не подтверждена. Раздел публикуется как материал в разработке; пульсации имеют предварительный статус."
      ],
      "formula_count": 3,
      "downloads": [
        "downloads/tvv320/v1/run_studies.py",
        "downloads/tvv320/v1/study_physics.py",
        "downloads/tvv320/v1/build_study.py",
        "downloads/tvv320/v1/build_series.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/study-plan.json",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/model-scope.json",
        "downloads/tvv320/v1/examples/checked-studies/verification.json"
      ],
      "source_chains": [
        "force"
      ]
    },
    {
      "number": 30,
      "id": "tg-flux-map",
      "title": "30. Нелинейная магнитная карта",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Карта проверена в ограниченной области токов, включая пять независимых полевых точек. Экстраполяция запрещена; номинальный режим машины в область этой карты не входит.",
      "limitations": [
        "Условная учебная модель активного сечения; сопротивления при 15 °C; заводская точность не заявляется.",
        "Прямые независимые проверки выполняются только в указанной области. При расширении области нужны новые полевые точки."
      ],
      "formula_count": 5,
      "downloads": [
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/numerics.py",
        "downloads/tvv320/v1/energy_map.py",
        "downloads/tvv320/v1/map_processing.py",
        "downloads/tvv320/v1/flux_dynamics.py",
        "downloads/tvv320/v1/run_magnetic_map.py",
        "downloads/tvv320/v1/run_map_processing.py",
        "downloads/tvv320/v1/run_dynamics.py",
        "downloads/tvv320/v1/dynamic-plan.json",
        "downloads/tvv320/v1/field_session.py",
        "downloads/tvv320/v1/build.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/regimes.py",
        "downloads/tvv320/v1/magnetic-map-plan.json",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/model-scope.json"
      ],
      "source_chains": [
        "park-energy"
      ]
    },
    {
      "number": 31,
      "id": "tg-swing",
      "title": "31. Электрические уравнения и энергетический баланс",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Уравнения выведены для заданной скорости 3000 об/мин. Механическое движение турбоагрегата, вихретоковые контуры и сверхпереходные процессы не моделируются.",
      "limitations": [
        "Условная учебная модель активного сечения; сопротивления при 15 °C; заводская точность не заявляется.",
        "Здесь утверждается корректность постановки; переходные численные результаты и их проверки рассматриваются в следующих занятиях."
      ],
      "formula_count": 7,
      "downloads": [
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/numerics.py",
        "downloads/tvv320/v1/energy_map.py",
        "downloads/tvv320/v1/map_processing.py",
        "downloads/tvv320/v1/flux_dynamics.py",
        "downloads/tvv320/v1/run_magnetic_map.py",
        "downloads/tvv320/v1/run_map_processing.py",
        "downloads/tvv320/v1/run_dynamics.py",
        "downloads/tvv320/v1/dynamic-plan.json",
        "downloads/tvv320/v1/field_session.py",
        "downloads/tvv320/v1/build.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/regimes.py",
        "downloads/tvv320/v1/magnetic-map-plan.json",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/model-scope.json"
      ],
      "source_chains": [
        "park-energy"
      ]
    },
    {
      "number": 32,
      "id": "tg-integration",
      "title": "32. Интегрирование в потокосцеплениях",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Два опыта рассчитаны в пределах карты; проверены половинный шаг и баланс энергии. Полная валидация переходных процессов требует ещё полевых точек занятия 33.",
      "limitations": [
        "Условная учебная модель активного сечения; сопротивления при 15 °C; заводская точность не заявляется.",
        "Полевые проверки состояний вдоль траектории обязательны в занятии 33."
      ],
      "formula_count": 3,
      "downloads": [
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/numerics.py",
        "downloads/tvv320/v1/energy_map.py",
        "downloads/tvv320/v1/map_processing.py",
        "downloads/tvv320/v1/flux_dynamics.py",
        "downloads/tvv320/v1/run_magnetic_map.py",
        "downloads/tvv320/v1/run_map_processing.py",
        "downloads/tvv320/v1/run_dynamics.py",
        "downloads/tvv320/v1/dynamic-plan.json",
        "downloads/tvv320/v1/field_session.py",
        "downloads/tvv320/v1/build.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/regimes.py",
        "downloads/tvv320/v1/magnetic-map-plan.json",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/model-scope.json"
      ],
      "source_chains": [
        "park-energy"
      ]
    },
    {
      "number": 33,
      "id": "tg-dynamic-validation",
      "title": "33. Независимая проверка переходных процессов",
      "status": "in_development",
      "label": "В разработке",
      "notice": "Независимая полевая проверка динамики — в разработке. Подтверждены половинный шаг и энергетический баланс сохранённых траекторий. План из 14 контрольных точек подготовлен, но эти точки ещё не рассчитаны в FEMM.",
      "limitations": [
        "Половинный шаг и баланс подтверждены сохранёнными данными. Независимый полевой пересчёт вдоль траекторий ещё не выполнен."
      ],
      "formula_count": 6,
      "downloads": [
        "downloads/tvv320/v1/run_editorial_checks.py",
        "downloads/tvv320/v1/editorial_checks.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/release-gates.json",
        "downloads/tvv320/v1/formula-source-audit.json",
        "downloads/tvv320/v1/examples/editorial-review/input-manifest.json",
        "downloads/tvv320/v1/examples/editorial-review/u-search-evaluations.json",
        "downloads/tvv320/v1/examples/editorial-review/u-search-receipt.json",
        "downloads/tvv320/v1/examples/editorial-review/verified/results.json",
        "downloads/tvv320/v1/examples/editorial-review/verified/trajectory-check-requests.json",
        "downloads/tvv320/v1/examples/editorial-review/verified/receipt.json"
      ],
      "source_chains": [
        "park-energy"
      ]
    },
    {
      "number": 34,
      "id": "tg-variants",
      "title": "34. Проектное исследование и чувствительность",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.",
      "limitations": [
        "Исследовательские варианты учебной модели, без утверждения об обнаруженных заводских исполнениях.",
        "Полная оптимизация конструкции и аттестация новых вариантов не заявляются."
      ],
      "formula_count": 3,
      "downloads": [
        "downloads/tvv320/v1/run_fields.py",
        "downloads/tvv320/v1/field_results.py",
        "downloads/tvv320/v1/field_analysis.py",
        "downloads/tvv320/v1/material_variants.py",
        "downloads/tvv320/v1/build.py",
        "downloads/tvv320/v1/geometry.py",
        "downloads/tvv320/v1/physics.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/field-plan.json",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/winding.json",
        "downloads/tvv320/v1/rotor-bh.json",
        "downloads/tvv320/v1/stator-bh.json",
        "downloads/tvv320/v1/stator-cross-bh.json",
        "downloads/tvv320/v1/model-scope.json",
        "downloads/tvv320/v1/current-mapping.json",
        "downloads/tvv320/v1/examples/checked-03/field-verification.json"
      ],
      "source_chains": []
    },
    {
      "number": 35,
      "id": "tg-end-effects",
      "title": "35. Торцевые эффекты и границы поперечной модели",
      "status": "available_with_limits",
      "label": "Учебный материал с ограничениями",
      "notice": "Методический обзор и аналитическая чувствительность к лобовой индуктивности. Физическое значение лобового рассеяния неизвестно, торцевое поле не рассчитано.",
      "limitations": [
        "Исследовательские варианты учебной модели, без утверждения об обнаруженных заводских исполнениях.",
        "Торцевое поле и физическое Lend не рассчитаны. Для этого занятия результат — обоснованная граница метода и вычисленная локальная чувствительность."
      ],
      "formula_count": 5,
      "downloads": [
        "downloads/tvv320/v1/run_end_sensitivity.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/examples/checked-04/nominal/results.json",
        "downloads/tvv320/v1/examples/checked-research/results.json"
      ],
      "source_chains": []
    },
    {
      "number": 36,
      "id": "tg-project",
      "title": "36. Самостоятельное воспроизведение и приёмка расчётного отчёта",
      "status": "in_development",
      "label": "В разработке",
      "notice": "Итоговое независимое воспроизведение — в разработке. Форма отчёта, файлы и критерии доступны. Полный повтор всех обязательных этапов из чистого комплекта и итоговая численная приёмка не выполнены.",
      "limitations": [
        "Учебная редакция охватывает 36 занятий. Полный численный выпуск остаётся заблокирован конкретными проверками из release-gates.json."
      ],
      "formula_count": 2,
      "downloads": [
        "downloads/tvv320/v1/run_editorial_checks.py",
        "downloads/tvv320/v1/editorial_checks.py",
        "downloads/tvv320/v1/run_record.py",
        "downloads/tvv320/v1/machine.json",
        "downloads/tvv320/v1/release-gates.json",
        "downloads/tvv320/v1/formula-source-audit.json",
        "downloads/tvv320/v1/examples/editorial-review/input-manifest.json",
        "downloads/tvv320/v1/examples/editorial-review/u-search-evaluations.json",
        "downloads/tvv320/v1/examples/editorial-review/u-search-receipt.json",
        "downloads/tvv320/v1/examples/editorial-review/verified/results.json",
        "downloads/tvv320/v1/examples/editorial-review/verified/trajectory-check-requests.json",
        "downloads/tvv320/v1/examples/editorial-review/verified/receipt.json"
      ],
      "source_chains": []
    }
  ],
  "source_review": {
    "date": "2026-10-27",
    "status": "available_source_review_completed_with_access_limits",
    "positions": 19,
    "expanded_bibliographic_items": 22,
    "scope": "Завершена сверка доступных материалов для этой редакции. Полная проверка текстов всех 19 позиций не заявляется. Четыре работы объединённой позиции 15 сохранены отдельно.",
    "open": [
      "Визуальная проверка формул PDF 2015/2016, доступных здесь только текстом.",
      "Полные тексты недоступных работ, окончательные связи версий позиций 16/17/19 и неустановленные лицензии.",
      "Неподтверждённые поля метаданных отмечены в соответствующих записях; они не подменяются догадками."
    ],
    "rights": "Оригиналы и чужие иллюстрации не включаются в учебный HTML или ZIP. Публикуются собственные объяснения, программы и результаты с библиографическими ссылками."
  },
  "remaining_calculations": [
    {
      "id": "u-curve",
      "lessons": [
        25
      ],
      "status": "not_verified",
      "criterion": "max(|rU|,|rP|)≤10^-3 at every accepted point; both sides of an interior minimum; local If refinement and angular check ≤1%",
      "evidence": "examples/editorial-review/u-search-receipt.json",
      "next_action": "Find and verify a feasible starting point; continue in If on both sides, refine near Q=0. Do not connect unsuccessful evaluations as a curve."
    },
    {
      "id": "ripple-convergence",
      "lessons": [
        26,
        27,
        28,
        29
      ],
      "status": "failed",
      "criterion": "Mean force/torque and ripple measures ≤2% with predeclared absolute scales; three spatial meshes for the studied variants",
      "evidence": "examples/checked-studies/manifest.json",
      "next_action": "Refine angle and variant mesh. Static four-state force acceptance does not certify eccentric full-cycle ripples."
    },
    {
      "id": "trajectory-field-validation",
      "lessons": [
        33
      ],
      "status": "not_computed",
      "criterion": "At frozen off-grid trajectory currents: each flux error ≤1%, denominator max(|FEMM|,1 Wb turn); angular means 24→48 also ≤1%",
      "evidence": "examples/checked-dynamics/manifest.json",
      "next_action": "Use trajectory-check-requests.json from the saved-data audit. Rebuild full 252-side model independently; preserve all FEM/ANS and hashes."
    },
    {
      "id": "clean-full-reproduction",
      "lessons": [
        36
      ],
      "status": "not_completed",
      "criterion": "Every required numerical stage independently replayed from a clean kit and passes its frozen tolerances",
      "evidence": "calculation-status.json",
      "next_action": "After the above gates, perform a fresh complete replay and reviewer sign-off; unchanged hashes alone do not prove numerical correctness."
    }
  ],
  "rebuild_order": [
    "tvv320_final_edition.py",
    "tvv320_preview.py",
    "tvv320_bundle.py",
    "tvv320_course.py"
  ]
}
