{
  "assignment": {
    "id": "practice-ii01-3",
    "lessonId": "II01.3",
    "version": "2026-10-16.2",
    "primary": true,
    "displayNumber": "27.3",
    "title": "Автоматический контроль сетки и независимых параметров",
    "summary": "Автоматизация должна проверять достоверность результата. Отдельно исследуем влияние сетки, размеров расчётной области и шага изменения параметра.",
    "part": "V",
    "partLabel": "Встроенный Python FEMM 5",
    "moduleId": "V.02",
    "moduleTitle": "Параметрическая геометрия, движение и сетка",
    "position": 94,
    "category": "Python и расчёт",
    "durationMinutes": 120,
    "environment": "FEMM 5; запишите точную сборку, физический модуль, единицы, тип задачи и параметры своего опыта. Для аналитической части укажите формулы и исходные данные; для Python — встроенную среду и рабочий каталог.",
    "instructions": [
      {
        "title": "Уточните выданное условие",
        "text": "Выполните базовый практикум «Автоматический протокол независимых уточнений» по шагам занятия. Затем выполните самостоятельную часть: Сравните сходимость Ψ и момента на одной машине. Выберите минимальную сетку, удовлетворяющую обоим назначенным критериям."
      },
      {
        "title": "Откройте исходный практикум",
        "text": "Сопоставьте условия варианта с параметрами и действиями занятия. Сохраните исходники отдельно; работайте в своём каталоге.",
        "href": "lessons/ii01-3/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-3&variant=A#assignment-work"
      }
    ],
    "variants": [
      {
        "id": "A",
        "title": "A · Практикум и самостоятельная работа",
        "task": "Выполните базовый практикум «Автоматический протокол независимых уточнений» по шагам занятия. Затем выполните самостоятельную часть: Сравните сходимость Ψ и момента на одной машине. Выберите минимальную сетку, удовлетворяющую обоим назначенным критериям.",
        "sourceTask": "Сравните сходимость \\(\\Psi\\) и момента на одной машине. Выберите минимальную сетку, удовлетворяющую обоим назначенным критериям.",
        "sourceVariantId": "II01.3:source-assignment",
        "sourceRubric": [
          "Есть три сетки, число элементов, отдельная проверка области, критерий каждой величины и объяснение выбора.",
          "Независимые сеточная и граничная серии; допуск и масштаб заданы до выбора результата."
        ],
        "source": {
          "file": "course-site/data/lessons-embedded.json",
          "lessonId": "II01.3",
          "field": "assignment + practice.verification",
          "sha256": "ce0962c054fbbd3562f421c3ddc53fccae08374844addbdd77fa0cb53287fe0e"
        },
        "kind": "practice",
        "parameters": [
          {
            "name": "Размер элемента в зазоре",
            "value": "0,4; 0,2; 0,1",
            "unit": "мм"
          },
          {
            "name": "Критерий \\(\\Psi\\)",
            "value": "1",
            "unit": "%"
          },
          {
            "name": "Критерий среднего момента",
            "value": "2",
            "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": "Выполните базовый практикум «Автоматический протокол независимых уточнений» по шагам занятия. Затем выполните самостоятельную часть: Сравните сходимость Ψ и момента на одной машине. Выберите минимальную сетку, удовлетворяющую обоим назначенным критериям."
          },
          {
            "title": "Откройте исходный практикум",
            "text": "Сопоставьте условия варианта с параметрами и действиями занятия. Сохраните исходники отдельно; работайте в своём каталоге.",
            "href": "lessons/ii01-3/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-3&variant=A#assignment-work"
          }
        ]
      },
      {
        "id": "B",
        "title": "B · Защита выполненной работы",
        "task": "Защитите ранее выполненный практикум A. В письменном ответе укажите код/имя своей работы A и опирайтесь на её результаты. Вопрос защиты: Когда уместен абсолютный допуск?",
        "sourceTask": "Когда уместен абсолютный допуск?",
        "sourceVariantId": "II01.3:oral-defense",
        "sourceRubric": [
          "При близкой к нулю величине, например малом зубцовом моменте или взаимной связи ортогональных обмоток.",
          "Независимые сеточная и граничная серии; допуск и масштаб заданы до выбора результата."
        ],
        "source": {
          "file": "course-site/data/lessons-embedded.json",
          "lessonId": "II01.3",
          "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-3/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-3&variant=B#assignment-work"
          }
        ]
      }
    ],
    "downloads": [
      {
        "label": "Итоговая модель FEMM",
        "path": "downloads/examples/solenoid/Воздушная-катушка-09-Готовая-модель.fem",
        "sha256": "37942135b2cd907c405ea63b2ea26df6dfcbe1ec7924b06019c9e0c8aae73c39",
        "role": "reference"
      },
      {
        "label": "Численные результаты",
        "path": "results/solenoid.json",
        "sha256": "598f4f76f3a6186861b1d6b7782d1d69f6868b88eb699eb0dd40c22f2bfbeed3",
        "role": "reference"
      },
      {
        "label": "Исходная программа занятия",
        "path": "downloads/python/II01-3_Проверка_сходимости_сетки.py",
        "sha256": "e9b38ca357bad587f71e238514e0d6edad21ce11921142bf55d375e5b06936e1",
        "role": "source-code"
      },
      {
        "label": "Пустой шаблон таблицы результатов CSV",
        "path": "downloads/assignments/ii01-3/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": "Осесимметричная учебная модель. Независимо проверены изменения сетки и внешнего радиуса; аналитическая модель тонкостенного соленоида служит отдельным приближённым ориентиром.",
    "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.3",
        "field": "objectives + questions + assignment",
        "sha256": "ce0962c054fbbd3562f421c3ddc53fccae08374844addbdd77fa0cb53287fe0e"
      },
      {
        "path": "tools/assignment_expansion.py",
        "kind": "source-backed-workflow"
      }
    ],
    "sourcePractice": {
      "title": "Автоматический протокол независимых уточнений",
      "parameters": [
        {
          "name": "Размер элемента в зазоре",
          "value": "0,4; 0,2; 0,1",
          "unit": "мм"
        },
        {
          "name": "Критерий \\(\\Psi\\)",
          "value": "1",
          "unit": "%"
        },
        {
          "name": "Критерий среднего момента",
          "value": "2",
          "unit": "%"
        }
      ],
      "steps": [
        "Выберите одну машину и один токовый режим. Сохраните одинаковые параметры во всех трёх файлах модели FEMM.",
        "Назначьте размеры элементов в зазоре и критических областях. Для меток используйте mi_setblockprop с отключённым автоматическим размером, если требуется явный шаг.",
        "Запустите три анализа. Сохраните число элементов через mo_numelements и проверяемые \\(\\Psi\\), энергию либо момент.",
        "Сформируйте относительное изменение двух последних результатов; при малом \\(q\\) используйте абсолютный допуск.",
        "С отдельной серией удвойте внешнюю область. Не меняйте одновременно зазор или материал.",
        "Покажите таблицу, а затем график \\(q\\) от размера элемента. Укажите, какой результат принят и почему."
      ],
      "expected": "Таблица позволяет принять конкретную сетку для конкретной величины, а не объявить всю модель точной.",
      "verification": "Независимые сеточная и граничная серии; допуск и масштаб заданы до выбора результата.",
      "table_number": "27.8"
    },
    "sourceAssignment": {
      "task": "Сравните сходимость \\(\\Psi\\) и момента на одной машине. Выберите минимальную сетку, удовлетворяющую обоим назначенным критериям.",
      "acceptance": "Есть три сетки, число элементов, отдельная проверка области, критерий каждой величины и объяснение выбора."
    }
  },
  "lesson": {
    "id": "II01.3",
    "title": "Автоматический контроль сетки и независимых параметров",
    "summary": "Автоматизация должна проверять достоверность результата. Отдельно исследуем влияние сетки, размеров расчётной области и шага изменения параметра.",
    "objectives": [
      "Создать проход по трём сеткам и сравнивать интегральный результат с ненулевым масштабом.",
      "Составить отдельные серии изменения сетки, внешней области и углового шага.",
      "Применить относительный или абсолютный критерий к конкретной наблюдаемой величине."
    ],
    "prerequisites": [
      "II01.2"
    ],
    "theory": [
      {
        "heading": "Физическая и вычислительная постановка",
        "paragraphs": [
          "Сходимость по сетке исследуется при неизменных материале, внешней области, возбуждении и положении ротора. Иначе изменение результата невозможно связать с одним источником погрешности. Размер элемента управляет пространственным разрешением; точность нелинейного решателя и шаг угла — другие параметры, поэтому они проверяются отдельными сериями.",
          "Для ненулевой величины относительное изменение двух последних приближений нормируют к уточнённому результату. Около нуля вводят заранее выбранный физический масштаб: малый зубцовый момент нельзя оценивать процентом от случайного почти нулевого числа. Три сетки показывают устойчивость тенденции, но не автоматически задают порядок сходимости. Силы и момент обычно чувствительнее потокосцепления, поскольку зависят от производных либо квадратичных полевых выражений. Внешнюю границу проверяют отдельным увеличением воздушного окружения при сопоставимой локальной сетке."
        ],
        "formulas": [
          {
            "latex": "\\varepsilon_h=\\frac{|q_3-q_2|}{\\max(|q_3|,q_{\\text{масш}})}",
            "explanation": "\\(q_{2}\\) и \\(q_{3}\\) — среднее и уточнённое решения; масштаб назначается до просмотра результата.",
            "number": "27.5",
            "anchor": "eq-ii01-3-1"
          }
        ]
      },
      {
        "heading": "Порядок проверки результата",
        "paragraphs": [
          "Численный пример ниже является аналитическим учебным эталоном. Его значения вычислены по указанным формулам; они не обозначают результат решения новой модели методом конечных элементов. Практикум связывает эталон с полевой задачей: сначала воспроизведите уже проверенный результат части I, затем измените только один исследуемый параметр. Именно такое сравнение позволяет отделить ошибку программы от влияния геометрии, сетки и физического приближения. Сохраните исходную модель, рабочую копию и таблицу с заголовками величин. В подписи каждой величины укажите единицу, положительное направление и способ получения; для гармонических величин дополнительно укажите амплитудную нормировку. Если условие задачи не выполнено, остановите серию и сохраните причину отказа вместе с последним корректным состоянием."
        ],
        "formulas": []
      },
      {
        "heading": "Пояснение программы",
        "paragraphs": [
          "Защитный масштаб scale_wb предотвращает деление на почти нулевое потокосцепление. Элементы списка с индексами 1 и 2 соответствуют двум последним сеткам. Умножение на 100 переводит относительное расхождение в проценты. Сравнение с 0,01 проверяет учебный допуск только для потокосцепления; сходимость силы, момента и размеров внешней области исследуют отдельно."
        ],
        "formulas": []
      },
      {
        "heading": "Независимые циклы уточнения",
        "paragraphs": [
          "Скрипт должен изменять только один численный параметр за один эксперимент, сохраняя физическую постановку."
        ],
        "formulas": [],
        "derivation_steps": [
          {
            "text": "Постройте внешний цикл по размеру сетки при фиксированных угле и внешней границе. Записывайте число элементов и целевую величину, а не только запрошенный размер."
          },
          {
            "text": "Отдельно выполните серию по размеру воздушной области. Затем при достаточно точной сетке измените угловой или токовый шаг."
          },
          {
            "text": "Применяйте критерий по нескольким значимым величинам. Интегральная энергия может стабилизироваться раньше момента, локального поля или потерь."
          }
        ],
        "symbols": [
          {
            "symbol": "h",
            "meaning": "Характерный размер конечного элемента",
            "unit": "м"
          },
          {
            "symbol": "q",
            "meaning": "Проверяемый результат; единица определяется выбором результата",
            "unit": "по результату"
          },
          {
            "symbol": "W",
            "meaning": "Магнитная энергия",
            "unit": "Дж"
          },
          {
            "symbol": "T",
            "meaning": "Электромагнитный момент",
            "unit": "Н·м"
          }
        ],
        "applicability": "Одинаковая точность линейного решателя на разных сетках не означает одинаковую физическую точность. Сеточную, итерационную и параметрическую ошибки фиксируйте отдельно.",
        "editorial_tag": "textbook-math-2026-10",
        "symbols_number": "27.7"
      }
    ],
    "worked_example": {
      "title": "Вычисленный аналитический эталон",
      "given": "\\(\\Psi\\) на трёх сетках: 0,240; 0,246; 0,247 Вб. \\(\\Psi_{\\text{масш}}\\) = 0,01 Вб.",
      "steps": [
        {
          "text": "Первое изменение равно 0,006 Вб, второе — 0,001 Вб.",
          "latex": "\\varepsilon_h=\\frac{0{,}247-0{,}246}{0{,}247}=0{,}0040486=0{,}40486\\,\\%",
          "formula_number": "27.6",
          "anchor": "eq-ii01-3-2"
        },
        {
          "text": "Последняя относительная разность 0,001/0,247 = 0,0040486 = 0,40486 %."
        }
      ],
      "answer": "По учебному критерию 1 % последняя пара прошла проверку; причина остаточной погрешности всё ещё требует анализа.",
      "check": "Увеличение внешней области проверяют дополнительно; оно не включено в приведённый процент."
    },
    "practice": {
      "title": "Автоматический протокол независимых уточнений",
      "parameters": [
        {
          "name": "Размер элемента в зазоре",
          "value": "0,4; 0,2; 0,1",
          "unit": "мм"
        },
        {
          "name": "Критерий \\(\\Psi\\)",
          "value": "1",
          "unit": "%"
        },
        {
          "name": "Критерий среднего момента",
          "value": "2",
          "unit": "%"
        }
      ],
      "steps": [
        "Выберите одну машину и один токовый режим. Сохраните одинаковые параметры во всех трёх файлах модели FEMM.",
        "Назначьте размеры элементов в зазоре и критических областях. Для меток используйте mi_setblockprop с отключённым автоматическим размером, если требуется явный шаг.",
        "Запустите три анализа. Сохраните число элементов через mo_numelements и проверяемые \\(\\Psi\\), энергию либо момент.",
        "Сформируйте относительное изменение двух последних результатов; при малом \\(q\\) используйте абсолютный допуск.",
        "С отдельной серией удвойте внешнюю область. Не меняйте одновременно зазор или материал.",
        "Покажите таблицу, а затем график \\(q\\) от размера элемента. Укажите, какой результат принят и почему."
      ],
      "expected": "Таблица позволяет принять конкретную сетку для конкретной величины, а не объявить всю модель точной.",
      "verification": "Независимые сеточная и граничная серии; допуск и масштаб заданы до выбора результата.",
      "table_number": "27.8"
    },
    "widget": {
      "type": "convergence",
      "config": {
        "variant": "mesh",
        "sizes": [
          0.4,
          0.2,
          0.1
        ],
        "values": [
          0.24,
          0.246,
          0.247
        ],
        "quantity": "Потокосцепление",
        "unit": "Вб",
        "tolerance": 1
      },
      "figure_numbers": {
        "main": "27.18",
        "schematic": "27.19",
        "response": "27.20"
      }
    },
    "questions": [
      {
        "question": "Почему одинаковый предел \\(\\Psi\\) не гарантирует точный момент?",
        "answer": "Момент чувствителен к локальному полю и производным; ему нужен отдельный контроль."
      },
      {
        "question": "Когда уместен абсолютный допуск?",
        "answer": "При близкой к нулю величине, например малом зубцовом моменте или взаимной связи ортогональных обмоток."
      }
    ],
    "assignment": {
      "task": "Сравните сходимость \\(\\Psi\\) и момента на одной машине. Выберите минимальную сетку, удовлетворяющую обоим назначенным критериям.",
      "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": "36–39, 98–100, 114–115",
        "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, с. 24–32; исходный PDF, с. 59–67"
      },
      {
        "title": "Документированный пример проверки повторяемости модели с постоянными магнитами; воспроизводимость отличается от независимой валидации",
        "url": "https://github.com/xiaohu97/Fast-SPMSM-simulation-for-humanoid-robot-joint-design/tree/a17dfd41ee2b8eb48e35ad4b0c73253bd61f5c0a",
        "pages": "Скачанная фиксированная версия a17dfd4, README. Внешняя система управления этого проекта не является инструментом курса."
      }
    ],
    "model_family": "spm",
    "code": [
      {
        "title": "Проверка последней пары сеток",
        "language": "python",
        "source": "# Учебные потокосцепления, Вб, получены для трёх последовательно сгущённых сеток.\n# Эти числа служат эталоном алгоритма проверки, а не результатом нового решения.\nvalues = [0.240, 0.246, 0.247]\n# Защитный масштаб в Вб исключает деление на почти нулевое значение.\nscale_wb = 0.01\n# Сравниваем две последние сетки; получаем относительное расхождение в долях единицы.\nrelative = abs(values[2] - values[1]) / max(abs(values[2]), scale_wb)\nprint(\"Расхождение, %:\", 100 * relative)\n# Допуск 1 % относится только к потокосцеплению; силу и момент проверяют отдельно.\nprint(\"Учебный критерий выполнен:\", relative <= 0.01)\n",
        "explanation": "Аналитическая проверка таблицы. Настройка сеток и получение реальных значений выполняются в рабочей FEM-модели.",
        "highlighted": "<span class=\"c1\"># Учебные потокосцепления, Вб, получены для трёх последовательно сгущённых сеток.</span>\n<span class=\"c1\"># Эти числа служат эталоном алгоритма проверки, а не результатом нового решения.</span>\n<span class=\"n\">values</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"mf\">0.240</span><span class=\"p\">,</span> <span class=\"mf\">0.246</span><span class=\"p\">,</span> <span class=\"mf\">0.247</span><span class=\"p\">]</span>\n<span class=\"c1\"># Защитный масштаб в Вб исключает деление на почти нулевое значение.</span>\n<span class=\"n\">scale_wb</span> <span class=\"o\">=</span> <span class=\"mf\">0.01</span>\n<span class=\"c1\"># Сравниваем две последние сетки; получаем относительное расхождение в долях единицы.</span>\n<span class=\"n\">relative</span> <span class=\"o\">=</span> <span class=\"nb\">abs</span><span class=\"p\">(</span><span class=\"n\">values</span><span class=\"p\">[</span><span class=\"mi\">2</span><span class=\"p\">]</span> <span class=\"o\">-</span> <span class=\"n\">values</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">])</span> <span class=\"o\">/</span> <span class=\"nb\">max</span><span class=\"p\">(</span><span class=\"nb\">abs</span><span class=\"p\">(</span><span class=\"n\">values</span><span class=\"p\">[</span><span class=\"mi\">2</span><span class=\"p\">]),</span> <span class=\"n\">scale_wb</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=\"mi\">100</span> <span class=\"o\">*</span> <span class=\"n\">relative</span><span class=\"p\">)</span>\n<span class=\"c1\"># Допуск 1 % относится только к потокосцеплению; силу и момент проверяют отдельно.</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"s2\">\"Учебный критерий выполнен:\"</span><span class=\"p\">,</span> <span class=\"n\">relative</span> <span class=\"o\">&lt;=</span> <span class=\"mf\">0.01</span><span class=\"p\">)</span>\n",
        "title_html": "Проверка последней пары сеток",
        "explanation_html": "Аналитическая проверка таблицы. Настройка сеток и получение реальных значений выполняются в рабочей FEM-модели."
      }
    ],
    "slug": "ii01-3",
    "display_number": "27.3",
    "paragraph_number": 27,
    "position": 94,
    "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.2",
      "slug": "ii01-2",
      "title": "Движение ротора, сектор и угловая дискретизация",
      "display_number": "27.2"
    },
    "next": {
      "id": "python-electrostatics",
      "slug": "python-electrostatics",
      "title": "Встроенный Python для электростатики: ei/eo и матрица ёмкостей",
      "display_number": "28.1"
    },
    "formula_count": 2,
    "fe_reference": {
      "name": "solenoid",
      "description": "Расчёт выполнен установленным FEMM 5.0, сборка 06Oct2026, встроенным Python. Файл модели и решение позволяют повторить опыт; параметры этого образца указаны ниже. Повторный полевой расчёт 15 октября 2026 года и построение из учебной Python-программы подтвердили воспроизводимость модели.",
      "scope": "Осесимметричная учебная модель. Независимо проверены изменения сетки и внешнего радиуса; аналитическая модель тонкостенного соленоида служит отдельным приближённым ориентиром.",
      "metrics": [
        {
          "name": "Частота",
          "value": "0",
          "unit": "Гц"
        },
        {
          "name": "Ток цепи Катушка",
          "value": "1",
          "unit": "А"
        },
        {
          "name": "Потокосцепление цепи Катушка",
          "value": "9,585142e-05",
          "unit": "Вб"
        },
        {
          "name": "Энергия поля",
          "value": "4,791968e-05",
          "unit": "Дж"
        },
        {
          "name": "Модуль B в контрольной точке",
          "value": "0,0006085275",
          "unit": "Тл"
        },
        {
          "name": "Координаты контрольной точки (r, z)",
          "value": "0,001; 0",
          "unit": "мм"
        }
      ],
      "files": [
        {
          "path": "downloads/examples/solenoid/Воздушная-катушка-09-Готовая-модель.fem",
          "title": "Итоговая модель FEMM",
          "download_name": "Воздушная-катушка-09-Готовая-модель.fem",
          "sha256": "37942135b2cd907c405ea63b2ea26df6dfcbe1ec7924b06019c9e0c8aae73c39",
          "bytes": 3104
        },
        {
          "path": "downloads/examples/solenoid/Воздушная-катушка-09-Готовая-модель.ans",
          "title": "Сохранённое решение эталона",
          "download_name": "Воздушная-катушка-09-Готовая-модель.ans",
          "sha256": "dca569a35cf0144ef3e6b4279779a5cc53c8a6a0afbc04aebd89535a6b5903d4",
          "bytes": 442987
        },
        {
          "path": "results/solenoid.json",
          "title": "Численные результаты"
        }
      ],
      "image": "images/fields/solenoid.svg",
      "caption": "Визуализация численных данных FEMM 5: Воздушная катушка. Это экспорт результатов поля, а не снимок окна программы.",
      "image_width": 960,
      "image_height": 900,
      "table_number": "27.9",
      "figure_number": "27.21"
    },
    "code_download": "downloads/python/II01-3_Проверка_сходимости_сетки.py",
    "code_download_name": "II01-3_Проверка_сходимости_сетки.py",
    "code_download_title": "Программа: Проверка последней пары сеток",
    "screenshots": [
      {
        "shot_id": "08-coil-mesh",
        "path": "images/screenshots/08-coil-mesh.png",
        "caption": "Треугольная конечно-элементная сетка катушки в воздухе. В областях проводников элементы мельче, чем у внешней границы расчётной области.",
        "width": 1026,
        "height": 800,
        "figure_number": "27.22"
      },
      {
        "shot_id": "09-coil-field",
        "path": "images/screenshots/09-coil-field.png",
        "caption": "Поле воздушной катушки: осесимметричный магнитостатический эталон FEMM 5.",
        "width": 1026,
        "height": 800,
        "figure_number": "27.23"
      },
      {
        "shot_id": "34-spm-geometry",
        "path": "images/screenshots/34-spm-geometry.png",
        "caption": "Геометрия: поверхностные постоянные магниты и проверенная трёхфазная обмотка",
        "width": 1026,
        "height": 800,
        "figure_number": "27.24"
      },
      {
        "shot_id": "34-spm-field",
        "path": "images/screenshots/34-spm-field.png",
        "caption": "Распределение магнитной индукции: поверхностные постоянные магниты и проверенная трёхфазная обмотка",
        "width": 1026,
        "height": 800,
        "figure_number": "27.25"
      },
      {
        "shot_id": "mesh-spm-gap",
        "path": "images/screenshots/supplemental/mesh-spm-gap.png",
        "caption": "Машина с поверхностными постоянными магнитами: выбранная сетка воздушного зазора.",
        "width": 1026,
        "height": 800,
        "source_series": "refined_mesh",
        "figure_number": "27.26"
      },
      {
        "shot_id": "mesh-spm-torque",
        "path": "images/screenshots/supplemental/mesh-spm-torque.png",
        "caption": "Машина с поверхностными постоянными магнитами: момент ротора на выбранной сетке.",
        "width": 1026,
        "height": 800,
        "source_series": "refined_mesh",
        "figure_number": "27.27"
      },
      {
        "shot_id": "mesh-ipm-gap",
        "path": "images/screenshots/supplemental/mesh-ipm-gap.png",
        "caption": "Машина со встроенными постоянными магнитами: выбранная сетка воздушного зазора.",
        "width": 1026,
        "height": 800,
        "source_series": "refined_mesh",
        "figure_number": "27.28"
      },
      {
        "shot_id": "mesh-ipm-torque",
        "path": "images/screenshots/supplemental/mesh-ipm-torque.png",
        "caption": "Машина со встроенными постоянными магнитами: момент ротора на выбранной сетке.",
        "width": 1026,
        "height": 800,
        "source_series": "refined_mesh",
        "figure_number": "27.29"
      },
      {
        "shot_id": "mesh-synchronous-turbo-gap",
        "path": "images/screenshots/supplemental/mesh-synchronous-turbo-gap.png",
        "caption": "Синхронная машина с неявнополюсным ротором: выбранная сетка воздушного зазора.",
        "width": 1026,
        "height": 800,
        "source_series": "refined_mesh",
        "figure_number": "27.30"
      },
      {
        "shot_id": "mesh-synchronous-turbo-torque",
        "path": "images/screenshots/supplemental/mesh-synchronous-turbo-torque.png",
        "caption": "Синхронная машина с неявнополюсным ротором: момент ротора на выбранной сетке.",
        "width": 1026,
        "height": 800,
        "source_series": "refined_mesh",
        "figure_number": "27.31"
      },
      {
        "shot_id": "mesh-synchronous-hydro-gap",
        "path": "images/screenshots/supplemental/mesh-synchronous-hydro-gap.png",
        "caption": "Синхронная машина с явнополюсным ротором: выбранная сетка воздушного зазора.",
        "width": 1026,
        "height": 800,
        "source_series": "refined_mesh",
        "figure_number": "27.32"
      },
      {
        "shot_id": "mesh-synchronous-hydro-torque",
        "path": "images/screenshots/supplemental/mesh-synchronous-hydro-torque.png",
        "caption": "Синхронная машина с явнополюсным ротором: момент ротора на выбранной сетке.",
        "width": 1026,
        "height": 800,
        "source_series": "refined_mesh",
        "figure_number": "27.33"
      },
      {
        "shot_id": "mesh-synrm-gap",
        "path": "images/screenshots/supplemental/mesh-synrm-gap.png",
        "caption": "Синхронная реактивная машина: выбранная сетка воздушного зазора. Дополнительные окружности в воздушном кольце задают области объёмного радиального усреднения при проверке момента методом Арккио.",
        "width": 1026,
        "height": 800,
        "source_series": "refined_mesh",
        "figure_number": "27.34"
      },
      {
        "shot_id": "mesh-synrm-torque",
        "path": "images/screenshots/supplemental/mesh-synrm-torque.png",
        "caption": "Синхронная реактивная машина: момент ротора на выбранной сетке.",
        "width": 1026,
        "height": 800,
        "source_series": "refined_mesh",
        "figure_number": "27.35"
      },
      {
        "shot_id": "mesh-srm-gap",
        "path": "images/screenshots/supplemental/mesh-srm-gap.png",
        "caption": "Вентильно-индукторная машина: исходное положение: выбранная сетка воздушного зазора. Дополнительные окружности в воздушном кольце задают области объёмного радиального усреднения при проверке момента методом Арккио.",
        "width": 1026,
        "height": 800,
        "source_series": "refined_mesh",
        "figure_number": "27.36"
      },
      {
        "shot_id": "mesh-srm-torque",
        "path": "images/screenshots/supplemental/mesh-srm-torque.png",
        "caption": "Вентильно-индукторная машина: исходное положение: момент ротора на выбранной сетке.",
        "width": 1026,
        "height": 800,
        "source_series": "refined_mesh",
        "figure_number": "27.37"
      },
      {
        "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": "27.38"
      },
      {
        "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": "27.39"
      },
      {
        "shot_id": "mesh-dc-gap",
        "path": "images/screenshots/supplemental/mesh-dc-gap.png",
        "caption": "Машина постоянного тока: выбранная сетка воздушного зазора.",
        "width": 1026,
        "height": 800,
        "source_series": "refined_mesh",
        "figure_number": "27.40"
      },
      {
        "shot_id": "mesh-dc-torque",
        "path": "images/screenshots/supplemental/mesh-dc-torque.png",
        "caption": "Машина постоянного тока: момент ротора на выбранной сетке.",
        "width": 1026,
        "height": 800,
        "source_series": "refined_mesh",
        "figure_number": "27.41"
      },
      {
        "shot_id": "core-profile-off",
        "path": "images/screenshots/supplemental/core-profile-off.png",
        "caption": "Профиль |B| через стержни и окно: сглаживание выключено. Контур от (−45; 15) до (45; 15) мм, 400 точек. Position — расстояние от начала контура в мм; |B| — магнитная индукция в Тл. Единицы восстановлены по модели и выбранной величине: само окно FEMM их не печатает.",
        "width": 1026,
        "height": 800,
        "source_series": "explanation",
        "figure_number": "27.42"
      },
      {
        "shot_id": "core-profile-on",
        "path": "images/screenshots/supplemental/core-profile-on.png",
        "caption": "Профиль |B| через стержни и окно: сглаживание включено. Контур от (−45; 15) до (45; 15) мм, 400 точек. Position — расстояние от начала контура в мм; |B| — магнитная индукция в Тл. Единицы восстановлены по модели и выбранной величине: само окно FEMM их не печатает.",
        "width": 1026,
        "height": 800,
        "source_series": "explanation",
        "figure_number": "27.43"
      },
      {
        "shot_id": "python-ii01-3",
        "path": "images/screenshots/supplemental/python-ii01-3.png",
        "caption": "Встроенная консоль FEMM: Автоматический контроль сетки и независимых параметров. Аналитическая проверка программы занятия.",
        "width": 1026,
        "height": 800,
        "source_series": "embedded_analytic",
        "figure_number": "27.44"
      }
    ],
    "detail_shots": [],
    "formula_refs": [
      {
        "number": "27.5",
        "anchor": "eq-ii01-3-1",
        "title": "Физическая и вычислительная постановка"
      },
      {
        "number": "27.6",
        "anchor": "eq-ii01-3-2",
        "title": "Численный пример"
      }
    ],
    "example_links": [
      {
        "id": "solenoid",
        "slug": "solenoid",
        "title": "Воздушная катушка",
        "path": "examples/solenoid/index.html",
        "primary": true
      },
      {
        "id": "spm",
        "slug": "spm",
        "title": "Машина с поверхностными постоянными магнитами",
        "path": "examples/spm/index.html",
        "primary": false
      },
      {
        "id": "solenoid-coarse",
        "slug": "solenoid-coarse",
        "title": "Воздушная катушка: грубая сетка",
        "path": "examples/solenoid-coarse/index.html",
        "primary": false
      },
      {
        "id": "solenoid-fine",
        "slug": "solenoid-fine",
        "title": "Воздушная катушка: мелкая сетка",
        "path": "examples/solenoid-fine/index.html",
        "primary": false
      },
      {
        "id": "solenoid-finest",
        "slug": "solenoid-finest",
        "title": "Воздушная катушка: наиболее мелкая сетка",
        "path": "examples/solenoid-finest/index.html",
        "primary": false
      },
      {
        "id": "solenoid-domain",
        "slug": "solenoid-domain",
        "title": "Воздушная катушка: удаление внешней границы",
        "path": "examples/solenoid-domain/index.html",
        "primary": false
      }
    ],
    "view": {
      "id": "II01.3",
      "title": "Автоматический контроль сетки и независимых параметров",
      "summary": "Автоматизация должна проверять достоверность результата. Отдельно исследуем влияние сетки, размеров расчётной области и шага изменения параметра.",
      "objectives": [
        "Создать проход по трём сеткам и сравнивать интегральный результат с ненулевым масштабом.",
        "Составить отдельные серии изменения сетки, внешней области и углового шага.",
        "Применить относительный или абсолютный критерий к конкретной наблюдаемой величине."
      ],
      "prerequisites": [
        "27.2"
      ],
      "theory": [
        {
          "heading": "Физическая и вычислительная постановка",
          "paragraphs": [
            "Сходимость по сетке исследуется при неизменных материале, внешней области, возбуждении и положении ротора. Иначе изменение результата невозможно связать с одним источником погрешности. Размер элемента управляет пространственным разрешением; точность нелинейного решателя и шаг угла — другие параметры, поэтому они проверяются отдельными сериями.",
            "Для ненулевой величины относительное изменение двух последних приближений нормируют к уточнённому результату. Около нуля вводят заранее выбранный физический масштаб: малый зубцовый момент нельзя оценивать процентом от случайного почти нулевого числа. Три сетки показывают устойчивость тенденции, но не автоматически задают порядок сходимости. Силы и момент обычно чувствительнее потокосцепления, поскольку зависят от производных либо квадратичных полевых выражений. Внешнюю границу проверяют отдельным увеличением воздушного окружения при сопоставимой локальной сетке."
          ],
          "formulas": [
            {
              "latex": "\\varepsilon_h=\\frac{|q_3-q_2|}{\\max(|q_3|,q_{\\text{масш}})}",
              "explanation": "<span class=\"inline-math\" data-inline-latex=\"q_{2}\">q_{2}</span> и <span class=\"inline-math\" data-inline-latex=\"q_{3}\">q_{3}</span> — среднее и уточнённое решения; масштаб назначается до просмотра результата.",
              "number": "27.5",
              "anchor": "eq-ii01-3-1"
            }
          ]
        },
        {
          "heading": "Порядок проверки результата",
          "paragraphs": [
            "Численный пример ниже является аналитическим учебным эталоном. Его значения вычислены по указанным формулам; они не обозначают результат решения новой модели методом конечных элементов. Практикум связывает эталон с полевой задачей: сначала воспроизведите уже проверенный результат базового раздела, затем измените только один исследуемый параметр. Именно такое сравнение позволяет отделить ошибку программы от влияния геометрии, сетки и физического приближения. Сохраните исходную модель, рабочую копию и таблицу с заголовками величин. В подписи каждой величины укажите единицу, положительное направление и способ получения; для гармонических величин дополнительно укажите амплитудную нормировку. Если условие задачи не выполнено, остановите серию и сохраните причину отказа вместе с последним корректным состоянием."
          ],
          "formulas": []
        },
        {
          "heading": "Пояснение программы",
          "paragraphs": [
            "Защитный масштаб scale_wb предотвращает деление на почти нулевое потокосцепление. Элементы списка с индексами 1 и 2 соответствуют двум последним сеткам. Умножение на 100 переводит относительное расхождение в проценты. Сравнение с 0,01 проверяет учебный допуск только для потокосцепления; сходимость силы, момента и размеров внешней области исследуют отдельно."
          ],
          "formulas": []
        },
        {
          "heading": "Независимые циклы уточнения",
          "paragraphs": [
            "Скрипт должен изменять только один численный параметр за один эксперимент, сохраняя физическую постановку."
          ],
          "formulas": [],
          "derivation_steps": [
            {
              "text": "Постройте внешний цикл по размеру сетки при фиксированных угле и внешней границе. Записывайте число элементов и целевую величину, а не только запрошенный размер."
            },
            {
              "text": "Отдельно выполните серию по размеру воздушной области. Затем при достаточно точной сетке измените угловой или токовый шаг."
            },
            {
              "text": "Применяйте критерий по нескольким значимым величинам. Интегральная энергия может стабилизироваться раньше момента, локального поля или потерь."
            }
          ],
          "symbols": [
            {
              "symbol": "h",
              "meaning": "Характерный размер конечного элемента",
              "unit": "м"
            },
            {
              "symbol": "q",
              "meaning": "Проверяемый результат; единица определяется выбором результата",
              "unit": "по результату"
            },
            {
              "symbol": "W",
              "meaning": "Магнитная энергия",
              "unit": "Дж"
            },
            {
              "symbol": "T",
              "meaning": "Электромагнитный момент",
              "unit": "Н·м"
            }
          ],
          "applicability": "Одинаковая точность линейного решателя на разных сетках не означает одинаковую физическую точность. Сеточную, итерационную и параметрическую ошибки фиксируйте отдельно.",
          "editorial_tag": "textbook-math-2026-10",
          "symbols_number": "27.7"
        }
      ],
      "worked_example": {
        "title": "Вычисленный аналитический эталон",
        "given": "<span class=\"inline-math\" data-inline-latex=\"\\Psi\">\\Psi</span> на трёх сетках: 0,240; 0,246; 0,247 Вб. <span class=\"inline-math\" data-inline-latex=\"\\Psi_{\\text{масш}}\">\\Psi_{\\text{масш}}</span> = 0,01 Вб.",
        "steps": [
          {
            "text": "Первое изменение равно 0,006 Вб, второе — 0,001 Вб.",
            "latex": "\\varepsilon_h=\\frac{0{,}247-0{,}246}{0{,}247}=0{,}0040486=0{,}40486\\,\\%",
            "formula_number": "27.6",
            "anchor": "eq-ii01-3-2"
          },
          {
            "text": "Последняя относительная разность 0,001/0,247 = 0,0040486 = 0,40486 %."
          }
        ],
        "answer": "По учебному критерию 1 % последняя пара прошла проверку; причина остаточной погрешности всё ещё требует анализа.",
        "check": "Увеличение внешней области проверяют дополнительно; оно не включено в приведённый процент."
      },
      "practice": {
        "title": "Автоматический протокол независимых уточнений",
        "parameters": [
          {
            "name": "Размер элемента в зазоре",
            "value": "0,4; 0,2; 0,1",
            "unit": "мм"
          },
          {
            "name": "Критерий <span class=\"inline-math\" data-inline-latex=\"\\Psi\">\\Psi</span>",
            "value": "1",
            "unit": "%"
          },
          {
            "name": "Критерий среднего момента",
            "value": "2",
            "unit": "%"
          }
        ],
        "steps": [
          "Выберите одну машину и один токовый режим. Сохраните одинаковые параметры во всех трёх файлах модели FEMM.",
          "Назначьте размеры элементов в зазоре и критических областях. Для меток используйте mi_setblockprop с отключённым автоматическим размером, если требуется явный шаг.",
          "Запустите три анализа. Сохраните число элементов через mo_numelements и проверяемые <span class=\"inline-math\" data-inline-latex=\"\\Psi\">\\Psi</span>, энергию либо момент.",
          "Сформируйте относительное изменение двух последних результатов; при малом <span class=\"inline-math\" data-inline-latex=\"q\">q</span> используйте абсолютный допуск.",
          "С отдельной серией удвойте внешнюю область. Не меняйте одновременно зазор или материал.",
          "Покажите таблицу, а затем график <span class=\"inline-math\" data-inline-latex=\"q\">q</span> от размера элемента. Укажите, какой результат принят и почему."
        ],
        "expected": "Таблица позволяет принять конкретную сетку для конкретной величины, а не объявить всю модель точной.",
        "verification": "Независимые сеточная и граничная серии; допуск и масштаб заданы до выбора результата.",
        "table_number": "27.8"
      },
      "questions": [
        {
          "question": "Почему одинаковый предел <span class=\"inline-math\" data-inline-latex=\"\\Psi\">\\Psi</span> не гарантирует точный момент?",
          "answer": "Момент чувствителен к локальному полю и производным; ему нужен отдельный контроль."
        },
        {
          "question": "Когда уместен абсолютный допуск?",
          "answer": "При близкой к нулю величине, например малом зубцовом моменте или взаимной связи ортогональных обмоток."
        }
      ],
      "assignment": {
        "task": "Сравните сходимость <span class=\"inline-math\" data-inline-latex=\"\\Psi\">\\Psi</span> и момента на одной машине. Выберите минимальную сетку, удовлетворяющую обоим назначенным критериям.",
        "acceptance": "Есть три сетки, число элементов, отдельная проверка области, критерий каждой величины и объяснение выбора."
      },
      "pitfalls": [
        "Уменьшение невязки решателя не заменяет пространственное уточнение.",
        "Гладкая интерполяция цветового графика не доказывает точность интеграла."
      ],
      "model_family": "spm",
      "slug": "ii01-3",
      "display_number": "27.3",
      "paragraph_number": 27,
      "position": 94,
      "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": "solenoid",
        "description": "Расчёт выполнен установленным FEMM 5.0, сборка 06Oct2026, встроенным Python. Файл модели и решение позволяют повторить опыт; параметры этого образца указаны ниже. Повторный полевой расчёт 15 октября 2026 года и построение из учебной Python-программы подтвердили воспроизводимость модели.",
        "scope": "Осесимметричная учебная модель. Независимо проверены изменения сетки и внешнего радиуса; аналитическая модель тонкостенного соленоида служит отдельным приближённым ориентиром.",
        "metrics": [
          {
            "name": "Частота",
            "value": "0",
            "unit": "Гц"
          },
          {
            "name": "Ток цепи Катушка",
            "value": "1",
            "unit": "А"
          },
          {
            "name": "Потокосцепление цепи Катушка",
            "value": "9,585142e-05",
            "unit": "Вб"
          },
          {
            "name": "Энергия поля",
            "value": "4,791968e-05",
            "unit": "Дж"
          },
          {
            "name": "Модуль B в контрольной точке",
            "value": "0,0006085275",
            "unit": "Тл"
          },
          {
            "name": "Координаты контрольной точки (r, z)",
            "value": "0,001; 0",
            "unit": "мм"
          }
        ],
        "files": [
          {
            "path": "downloads/examples/solenoid/Воздушная-катушка-09-Готовая-модель.fem",
            "title": "Итоговая модель FEMM",
            "download_name": "Воздушная-катушка-09-Готовая-модель.fem",
            "sha256": "37942135b2cd907c405ea63b2ea26df6dfcbe1ec7924b06019c9e0c8aae73c39",
            "bytes": 3104
          },
          {
            "path": "downloads/examples/solenoid/Воздушная-катушка-09-Готовая-модель.ans",
            "title": "Сохранённое решение эталона",
            "download_name": "Воздушная-катушка-09-Готовая-модель.ans",
            "sha256": "dca569a35cf0144ef3e6b4279779a5cc53c8a6a0afbc04aebd89535a6b5903d4",
            "bytes": 442987
          },
          {
            "path": "results/solenoid.json",
            "title": "Численные результаты"
          }
        ],
        "image": "images/fields/solenoid.svg",
        "caption": "Визуализация численных данных FEMM 5: Воздушная катушка. Это экспорт результатов поля, а не снимок окна программы.",
        "image_width": 960,
        "image_height": 900,
        "table_number": "27.9",
        "figure_number": "27.21"
      },
      "code_download": "downloads/python/II01-3_Проверка_сходимости_сетки.py",
      "code_download_name": "II01-3_Проверка_сходимости_сетки.py",
      "code_download_title": "Программа: Проверка последней пары сеток",
      "detail_shots": [],
      "formula_refs": [
        {
          "number": "27.5",
          "anchor": "eq-ii01-3-1",
          "title": "Физическая и вычислительная постановка"
        },
        {
          "number": "27.6",
          "anchor": "eq-ii01-3-2",
          "title": "Численный пример"
        }
      ]
    },
    "client_data": {
      "id": "II01.3",
      "title": "Автоматический контроль сетки и независимых параметров",
      "slug": "ii01-3",
      "widget": {
        "type": "convergence",
        "config": {
          "variant": "mesh",
          "sizes": [
            0.4,
            0.2,
            0.1
          ],
          "values": [
            0.24,
            0.246,
            0.247
          ],
          "quantity": "Потокосцепление",
          "unit": "Вб",
          "tolerance": 1
        },
        "figure_numbers": {
          "main": "27.18",
          "schematic": "27.19",
          "response": "27.20"
        }
      },
      "formula_count": 2,
      "fe_reference": {
        "name": "solenoid",
        "description": "Расчёт выполнен установленным FEMM 5.0, сборка 06Oct2026, встроенным Python. Файл модели и решение позволяют повторить опыт; параметры этого образца указаны ниже. Повторный полевой расчёт 15 октября 2026 года и построение из учебной Python-программы подтвердили воспроизводимость модели.",
        "scope": "Осесимметричная учебная модель. Независимо проверены изменения сетки и внешнего радиуса; аналитическая модель тонкостенного соленоида служит отдельным приближённым ориентиром.",
        "metrics": [
          {
            "name": "Частота",
            "value": "0",
            "unit": "Гц"
          },
          {
            "name": "Ток цепи Катушка",
            "value": "1",
            "unit": "А"
          },
          {
            "name": "Потокосцепление цепи Катушка",
            "value": "9,585142e-05",
            "unit": "Вб"
          },
          {
            "name": "Энергия поля",
            "value": "4,791968e-05",
            "unit": "Дж"
          },
          {
            "name": "Модуль B в контрольной точке",
            "value": "0,0006085275",
            "unit": "Тл"
          },
          {
            "name": "Координаты контрольной точки (r, z)",
            "value": "0,001; 0",
            "unit": "мм"
          }
        ],
        "files": [
          {
            "path": "downloads/examples/solenoid/Воздушная-катушка-09-Готовая-модель.fem",
            "title": "Итоговая модель FEMM",
            "download_name": "Воздушная-катушка-09-Готовая-модель.fem",
            "sha256": "37942135b2cd907c405ea63b2ea26df6dfcbe1ec7924b06019c9e0c8aae73c39",
            "bytes": 3104
          },
          {
            "path": "downloads/examples/solenoid/Воздушная-катушка-09-Готовая-модель.ans",
            "title": "Сохранённое решение эталона",
            "download_name": "Воздушная-катушка-09-Готовая-модель.ans",
            "sha256": "dca569a35cf0144ef3e6b4279779a5cc53c8a6a0afbc04aebd89535a6b5903d4",
            "bytes": 442987
          },
          {
            "path": "results/solenoid.json",
            "title": "Численные результаты"
          }
        ],
        "image": "images/fields/solenoid.svg",
        "caption": "Визуализация численных данных FEMM 5: Воздушная катушка. Это экспорт результатов поля, а не снимок окна программы.",
        "image_width": 960,
        "image_height": 900,
        "table_number": "27.9",
        "figure_number": "27.21"
      },
      "code_download": "downloads/python/II01-3_Проверка_сходимости_сетки.py",
      "screenshots": [
        {
          "shot_id": "08-coil-mesh",
          "path": "images/screenshots/08-coil-mesh.png",
          "caption": "Треугольная конечно-элементная сетка катушки в воздухе. В областях проводников элементы мельче, чем у внешней границы расчётной области.",
          "width": 1026,
          "height": 800,
          "figure_number": "27.22"
        },
        {
          "shot_id": "09-coil-field",
          "path": "images/screenshots/09-coil-field.png",
          "caption": "Поле воздушной катушки: осесимметричный магнитостатический эталон FEMM 5.",
          "width": 1026,
          "height": 800,
          "figure_number": "27.23"
        },
        {
          "shot_id": "34-spm-geometry",
          "path": "images/screenshots/34-spm-geometry.png",
          "caption": "Геометрия: поверхностные постоянные магниты и проверенная трёхфазная обмотка",
          "width": 1026,
          "height": 800,
          "figure_number": "27.24"
        },
        {
          "shot_id": "34-spm-field",
          "path": "images/screenshots/34-spm-field.png",
          "caption": "Распределение магнитной индукции: поверхностные постоянные магниты и проверенная трёхфазная обмотка",
          "width": 1026,
          "height": 800,
          "figure_number": "27.25"
        },
        {
          "shot_id": "mesh-spm-gap",
          "path": "images/screenshots/supplemental/mesh-spm-gap.png",
          "caption": "Машина с поверхностными постоянными магнитами: выбранная сетка воздушного зазора.",
          "width": 1026,
          "height": 800,
          "source_series": "refined_mesh",
          "figure_number": "27.26"
        },
        {
          "shot_id": "mesh-spm-torque",
          "path": "images/screenshots/supplemental/mesh-spm-torque.png",
          "caption": "Машина с поверхностными постоянными магнитами: момент ротора на выбранной сетке.",
          "width": 1026,
          "height": 800,
          "source_series": "refined_mesh",
          "figure_number": "27.27"
        },
        {
          "shot_id": "mesh-ipm-gap",
          "path": "images/screenshots/supplemental/mesh-ipm-gap.png",
          "caption": "Машина со встроенными постоянными магнитами: выбранная сетка воздушного зазора.",
          "width": 1026,
          "height": 800,
          "source_series": "refined_mesh",
          "figure_number": "27.28"
        },
        {
          "shot_id": "mesh-ipm-torque",
          "path": "images/screenshots/supplemental/mesh-ipm-torque.png",
          "caption": "Машина со встроенными постоянными магнитами: момент ротора на выбранной сетке.",
          "width": 1026,
          "height": 800,
          "source_series": "refined_mesh",
          "figure_number": "27.29"
        },
        {
          "shot_id": "mesh-synchronous-turbo-gap",
          "path": "images/screenshots/supplemental/mesh-synchronous-turbo-gap.png",
          "caption": "Синхронная машина с неявнополюсным ротором: выбранная сетка воздушного зазора.",
          "width": 1026,
          "height": 800,
          "source_series": "refined_mesh",
          "figure_number": "27.30"
        },
        {
          "shot_id": "mesh-synchronous-turbo-torque",
          "path": "images/screenshots/supplemental/mesh-synchronous-turbo-torque.png",
          "caption": "Синхронная машина с неявнополюсным ротором: момент ротора на выбранной сетке.",
          "width": 1026,
          "height": 800,
          "source_series": "refined_mesh",
          "figure_number": "27.31"
        },
        {
          "shot_id": "mesh-synchronous-hydro-gap",
          "path": "images/screenshots/supplemental/mesh-synchronous-hydro-gap.png",
          "caption": "Синхронная машина с явнополюсным ротором: выбранная сетка воздушного зазора.",
          "width": 1026,
          "height": 800,
          "source_series": "refined_mesh",
          "figure_number": "27.32"
        },
        {
          "shot_id": "mesh-synchronous-hydro-torque",
          "path": "images/screenshots/supplemental/mesh-synchronous-hydro-torque.png",
          "caption": "Синхронная машина с явнополюсным ротором: момент ротора на выбранной сетке.",
          "width": 1026,
          "height": 800,
          "source_series": "refined_mesh",
          "figure_number": "27.33"
        },
        {
          "shot_id": "mesh-synrm-gap",
          "path": "images/screenshots/supplemental/mesh-synrm-gap.png",
          "caption": "Синхронная реактивная машина: выбранная сетка воздушного зазора. Дополнительные окружности в воздушном кольце задают области объёмного радиального усреднения при проверке момента методом Арккио.",
          "width": 1026,
          "height": 800,
          "source_series": "refined_mesh",
          "figure_number": "27.34"
        },
        {
          "shot_id": "mesh-synrm-torque",
          "path": "images/screenshots/supplemental/mesh-synrm-torque.png",
          "caption": "Синхронная реактивная машина: момент ротора на выбранной сетке.",
          "width": 1026,
          "height": 800,
          "source_series": "refined_mesh",
          "figure_number": "27.35"
        },
        {
          "shot_id": "mesh-srm-gap",
          "path": "images/screenshots/supplemental/mesh-srm-gap.png",
          "caption": "Вентильно-индукторная машина: исходное положение: выбранная сетка воздушного зазора. Дополнительные окружности в воздушном кольце задают области объёмного радиального усреднения при проверке момента методом Арккио.",
          "width": 1026,
          "height": 800,
          "source_series": "refined_mesh",
          "figure_number": "27.36"
        },
        {
          "shot_id": "mesh-srm-torque",
          "path": "images/screenshots/supplemental/mesh-srm-torque.png",
          "caption": "Вентильно-индукторная машина: исходное положение: момент ротора на выбранной сетке.",
          "width": 1026,
          "height": 800,
          "source_series": "refined_mesh",
          "figure_number": "27.37"
        },
        {
          "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": "27.38"
        },
        {
          "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": "27.39"
        },
        {
          "shot_id": "mesh-dc-gap",
          "path": "images/screenshots/supplemental/mesh-dc-gap.png",
          "caption": "Машина постоянного тока: выбранная сетка воздушного зазора.",
          "width": 1026,
          "height": 800,
          "source_series": "refined_mesh",
          "figure_number": "27.40"
        },
        {
          "shot_id": "mesh-dc-torque",
          "path": "images/screenshots/supplemental/mesh-dc-torque.png",
          "caption": "Машина постоянного тока: момент ротора на выбранной сетке.",
          "width": 1026,
          "height": 800,
          "source_series": "refined_mesh",
          "figure_number": "27.41"
        },
        {
          "shot_id": "core-profile-off",
          "path": "images/screenshots/supplemental/core-profile-off.png",
          "caption": "Профиль |B| через стержни и окно: сглаживание выключено. Контур от (−45; 15) до (45; 15) мм, 400 точек. Position — расстояние от начала контура в мм; |B| — магнитная индукция в Тл. Единицы восстановлены по модели и выбранной величине: само окно FEMM их не печатает.",
          "width": 1026,
          "height": 800,
          "source_series": "explanation",
          "figure_number": "27.42"
        },
        {
          "shot_id": "core-profile-on",
          "path": "images/screenshots/supplemental/core-profile-on.png",
          "caption": "Профиль |B| через стержни и окно: сглаживание включено. Контур от (−45; 15) до (45; 15) мм, 400 точек. Position — расстояние от начала контура в мм; |B| — магнитная индукция в Тл. Единицы восстановлены по модели и выбранной величине: само окно FEMM их не печатает.",
          "width": 1026,
          "height": 800,
          "source_series": "explanation",
          "figure_number": "27.43"
        },
        {
          "shot_id": "python-ii01-3",
          "path": "images/screenshots/supplemental/python-ii01-3.png",
          "caption": "Встроенная консоль FEMM: Автоматический контроль сетки и независимых параметров. Аналитическая проверка программы занятия.",
          "width": 1026,
          "height": 800,
          "source_series": "embedded_analytic",
          "figure_number": "27.44"
        }
      ],
      "example_links": [
        {
          "id": "solenoid",
          "slug": "solenoid",
          "title": "Воздушная катушка",
          "path": "examples/solenoid/index.html",
          "primary": true
        },
        {
          "id": "spm",
          "slug": "spm",
          "title": "Машина с поверхностными постоянными магнитами",
          "path": "examples/spm/index.html",
          "primary": false
        },
        {
          "id": "solenoid-coarse",
          "slug": "solenoid-coarse",
          "title": "Воздушная катушка: грубая сетка",
          "path": "examples/solenoid-coarse/index.html",
          "primary": false
        },
        {
          "id": "solenoid-fine",
          "slug": "solenoid-fine",
          "title": "Воздушная катушка: мелкая сетка",
          "path": "examples/solenoid-fine/index.html",
          "primary": false
        },
        {
          "id": "solenoid-finest",
          "slug": "solenoid-finest",
          "title": "Воздушная катушка: наиболее мелкая сетка",
          "path": "examples/solenoid-finest/index.html",
          "primary": false
        },
        {
          "id": "solenoid-domain",
          "slug": "solenoid-domain",
          "title": "Воздушная катушка: удаление внешней границы",
          "path": "examples/solenoid-domain/index.html",
          "primary": false
        }
      ]
    }
  }
}
