{
  "lesson": {
    "id": "II08.2",
    "title": "Коммутация и численное интегрирование по времени во встроенном Python",
    "summary": "Осваиваем небольшой временной интегратор и обработку коммутации, затем применяем его к проверенной магнитостатической карте вентильно-индукторной машины.",
    "objectives": [
      "Интегрировать электрическое состояние внутри MicroPython с контролем шага и событий переключения.",
      "Проверить интегратор на RL-эталоне при двух шагах времени.",
      "Разрешить углы включения и выключения и выбрать напряжение фазы из схемы преобразователя."
    ],
    "prerequisites": [
      "II08.1"
    ],
    "theory": [
      {
        "heading": "Физическая и вычислительная постановка",
        "paragraphs": [
          "Временной интегратор решает дифференциальные уравнения цепи, а не создаёт новый магнитный решатель FEMM. Метод Эйлера вычисляет наклон в начале шага; метод Хойна предсказывает конечное состояние и усредняет начальный и конечный наклоны. Вывод из интеграла состояния за шаг показывает, почему усреднение улучшает порядок для гладкого участка. На коммутации гладкость теряется, поэтому шаг делят в момент переключения.",
          "Для нелинейной карты удобно интегрировать потокосцепление: \\(\\mathrm d\\Psi\\)/\\(\\mathrm dt\\) = \\(u\\) − \\(Ri\\). Ток получают обратным поиском по монотонной зависимости \\(\\Psi\\)(\\(i\\),\\(\\theta\\)). Такой выбор избегает явного деления на малую \\(L_{\\text{дин}}\\), но всё равно требует корректной интерполяции и ограничения области. Напряжение фазы при включении и выключении задаётся физической схемой преобразователя; оно не всегда равно нулю при выключенном ключе. Диоды, возврат энергии и падения напряжений описывают явно, а идеальную схему обозначают как учебное приближение."
        ],
        "formulas": [
          {
            "latex": "\\Psi_{k+1}^{\\text{пр}}=\\Psi_k+\\Delta t\\,g_k,\\quad \\Psi_{k+1}=\\Psi_k+\\frac{\\Delta t}{2}(g_k+g_{k+1}^{\\text{пр}}),\\quad g=u-Ri",
            "explanation": "Метод Хойна для потокосцепления; индекс пр означает предиктор; событие коммутации должно лежать на границе шага.",
            "number": "42.3",
            "anchor": "eq-ii08-2-1"
          }
        ]
      },
      {
        "heading": "Порядок проверки результата",
        "paragraphs": [
          "Численный пример ниже является аналитическим учебным эталоном. Его значения вычислены по указанным формулам; они не обозначают результат решения новой модели методом конечных элементов. Практикум связывает эталон с полевой задачей: сначала воспроизведите уже проверенный результат части I, затем измените только один исследуемый параметр. Именно такое сравнение позволяет отделить ошибку программы от влияния геометрии, сетки и физического приближения. Сохраните исходную модель, рабочую копию и таблицу с заголовками величин. В подписи каждой величины укажите единицу, положительное направление и способ получения; для гармонических величин дополнительно укажите амплитудную нормировку. Если условие задачи не выполнено, остановите серию и сохраните причину отказа вместе с последним корректным состоянием."
        ],
        "formulas": []
      },
      {
        "heading": "Пояснение программы",
        "paragraphs": [
          "Функция derivative вычисляет скорость изменения тока из уравнения линейной электрической цепи. Переменная prediction содержит предварительное значение тока по методу Эйлера. Повторное вычисление наклона в конце шага и усреднение наклонов дают метод Хойна. Переменная exact содержит точное решение той же цепи. Сравнение позволяет оценить временную погрешность до подключения нелинейной характеристики и коммутации."
        ],
        "formulas": []
      },
      {
        "heading": "Интегрирование потокосцепления и события коммутации",
        "paragraphs": [
          "В качестве электрического состояния выбирается потокосцепление, а ток восстанавливается из монотонной таблицы при текущем угле."
        ],
        "formulas": [],
        "derivation_steps": [
          {
            "text": "На начале шага найдите ток и правую часть уравнения потокосцепления. Прогноз Эйлера даёт предварительное состояние на конец шага."
          },
          {
            "text": "По прогнозу снова восстановите ток и напряжение ключевого состояния. Усреднение начальной и прогнозной правых частей даёт корректированный шаг метода Хойна."
          },
          {
            "text": "Разбейте шаг в момент включения или выключения, чтобы разрыв напряжения не оказался скрыт внутри гладкой формулы. После серии уменьшите шаг вдвое и сравните токовый максимум и средний момент."
          }
        ],
        "symbols": [
          {
            "symbol": "\\Psi",
            "meaning": "Потокосцепление обмотки",
            "unit": "Вб"
          },
          {
            "symbol": "i",
            "meaning": "Мгновенный ток",
            "unit": "А"
          },
          {
            "symbol": "R",
            "meaning": "Активное электрическое сопротивление",
            "unit": "Ом"
          },
          {
            "symbol": "\\Delta t",
            "meaning": "Шаг интегрирования по времени",
            "unit": "с"
          },
          {
            "symbol": "T",
            "meaning": "Электромагнитный момент",
            "unit": "Н·м"
          }
        ],
        "applicability": "Второй порядок метода относится к гладким участкам. Без точной обработки событий и проверки диапазона таблицы он не гарантирует точности коммутационного процесса.",
        "editorial_tag": "textbook-math-2026-10",
        "symbols_number": "42.4"
      }
    ],
    "worked_example": {
      "title": "Вычисленный аналитический эталон",
      "given": "Линейный RL-эталон: \\(U\\) = 24 В; \\(R\\) = 2 Ом; \\(L\\) = 10 мГн; \\(I\\)(0) = 0; \\(\\Delta t\\) = 0,1 мс.",
      "steps": [
        {
          "text": "Начальный наклон 24/0,01 = 2400 А/с; Эйлер даёт 0,24 А.",
          "latex": "I_{\\text{Хойн}}=\\frac{0{,}0001}{2}(2400+2352)=0{,}2376\\ \\text{А}",
          "formula_number": "42.4",
          "anchor": "eq-ii08-2-2"
        },
        {
          "text": "Наклон на предикторе (24 − 2 · 0,24)/0,01 = 2352 А/с."
        },
        {
          "text": "Хойн даёт 0,5 · 0,0001(2400 + 2352) = 0,2376 А. Точное 12(1 − \\(e\\)⁻⁰·⁰²) = 0,237615920 А."
        }
      ],
      "answer": "После первого шага ошибка Хойна около 0,00670 %; ошибка Эйлера около 1,0033 %.",
      "check": "Уменьшение шага вдвое на гладком интервале должно уменьшать глобальную ошибку Хойна приблизительно в четыре раза."
    },
    "practice": {
      "title": "Интегратор и события переключения фазы",
      "parameters": [
        {
          "name": "\\(U\\) источника",
          "value": "24",
          "unit": "В"
        },
        {
          "name": "\\(R\\) фазы",
          "value": "2",
          "unit": "Ом"
        },
        {
          "name": "Шаги времени",
          "value": "0,1; 0,05",
          "unit": "мс"
        },
        {
          "name": "Углы коммутации",
          "value": "заданы",
          "unit": "°"
        }
      ],
      "steps": [
        "Проверьте интегратор по точному RL-решению при нескольких временных шагах.",
        "Подключите монотонную карту вентильно-индукторной машины, задайте диапазон тока и запрет экстраполяции.",
        "Опишите состояния ключей и действительное фазное напряжение при включении, свободном ходе и возврате энергии.",
        "В момент достижения угла выключения укоротите шаг до события и только затем смените напряжение.",
        "Сохраняйте время, угол, ток, \\(\\Psi\\), напряжение и статус состояния преобразователя.",
        "Повторите с половинным шагом и отдельно уточнённой картой; сравните пики и энергию."
      ],
      "expected": "Проверенная цепная временная модель с обработкой коммутации и понятной энергетикой.",
      "verification": "Точный RL-эталон, шаг времени, шаг карты и события проверены раздельно.",
      "table_number": "42.5"
    },
    "widget": {
      "type": "dynamics",
      "config": {
        "variant": "rl-heun",
        "voltage": 24,
        "resistance": 2,
        "inductance": 0.01,
        "step": 0.0001,
        "duration": 0.005
      },
      "figure_numbers": {
        "main": "42.11",
        "schematic": "42.12",
        "response": "42.13"
      }
    },
    "questions": [
      {
        "question": "Почему нельзя перепрыгнуть через угол выключения?",
        "answer": "Часть шага будет рассчитана при неверном напряжении, что искажает ток и энергию."
      },
      {
        "question": "Обязательно ли выключенная фаза имеет \\(u\\) = 0?",
        "answer": "Нет. Напряжение определяется топологией преобразователя и проводящими диодами."
      }
    ],
    "assignment": {
      "task": "Смоделируйте токовую импульсную серию при двух углах выключения и объясните изменение энергии возврата.",
      "acceptance": "Интегратор проверен аналитически; события разрешены; область карты соблюдена; энергетические знаки согласованы."
    },
    "pitfalls": [
      "Нельзя назвать цепной интегратор прямым расчётом переходного магнитного поля.",
      "Уменьшение \\(\\Delta t\\) не устраняет грубость токово-угловой карты."
    ],
    "sources": [
      {
        "title": "Руководство FEMM 5, редакция от 1 октября 2026 года",
        "url": "https://www.femm.info/doku/lib/exe/fetch.php?media=femm-qt:docs:manual.pdf",
        "pages": "10–15, 90–94, 160–164",
        "offline_url": "../../materials/00_FEMM5_Official/FEMM_5_User_Manual_01Oct2026.pdf"
      },
      {
        "title": "Встроенный MicroPython и доступные пакеты FEMM 5",
        "url": "https://www.femm.info/doku/doku.php?id=micropython",
        "pages": "Раздел Packages",
        "offline_url": "../../materials/00_FEMM5_Official/FEMM_5_MicroPython_Packages.html"
      }
    ],
    "model_family": "srm",
    "code": [
      {
        "title": "Метод Хойна для линейной цепи с сопротивлением и индуктивностью",
        "language": "python",
        "source": "import math\n# Линейная цепь с постоянными напряжением, В; сопротивлением, Ом; индуктивностью, Гн.\nvoltage_v = 24.0\nresistance_ohm = 2.0\ninductance_h = 0.01\n# Временной шаг, с; начальный ток, А. Здесь рассчитывается один шаг интегрирования.\nstep_s = 0.0001\ncurrent_a = 0.0\n# Правая часть уравнения L·di/dt = U − R·i; результат выражен в А/с.\ndef derivative(current):\n    return (voltage_v-resistance_ohm*current)/inductance_h\n# Начальный наклон тока; явный метод Эйлера даёт предварительное значение в конце шага.\nfirst = derivative(current_a)\nprediction = current_a + step_s*first\n# Повторно вычисляем наклон в предварительно найденном состоянии.\nsecond = derivative(prediction)\n# Метод Хойна использует среднее начального и конечного наклонов.\ncurrent_a += 0.5*step_s*(first+second)\n# Точное решение линейной цепи служит независимым эталоном ошибки временного шага.\nexact = voltage_v/resistance_ohm*(1-math.exp(-resistance_ohm*step_s/inductance_h))\nprint(\"Эйлер:\", prediction)\nprint(\"Хойн:\", current_a)\nprint(\"Точное решение:\", exact)\n",
        "explanation": "Код целиком встроенный и не требует отсутствующего solve_ivp. После проверки функция производной заменяется картографированной цепью.",
        "highlighted": "<span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">math</span>\n<span class=\"c1\"># Линейная цепь с постоянными напряжением, В; сопротивлением, Ом; индуктивностью, Гн.</span>\n<span class=\"n\">voltage_v</span> <span class=\"o\">=</span> <span class=\"mf\">24.0</span>\n<span class=\"n\">resistance_ohm</span> <span class=\"o\">=</span> <span class=\"mf\">2.0</span>\n<span class=\"n\">inductance_h</span> <span class=\"o\">=</span> <span class=\"mf\">0.01</span>\n<span class=\"c1\"># Временной шаг, с; начальный ток, А. Здесь рассчитывается один шаг интегрирования.</span>\n<span class=\"n\">step_s</span> <span class=\"o\">=</span> <span class=\"mf\">0.0001</span>\n<span class=\"n\">current_a</span> <span class=\"o\">=</span> <span class=\"mf\">0.0</span>\n<span class=\"c1\"># Правая часть уравнения L·di/dt = U − R·i; результат выражен в А/с.</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">derivative</span><span class=\"p\">(</span><span class=\"n\">current</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"p\">(</span><span class=\"n\">voltage_v</span><span class=\"o\">-</span><span class=\"n\">resistance_ohm</span><span class=\"o\">*</span><span class=\"n\">current</span><span class=\"p\">)</span><span class=\"o\">/</span><span class=\"n\">inductance_h</span>\n<span class=\"c1\"># Начальный наклон тока; явный метод Эйлера даёт предварительное значение в конце шага.</span>\n<span class=\"n\">first</span> <span class=\"o\">=</span> <span class=\"n\">derivative</span><span class=\"p\">(</span><span class=\"n\">current_a</span><span class=\"p\">)</span>\n<span class=\"n\">prediction</span> <span class=\"o\">=</span> <span class=\"n\">current_a</span> <span class=\"o\">+</span> <span class=\"n\">step_s</span><span class=\"o\">*</span><span class=\"n\">first</span>\n<span class=\"c1\"># Повторно вычисляем наклон в предварительно найденном состоянии.</span>\n<span class=\"n\">second</span> <span class=\"o\">=</span> <span class=\"n\">derivative</span><span class=\"p\">(</span><span class=\"n\">prediction</span><span class=\"p\">)</span>\n<span class=\"c1\"># Метод Хойна использует среднее начального и конечного наклонов.</span>\n<span class=\"n\">current_a</span> <span class=\"o\">+=</span> <span class=\"mf\">0.5</span><span class=\"o\">*</span><span class=\"n\">step_s</span><span class=\"o\">*</span><span class=\"p\">(</span><span class=\"n\">first</span><span class=\"o\">+</span><span class=\"n\">second</span><span class=\"p\">)</span>\n<span class=\"c1\"># Точное решение линейной цепи служит независимым эталоном ошибки временного шага.</span>\n<span class=\"n\">exact</span> <span class=\"o\">=</span> <span class=\"n\">voltage_v</span><span class=\"o\">/</span><span class=\"n\">resistance_ohm</span><span class=\"o\">*</span><span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"o\">-</span><span class=\"n\">math</span><span class=\"o\">.</span><span class=\"n\">exp</span><span class=\"p\">(</span><span class=\"o\">-</span><span class=\"n\">resistance_ohm</span><span class=\"o\">*</span><span class=\"n\">step_s</span><span class=\"o\">/</span><span class=\"n\">inductance_h</span><span class=\"p\">))</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"s2\">\"Эйлер:\"</span><span class=\"p\">,</span> <span class=\"n\">prediction</span><span class=\"p\">)</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"s2\">\"Хойн:\"</span><span class=\"p\">,</span> <span class=\"n\">current_a</span><span class=\"p\">)</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"s2\">\"Точное решение:\"</span><span class=\"p\">,</span> <span class=\"n\">exact</span><span class=\"p\">)</span>\n",
        "title_html": "Метод Хойна для линейной цепи с сопротивлением и индуктивностью",
        "explanation_html": "Код целиком встроенный и не требует отсутствующего solve_ivp. После проверки функция производной заменяется картографированной цепью."
      }
    ],
    "slug": "ii08-2",
    "display_number": "42.2",
    "paragraph_number": 42,
    "position": 131,
    "part": "VII",
    "part_label": "Углублённый расчёт электрических машин",
    "module_id": "VII.06",
    "module_title": "Коммутация и динамика вентильно-индукторной машины",
    "module_hours": 6.0,
    "curriculum_path": [
      "VII",
      "VII.06"
    ],
    "siblings": [
      {
        "id": "II08.1",
        "title": "Магнитостатические таблицы вентильно-индукторной машины и нелинейная цепь",
        "slug": "ii08-1",
        "sourceFile": "course-site/data/lessons-embedded.json",
        "legacyId": "II08.1",
        "moduleId": "VII.06",
        "hours": 2.0,
        "displayNumber": "VII.06.1",
        "display_number": "42.1"
      },
      {
        "id": "II08.2",
        "title": "Коммутация и численное интегрирование по времени во встроенном Python",
        "slug": "ii08-2",
        "sourceFile": "course-site/data/lessons-embedded.json",
        "legacyId": "II08.2",
        "moduleId": "VII.06",
        "hours": 2.0,
        "displayNumber": "VII.06.2",
        "display_number": "42.2"
      },
      {
        "id": "II08.3",
        "title": "Динамика цепи и механики с квазистатическим восстановлением поля",
        "slug": "ii08-3",
        "sourceFile": "course-site/data/lessons-embedded.json",
        "legacyId": "II08.3",
        "moduleId": "VII.06",
        "hours": 2.0,
        "displayNumber": "VII.06.3",
        "display_number": "42.3"
      }
    ],
    "previous": {
      "id": "II08.1",
      "slug": "ii08-1",
      "title": "Магнитостатические таблицы вентильно-индукторной машины и нелинейная цепь",
      "display_number": "42.1"
    },
    "next": {
      "id": "II08.3",
      "slug": "ii08-3",
      "title": "Динамика цепи и механики с квазистатическим восстановлением поля",
      "display_number": "42.3"
    },
    "formula_count": 2,
    "fe_reference": {
      "name": "srm-15",
      "description": "Расчёт выполнен установленным FEMM 5.0, сборка 06Oct2026, встроенным Python. Файл модели и решение позволяют повторить опыт; параметры этого образца указаны ниже. Повторный полевой расчёт 15 октября 2026 года и построение из учебной Python-программы подтвердили воспроизводимость модели. Таблица и карта поля относятся к исходной учебной сетке; уточнение момента дано ниже и в отдельном разделе примера.",
      "scope": "Иллюстративный двумерный расчёт. Модель стали с постоянной магнитной проницаемостью не описывает насыщение. Идеализированные обмотки с нулевой проводимостью не учитывают все потери. Сеточная проверка момента этой рабочей точки выполнена отдельно; её критерии, методы и границы приведены в протоколе.",
      "metrics": [
        {
          "name": "Частота",
          "value": "0",
          "unit": "Гц"
        },
        {
          "name": "Активная длина",
          "value": "80",
          "unit": "мм"
        },
        {
          "name": "Ток цепи Фаза А",
          "value": "3",
          "unit": "А"
        },
        {
          "name": "Потокосцепление цепи Фаза А",
          "value": "0,069156",
          "unit": "Вб"
        },
        {
          "name": "Ток цепи Фаза С",
          "value": "0",
          "unit": "А"
        },
        {
          "name": "Потокосцепление цепи Фаза С",
          "value": "0,0003170694",
          "unit": "Вб"
        },
        {
          "name": "Ток цепи Фаза В",
          "value": "0",
          "unit": "А"
        },
        {
          "name": "Потокосцепление цепи Фаза В",
          "value": "-0,001421873",
          "unit": "Вб"
        },
        {
          "name": "Момент на исходной учебной сетке",
          "value": "0,4393662",
          "unit": "Н·м"
        },
        {
          "name": "Энергия поля",
          "value": "0,103734",
          "unit": "Дж"
        },
        {
          "name": "Модуль B в контрольной точке",
          "value": "0,03358149",
          "unit": "Тл"
        },
        {
          "name": "Координаты контрольной точки (x, y)",
          "value": "59,27358; 5,185767",
          "unit": "мм"
        },
        {
          "name": "Момент на проверенной уточнённой сетке",
          "value": "0,439",
          "unit": "Н·м"
        }
      ],
      "files": [
        {
          "path": "downloads/examples/srm-15/Вентильно-индукторная-смещённая-09-Готовая-модель.fem",
          "title": "Итоговая модель FEMM",
          "download_name": "Вентильно-индукторная-смещённая-09-Готовая-модель.fem",
          "sha256": "e997484f8b4017eab5e8414b605365473c7ddf11f7aad2847a45ecea45534c86",
          "bytes": 21712
        },
        {
          "path": "downloads/examples/srm-15/Вентильно-индукторная-смещённая-09-Готовая-модель.ans",
          "title": "Сохранённое решение эталона",
          "download_name": "Вентильно-индукторная-смещённая-09-Готовая-модель.ans",
          "sha256": "7f99179532f7923996df3f4d9a8ab7038cdf49b0e9e61e46e267decc808555d5",
          "bytes": 26612368
        },
        {
          "path": "results/srm-15.json",
          "title": "Численные результаты"
        },
        {
          "path": "examples/srm-15/index.html#torque-mesh",
          "title": "Уточнённый момент и проверенная сетка"
        }
      ],
      "image": "images/fields/srm-15.svg",
      "caption": "Визуализация численных данных FEMM 5: Вентильно-индукторная машина: смещённый ротор. Это экспорт результатов поля, а не снимок окна программы.",
      "image_width": 960,
      "image_height": 900,
      "table_number": "42.6",
      "figure_number": "42.14"
    },
    "code_download": "downloads/python/II08-2_Интегрирование_тока_по_времени.py",
    "code_download_name": "II08-2_Интегрирование_тока_по_времени.py",
    "code_download_title": "Программа: Метод Хойна для линейной цепи с сопротивлением и индуктивностью",
    "screenshots": [
      {
        "shot_id": "36-srm-geometry",
        "path": "images/screenshots/36-srm-geometry.png",
        "caption": "Геометрия: вентильно-индукторная машина 6/4, первая фаза, согласованное положение",
        "width": 1026,
        "height": 800,
        "figure_number": "42.15"
      },
      {
        "shot_id": "36-srm-field",
        "path": "images/screenshots/36-srm-field.png",
        "caption": "Распределение магнитной индукции: вентильно-индукторная машина 6/4, первая фаза, согласованное положение",
        "width": 1026,
        "height": 800,
        "figure_number": "42.16"
      },
      {
        "shot_id": "37-srm-displaced",
        "path": "images/screenshots/37-srm-displaced.png",
        "caption": "Вентильно-индукторная машина: отдельное смещённое положение ротора; угол и знак проверяются по исходному файлу, ток фазы сохранён.",
        "width": 1026,
        "height": 800,
        "figure_number": "42.17"
      },
      {
        "shot_id": "mesh-srm-15-gap",
        "path": "images/screenshots/supplemental/mesh-srm-15-gap.png",
        "caption": "Вентильно-индукторная машина: смещённый ротор: выбранная сетка воздушного зазора.",
        "width": 1026,
        "height": 800,
        "source_series": "refined_mesh",
        "figure_number": "42.18"
      },
      {
        "shot_id": "mesh-srm-15-torque",
        "path": "images/screenshots/supplemental/mesh-srm-15-torque.png",
        "caption": "Вентильно-индукторная машина: смещённый ротор: момент ротора на выбранной сетке.",
        "width": 1026,
        "height": 800,
        "source_series": "refined_mesh",
        "figure_number": "42.19"
      },
      {
        "shot_id": "python-ii08-2",
        "path": "images/screenshots/supplemental/python-ii08-2.png",
        "caption": "Встроенная консоль FEMM: Коммутация и численное интегрирование по времени во встроенном Python. Аналитическая проверка программы занятия.",
        "width": 1026,
        "height": 800,
        "source_series": "embedded_analytic",
        "figure_number": "42.20"
      }
    ],
    "detail_shots": [],
    "formula_refs": [
      {
        "number": "42.3",
        "anchor": "eq-ii08-2-1",
        "title": "Физическая и вычислительная постановка"
      },
      {
        "number": "42.4",
        "anchor": "eq-ii08-2-2",
        "title": "Численный пример"
      }
    ],
    "example_links": [
      {
        "id": "srm-15",
        "slug": "srm-15",
        "title": "Вентильно-индукторная машина: смещённый ротор",
        "path": "examples/srm-15/index.html",
        "primary": true
      },
      {
        "id": "srm",
        "slug": "srm",
        "title": "Вентильно-индукторная машина: исходное положение",
        "path": "examples/srm/index.html",
        "primary": false
      }
    ],
    "view": {
      "id": "II08.2",
      "title": "Коммутация и численное интегрирование по времени во встроенном Python",
      "summary": "Осваиваем небольшой временной интегратор и обработку коммутации, затем применяем его к проверенной магнитостатической карте вентильно-индукторной машины.",
      "objectives": [
        "Интегрировать электрическое состояние внутри MicroPython с контролем шага и событий переключения.",
        "Проверить интегратор на RL-эталоне при двух шагах времени.",
        "Разрешить углы включения и выключения и выбрать напряжение фазы из схемы преобразователя."
      ],
      "prerequisites": [
        "42.1"
      ],
      "theory": [
        {
          "heading": "Физическая и вычислительная постановка",
          "paragraphs": [
            "Временной интегратор решает дифференциальные уравнения цепи, а не создаёт новый магнитный решатель FEMM. Метод Эйлера вычисляет наклон в начале шага; метод Хойна предсказывает конечное состояние и усредняет начальный и конечный наклоны. Вывод из интеграла состояния за шаг показывает, почему усреднение улучшает порядок для гладкого участка. На коммутации гладкость теряется, поэтому шаг делят в момент переключения.",
            "Для нелинейной карты удобно интегрировать потокосцепление: <span class=\"inline-math\" data-inline-latex=\"\\mathrm d\\Psi\">\\mathrm d\\Psi</span>/<span class=\"inline-math\" data-inline-latex=\"\\mathrm dt\">\\mathrm dt</span> = <span class=\"inline-math\" data-inline-latex=\"u\">u</span> − <span class=\"inline-math\" data-inline-latex=\"Ri\">Ri</span>. Ток получают обратным поиском по монотонной зависимости <span class=\"inline-math\" data-inline-latex=\"\\Psi\">\\Psi</span>(<span class=\"inline-math\" data-inline-latex=\"i\">i</span>,<span class=\"inline-math\" data-inline-latex=\"\\theta\">\\theta</span>). Такой выбор избегает явного деления на малую <span class=\"inline-math\" data-inline-latex=\"L_{\\text{дин}}\">L_{\\text{дин}}</span>, но всё равно требует корректной интерполяции и ограничения области. Напряжение фазы при включении и выключении задаётся физической схемой преобразователя; оно не всегда равно нулю при выключенном ключе. Диоды, возврат энергии и падения напряжений описывают явно, а идеальную схему обозначают как учебное приближение."
          ],
          "formulas": [
            {
              "latex": "\\Psi_{k+1}^{\\text{пр}}=\\Psi_k+\\Delta t\\,g_k,\\quad \\Psi_{k+1}=\\Psi_k+\\frac{\\Delta t}{2}(g_k+g_{k+1}^{\\text{пр}}),\\quad g=u-Ri",
              "explanation": "Метод Хойна для потокосцепления; индекс пр означает предиктор; событие коммутации должно лежать на границе шага.",
              "number": "42.3",
              "anchor": "eq-ii08-2-1"
            }
          ]
        },
        {
          "heading": "Порядок проверки результата",
          "paragraphs": [
            "Численный пример ниже является аналитическим учебным эталоном. Его значения вычислены по указанным формулам; они не обозначают результат решения новой модели методом конечных элементов. Практикум связывает эталон с полевой задачей: сначала воспроизведите уже проверенный результат базового раздела, затем измените только один исследуемый параметр. Именно такое сравнение позволяет отделить ошибку программы от влияния геометрии, сетки и физического приближения. Сохраните исходную модель, рабочую копию и таблицу с заголовками величин. В подписи каждой величины укажите единицу, положительное направление и способ получения; для гармонических величин дополнительно укажите амплитудную нормировку. Если условие задачи не выполнено, остановите серию и сохраните причину отказа вместе с последним корректным состоянием."
          ],
          "formulas": []
        },
        {
          "heading": "Пояснение программы",
          "paragraphs": [
            "Функция derivative вычисляет скорость изменения тока из уравнения линейной электрической цепи. Переменная prediction содержит предварительное значение тока по методу Эйлера. Повторное вычисление наклона в конце шага и усреднение наклонов дают метод Хойна. Переменная exact содержит точное решение той же цепи. Сравнение позволяет оценить временную погрешность до подключения нелинейной характеристики и коммутации."
          ],
          "formulas": []
        },
        {
          "heading": "Интегрирование потокосцепления и события коммутации",
          "paragraphs": [
            "В качестве электрического состояния выбирается потокосцепление, а ток восстанавливается из монотонной таблицы при текущем угле."
          ],
          "formulas": [],
          "derivation_steps": [
            {
              "text": "На начале шага найдите ток и правую часть уравнения потокосцепления. Прогноз Эйлера даёт предварительное состояние на конец шага."
            },
            {
              "text": "По прогнозу снова восстановите ток и напряжение ключевого состояния. Усреднение начальной и прогнозной правых частей даёт корректированный шаг метода Хойна."
            },
            {
              "text": "Разбейте шаг в момент включения или выключения, чтобы разрыв напряжения не оказался скрыт внутри гладкой формулы. После серии уменьшите шаг вдвое и сравните токовый максимум и средний момент."
            }
          ],
          "symbols": [
            {
              "symbol": "\\Psi",
              "meaning": "Потокосцепление обмотки",
              "unit": "Вб"
            },
            {
              "symbol": "i",
              "meaning": "Мгновенный ток",
              "unit": "А"
            },
            {
              "symbol": "R",
              "meaning": "Активное электрическое сопротивление",
              "unit": "Ом"
            },
            {
              "symbol": "\\Delta t",
              "meaning": "Шаг интегрирования по времени",
              "unit": "с"
            },
            {
              "symbol": "T",
              "meaning": "Электромагнитный момент",
              "unit": "Н·м"
            }
          ],
          "applicability": "Второй порядок метода относится к гладким участкам. Без точной обработки событий и проверки диапазона таблицы он не гарантирует точности коммутационного процесса.",
          "editorial_tag": "textbook-math-2026-10",
          "symbols_number": "42.4"
        }
      ],
      "worked_example": {
        "title": "Вычисленный аналитический эталон",
        "given": "Линейный RL-эталон: <span class=\"inline-math\" data-inline-latex=\"U\">U</span> = 24 В; <span class=\"inline-math\" data-inline-latex=\"R\">R</span> = 2 Ом; <span class=\"inline-math\" data-inline-latex=\"L\">L</span> = 10 мГн; <span class=\"inline-math\" data-inline-latex=\"I\">I</span>(0) = 0; <span class=\"inline-math\" data-inline-latex=\"\\Delta t\">\\Delta t</span> = 0,1 мс.",
        "steps": [
          {
            "text": "Начальный наклон 24/0,01 = 2400 А/с; Эйлер даёт 0,24 А.",
            "latex": "I_{\\text{Хойн}}=\\frac{0{,}0001}{2}(2400+2352)=0{,}2376\\ \\text{А}",
            "formula_number": "42.4",
            "anchor": "eq-ii08-2-2"
          },
          {
            "text": "Наклон на предикторе (24 − 2 · 0,24)/0,01 = 2352 А/с."
          },
          {
            "text": "Хойн даёт 0,5 · 0,0001(2400 + 2352) = 0,2376 А. Точное 12(1 − <span class=\"inline-math\" data-inline-latex=\"e\">e</span>⁻⁰·⁰²) = 0,237615920 А."
          }
        ],
        "answer": "После первого шага ошибка Хойна около 0,00670 %; ошибка Эйлера около 1,0033 %.",
        "check": "Уменьшение шага вдвое на гладком интервале должно уменьшать глобальную ошибку Хойна приблизительно в четыре раза."
      },
      "practice": {
        "title": "Интегратор и события переключения фазы",
        "parameters": [
          {
            "name": "<span class=\"inline-math\" data-inline-latex=\"U\">U</span> источника",
            "value": "24",
            "unit": "В"
          },
          {
            "name": "<span class=\"inline-math\" data-inline-latex=\"R\">R</span> фазы",
            "value": "2",
            "unit": "Ом"
          },
          {
            "name": "Шаги времени",
            "value": "0,1; 0,05",
            "unit": "мс"
          },
          {
            "name": "Углы коммутации",
            "value": "заданы",
            "unit": "°"
          }
        ],
        "steps": [
          "Проверьте интегратор по точному RL-решению при нескольких временных шагах.",
          "Подключите монотонную карту вентильно-индукторной машины, задайте диапазон тока и запрет экстраполяции.",
          "Опишите состояния ключей и действительное фазное напряжение при включении, свободном ходе и возврате энергии.",
          "В момент достижения угла выключения укоротите шаг до события и только затем смените напряжение.",
          "Сохраняйте время, угол, ток, <span class=\"inline-math\" data-inline-latex=\"\\Psi\">\\Psi</span>, напряжение и статус состояния преобразователя.",
          "Повторите с половинным шагом и отдельно уточнённой картой; сравните пики и энергию."
        ],
        "expected": "Проверенная цепная временная модель с обработкой коммутации и понятной энергетикой.",
        "verification": "Точный RL-эталон, шаг времени, шаг карты и события проверены раздельно.",
        "table_number": "42.5"
      },
      "questions": [
        {
          "question": "Почему нельзя перепрыгнуть через угол выключения?",
          "answer": "Часть шага будет рассчитана при неверном напряжении, что искажает ток и энергию."
        },
        {
          "question": "Обязательно ли выключенная фаза имеет <span class=\"inline-math\" data-inline-latex=\"u\">u</span> = 0?",
          "answer": "Нет. Напряжение определяется топологией преобразователя и проводящими диодами."
        }
      ],
      "assignment": {
        "task": "Смоделируйте токовую импульсную серию при двух углах выключения и объясните изменение энергии возврата.",
        "acceptance": "Интегратор проверен аналитически; события разрешены; область карты соблюдена; энергетические знаки согласованы."
      },
      "pitfalls": [
        "Нельзя назвать цепной интегратор прямым расчётом переходного магнитного поля.",
        "Уменьшение <span class=\"inline-math\" data-inline-latex=\"\\Delta t\">\\Delta t</span> не устраняет грубость токово-угловой карты."
      ],
      "model_family": "srm",
      "slug": "ii08-2",
      "display_number": "42.2",
      "paragraph_number": 42,
      "position": 131,
      "part": "VII",
      "part_label": "Углублённый расчёт электрических машин",
      "module_id": "VII.06",
      "module_title": "Коммутация и динамика вентильно-индукторной машины",
      "module_hours": 6.0,
      "curriculum_path": [
        "VII",
        "VII.06"
      ],
      "formula_count": 2,
      "fe_reference": {
        "name": "srm-15",
        "description": "Расчёт выполнен установленным FEMM 5.0, сборка 06Oct2026, встроенным Python. Файл модели и решение позволяют повторить опыт; параметры этого образца указаны ниже. Повторный полевой расчёт 15 октября 2026 года и построение из учебной Python-программы подтвердили воспроизводимость модели. Таблица и карта поля относятся к исходной учебной сетке; уточнение момента дано ниже и в отдельном разделе примера.",
        "scope": "Иллюстративный двумерный расчёт. Модель стали с постоянной магнитной проницаемостью не описывает насыщение. Идеализированные обмотки с нулевой проводимостью не учитывают все потери. Сеточная проверка момента этой рабочей точки выполнена отдельно; её критерии, методы и границы приведены в протоколе.",
        "metrics": [
          {
            "name": "Частота",
            "value": "0",
            "unit": "Гц"
          },
          {
            "name": "Активная длина",
            "value": "80",
            "unit": "мм"
          },
          {
            "name": "Ток цепи Фаза А",
            "value": "3",
            "unit": "А"
          },
          {
            "name": "Потокосцепление цепи Фаза А",
            "value": "0,069156",
            "unit": "Вб"
          },
          {
            "name": "Ток цепи Фаза С",
            "value": "0",
            "unit": "А"
          },
          {
            "name": "Потокосцепление цепи Фаза С",
            "value": "0,0003170694",
            "unit": "Вб"
          },
          {
            "name": "Ток цепи Фаза В",
            "value": "0",
            "unit": "А"
          },
          {
            "name": "Потокосцепление цепи Фаза В",
            "value": "-0,001421873",
            "unit": "Вб"
          },
          {
            "name": "Момент на исходной учебной сетке",
            "value": "0,4393662",
            "unit": "Н·м"
          },
          {
            "name": "Энергия поля",
            "value": "0,103734",
            "unit": "Дж"
          },
          {
            "name": "Модуль B в контрольной точке",
            "value": "0,03358149",
            "unit": "Тл"
          },
          {
            "name": "Координаты контрольной точки (x, y)",
            "value": "59,27358; 5,185767",
            "unit": "мм"
          },
          {
            "name": "Момент на проверенной уточнённой сетке",
            "value": "0,439",
            "unit": "Н·м"
          }
        ],
        "files": [
          {
            "path": "downloads/examples/srm-15/Вентильно-индукторная-смещённая-09-Готовая-модель.fem",
            "title": "Итоговая модель FEMM",
            "download_name": "Вентильно-индукторная-смещённая-09-Готовая-модель.fem",
            "sha256": "e997484f8b4017eab5e8414b605365473c7ddf11f7aad2847a45ecea45534c86",
            "bytes": 21712
          },
          {
            "path": "downloads/examples/srm-15/Вентильно-индукторная-смещённая-09-Готовая-модель.ans",
            "title": "Сохранённое решение эталона",
            "download_name": "Вентильно-индукторная-смещённая-09-Готовая-модель.ans",
            "sha256": "7f99179532f7923996df3f4d9a8ab7038cdf49b0e9e61e46e267decc808555d5",
            "bytes": 26612368
          },
          {
            "path": "results/srm-15.json",
            "title": "Численные результаты"
          },
          {
            "path": "examples/srm-15/index.html#torque-mesh",
            "title": "Уточнённый момент и проверенная сетка"
          }
        ],
        "image": "images/fields/srm-15.svg",
        "caption": "Визуализация численных данных FEMM 5: Вентильно-индукторная машина: смещённый ротор. Это экспорт результатов поля, а не снимок окна программы.",
        "image_width": 960,
        "image_height": 900,
        "table_number": "42.6",
        "figure_number": "42.14"
      },
      "code_download": "downloads/python/II08-2_Интегрирование_тока_по_времени.py",
      "code_download_name": "II08-2_Интегрирование_тока_по_времени.py",
      "code_download_title": "Программа: Метод Хойна для линейной цепи с сопротивлением и индуктивностью",
      "detail_shots": [],
      "formula_refs": [
        {
          "number": "42.3",
          "anchor": "eq-ii08-2-1",
          "title": "Физическая и вычислительная постановка"
        },
        {
          "number": "42.4",
          "anchor": "eq-ii08-2-2",
          "title": "Численный пример"
        }
      ]
    },
    "client_data": {
      "id": "II08.2",
      "title": "Коммутация и численное интегрирование по времени во встроенном Python",
      "slug": "ii08-2",
      "widget": {
        "type": "dynamics",
        "config": {
          "variant": "rl-heun",
          "voltage": 24,
          "resistance": 2,
          "inductance": 0.01,
          "step": 0.0001,
          "duration": 0.005
        },
        "figure_numbers": {
          "main": "42.11",
          "schematic": "42.12",
          "response": "42.13"
        }
      },
      "formula_count": 2,
      "fe_reference": {
        "name": "srm-15",
        "description": "Расчёт выполнен установленным FEMM 5.0, сборка 06Oct2026, встроенным Python. Файл модели и решение позволяют повторить опыт; параметры этого образца указаны ниже. Повторный полевой расчёт 15 октября 2026 года и построение из учебной Python-программы подтвердили воспроизводимость модели. Таблица и карта поля относятся к исходной учебной сетке; уточнение момента дано ниже и в отдельном разделе примера.",
        "scope": "Иллюстративный двумерный расчёт. Модель стали с постоянной магнитной проницаемостью не описывает насыщение. Идеализированные обмотки с нулевой проводимостью не учитывают все потери. Сеточная проверка момента этой рабочей точки выполнена отдельно; её критерии, методы и границы приведены в протоколе.",
        "metrics": [
          {
            "name": "Частота",
            "value": "0",
            "unit": "Гц"
          },
          {
            "name": "Активная длина",
            "value": "80",
            "unit": "мм"
          },
          {
            "name": "Ток цепи Фаза А",
            "value": "3",
            "unit": "А"
          },
          {
            "name": "Потокосцепление цепи Фаза А",
            "value": "0,069156",
            "unit": "Вб"
          },
          {
            "name": "Ток цепи Фаза С",
            "value": "0",
            "unit": "А"
          },
          {
            "name": "Потокосцепление цепи Фаза С",
            "value": "0,0003170694",
            "unit": "Вб"
          },
          {
            "name": "Ток цепи Фаза В",
            "value": "0",
            "unit": "А"
          },
          {
            "name": "Потокосцепление цепи Фаза В",
            "value": "-0,001421873",
            "unit": "Вб"
          },
          {
            "name": "Момент на исходной учебной сетке",
            "value": "0,4393662",
            "unit": "Н·м"
          },
          {
            "name": "Энергия поля",
            "value": "0,103734",
            "unit": "Дж"
          },
          {
            "name": "Модуль B в контрольной точке",
            "value": "0,03358149",
            "unit": "Тл"
          },
          {
            "name": "Координаты контрольной точки (x, y)",
            "value": "59,27358; 5,185767",
            "unit": "мм"
          },
          {
            "name": "Момент на проверенной уточнённой сетке",
            "value": "0,439",
            "unit": "Н·м"
          }
        ],
        "files": [
          {
            "path": "downloads/examples/srm-15/Вентильно-индукторная-смещённая-09-Готовая-модель.fem",
            "title": "Итоговая модель FEMM",
            "download_name": "Вентильно-индукторная-смещённая-09-Готовая-модель.fem",
            "sha256": "e997484f8b4017eab5e8414b605365473c7ddf11f7aad2847a45ecea45534c86",
            "bytes": 21712
          },
          {
            "path": "downloads/examples/srm-15/Вентильно-индукторная-смещённая-09-Готовая-модель.ans",
            "title": "Сохранённое решение эталона",
            "download_name": "Вентильно-индукторная-смещённая-09-Готовая-модель.ans",
            "sha256": "7f99179532f7923996df3f4d9a8ab7038cdf49b0e9e61e46e267decc808555d5",
            "bytes": 26612368
          },
          {
            "path": "results/srm-15.json",
            "title": "Численные результаты"
          },
          {
            "path": "examples/srm-15/index.html#torque-mesh",
            "title": "Уточнённый момент и проверенная сетка"
          }
        ],
        "image": "images/fields/srm-15.svg",
        "caption": "Визуализация численных данных FEMM 5: Вентильно-индукторная машина: смещённый ротор. Это экспорт результатов поля, а не снимок окна программы.",
        "image_width": 960,
        "image_height": 900,
        "table_number": "42.6",
        "figure_number": "42.14"
      },
      "code_download": "downloads/python/II08-2_Интегрирование_тока_по_времени.py",
      "screenshots": [
        {
          "shot_id": "36-srm-geometry",
          "path": "images/screenshots/36-srm-geometry.png",
          "caption": "Геометрия: вентильно-индукторная машина 6/4, первая фаза, согласованное положение",
          "width": 1026,
          "height": 800,
          "figure_number": "42.15"
        },
        {
          "shot_id": "36-srm-field",
          "path": "images/screenshots/36-srm-field.png",
          "caption": "Распределение магнитной индукции: вентильно-индукторная машина 6/4, первая фаза, согласованное положение",
          "width": 1026,
          "height": 800,
          "figure_number": "42.16"
        },
        {
          "shot_id": "37-srm-displaced",
          "path": "images/screenshots/37-srm-displaced.png",
          "caption": "Вентильно-индукторная машина: отдельное смещённое положение ротора; угол и знак проверяются по исходному файлу, ток фазы сохранён.",
          "width": 1026,
          "height": 800,
          "figure_number": "42.17"
        },
        {
          "shot_id": "mesh-srm-15-gap",
          "path": "images/screenshots/supplemental/mesh-srm-15-gap.png",
          "caption": "Вентильно-индукторная машина: смещённый ротор: выбранная сетка воздушного зазора.",
          "width": 1026,
          "height": 800,
          "source_series": "refined_mesh",
          "figure_number": "42.18"
        },
        {
          "shot_id": "mesh-srm-15-torque",
          "path": "images/screenshots/supplemental/mesh-srm-15-torque.png",
          "caption": "Вентильно-индукторная машина: смещённый ротор: момент ротора на выбранной сетке.",
          "width": 1026,
          "height": 800,
          "source_series": "refined_mesh",
          "figure_number": "42.19"
        },
        {
          "shot_id": "python-ii08-2",
          "path": "images/screenshots/supplemental/python-ii08-2.png",
          "caption": "Встроенная консоль FEMM: Коммутация и численное интегрирование по времени во встроенном Python. Аналитическая проверка программы занятия.",
          "width": 1026,
          "height": 800,
          "source_series": "embedded_analytic",
          "figure_number": "42.20"
        }
      ],
      "example_links": [
        {
          "id": "srm-15",
          "slug": "srm-15",
          "title": "Вентильно-индукторная машина: смещённый ротор",
          "path": "examples/srm-15/index.html",
          "primary": true
        },
        {
          "id": "srm",
          "slug": "srm",
          "title": "Вентильно-индукторная машина: исходное положение",
          "path": "examples/srm/index.html",
          "primary": false
        }
      ]
    }
  },
  "assignment": {
    "id": "practice-ii08-2",
    "lessonId": "II08.2",
    "version": "2026-10-16.2",
    "primary": true,
    "displayNumber": "42.2",
    "title": "Коммутация и численное интегрирование по времени во встроенном Python",
    "summary": "Осваиваем небольшой временной интегратор и обработку коммутации, затем применяем его к проверенной магнитостатической карте вентильно-индукторной машины.",
    "part": "VII",
    "partLabel": "Углублённый расчёт электрических машин",
    "moduleId": "VII.06",
    "moduleTitle": "Коммутация и динамика вентильно-индукторной машины",
    "position": 131,
    "category": "Python и расчёт",
    "durationMinutes": 120,
    "environment": "FEMM 5; запишите точную сборку, физический модуль, единицы, тип задачи и параметры своего опыта. Для аналитической части укажите формулы и исходные данные; для Python — встроенную среду и рабочий каталог.",
    "instructions": [
      {
        "title": "Уточните выданное условие",
        "text": "Выполните базовый практикум «Интегратор и события переключения фазы» по шагам занятия. Затем выполните самостоятельную часть: Смоделируйте токовую импульсную серию при двух углах выключения и объясните изменение энергии возврата."
      },
      {
        "title": "Откройте исходный практикум",
        "text": "Сопоставьте условия варианта с параметрами и действиями занятия. Сохраните исходники отдельно; работайте в своём каталоге.",
        "href": "lessons/ii08-2/index.html#practice"
      },
      {
        "title": "Подготовьте результат",
        "text": "Выполните запрошенные действия. В таблице укажите величину, значение, единицу, метод и файл-источник; для ошибки оставьте численное поле пустым и запишите причину. Пустой шаблон CSV не является результатом."
      },
      {
        "title": "Проверьте доказательства",
        "text": "1. Названы собственные материалы, использованные средства расчёта, единицы, параметры и режимы; для полевой работы указана сборка FEMM. Числа из примера отделены от самостоятельно полученных результатов.\n2. По переданному ответу и файлам можно повторить формулы или действия и найти каждый результат. Для полевого расчёта указаны порядок запуска, точки, области и контуры измерений; пропуски и отказы объяснены.\n3. Точный RL-эталон, шаг времени, шаг карты и события проверены раздельно.\n4. Интегратор проверен аналитически; события разрешены; область карты соблюдена; энергетические знаки согласованы.\n5. Интегратор проверен аналитически; события разрешены; область карты соблюдена; энергетические знаки согласованы.\n6. Точный RL-эталон, шаг времени, шаг карты и события проверены раздельно.\n7. Приложена исходная полевая матрица или карта с единицами, условиями расчёта и источником. Новое решение поля не требуется."
      },
      {
        "title": "Сдайте и получите отзыв",
        "text": "Заполните результаты, приложите обязательные файлы и скачайте ZIP. Передайте его преподавателю. Полученный JSON откройте на шаге 5; при замечаниях подготовьте новую версию.",
        "href": "workspace/index.html?assignment=practice-ii08-2&variant=A#assignment-work"
      }
    ],
    "variants": [
      {
        "id": "A",
        "title": "A · Практикум и самостоятельная работа",
        "task": "Выполните базовый практикум «Интегратор и события переключения фазы» по шагам занятия. Затем выполните самостоятельную часть: Смоделируйте токовую импульсную серию при двух углах выключения и объясните изменение энергии возврата.",
        "sourceTask": "Смоделируйте токовую импульсную серию при двух углах выключения и объясните изменение энергии возврата.",
        "sourceVariantId": "II08.2:source-assignment",
        "sourceRubric": [
          "Интегратор проверен аналитически; события разрешены; область карты соблюдена; энергетические знаки согласованы.",
          "Точный RL-эталон, шаг времени, шаг карты и события проверены раздельно."
        ],
        "source": {
          "file": "course-site/data/lessons-embedded.json",
          "lessonId": "II08.2",
          "field": "assignment + practice.verification",
          "sha256": "ce0962c054fbbd3562f421c3ddc53fccae08374844addbdd77fa0cb53287fe0e"
        },
        "kind": "practice",
        "parameters": [
          {
            "name": "\\(U\\) источника",
            "value": "24",
            "unit": "В"
          },
          {
            "name": "\\(R\\) фазы",
            "value": "2",
            "unit": "Ом"
          },
          {
            "name": "Шаги времени",
            "value": "0,1; 0,05",
            "unit": "мс"
          },
          {
            "name": "Углы коммутации",
            "value": "заданы",
            "unit": "°"
          }
        ],
        "expected": [
          {
            "id": "outcome",
            "type": "text",
            "label": "Ответ и полученные результаты",
            "unit": "",
            "maxLength": 16000,
            "hint": "Представьте собственные результаты именно этого варианта: величины с единицами, таблицу или вывод. Укажите файл и строки/режимы. Интегратор и события переключения фазы"
          },
          {
            "id": "verification",
            "type": "text",
            "label": "Проверка результата и расхождения",
            "unit": "",
            "maxLength": 12000,
            "hint": "Интегратор проверен аналитически; события разрешены; область карты соблюдена; энергетические знаки согласованы."
          },
          {
            "id": "evidence-map",
            "type": "text",
            "label": "Где находятся доказательства по критериям",
            "unit": "",
            "maxLength": 12000,
            "hint": "Для каждого предметного критерия ниже укажите файл, строку таблицы, режим или абзац ответа. Отдельно назовите невыполненные пункты и причины."
          }
        ],
        "criteria": [
          {
            "id": "source",
            "label": "Исходные условия и происхождение",
            "description": "Названы собственные материалы, использованные средства расчёта, единицы, параметры и режимы; для полевой работы указана сборка FEMM. Числа из примера отделены от самостоятельно полученных результатов."
          },
          {
            "id": "reproduce",
            "label": "Повторение по переданным файлам",
            "description": "По переданному ответу и файлам можно повторить формулы или действия и найти каждый результат. Для полевого расчёта указаны порядок запуска, точки, области и контуры измерений; пропуски и отказы объяснены."
          },
          {
            "id": "practice",
            "label": "Выполнение базового практикума",
            "description": "Точный RL-эталон, шаг времени, шаг карты и события проверены раздельно."
          },
          {
            "id": "source-task",
            "label": "Самостоятельная часть",
            "description": "Интегратор проверен аналитически; события разрешены; область карты соблюдена; энергетические знаки согласованы."
          },
          {
            "id": "evidence-1",
            "label": "Предметный критерий 1",
            "description": "Интегратор проверен аналитически; события разрешены; область карты соблюдена; энергетические знаки согласованы."
          },
          {
            "id": "evidence-2",
            "label": "Предметный критерий 2",
            "description": "Точный RL-эталон, шаг времени, шаг карты и события проверены раздельно."
          },
          {
            "id": "input-data",
            "label": "Происхождение входных данных",
            "description": "Приложена исходная полевая матрица или карта с единицами, условиями расчёта и источником. Новое решение поля не требуется."
          }
        ],
        "requiredExtensions": [
          ".py",
          ".csv"
        ],
        "requiredFileCounts": [
          {
            "extension": ".py",
            "minimum": 1
          },
          {
            "extension": ".csv",
            "minimum": 1
          }
        ],
        "allowEmptyFiles": false,
        "referenceNote": "Форма проверяет заполнение ответа. Предметную правильность по приведённым критериям подтверждает преподаватель. Базовые параметры и шаги относятся к исходному практикуму; изменения для выбранного варианта заданы в его условии. Не подставляйте учебный ориентир вместо собственного измерения.",
        "instructions": [
          {
            "title": "Уточните выданное условие",
            "text": "Выполните базовый практикум «Интегратор и события переключения фазы» по шагам занятия. Затем выполните самостоятельную часть: Смоделируйте токовую импульсную серию при двух углах выключения и объясните изменение энергии возврата."
          },
          {
            "title": "Откройте исходный практикум",
            "text": "Сопоставьте условия варианта с параметрами и действиями занятия. Сохраните исходники отдельно; работайте в своём каталоге.",
            "href": "lessons/ii08-2/index.html#practice"
          },
          {
            "title": "Подготовьте результат",
            "text": "Выполните запрошенные действия. В таблице укажите величину, значение, единицу, метод и файл-источник; для ошибки оставьте численное поле пустым и запишите причину. Пустой шаблон CSV не является результатом."
          },
          {
            "title": "Проверьте доказательства",
            "text": "1. Названы собственные материалы, использованные средства расчёта, единицы, параметры и режимы; для полевой работы указана сборка FEMM. Числа из примера отделены от самостоятельно полученных результатов.\n2. По переданному ответу и файлам можно повторить формулы или действия и найти каждый результат. Для полевого расчёта указаны порядок запуска, точки, области и контуры измерений; пропуски и отказы объяснены.\n3. Точный RL-эталон, шаг времени, шаг карты и события проверены раздельно.\n4. Интегратор проверен аналитически; события разрешены; область карты соблюдена; энергетические знаки согласованы.\n5. Интегратор проверен аналитически; события разрешены; область карты соблюдена; энергетические знаки согласованы.\n6. Точный RL-эталон, шаг времени, шаг карты и события проверены раздельно.\n7. Приложена исходная полевая матрица или карта с единицами, условиями расчёта и источником. Новое решение поля не требуется."
          },
          {
            "title": "Сдайте и получите отзыв",
            "text": "Заполните результаты, приложите обязательные файлы и скачайте ZIP. Передайте его преподавателю. Полученный JSON откройте на шаге 5; при замечаниях подготовьте новую версию.",
            "href": "workspace/index.html?assignment=practice-ii08-2&variant=A#assignment-work"
          }
        ]
      },
      {
        "id": "B",
        "title": "B · Защита выполненной работы",
        "task": "Защитите ранее выполненный практикум A. В письменном ответе укажите код/имя своей работы A и опирайтесь на её результаты. Вопрос защиты: Обязательно ли выключенная фаза имеет u = 0?",
        "sourceTask": "Обязательно ли выключенная фаза имеет \\(u\\) = 0?",
        "sourceVariantId": "II08.2:oral-defense",
        "sourceRubric": [
          "Нет. Напряжение определяется топологией преобразователя и проводящими диодами.",
          "Точный RL-эталон, шаг времени, шаг карты и события проверены раздельно."
        ],
        "source": {
          "file": "course-site/data/lessons-embedded.json",
          "lessonId": "II08.2",
          "field": "questions[-1] + practice.verification",
          "sha256": "ce0962c054fbbd3562f421c3ddc53fccae08374844addbdd77fa0cb53287fe0e"
        },
        "kind": "defense",
        "parameters": [],
        "expected": [
          {
            "id": "outcome",
            "type": "text",
            "label": "Ответ и полученные результаты",
            "unit": "",
            "maxLength": 16000,
            "hint": "Ответьте на вопрос защиты с опорой на работу A."
          },
          {
            "id": "verification",
            "type": "text",
            "label": "Проверка результата и расхождения",
            "unit": "",
            "maxLength": 12000,
            "hint": "Нет. Напряжение определяется топологией преобразователя и проводящими диодами."
          },
          {
            "id": "evidence-map",
            "type": "text",
            "label": "Где находятся доказательства по критериям",
            "unit": "",
            "maxLength": 12000,
            "hint": "Для каждого предметного критерия ниже укажите файл, строку таблицы, режим или абзац ответа. Отдельно назовите невыполненные пункты и причины."
          }
        ],
        "criteria": [
          {
            "id": "source",
            "label": "Связь с выполненной работой A",
            "description": "Указана работа A, её условия и конкретные результаты, на которые опирается ответ."
          },
          {
            "id": "reproduce",
            "label": "Обоснованный ответ",
            "description": "Ответ содержит ход рассуждения и способ проверить вывод на сохранённых результатах работы A."
          },
          {
            "id": "evidence-1",
            "label": "Предметный критерий 1",
            "description": "Нет. Напряжение определяется топологией преобразователя и проводящими диодами."
          },
          {
            "id": "evidence-2",
            "label": "Предметный критерий 2",
            "description": "Точный RL-эталон, шаг времени, шаг карты и события проверены раздельно."
          }
        ],
        "requiredExtensions": [],
        "requiredFileCounts": [],
        "allowEmptyFiles": true,
        "referenceNote": "Форма проверяет заполнение ответа. Предметную правильность по приведённым критериям подтверждает преподаватель. Защита относится к выполненной работе A; повторный полевой расчёт для одного вопроса не требуется.",
        "instructions": [
          {
            "title": "Уточните выданное условие",
            "text": "Защитите ранее выполненный практикум A. В письменном ответе укажите код/имя своей работы A и опирайтесь на её результаты. Вопрос защиты: Обязательно ли выключенная фаза имеет u = 0?"
          },
          {
            "title": "Откройте исходный практикум",
            "text": "Сопоставьте условия варианта с параметрами и действиями занятия. Сохраните исходники отдельно; работайте в своём каталоге.",
            "href": "lessons/ii08-2/index.html#practice"
          },
          {
            "title": "Подготовьте результат",
            "text": "Подготовьте письменный ответ с отсылками к своему пакету A. Дополнительные файлы можно приложить, если они нужны для объяснения."
          },
          {
            "title": "Проверьте доказательства",
            "text": "1. Указана работа A, её условия и конкретные результаты, на которые опирается ответ.\n2. Ответ содержит ход рассуждения и способ проверить вывод на сохранённых результатах работы A.\n3. Нет. Напряжение определяется топологией преобразователя и проводящими диодами.\n4. Точный RL-эталон, шаг времени, шаг карты и события проверены раздельно."
          },
          {
            "title": "Сдайте и получите отзыв",
            "text": "Заполните результаты, приложите обязательные файлы и скачайте ZIP. Передайте его преподавателю. Полученный JSON откройте на шаге 5; при замечаниях подготовьте новую версию.",
            "href": "workspace/index.html?assignment=practice-ii08-2&variant=B#assignment-work"
          }
        ]
      }
    ],
    "downloads": [
      {
        "label": "Итоговая модель FEMM",
        "path": "downloads/examples/srm-15/Вентильно-индукторная-смещённая-09-Готовая-модель.fem",
        "sha256": "e997484f8b4017eab5e8414b605365473c7ddf11f7aad2847a45ecea45534c86",
        "role": "reference"
      },
      {
        "label": "Численные результаты",
        "path": "results/srm-15.json",
        "sha256": "4500034584003c33d9d7b2c31da17434939ad31f76fe9134a9a4e8e7141d1b4d",
        "role": "reference"
      },
      {
        "label": "Исходная программа занятия",
        "path": "downloads/python/II08-2_Интегрирование_тока_по_времени.py",
        "sha256": "0bde3bf8275f708721f2647841d14a3613d2202fe4b33a9c075a138f8b8ae313",
        "role": "source-code"
      },
      {
        "label": "Пустой шаблон таблицы результатов CSV",
        "path": "downloads/assignments/ii08-2/results-template.csv",
        "sha256": "05d084635358f5c0f35abb574502b01a65ad6a4e3d7865c00063815c7b1d3092",
        "role": "blank-template"
      }
    ],
    "requiredExtensions": [
      ".py",
      ".csv"
    ],
    "criteria": [
      {
        "id": "source",
        "label": "Исходные условия и происхождение",
        "description": "Названы собственные материалы, использованные средства расчёта, единицы, параметры и режимы; для полевой работы указана сборка FEMM. Числа из примера отделены от самостоятельно полученных результатов."
      },
      {
        "id": "reproduce",
        "label": "Повторение по переданным файлам",
        "description": "По переданному ответу и файлам можно повторить формулы или действия и найти каждый результат. Для полевого расчёта указаны порядок запуска, точки, области и контуры измерений; пропуски и отказы объяснены."
      },
      {
        "id": "practice",
        "label": "Выполнение базового практикума",
        "description": "Точный RL-эталон, шаг времени, шаг карты и события проверены раздельно."
      },
      {
        "id": "source-task",
        "label": "Самостоятельная часть",
        "description": "Интегратор проверен аналитически; события разрешены; область карты соблюдена; энергетические знаки согласованы."
      },
      {
        "id": "evidence-1",
        "label": "Предметный критерий 1",
        "description": "Интегратор проверен аналитически; события разрешены; область карты соблюдена; энергетические знаки согласованы."
      },
      {
        "id": "evidence-2",
        "label": "Предметный критерий 2",
        "description": "Точный RL-эталон, шаг времени, шаг карты и события проверены раздельно."
      },
      {
        "id": "input-data",
        "label": "Происхождение входных данных",
        "description": "Приложена исходная полевая матрица или карта с единицами, условиями расчёта и источником. Новое решение поля не требуется."
      }
    ],
    "reflectionPrompts": [
      "Почему нельзя перепрыгнуть через угол выключения?",
      "Обязательно ли выключенная фаза имеет u = 0?"
    ],
    "limitations": "Иллюстративный двумерный расчёт. Модель стали с постоянной магнитной проницаемостью не описывает насыщение. Идеализированные обмотки с нулевой проводимостью не учитывают все потери. Сеточная проверка момента этой рабочей точки выполнена отдельно; её критерии, методы и границы приведены в протоколе.",
    "verificationNote": "Расширен путь сдачи и проверки исходного практикума. Новое выполнение всех вариантов в FEMM этим изменением не заявляется. Сохранённые результаты примеров относятся только к указанным в них моделям и условиям.",
    "teacherPlan": [
      {
        "minutes": 10,
        "title": "Условие и прогноз",
        "text": "Выдать A или продолжение B; проверить исходные данные и связь с практикумом."
      },
      {
        "minutes": 85,
        "title": "Выполнение",
        "text": "Интегратор и события переключения фазы"
      },
      {
        "minutes": 15,
        "title": "Проверка и пакет",
        "text": "Точный RL-эталон, шаг времени, шаг карты и события проверены раздельно."
      },
      {
        "minutes": 10,
        "title": "Обратная связь",
        "text": "Применить рубрику выбранного варианта; вернуть адресные замечания и проверить новую сдачу."
      }
    ],
    "sources": [
      {
        "file": "course-site/data/lessons-embedded.json",
        "lessonId": "II08.2",
        "field": "objectives + questions + assignment",
        "sha256": "ce0962c054fbbd3562f421c3ddc53fccae08374844addbdd77fa0cb53287fe0e"
      },
      {
        "path": "tools/assignment_expansion.py",
        "kind": "source-backed-workflow"
      }
    ],
    "sourcePractice": {
      "title": "Интегратор и события переключения фазы",
      "parameters": [
        {
          "name": "\\(U\\) источника",
          "value": "24",
          "unit": "В"
        },
        {
          "name": "\\(R\\) фазы",
          "value": "2",
          "unit": "Ом"
        },
        {
          "name": "Шаги времени",
          "value": "0,1; 0,05",
          "unit": "мс"
        },
        {
          "name": "Углы коммутации",
          "value": "заданы",
          "unit": "°"
        }
      ],
      "steps": [
        "Проверьте интегратор по точному RL-решению при нескольких временных шагах.",
        "Подключите монотонную карту вентильно-индукторной машины, задайте диапазон тока и запрет экстраполяции.",
        "Опишите состояния ключей и действительное фазное напряжение при включении, свободном ходе и возврате энергии.",
        "В момент достижения угла выключения укоротите шаг до события и только затем смените напряжение.",
        "Сохраняйте время, угол, ток, \\(\\Psi\\), напряжение и статус состояния преобразователя.",
        "Повторите с половинным шагом и отдельно уточнённой картой; сравните пики и энергию."
      ],
      "expected": "Проверенная цепная временная модель с обработкой коммутации и понятной энергетикой.",
      "verification": "Точный RL-эталон, шаг времени, шаг карты и события проверены раздельно.",
      "table_number": "42.5"
    },
    "sourceAssignment": {
      "task": "Смоделируйте токовую импульсную серию при двух углах выключения и объясните изменение энергии возврата.",
      "acceptance": "Интегратор проверен аналитически; события разрешены; область карты соблюдена; энергетические знаки согласованы."
    }
  }
}
