{
  "assignment": {
    "id": "practice-ii01-2",
    "lessonId": "II01.2",
    "version": "2026-10-16.2",
    "primary": true,
    "displayNumber": "27.2",
    "title": "Движение ротора, сектор и угловая дискретизация",
    "summary": "Автоматический проход по углу требует правильной периодичности источников и независимой проверки сектора по полной модели.",
    "part": "V",
    "partLabel": "Встроенный Python FEMM 5",
    "moduleId": "V.02",
    "moduleTitle": "Параметрическая геометрия, движение и сетка",
    "position": 93,
    "category": "Python и расчёт",
    "durationMinutes": 120,
    "environment": "FEMM 5; запишите точную сборку, физический модуль, единицы, тип задачи и параметры своего опыта. Для аналитической части укажите формулы и исходные данные; для Python — встроенную среду и рабочий каталог.",
    "instructions": [
      {
        "title": "Уточните выданное условие",
        "text": "Выполните базовый практикум «Угловая серия без повторной конечной точки» по шагам занятия. Затем выполните самостоятельную часть: Проверьте основную ЭДС на N = 48, 96 и 192. Объясните, почему совпадение основной гармоники не доказывает точность зубцового момента."
      },
      {
        "title": "Откройте исходный практикум",
        "text": "Сопоставьте условия варианта с параметрами и действиями занятия. Сохраните исходники отдельно; работайте в своём каталоге.",
        "href": "lessons/ii01-2/index.html#practice"
      },
      {
        "title": "Подготовьте результат",
        "text": "Выполните запрошенные действия. В таблице укажите величину, значение, единицу, метод и файл-источник; для ошибки оставьте численное поле пустым и запишите причину. Пустой шаблон CSV не является результатом."
      },
      {
        "title": "Проверьте доказательства",
        "text": "1. Названы собственные материалы, использованные средства расчёта, единицы, параметры и режимы; для полевой работы указана сборка FEMM. Числа из примера отделены от самостоятельно полученных результатов.\n2. По переданному ответу и файлам можно повторить формулы или действия и найти каждый результат. Для полевого расчёта указаны порядок запуска, точки, области и контуры измерений; пропуски и отказы объяснены.\n3. Угловая и пространственная сходимость проверяются отдельно; изменение угла не меняет число витков.\n4. Период выведен; крайняя точка не дублируется; сектор сопоставлен с полной моделью; шаги и коэффициенты документированы.\n5. Период выведен; крайняя точка не дублируется; сектор сопоставлен с полной моделью; шаги и коэффициенты документированы.\n6. Угловая и пространственная сходимость проверяются отдельно; изменение угла не меняет число витков."
      },
      {
        "title": "Сдайте и получите отзыв",
        "text": "Заполните результаты, приложите обязательные файлы и скачайте ZIP. Передайте его преподавателю. Полученный JSON откройте на шаге 5; при замечаниях подготовьте новую версию.",
        "href": "workspace/index.html?assignment=practice-ii01-2&variant=A#assignment-work"
      }
    ],
    "variants": [
      {
        "id": "A",
        "title": "A · Практикум и самостоятельная работа",
        "task": "Выполните базовый практикум «Угловая серия без повторной конечной точки» по шагам занятия. Затем выполните самостоятельную часть: Проверьте основную ЭДС на N = 48, 96 и 192. Объясните, почему совпадение основной гармоники не доказывает точность зубцового момента.",
        "sourceTask": "Проверьте основную ЭДС на \\(N\\) = 48, 96 и 192. Объясните, почему совпадение основной гармоники не доказывает точность зубцового момента.",
        "sourceVariantId": "II01.2:source-assignment",
        "sourceRubric": [
          "Период выведен; крайняя точка не дублируется; сектор сопоставлен с полной моделью; шаги и коэффициенты документированы.",
          "Угловая и пространственная сходимость проверяются отдельно; изменение угла не меняет число витков."
        ],
        "source": {
          "file": "course-site/data/lessons-embedded.json",
          "lessonId": "II01.2",
          "field": "assignment + practice.verification",
          "sha256": "ce0962c054fbbd3562f421c3ddc53fccae08374844addbdd77fa0cb53287fe0e"
        },
        "kind": "practice",
        "parameters": [
          {
            "name": "Пары полюсов",
            "value": "4",
            "unit": ""
          },
          {
            "name": "Скорость",
            "value": "1500",
            "unit": "об/мин"
          },
          {
            "name": "Точки",
            "value": "96",
            "unit": ""
          },
          {
            "name": "Имя границы",
            "value": "SlidingGap",
            "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": "Угловая и пространственная сходимость проверяются отдельно; изменение угла не меняет число витков."
          },
          {
            "id": "source-task",
            "label": "Самостоятельная часть",
            "description": "Период выведен; крайняя точка не дублируется; сектор сопоставлен с полной моделью; шаги и коэффициенты документированы."
          },
          {
            "id": "evidence-1",
            "label": "Предметный критерий 1",
            "description": "Период выведен; крайняя точка не дублируется; сектор сопоставлен с полной моделью; шаги и коэффициенты документированы."
          },
          {
            "id": "evidence-2",
            "label": "Предметный критерий 2",
            "description": "Угловая и пространственная сходимость проверяются отдельно; изменение угла не меняет число витков."
          }
        ],
        "requiredExtensions": [
          ".fem",
          ".py",
          ".csv"
        ],
        "requiredFileCounts": [
          {
            "extension": ".fem",
            "minimum": 1
          },
          {
            "extension": ".py",
            "minimum": 1
          },
          {
            "extension": ".csv",
            "minimum": 1
          }
        ],
        "allowEmptyFiles": false,
        "referenceNote": "Форма проверяет заполнение ответа. Предметную правильность по приведённым критериям подтверждает преподаватель. Базовые параметры и шаги относятся к исходному практикуму; изменения для выбранного варианта заданы в его условии. Не подставляйте учебный ориентир вместо собственного измерения.",
        "instructions": [
          {
            "title": "Уточните выданное условие",
            "text": "Выполните базовый практикум «Угловая серия без повторной конечной точки» по шагам занятия. Затем выполните самостоятельную часть: Проверьте основную ЭДС на N = 48, 96 и 192. Объясните, почему совпадение основной гармоники не доказывает точность зубцового момента."
          },
          {
            "title": "Откройте исходный практикум",
            "text": "Сопоставьте условия варианта с параметрами и действиями занятия. Сохраните исходники отдельно; работайте в своём каталоге.",
            "href": "lessons/ii01-2/index.html#practice"
          },
          {
            "title": "Подготовьте результат",
            "text": "Выполните запрошенные действия. В таблице укажите величину, значение, единицу, метод и файл-источник; для ошибки оставьте численное поле пустым и запишите причину. Пустой шаблон CSV не является результатом."
          },
          {
            "title": "Проверьте доказательства",
            "text": "1. Названы собственные материалы, использованные средства расчёта, единицы, параметры и режимы; для полевой работы указана сборка FEMM. Числа из примера отделены от самостоятельно полученных результатов.\n2. По переданному ответу и файлам можно повторить формулы или действия и найти каждый результат. Для полевого расчёта указаны порядок запуска, точки, области и контуры измерений; пропуски и отказы объяснены.\n3. Угловая и пространственная сходимость проверяются отдельно; изменение угла не меняет число витков.\n4. Период выведен; крайняя точка не дублируется; сектор сопоставлен с полной моделью; шаги и коэффициенты документированы.\n5. Период выведен; крайняя точка не дублируется; сектор сопоставлен с полной моделью; шаги и коэффициенты документированы.\n6. Угловая и пространственная сходимость проверяются отдельно; изменение угла не меняет число витков."
          },
          {
            "title": "Сдайте и получите отзыв",
            "text": "Заполните результаты, приложите обязательные файлы и скачайте ZIP. Передайте его преподавателю. Полученный JSON откройте на шаге 5; при замечаниях подготовьте новую версию.",
            "href": "workspace/index.html?assignment=practice-ii01-2&variant=A#assignment-work"
          }
        ]
      },
      {
        "id": "B",
        "title": "B · Защита выполненной работы",
        "task": "Защитите ранее выполненный практикум A. В письменном ответе укажите код/имя своей работы A и опирайтесь на её результаты. Вопрос защиты: Когда сектор становится недопустимым?",
        "sourceTask": "Когда сектор становится недопустимым?",
        "sourceVariantId": "II01.2:oral-defense",
        "sourceRubric": [
          "Когда несимметричная нагрузка, геометрия или магнитизация нарушает используемый закон периодичности.",
          "Угловая и пространственная сходимость проверяются отдельно; изменение угла не меняет число витков."
        ],
        "source": {
          "file": "course-site/data/lessons-embedded.json",
          "lessonId": "II01.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": "Угловая и пространственная сходимость проверяются отдельно; изменение угла не меняет число витков."
          }
        ],
        "requiredExtensions": [],
        "requiredFileCounts": [],
        "allowEmptyFiles": true,
        "referenceNote": "Форма проверяет заполнение ответа. Предметную правильность по приведённым критериям подтверждает преподаватель. Защита относится к выполненной работе A; повторный полевой расчёт для одного вопроса не требуется.",
        "instructions": [
          {
            "title": "Уточните выданное условие",
            "text": "Защитите ранее выполненный практикум A. В письменном ответе укажите код/имя своей работы A и опирайтесь на её результаты. Вопрос защиты: Когда сектор становится недопустимым?"
          },
          {
            "title": "Откройте исходный практикум",
            "text": "Сопоставьте условия варианта с параметрами и действиями занятия. Сохраните исходники отдельно; работайте в своём каталоге.",
            "href": "lessons/ii01-2/index.html#practice"
          },
          {
            "title": "Подготовьте результат",
            "text": "Подготовьте письменный ответ с отсылками к своему пакету A. Дополнительные файлы можно приложить, если они нужны для объяснения."
          },
          {
            "title": "Проверьте доказательства",
            "text": "1. Указана работа A, её условия и конкретные результаты, на которые опирается ответ.\n2. Ответ содержит ход рассуждения и способ проверить вывод на сохранённых результатах работы A.\n3. Когда несимметричная нагрузка, геометрия или магнитизация нарушает используемый закон периодичности.\n4. Угловая и пространственная сходимость проверяются отдельно; изменение угла не меняет число витков."
          },
          {
            "title": "Сдайте и получите отзыв",
            "text": "Заполните результаты, приложите обязательные файлы и скачайте ZIP. Передайте его преподавателю. Полученный JSON откройте на шаге 5; при замечаниях подготовьте новую версию.",
            "href": "workspace/index.html?assignment=practice-ii01-2&variant=B#assignment-work"
          }
        ]
      }
    ],
    "downloads": [
      {
        "label": "Итоговая модель FEMM",
        "path": "downloads/examples/spm/Поверхностные-магниты-09-Готовая-модель.fem",
        "sha256": "bd549ade9efa0dd638ab057015ae7cb67c4673f5f9610f875e6a5418da53ab50",
        "role": "reference"
      },
      {
        "label": "Численные результаты",
        "path": "results/spm.json",
        "sha256": "396bfd752a9aca62b60bde22426dd0eefb68701941750c905f4d2eb148bbba4b",
        "role": "reference"
      },
      {
        "label": "Исходная программа занятия",
        "path": "downloads/python/II01-2_Угловые_положения_ротора.py",
        "sha256": "9f6e9dd8c2a15c5dbbfa6ae4785010282f9a05a4a4345b86f30fba3222ce0ae4",
        "role": "source-code"
      },
      {
        "label": "Пустой шаблон таблицы результатов CSV",
        "path": "downloads/assignments/ii01-2/results-template.csv",
        "sha256": "05d084635358f5c0f35abb574502b01a65ad6a4e3d7865c00063815c7b1d3092",
        "role": "blank-template"
      }
    ],
    "requiredExtensions": [
      ".fem",
      ".py",
      ".csv"
    ],
    "criteria": [
      {
        "id": "source",
        "label": "Исходные условия и происхождение",
        "description": "Названы собственные материалы, использованные средства расчёта, единицы, параметры и режимы; для полевой работы указана сборка FEMM. Числа из примера отделены от самостоятельно полученных результатов."
      },
      {
        "id": "reproduce",
        "label": "Повторение по переданным файлам",
        "description": "По переданному ответу и файлам можно повторить формулы или действия и найти каждый результат. Для полевого расчёта указаны порядок запуска, точки, области и контуры измерений; пропуски и отказы объяснены."
      },
      {
        "id": "practice",
        "label": "Выполнение базового практикума",
        "description": "Угловая и пространственная сходимость проверяются отдельно; изменение угла не меняет число витков."
      },
      {
        "id": "source-task",
        "label": "Самостоятельная часть",
        "description": "Период выведен; крайняя точка не дублируется; сектор сопоставлен с полной моделью; шаги и коэффициенты документированы."
      },
      {
        "id": "evidence-1",
        "label": "Предметный критерий 1",
        "description": "Период выведен; крайняя точка не дублируется; сектор сопоставлен с полной моделью; шаги и коэффициенты документированы."
      },
      {
        "id": "evidence-2",
        "label": "Предметный критерий 2",
        "description": "Угловая и пространственная сходимость проверяются отдельно; изменение угла не меняет число витков."
      }
    ],
    "reflectionPrompts": [
      "Равен ли проход по углу прямому переходному полевому расчёту?",
      "Когда сектор становится недопустимым?"
    ],
    "limitations": "Иллюстративный двумерный расчёт. Модель стали с постоянной магнитной проницаемостью не описывает насыщение. Идеализированные обмотки с нулевой проводимостью не учитывают все потери. Сеточная проверка момента этой рабочей точки выполнена отдельно; её критерии, методы и границы приведены в протоколе. В FEMM 5.0 06Oct2026 постпроцессор неверно учитывает выражения theta/theta+180 при вычислении H и интеграла энергии 2. Здесь энергия получена отдельным интегрированием с фактическим локальным направлением магнитизации. Исходный вывод интеграла сохранён в численных результатах; способ исправления приведён в подробном примере и программе его шага 11. У острых кромок модели стали с постоянной проницаемостью возможны большие локальные значения B. Они не описывают реальный материал и сами по себе не доказывают насыщение или повреждение. Проверяйте нелинейную характеристику материала и сходимость поля в физически заданной области.",
    "verificationNote": "Расширен путь сдачи и проверки исходного практикума. Новое выполнение всех вариантов в FEMM этим изменением не заявляется. Сохранённые результаты примеров относятся только к указанным в них моделям и условиям.",
    "teacherPlan": [
      {
        "minutes": 10,
        "title": "Условие и прогноз",
        "text": "Выдать A или продолжение B; проверить исходные данные и связь с практикумом."
      },
      {
        "minutes": 85,
        "title": "Выполнение",
        "text": "Угловая серия без повторной конечной точки"
      },
      {
        "minutes": 15,
        "title": "Проверка и пакет",
        "text": "Угловая и пространственная сходимость проверяются отдельно; изменение угла не меняет число витков."
      },
      {
        "minutes": 10,
        "title": "Обратная связь",
        "text": "Применить рубрику выбранного варианта; вернуть адресные замечания и проверить новую сдачу."
      }
    ],
    "sources": [
      {
        "file": "course-site/data/lessons-embedded.json",
        "lessonId": "II01.2",
        "field": "objectives + questions + assignment",
        "sha256": "ce0962c054fbbd3562f421c3ddc53fccae08374844addbdd77fa0cb53287fe0e"
      },
      {
        "path": "tools/assignment_expansion.py",
        "kind": "source-backed-workflow"
      }
    ],
    "sourcePractice": {
      "title": "Угловая серия без повторной конечной точки",
      "parameters": [
        {
          "name": "Пары полюсов",
          "value": "4",
          "unit": ""
        },
        {
          "name": "Скорость",
          "value": "1500",
          "unit": "об/мин"
        },
        {
          "name": "Точки",
          "value": "96",
          "unit": ""
        },
        {
          "name": "Имя границы",
          "value": "SlidingGap",
          "unit": ""
        }
      ],
      "steps": [
        "Сначала рассчитайте полную модель машины с поверхностными магнитами в двух положениях и запишите потокосцепления.",
        "Проверьте закон изменения токов и намагниченности на парных границах предполагаемого сектора.",
        "При использовании скользящей границы изменяйте внутренний угол mi_modifyboundprop(\"SlidingGap\", 10, angle_deg); внешний угол оставьте заданным.",
        "Для каждого положения решайте задачу, загружайте результат и считывайте \\(\\Psi\\) всех фаз; записывайте механический угол.",
        "Сравните восстановленные секторные значения с полной моделью. Для \\(\\Psi\\), энергии и момента отдельно выведите коэффициент восстановления.",
        "Повторите проход с удвоенным числом точек, затем сравните среднее, основную гармонику и интересующие высокие гармоники."
      ],
      "expected": "Последовательность отдельных статических решений с доказанной периодичностью; временная ЭДС восстанавливается по скорости.",
      "verification": "Угловая и пространственная сходимость проверяются отдельно; изменение угла не меняет число витков.",
      "table_number": "27.5"
    },
    "sourceAssignment": {
      "task": "Проверьте основную ЭДС на \\(N\\) = 48, 96 и 192. Объясните, почему совпадение основной гармоники не доказывает точность зубцового момента.",
      "acceptance": "Период выведен; крайняя точка не дублируется; сектор сопоставлен с полной моделью; шаги и коэффициенты документированы."
    }
  },
  "lesson": {
    "id": "II01.2",
    "title": "Движение ротора, сектор и угловая дискретизация",
    "summary": "Автоматический проход по углу требует правильной периодичности источников и независимой проверки сектора по полной модели.",
    "objectives": [
      "Выбирать период и угловой шаг, менять положение ротора без потери исходного состояния.",
      "Построить N различных положений на обоснованном механическом периоде.",
      "Связать механический угол, электрический угол, скорость и частоту без заявления о transient-решении."
    ],
    "prerequisites": [
      "II01.1"
    ],
    "theory": [
      {
        "heading": "Физическая и вычислительная постановка",
        "paragraphs": [
          "Механический угол поворота ротора и электрический угол связаны числом пар полюсов. Из этой связи следует частота основной электрической гармоники при заданной скорости. Однако период зубцового момента определяется совместной периодичностью зубцов и полюсов; его нельзя всегда принять равным электрическому периоду. Сектор допускается лишь тогда, когда на его границах согласованы геометрия, токи и направления намагниченности.",
          "Во вращающейся модели FEMM предпочтительно использовать предусмотренную скользящую воздушную границу, если она уже правильно настроена. Изменение свойства 10 у mi_modifyboundprop задаёт угол внутренней стороны, свойства 11 — внешней. Альтернативный метод — поворот группы геометрии mi_moverotate при корректном выборе объектов и последующем перестроении сетки. В обоих случаях задают абсолютное состояние либо возвращают ротор к исходному углу. Накопление приращений без контроля ухудшает повторяемость и может смешать углы данных."
        ],
        "formulas": [
          {
            "latex": "\\theta_{\\text{эл}}=p\\theta_{\\text{мех}},\\quad f=\\frac{pn}{60},\\quad \\Delta\\theta_{\\text{мех}}=\\frac{360^{\\circ}}{pN}",
            "explanation": "\\(p\\) — число пар полюсов; \\(n\\) — скорость, об/мин; \\(N\\) — точки на электрический период без повторной конечной точки.",
            "number": "27.3",
            "anchor": "eq-ii01-2-1"
          }
        ]
      },
      {
        "heading": "Порядок проверки результата",
        "paragraphs": [
          "Численный пример ниже является аналитическим учебным эталоном. Его значения вычислены по указанным формулам; они не обозначают результат решения новой модели методом конечных элементов. Практикум связывает эталон с полевой задачей: сначала воспроизведите уже проверенный результат части I, затем измените только один исследуемый параметр. Именно такое сравнение позволяет отделить ошибку программы от влияния геометрии, сетки и физического приближения. Сохраните исходную модель, рабочую копию и таблицу с заголовками величин. В подписи каждой величины укажите единицу, положительное направление и способ получения; для гармонических величин дополнительно укажите амплитудную нормировку. Если условие задачи не выполнено, остановите серию и сохраните причину отказа вместе с последним корректным состоянием."
        ],
        "formulas": []
      },
      {
        "heading": "Пояснение программы",
        "paragraphs": [
          "Цикл range(samples) охватывает один электрический период без повторения конечной точки. Число пар полюсов определяет соответствующий механический угол. Команды в комментариях показывают два способа изменения положения ротора. Они не выполняются в неподготовленной модели. Для поворота геометрии группа должна включать узлы, сегменты, дуги и метки материала; перенос одной метки не переносит границу ротора."
        ],
        "formulas": []
      },
      {
        "heading": "Угловая сетка и недопущение накопления ошибки",
        "paragraphs": [
          "Число точек задаётся для определённого электрического или механического периода. Начальная и конечная совпадающие точки не дублируются в спектральной выборке."
        ],
        "formulas": [],
        "derivation_steps": [
          {
            "text": "Переведите электрический угол в механический через число пар полюсов. Проверьте, какой именно угол принимает команда перемещения или скользящей границы."
          },
          {
            "text": "Для каждого состояния задавайте положение относительно исходной геометрии либо проверяйте накопленный поворот. Последовательное прибавление округлённого шага может нарушить замыкание периода."
          },
          {
            "text": "Удвойте число угловых точек и сравните средний момент, размах и выбранные гармоники. Сходимость среднего не гарантирует сходимости высоких гармоник."
          }
        ],
        "symbols": [
          {
            "symbol": "\\theta",
            "meaning": "Механический угол при дифференцировании энергии",
            "unit": "рад"
          },
          {
            "symbol": "p",
            "meaning": "Число пар полюсов",
            "unit": "1"
          },
          {
            "symbol": "n",
            "meaning": "Частота вращения",
            "unit": "об/мин"
          },
          {
            "symbol": "f",
            "meaning": "Частота гармоники",
            "unit": "Гц"
          },
          {
            "symbol": "T",
            "meaning": "Электромагнитный момент",
            "unit": "Н·м"
          }
        ],
        "applicability": "Сектор и минимальный период зависят от совместной симметрии токов, пазов и полюсов. Высокочастотные пространственные гармоники требуют шага меньше условия Найквиста с запасом.",
        "editorial_tag": "textbook-math-2026-10",
        "symbols_number": "27.4"
      }
    ],
    "worked_example": {
      "title": "Вычисленный аналитический эталон",
      "given": "\\(p\\) = 4; \\(n\\) = 1500 об/мин; \\(N\\) = 96 точек на электрический период.",
      "steps": [
        {
          "text": "Электрическая частота \\(f\\) = 4 · 1500 / 60 = 100 Гц.",
          "latex": "f=\\frac{4\\cdot1500}{60}=100\\ \\text{Гц},\\quad\\Delta\\theta_{\\text{мех}}=\\frac{360^{\\circ}}{4\\cdot96}=0{,}9375^{\\circ}",
          "formula_number": "27.4",
          "anchor": "eq-ii01-2-2"
        },
        {
          "text": "Электрический период соответствует 360°/4 = 90° механического угла."
        },
        {
          "text": "Шаг 90°/96 = 0,9375°. Точки: 0°…89,0625°; 90° повторно не добавляется."
        }
      ],
      "answer": "96 различных точек; \\(\\Delta\\theta_{\\text{мех}}\\) = 0,9375°; \\(f\\) = 100 Гц.",
      "check": "Удвоение \\(N\\) уменьшает шаг вдвое; первая и последняя строки не должны быть копиями одного положения."
    },
    "practice": {
      "title": "Угловая серия без повторной конечной точки",
      "parameters": [
        {
          "name": "Пары полюсов",
          "value": "4",
          "unit": ""
        },
        {
          "name": "Скорость",
          "value": "1500",
          "unit": "об/мин"
        },
        {
          "name": "Точки",
          "value": "96",
          "unit": ""
        },
        {
          "name": "Имя границы",
          "value": "SlidingGap",
          "unit": ""
        }
      ],
      "steps": [
        "Сначала рассчитайте полную модель машины с поверхностными магнитами в двух положениях и запишите потокосцепления.",
        "Проверьте закон изменения токов и намагниченности на парных границах предполагаемого сектора.",
        "При использовании скользящей границы изменяйте внутренний угол mi_modifyboundprop(\"SlidingGap\", 10, angle_deg); внешний угол оставьте заданным.",
        "Для каждого положения решайте задачу, загружайте результат и считывайте \\(\\Psi\\) всех фаз; записывайте механический угол.",
        "Сравните восстановленные секторные значения с полной моделью. Для \\(\\Psi\\), энергии и момента отдельно выведите коэффициент восстановления.",
        "Повторите проход с удвоенным числом точек, затем сравните среднее, основную гармонику и интересующие высокие гармоники."
      ],
      "expected": "Последовательность отдельных статических решений с доказанной периодичностью; временная ЭДС восстанавливается по скорости.",
      "verification": "Угловая и пространственная сходимость проверяются отдельно; изменение угла не меняет число витков.",
      "table_number": "27.5"
    },
    "widget": {
      "type": "spectrum",
      "config": {
        "variant": "angle-grid",
        "polePairs": 4,
        "speedRpm": 1500,
        "samples": 96,
        "amplitude": 0.08,
        "harmonic": 5,
        "harmonicRatio": 0.03
      },
      "figure_numbers": {
        "main": "27.10",
        "schematic": "27.11",
        "response": "27.12"
      }
    },
    "questions": [
      {
        "question": "Равен ли проход по углу прямому переходному полевому расчёту?",
        "answer": "Нет. У каждого положения независимо решается статическая задача; вихретоковая память не возникает автоматически."
      },
      {
        "question": "Когда сектор становится недопустимым?",
        "answer": "Когда несимметричная нагрузка, геометрия или магнитизация нарушает используемый закон периодичности."
      }
    ],
    "assignment": {
      "task": "Проверьте основную ЭДС на \\(N\\) = 48, 96 и 192. Объясните, почему совпадение основной гармоники не доказывает точность зубцового момента.",
      "acceptance": "Период выведен; крайняя точка не дублируется; сектор сопоставлен с полной моделью; шаги и коэффициенты документированы."
    },
    "pitfalls": [
      "Сохранять электрический угол в колонке механического без обозначения нельзя.",
      "Автоматическое умножение всех результатов на число секторов ошибочно для величин с разной нормировкой."
    ],
    "sources": [
      {
        "title": "Руководство FEMM 5, редакция от 1 октября 2026 года",
        "url": "https://www.femm.info/doku/lib/exe/fetch.php?media=femm-qt:docs:manual.pdf",
        "pages": "30, 100–105, 110–111",
        "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"
      },
      {
        "title": "Bianchi: методика полевого анализа электрических машин; старые Lua-команды здесь заменяются встроенным Python",
        "url": "https://www.femm.info/dmeeker/pdf/08096985.pdf",
        "pages": "Выделенный Bianchi_FEMM_Lua_section.pdf, с. 72–83; исходный PDF, с. 107–118"
      },
      {
        "title": "Power Electronics Group: схема построения и анализа FEMM-модели наружного ротора",
        "url": "https://powerelectronicsgroup.com/wp-content/uploads/2025/10/Day-Three-Workshop-Slides.pdf",
        "pages": "Скачанный Day-Three-Workshop-Slides.pdf, с. 65–73, 78–82. Раздел управления MATLAB не входит в учебный маршрут."
      }
    ],
    "model_family": "spm",
    "code": [
      {
        "title": "Расчёт абсолютных углов прохода",
        "language": "python",
        "source": "# Задаём число угловых отсчётов в одном электрическом периоде.\n# Число пар полюсов переводит электрический период в механический угол.\nsamples = 96\npole_pairs = 4\nfor index in range(samples):\n    # Крайняя точка периода не повторяется: индекс изменяется от 0 до samples − 1.\n    angle_deg = 360.0 * index / (pole_pairs * samples)\n    # Порядок вывода: номер отсчёта; абсолютный механический угол, градусы.\n    print(index, angle_deg)\n# Для модели с правильно созданной скользящей границей перед решением:\n# mi_modifyboundprop(\"SlidingGap\", 10, angle_deg)\n# В учебном Поверхностные-магниты-09-Готовая-модель.fem такой границы нет: поворот всей геометрии ротора\n# требует группы, включающей узлы, сегменты, дуги и метки, а не только метки.\n# После проверки этой группы используется mi_selectgroup(2),\n# mi_moverotate(0, 0, angle_deg-previous_angle, 4), mi_clearselected().\n",
        "explanation": "Вычисление углов проверяется независимо. Учебный файл spm.fem не объявляется моделью со скользящей границей; способы движения выбираются по действительной топологии.",
        "highlighted": "<span class=\"c1\"># Задаём число угловых отсчётов в одном электрическом периоде.</span>\n<span class=\"c1\"># Число пар полюсов переводит электрический период в механический угол.</span>\n<span class=\"n\">samples</span> <span class=\"o\">=</span> <span class=\"mi\">96</span>\n<span class=\"n\">pole_pairs</span> <span class=\"o\">=</span> <span class=\"mi\">4</span>\n<span class=\"k\">for</span> <span class=\"n\">index</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"n\">samples</span><span class=\"p\">):</span>\n    <span class=\"c1\"># Крайняя точка периода не повторяется: индекс изменяется от 0 до samples − 1.</span>\n    <span class=\"n\">angle_deg</span> <span class=\"o\">=</span> <span class=\"mf\">360.0</span> <span class=\"o\">*</span> <span class=\"n\">index</span> <span class=\"o\">/</span> <span class=\"p\">(</span><span class=\"n\">pole_pairs</span> <span class=\"o\">*</span> <span class=\"n\">samples</span><span class=\"p\">)</span>\n    <span class=\"c1\"># Порядок вывода: номер отсчёта; абсолютный механический угол, градусы.</span>\n    <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">index</span><span class=\"p\">,</span> <span class=\"n\">angle_deg</span><span class=\"p\">)</span>\n<span class=\"c1\"># Для модели с правильно созданной скользящей границей перед решением:</span>\n<span class=\"c1\"># mi_modifyboundprop(\"SlidingGap\", 10, angle_deg)</span>\n<span class=\"c1\"># В учебном Поверхностные-магниты-09-Готовая-модель.fem такой границы нет: поворот всей геометрии ротора</span>\n<span class=\"c1\"># требует группы, включающей узлы, сегменты, дуги и метки, а не только метки.</span>\n<span class=\"c1\"># После проверки этой группы используется mi_selectgroup(2),</span>\n<span class=\"c1\"># mi_moverotate(0, 0, angle_deg-previous_angle, 4), mi_clearselected().</span>\n",
        "title_html": "Расчёт абсолютных углов прохода",
        "explanation_html": "Вычисление углов проверяется независимо. Учебный файл spm.fem не объявляется моделью со скользящей границей; способы движения выбираются по действительной топологии."
      }
    ],
    "slug": "ii01-2",
    "display_number": "27.2",
    "paragraph_number": 27,
    "position": 93,
    "part": "V",
    "part_label": "Встроенный Python FEMM 5",
    "module_id": "V.02",
    "module_title": "Параметрическая геометрия, движение и сетка",
    "module_hours": 6.0,
    "curriculum_path": [
      "V",
      "V.02"
    ],
    "siblings": [
      {
        "id": "II01.1",
        "title": "Параметрическая геометрия и обмотки",
        "slug": "ii01-1",
        "sourceFile": "course-site/data/lessons-embedded.json",
        "legacyId": "II01.1",
        "moduleId": "V.02",
        "hours": 2.0,
        "displayNumber": "V.02.1",
        "display_number": "27.1"
      },
      {
        "id": "II01.2",
        "title": "Движение ротора, сектор и угловая дискретизация",
        "slug": "ii01-2",
        "sourceFile": "course-site/data/lessons-embedded.json",
        "legacyId": "II01.2",
        "moduleId": "V.02",
        "hours": 2.0,
        "displayNumber": "V.02.2",
        "display_number": "27.2"
      },
      {
        "id": "II01.3",
        "title": "Автоматический контроль сетки и независимых параметров",
        "slug": "ii01-3",
        "sourceFile": "course-site/data/lessons-embedded.json",
        "legacyId": "II01.3",
        "moduleId": "V.02",
        "hours": 2.0,
        "displayNumber": "V.02.3",
        "display_number": "27.3"
      }
    ],
    "previous": {
      "id": "II01.1",
      "slug": "ii01-1",
      "title": "Параметрическая геометрия и обмотки",
      "display_number": "27.1"
    },
    "next": {
      "id": "II01.3",
      "slug": "ii01-3",
      "title": "Автоматический контроль сетки и независимых параметров",
      "display_number": "27.3"
    },
    "formula_count": 2,
    "fe_reference": {
      "name": "spm",
      "description": "Расчёт выполнен установленным FEMM 5.0, сборка 06Oct2026, встроенным Python. Файл модели и решение позволяют повторить опыт; параметры этого образца указаны ниже. Повторный полевой расчёт 15 октября 2026 года и построение из учебной Python-программы подтвердили воспроизводимость модели. Таблица и карта поля относятся к исходной учебной сетке; уточнение момента дано ниже и в отдельном разделе примера.",
      "scope": "Иллюстративный двумерный расчёт. Модель стали с постоянной магнитной проницаемостью не описывает насыщение. Идеализированные обмотки с нулевой проводимостью не учитывают все потери. Сеточная проверка момента этой рабочей точки выполнена отдельно; её критерии, методы и границы приведены в протоколе. В FEMM 5.0 06Oct2026 постпроцессор неверно учитывает выражения theta/theta+180 при вычислении H и интеграла энергии 2. Здесь энергия получена отдельным интегрированием с фактическим локальным направлением магнитизации. Исходный вывод интеграла сохранён в численных результатах; способ исправления приведён в подробном примере и программе его шага 11. У острых кромок модели стали с постоянной проницаемостью возможны большие локальные значения B. Они не описывают реальный материал и сами по себе не доказывают насыщение или повреждение. Проверяйте нелинейную характеристику материала и сходимость поля в физически заданной области.",
      "metrics": [
        {
          "name": "Частота",
          "value": "0",
          "unit": "Гц"
        },
        {
          "name": "Активная длина",
          "value": "80",
          "unit": "мм"
        },
        {
          "name": "Ток цепи Фаза А",
          "value": "1",
          "unit": "А"
        },
        {
          "name": "Потокосцепление цепи Фаза А",
          "value": "0,001815925",
          "unit": "Вб"
        },
        {
          "name": "Ток цепи Фаза С",
          "value": "-2",
          "unit": "А"
        },
        {
          "name": "Потокосцепление цепи Фаза С",
          "value": "-0,2922278",
          "unit": "Вб"
        },
        {
          "name": "Ток цепи Фаза В",
          "value": "1",
          "unit": "А"
        },
        {
          "name": "Потокосцепление цепи Фаза В",
          "value": "0,2904196",
          "unit": "Вб"
        },
        {
          "name": "Момент на исходной учебной сетке",
          "value": "-1,156277",
          "unit": "Н·м"
        },
        {
          "name": "Энергия по локальному направлению магнитизации",
          "value": "35,15487",
          "unit": "Дж"
        },
        {
          "name": "Модуль B в контрольной точке",
          "value": "0,8502577",
          "unit": "Тл"
        },
        {
          "name": "Координаты контрольной точки (x, y)",
          "value": "56,42198; 17,24993",
          "unit": "мм"
        },
        {
          "name": "Момент на проверенной уточнённой сетке",
          "value": "−1,152",
          "unit": "Н·м"
        }
      ],
      "files": [
        {
          "path": "downloads/examples/spm/Поверхностные-магниты-09-Готовая-модель.fem",
          "title": "Итоговая модель FEMM",
          "download_name": "Поверхностные-магниты-09-Готовая-модель.fem",
          "sha256": "bd549ade9efa0dd638ab057015ae7cb67c4673f5f9610f875e6a5418da53ab50",
          "bytes": 17387
        },
        {
          "path": "downloads/examples/spm/Поверхностные-магниты-09-Готовая-модель.ans",
          "title": "Сохранённое решение эталона",
          "download_name": "Поверхностные-магниты-09-Готовая-модель.ans",
          "sha256": "e2933464be113c6343201bca8b681b555b40d88a8e3a58a77b971a6488714fad",
          "bytes": 3172570
        },
        {
          "path": "results/spm.json",
          "title": "Численные результаты"
        },
        {
          "path": "examples/spm/index.html#torque-mesh",
          "title": "Уточнённый момент и проверенная сетка"
        }
      ],
      "image": "images/fields/spm.svg",
      "caption": "Визуализация численных данных FEMM 5: Машина с поверхностными постоянными магнитами. Это экспорт результатов поля, а не снимок окна программы.",
      "image_width": 960,
      "image_height": 900,
      "table_number": "27.6",
      "figure_number": "27.13"
    },
    "code_download": "downloads/python/II01-2_Угловые_положения_ротора.py",
    "code_download_name": "II01-2_Угловые_положения_ротора.py",
    "code_download_title": "Программа: Расчёт абсолютных углов прохода",
    "screenshots": [
      {
        "shot_id": "34-spm-geometry",
        "path": "images/screenshots/34-spm-geometry.png",
        "caption": "Геометрия: поверхностные постоянные магниты и проверенная трёхфазная обмотка",
        "width": 1026,
        "height": 800,
        "figure_number": "27.14"
      },
      {
        "shot_id": "34-spm-field",
        "path": "images/screenshots/34-spm-field.png",
        "caption": "Распределение магнитной индукции: поверхностные постоянные магниты и проверенная трёхфазная обмотка",
        "width": 1026,
        "height": 800,
        "figure_number": "27.15"
      },
      {
        "shot_id": "induction-antiperiodic-boundary",
        "path": "images/screenshots/supplemental/induction-antiperiodic-boundary.png",
        "caption": "Антипериодическая граница секторной асинхронной модели.",
        "width": 1026,
        "height": 800,
        "source_series": "explanation",
        "figure_number": "27.16"
      },
      {
        "shot_id": "python-ii01-2",
        "path": "images/screenshots/supplemental/python-ii01-2.png",
        "caption": "Встроенная консоль FEMM: Движение ротора, сектор и угловая дискретизация. Аналитическая проверка программы занятия.",
        "width": 1026,
        "height": 800,
        "source_series": "embedded_analytic",
        "figure_number": "27.17"
      }
    ],
    "detail_shots": [],
    "formula_refs": [
      {
        "number": "27.3",
        "anchor": "eq-ii01-2-1",
        "title": "Физическая и вычислительная постановка"
      },
      {
        "number": "27.4",
        "anchor": "eq-ii01-2-2",
        "title": "Численный пример"
      }
    ],
    "example_links": [
      {
        "id": "spm",
        "slug": "spm",
        "title": "Машина с поверхностными постоянными магнитами",
        "path": "examples/spm/index.html",
        "primary": true
      },
      {
        "id": "solenoid",
        "slug": "solenoid",
        "title": "Воздушная катушка",
        "path": "examples/solenoid/index.html",
        "primary": false
      }
    ],
    "view": {
      "id": "II01.2",
      "title": "Движение ротора, сектор и угловая дискретизация",
      "summary": "Автоматический проход по углу требует правильной периодичности источников и независимой проверки сектора по полной модели.",
      "objectives": [
        "Выбирать период и угловой шаг, менять положение ротора без потери исходного состояния.",
        "Построить N различных положений на обоснованном механическом периоде.",
        "Связать механический угол, электрический угол, скорость и частоту без заявления о transient-решении."
      ],
      "prerequisites": [
        "27.1"
      ],
      "theory": [
        {
          "heading": "Физическая и вычислительная постановка",
          "paragraphs": [
            "Механический угол поворота ротора и электрический угол связаны числом пар полюсов. Из этой связи следует частота основной электрической гармоники при заданной скорости. Однако период зубцового момента определяется совместной периодичностью зубцов и полюсов; его нельзя всегда принять равным электрическому периоду. Сектор допускается лишь тогда, когда на его границах согласованы геометрия, токи и направления намагниченности.",
            "Во вращающейся модели FEMM предпочтительно использовать предусмотренную скользящую воздушную границу, если она уже правильно настроена. Изменение свойства 10 у mi_modifyboundprop задаёт угол внутренней стороны, свойства 11 — внешней. Альтернативный метод — поворот группы геометрии mi_moverotate при корректном выборе объектов и последующем перестроении сетки. В обоих случаях задают абсолютное состояние либо возвращают ротор к исходному углу. Накопление приращений без контроля ухудшает повторяемость и может смешать углы данных."
          ],
          "formulas": [
            {
              "latex": "\\theta_{\\text{эл}}=p\\theta_{\\text{мех}},\\quad f=\\frac{pn}{60},\\quad \\Delta\\theta_{\\text{мех}}=\\frac{360^{\\circ}}{pN}",
              "explanation": "<span class=\"inline-math\" data-inline-latex=\"p\">p</span> — число пар полюсов; <span class=\"inline-math\" data-inline-latex=\"n\">n</span> — скорость, об/мин; <span class=\"inline-math\" data-inline-latex=\"N\">N</span> — точки на электрический период без повторной конечной точки.",
              "number": "27.3",
              "anchor": "eq-ii01-2-1"
            }
          ]
        },
        {
          "heading": "Порядок проверки результата",
          "paragraphs": [
            "Численный пример ниже является аналитическим учебным эталоном. Его значения вычислены по указанным формулам; они не обозначают результат решения новой модели методом конечных элементов. Практикум связывает эталон с полевой задачей: сначала воспроизведите уже проверенный результат базового раздела, затем измените только один исследуемый параметр. Именно такое сравнение позволяет отделить ошибку программы от влияния геометрии, сетки и физического приближения. Сохраните исходную модель, рабочую копию и таблицу с заголовками величин. В подписи каждой величины укажите единицу, положительное направление и способ получения; для гармонических величин дополнительно укажите амплитудную нормировку. Если условие задачи не выполнено, остановите серию и сохраните причину отказа вместе с последним корректным состоянием."
          ],
          "formulas": []
        },
        {
          "heading": "Пояснение программы",
          "paragraphs": [
            "Цикл range(samples) охватывает один электрический период без повторения конечной точки. Число пар полюсов определяет соответствующий механический угол. Команды в комментариях показывают два способа изменения положения ротора. Они не выполняются в неподготовленной модели. Для поворота геометрии группа должна включать узлы, сегменты, дуги и метки материала; перенос одной метки не переносит границу ротора."
          ],
          "formulas": []
        },
        {
          "heading": "Угловая сетка и недопущение накопления ошибки",
          "paragraphs": [
            "Число точек задаётся для определённого электрического или механического периода. Начальная и конечная совпадающие точки не дублируются в спектральной выборке."
          ],
          "formulas": [],
          "derivation_steps": [
            {
              "text": "Переведите электрический угол в механический через число пар полюсов. Проверьте, какой именно угол принимает команда перемещения или скользящей границы."
            },
            {
              "text": "Для каждого состояния задавайте положение относительно исходной геометрии либо проверяйте накопленный поворот. Последовательное прибавление округлённого шага может нарушить замыкание периода."
            },
            {
              "text": "Удвойте число угловых точек и сравните средний момент, размах и выбранные гармоники. Сходимость среднего не гарантирует сходимости высоких гармоник."
            }
          ],
          "symbols": [
            {
              "symbol": "\\theta",
              "meaning": "Механический угол при дифференцировании энергии",
              "unit": "рад"
            },
            {
              "symbol": "p",
              "meaning": "Число пар полюсов",
              "unit": "1"
            },
            {
              "symbol": "n",
              "meaning": "Частота вращения",
              "unit": "об/мин"
            },
            {
              "symbol": "f",
              "meaning": "Частота гармоники",
              "unit": "Гц"
            },
            {
              "symbol": "T",
              "meaning": "Электромагнитный момент",
              "unit": "Н·м"
            }
          ],
          "applicability": "Сектор и минимальный период зависят от совместной симметрии токов, пазов и полюсов. Высокочастотные пространственные гармоники требуют шага меньше условия Найквиста с запасом.",
          "editorial_tag": "textbook-math-2026-10",
          "symbols_number": "27.4"
        }
      ],
      "worked_example": {
        "title": "Вычисленный аналитический эталон",
        "given": "<span class=\"inline-math\" data-inline-latex=\"p\">p</span> = 4; <span class=\"inline-math\" data-inline-latex=\"n\">n</span> = 1500 об/мин; <span class=\"inline-math\" data-inline-latex=\"N\">N</span> = 96 точек на электрический период.",
        "steps": [
          {
            "text": "Электрическая частота <span class=\"inline-math\" data-inline-latex=\"f\">f</span> = 4 · 1500 / 60 = 100 Гц.",
            "latex": "f=\\frac{4\\cdot1500}{60}=100\\ \\text{Гц},\\quad\\Delta\\theta_{\\text{мех}}=\\frac{360^{\\circ}}{4\\cdot96}=0{,}9375^{\\circ}",
            "formula_number": "27.4",
            "anchor": "eq-ii01-2-2"
          },
          {
            "text": "Электрический период соответствует 360°/4 = 90° механического угла."
          },
          {
            "text": "Шаг 90°/96 = 0,9375°. Точки: 0°…89,0625°; 90° повторно не добавляется."
          }
        ],
        "answer": "96 различных точек; <span class=\"inline-math\" data-inline-latex=\"\\Delta\\theta_{\\text{мех}}\">\\Delta\\theta_{\\text{мех}}</span> = 0,9375°; <span class=\"inline-math\" data-inline-latex=\"f\">f</span> = 100 Гц.",
        "check": "Удвоение <span class=\"inline-math\" data-inline-latex=\"N\">N</span> уменьшает шаг вдвое; первая и последняя строки не должны быть копиями одного положения."
      },
      "practice": {
        "title": "Угловая серия без повторной конечной точки",
        "parameters": [
          {
            "name": "Пары полюсов",
            "value": "4",
            "unit": ""
          },
          {
            "name": "Скорость",
            "value": "1500",
            "unit": "об/мин"
          },
          {
            "name": "Точки",
            "value": "96",
            "unit": ""
          },
          {
            "name": "Имя границы",
            "value": "SlidingGap",
            "unit": ""
          }
        ],
        "steps": [
          "Сначала рассчитайте полную модель машины с поверхностными магнитами в двух положениях и запишите потокосцепления.",
          "Проверьте закон изменения токов и намагниченности на парных границах предполагаемого сектора.",
          "При использовании скользящей границы изменяйте внутренний угол mi_modifyboundprop(&quot;SlidingGap&quot;, 10, angle_deg); внешний угол оставьте заданным.",
          "Для каждого положения решайте задачу, загружайте результат и считывайте <span class=\"inline-math\" data-inline-latex=\"\\Psi\">\\Psi</span> всех фаз; записывайте механический угол.",
          "Сравните восстановленные секторные значения с полной моделью. Для <span class=\"inline-math\" data-inline-latex=\"\\Psi\">\\Psi</span>, энергии и момента отдельно выведите коэффициент восстановления.",
          "Повторите проход с удвоенным числом точек, затем сравните среднее, основную гармонику и интересующие высокие гармоники."
        ],
        "expected": "Последовательность отдельных статических решений с доказанной периодичностью; временная ЭДС восстанавливается по скорости.",
        "verification": "Угловая и пространственная сходимость проверяются отдельно; изменение угла не меняет число витков.",
        "table_number": "27.5"
      },
      "questions": [
        {
          "question": "Равен ли проход по углу прямому переходному полевому расчёту?",
          "answer": "Нет. У каждого положения независимо решается статическая задача; вихретоковая память не возникает автоматически."
        },
        {
          "question": "Когда сектор становится недопустимым?",
          "answer": "Когда несимметричная нагрузка, геометрия или магнитизация нарушает используемый закон периодичности."
        }
      ],
      "assignment": {
        "task": "Проверьте основную ЭДС на <span class=\"inline-math\" data-inline-latex=\"N\">N</span> = 48, 96 и 192. Объясните, почему совпадение основной гармоники не доказывает точность зубцового момента.",
        "acceptance": "Период выведен; крайняя точка не дублируется; сектор сопоставлен с полной моделью; шаги и коэффициенты документированы."
      },
      "pitfalls": [
        "Сохранять электрический угол в колонке механического без обозначения нельзя.",
        "Автоматическое умножение всех результатов на число секторов ошибочно для величин с разной нормировкой."
      ],
      "model_family": "spm",
      "slug": "ii01-2",
      "display_number": "27.2",
      "paragraph_number": 27,
      "position": 93,
      "part": "V",
      "part_label": "Встроенный Python FEMM 5",
      "module_id": "V.02",
      "module_title": "Параметрическая геометрия, движение и сетка",
      "module_hours": 6.0,
      "curriculum_path": [
        "V",
        "V.02"
      ],
      "formula_count": 2,
      "fe_reference": {
        "name": "spm",
        "description": "Расчёт выполнен установленным FEMM 5.0, сборка 06Oct2026, встроенным Python. Файл модели и решение позволяют повторить опыт; параметры этого образца указаны ниже. Повторный полевой расчёт 15 октября 2026 года и построение из учебной Python-программы подтвердили воспроизводимость модели. Таблица и карта поля относятся к исходной учебной сетке; уточнение момента дано ниже и в отдельном разделе примера.",
        "scope": "Иллюстративный двумерный расчёт. Модель стали с постоянной магнитной проницаемостью не описывает насыщение. Идеализированные обмотки с нулевой проводимостью не учитывают все потери. Сеточная проверка момента этой рабочей точки выполнена отдельно; её критерии, методы и границы приведены в протоколе. В FEMM 5.0 06Oct2026 постпроцессор неверно учитывает выражения theta/theta+180 при вычислении H и интеграла энергии 2. Здесь энергия получена отдельным интегрированием с фактическим локальным направлением магнитизации. Исходный вывод интеграла сохранён в численных результатах; способ исправления приведён в подробном примере и программе его шага 11. У острых кромок модели стали с постоянной проницаемостью возможны большие локальные значения B. Они не описывают реальный материал и сами по себе не доказывают насыщение или повреждение. Проверяйте нелинейную характеристику материала и сходимость поля в физически заданной области.",
        "metrics": [
          {
            "name": "Частота",
            "value": "0",
            "unit": "Гц"
          },
          {
            "name": "Активная длина",
            "value": "80",
            "unit": "мм"
          },
          {
            "name": "Ток цепи Фаза А",
            "value": "1",
            "unit": "А"
          },
          {
            "name": "Потокосцепление цепи Фаза А",
            "value": "0,001815925",
            "unit": "Вб"
          },
          {
            "name": "Ток цепи Фаза С",
            "value": "-2",
            "unit": "А"
          },
          {
            "name": "Потокосцепление цепи Фаза С",
            "value": "-0,2922278",
            "unit": "Вб"
          },
          {
            "name": "Ток цепи Фаза В",
            "value": "1",
            "unit": "А"
          },
          {
            "name": "Потокосцепление цепи Фаза В",
            "value": "0,2904196",
            "unit": "Вб"
          },
          {
            "name": "Момент на исходной учебной сетке",
            "value": "-1,156277",
            "unit": "Н·м"
          },
          {
            "name": "Энергия по локальному направлению магнитизации",
            "value": "35,15487",
            "unit": "Дж"
          },
          {
            "name": "Модуль B в контрольной точке",
            "value": "0,8502577",
            "unit": "Тл"
          },
          {
            "name": "Координаты контрольной точки (x, y)",
            "value": "56,42198; 17,24993",
            "unit": "мм"
          },
          {
            "name": "Момент на проверенной уточнённой сетке",
            "value": "−1,152",
            "unit": "Н·м"
          }
        ],
        "files": [
          {
            "path": "downloads/examples/spm/Поверхностные-магниты-09-Готовая-модель.fem",
            "title": "Итоговая модель FEMM",
            "download_name": "Поверхностные-магниты-09-Готовая-модель.fem",
            "sha256": "bd549ade9efa0dd638ab057015ae7cb67c4673f5f9610f875e6a5418da53ab50",
            "bytes": 17387
          },
          {
            "path": "downloads/examples/spm/Поверхностные-магниты-09-Готовая-модель.ans",
            "title": "Сохранённое решение эталона",
            "download_name": "Поверхностные-магниты-09-Готовая-модель.ans",
            "sha256": "e2933464be113c6343201bca8b681b555b40d88a8e3a58a77b971a6488714fad",
            "bytes": 3172570
          },
          {
            "path": "results/spm.json",
            "title": "Численные результаты"
          },
          {
            "path": "examples/spm/index.html#torque-mesh",
            "title": "Уточнённый момент и проверенная сетка"
          }
        ],
        "image": "images/fields/spm.svg",
        "caption": "Визуализация численных данных FEMM 5: Машина с поверхностными постоянными магнитами. Это экспорт результатов поля, а не снимок окна программы.",
        "image_width": 960,
        "image_height": 900,
        "table_number": "27.6",
        "figure_number": "27.13"
      },
      "code_download": "downloads/python/II01-2_Угловые_положения_ротора.py",
      "code_download_name": "II01-2_Угловые_положения_ротора.py",
      "code_download_title": "Программа: Расчёт абсолютных углов прохода",
      "detail_shots": [],
      "formula_refs": [
        {
          "number": "27.3",
          "anchor": "eq-ii01-2-1",
          "title": "Физическая и вычислительная постановка"
        },
        {
          "number": "27.4",
          "anchor": "eq-ii01-2-2",
          "title": "Численный пример"
        }
      ]
    },
    "client_data": {
      "id": "II01.2",
      "title": "Движение ротора, сектор и угловая дискретизация",
      "slug": "ii01-2",
      "widget": {
        "type": "spectrum",
        "config": {
          "variant": "angle-grid",
          "polePairs": 4,
          "speedRpm": 1500,
          "samples": 96,
          "amplitude": 0.08,
          "harmonic": 5,
          "harmonicRatio": 0.03
        },
        "figure_numbers": {
          "main": "27.10",
          "schematic": "27.11",
          "response": "27.12"
        }
      },
      "formula_count": 2,
      "fe_reference": {
        "name": "spm",
        "description": "Расчёт выполнен установленным FEMM 5.0, сборка 06Oct2026, встроенным Python. Файл модели и решение позволяют повторить опыт; параметры этого образца указаны ниже. Повторный полевой расчёт 15 октября 2026 года и построение из учебной Python-программы подтвердили воспроизводимость модели. Таблица и карта поля относятся к исходной учебной сетке; уточнение момента дано ниже и в отдельном разделе примера.",
        "scope": "Иллюстративный двумерный расчёт. Модель стали с постоянной магнитной проницаемостью не описывает насыщение. Идеализированные обмотки с нулевой проводимостью не учитывают все потери. Сеточная проверка момента этой рабочей точки выполнена отдельно; её критерии, методы и границы приведены в протоколе. В FEMM 5.0 06Oct2026 постпроцессор неверно учитывает выражения theta/theta+180 при вычислении H и интеграла энергии 2. Здесь энергия получена отдельным интегрированием с фактическим локальным направлением магнитизации. Исходный вывод интеграла сохранён в численных результатах; способ исправления приведён в подробном примере и программе его шага 11. У острых кромок модели стали с постоянной проницаемостью возможны большие локальные значения B. Они не описывают реальный материал и сами по себе не доказывают насыщение или повреждение. Проверяйте нелинейную характеристику материала и сходимость поля в физически заданной области.",
        "metrics": [
          {
            "name": "Частота",
            "value": "0",
            "unit": "Гц"
          },
          {
            "name": "Активная длина",
            "value": "80",
            "unit": "мм"
          },
          {
            "name": "Ток цепи Фаза А",
            "value": "1",
            "unit": "А"
          },
          {
            "name": "Потокосцепление цепи Фаза А",
            "value": "0,001815925",
            "unit": "Вб"
          },
          {
            "name": "Ток цепи Фаза С",
            "value": "-2",
            "unit": "А"
          },
          {
            "name": "Потокосцепление цепи Фаза С",
            "value": "-0,2922278",
            "unit": "Вб"
          },
          {
            "name": "Ток цепи Фаза В",
            "value": "1",
            "unit": "А"
          },
          {
            "name": "Потокосцепление цепи Фаза В",
            "value": "0,2904196",
            "unit": "Вб"
          },
          {
            "name": "Момент на исходной учебной сетке",
            "value": "-1,156277",
            "unit": "Н·м"
          },
          {
            "name": "Энергия по локальному направлению магнитизации",
            "value": "35,15487",
            "unit": "Дж"
          },
          {
            "name": "Модуль B в контрольной точке",
            "value": "0,8502577",
            "unit": "Тл"
          },
          {
            "name": "Координаты контрольной точки (x, y)",
            "value": "56,42198; 17,24993",
            "unit": "мм"
          },
          {
            "name": "Момент на проверенной уточнённой сетке",
            "value": "−1,152",
            "unit": "Н·м"
          }
        ],
        "files": [
          {
            "path": "downloads/examples/spm/Поверхностные-магниты-09-Готовая-модель.fem",
            "title": "Итоговая модель FEMM",
            "download_name": "Поверхностные-магниты-09-Готовая-модель.fem",
            "sha256": "bd549ade9efa0dd638ab057015ae7cb67c4673f5f9610f875e6a5418da53ab50",
            "bytes": 17387
          },
          {
            "path": "downloads/examples/spm/Поверхностные-магниты-09-Готовая-модель.ans",
            "title": "Сохранённое решение эталона",
            "download_name": "Поверхностные-магниты-09-Готовая-модель.ans",
            "sha256": "e2933464be113c6343201bca8b681b555b40d88a8e3a58a77b971a6488714fad",
            "bytes": 3172570
          },
          {
            "path": "results/spm.json",
            "title": "Численные результаты"
          },
          {
            "path": "examples/spm/index.html#torque-mesh",
            "title": "Уточнённый момент и проверенная сетка"
          }
        ],
        "image": "images/fields/spm.svg",
        "caption": "Визуализация численных данных FEMM 5: Машина с поверхностными постоянными магнитами. Это экспорт результатов поля, а не снимок окна программы.",
        "image_width": 960,
        "image_height": 900,
        "table_number": "27.6",
        "figure_number": "27.13"
      },
      "code_download": "downloads/python/II01-2_Угловые_положения_ротора.py",
      "screenshots": [
        {
          "shot_id": "34-spm-geometry",
          "path": "images/screenshots/34-spm-geometry.png",
          "caption": "Геометрия: поверхностные постоянные магниты и проверенная трёхфазная обмотка",
          "width": 1026,
          "height": 800,
          "figure_number": "27.14"
        },
        {
          "shot_id": "34-spm-field",
          "path": "images/screenshots/34-spm-field.png",
          "caption": "Распределение магнитной индукции: поверхностные постоянные магниты и проверенная трёхфазная обмотка",
          "width": 1026,
          "height": 800,
          "figure_number": "27.15"
        },
        {
          "shot_id": "induction-antiperiodic-boundary",
          "path": "images/screenshots/supplemental/induction-antiperiodic-boundary.png",
          "caption": "Антипериодическая граница секторной асинхронной модели.",
          "width": 1026,
          "height": 800,
          "source_series": "explanation",
          "figure_number": "27.16"
        },
        {
          "shot_id": "python-ii01-2",
          "path": "images/screenshots/supplemental/python-ii01-2.png",
          "caption": "Встроенная консоль FEMM: Движение ротора, сектор и угловая дискретизация. Аналитическая проверка программы занятия.",
          "width": 1026,
          "height": 800,
          "source_series": "embedded_analytic",
          "figure_number": "27.17"
        }
      ],
      "example_links": [
        {
          "id": "spm",
          "slug": "spm",
          "title": "Машина с поверхностными постоянными магнитами",
          "path": "examples/spm/index.html",
          "primary": true
        },
        {
          "id": "solenoid",
          "slug": "solenoid",
          "title": "Воздушная катушка",
          "path": "examples/solenoid/index.html",
          "primary": false
        }
      ]
    }
  }
}
