{
  "assignment": {
    "id": "practice-ii02-2",
    "lessonId": "II02.2",
    "version": "2026-10-16.2",
    "primary": true,
    "displayNumber": "31.2",
    "title": "Таблицы потокосцеплений и локальная матрица индуктивностей",
    "summary": "Строим таблицу потокосцеплений нескольких обмоток и определяем локальную матрицу индуктивностей при насыщении.",
    "part": "VI",
    "partLabel": "Углублённый расчёт электрических аппаратов",
    "moduleId": "VI.01",
    "moduleTitle": "Нелинейные полевые характеристики",
    "position": 101,
    "category": "Python и расчёт",
    "durationMinutes": 160,
    "environment": "FEMM 5; запишите точную сборку, физический модуль, единицы, тип задачи и параметры своего опыта. Для аналитической части укажите формулы и исходные данные; для Python — встроенную среду и рабочий каталог.",
    "instructions": [
      {
        "title": "Уточните выданное условие",
        "text": "Выполните базовый практикум «Локальный Якобиан потокосцеплений» по шагам занятия. Затем выполните самостоятельную часть: Постройте матрицу в двух рабочих точках с разным насыщением. Сравните собственные и взаимные производные, сохранив исходные таблицы."
      },
      {
        "title": "Откройте исходный практикум",
        "text": "Сопоставьте условия варианта с параметрами и действиями занятия. Сохраните исходники отдельно; работайте в своём каталоге.",
        "href": "lessons/ii02-2/index.html#practice"
      },
      {
        "title": "Подготовьте результат",
        "text": "Выполните запрошенные действия. В таблице укажите величину, значение, единицу, метод и файл-источник; для ошибки оставьте численное поле пустым и запишите причину. Пустой шаблон CSV не является результатом."
      },
      {
        "title": "Проверьте доказательства",
        "text": "1. Названы собственные материалы, использованные средства расчёта, единицы, параметры и режимы; для полевой работы указана сборка FEMM. Числа из примера отделены от самостоятельно полученных результатов.\n2. По переданному ответу и файлам можно повторить формулы или действия и найти каждый результат. Для полевого расчёта указаны порядок запуска, точки, области и контуры измерений; пропуски и отказы объяснены.\n3. Для двух портов требуется четыре возмущённых решения; для N портов — 2N плюс базовый режим.\n4. Все токи и угол обозначены; шаг проверен; матрица динамических индуктивностей не заменена отношениями потокосцеплений к токам; взаимность оценена численно.\n5. Все токи и угол обозначены; шаг проверен; матрица динамических индуктивностей не заменена отношениями потокосцеплений к токам; взаимность оценена численно.\n6. Для двух портов требуется четыре возмущённых решения; для N портов — 2N плюс базовый режим."
      },
      {
        "title": "Сдайте и получите отзыв",
        "text": "Заполните результаты, приложите обязательные файлы и скачайте ZIP. Передайте его преподавателю. Полученный JSON откройте на шаге 5; при замечаниях подготовьте новую версию.",
        "href": "workspace/index.html?assignment=practice-ii02-2&variant=A#assignment-work"
      }
    ],
    "variants": [
      {
        "id": "A",
        "title": "A · Практикум и самостоятельная работа",
        "task": "Выполните базовый практикум «Локальный Якобиан потокосцеплений» по шагам занятия. Затем выполните самостоятельную часть: Постройте матрицу в двух рабочих точках с разным насыщением. Сравните собственные и взаимные производные, сохранив исходные таблицы.",
        "sourceTask": "Постройте матрицу в двух рабочих точках с разным насыщением. Сравните собственные и взаимные производные, сохранив исходные таблицы.",
        "sourceVariantId": "II02.2:source-assignment",
        "sourceRubric": [
          "Все токи и угол обозначены; шаг проверен; матрица динамических индуктивностей не заменена отношениями потокосцеплений к токам; взаимность оценена численно.",
          "Для двух портов требуется четыре возмущённых решения; для \\(N\\) портов — 2\\(N\\) плюс базовый режим."
        ],
        "source": {
          "file": "course-site/data/lessons-embedded.json",
          "lessonId": "II02.2",
          "field": "assignment + practice.verification",
          "sha256": "ce0962c054fbbd3562f421c3ddc53fccae08374844addbdd77fa0cb53287fe0e"
        },
        "kind": "practice",
        "parameters": [
          {
            "name": "Рабочие токи",
            "value": "2; 1",
            "unit": "А"
          },
          {
            "name": "Шаги тока",
            "value": "0,1; 0,05",
            "unit": "А"
          },
          {
            "name": "Положение",
            "value": "фиксировано",
            "unit": ""
          }
        ],
        "expected": [
          {
            "id": "outcome",
            "type": "text",
            "label": "Ответ и полученные результаты",
            "unit": "",
            "maxLength": 16000,
            "hint": "Представьте собственные результаты именно этого варианта: величины с единицами, таблицу или вывод. Укажите файл и строки/режимы. Локальный Якобиан потокосцеплений"
          },
          {
            "id": "verification",
            "type": "text",
            "label": "Проверка результата и расхождения",
            "unit": "",
            "maxLength": 12000,
            "hint": "Все токи и угол обозначены; шаг проверен; матрица динамических индуктивностей не заменена отношениями потокосцеплений к токам; взаимность оценена численно."
          },
          {
            "id": "evidence-map",
            "type": "text",
            "label": "Где находятся доказательства по критериям",
            "unit": "",
            "maxLength": 12000,
            "hint": "Для каждого предметного критерия ниже укажите файл, строку таблицы, режим или абзац ответа. Отдельно назовите невыполненные пункты и причины."
          }
        ],
        "criteria": [
          {
            "id": "source",
            "label": "Исходные условия и происхождение",
            "description": "Названы собственные материалы, использованные средства расчёта, единицы, параметры и режимы; для полевой работы указана сборка FEMM. Числа из примера отделены от самостоятельно полученных результатов."
          },
          {
            "id": "reproduce",
            "label": "Повторение по переданным файлам",
            "description": "По переданному ответу и файлам можно повторить формулы или действия и найти каждый результат. Для полевого расчёта указаны порядок запуска, точки, области и контуры измерений; пропуски и отказы объяснены."
          },
          {
            "id": "practice",
            "label": "Выполнение базового практикума",
            "description": "Для двух портов требуется четыре возмущённых решения; для N портов — 2N плюс базовый режим."
          },
          {
            "id": "source-task",
            "label": "Самостоятельная часть",
            "description": "Все токи и угол обозначены; шаг проверен; матрица динамических индуктивностей не заменена отношениями потокосцеплений к токам; взаимность оценена численно."
          },
          {
            "id": "evidence-1",
            "label": "Предметный критерий 1",
            "description": "Все токи и угол обозначены; шаг проверен; матрица динамических индуктивностей не заменена отношениями потокосцеплений к токам; взаимность оценена численно."
          },
          {
            "id": "evidence-2",
            "label": "Предметный критерий 2",
            "description": "Для двух портов требуется четыре возмущённых решения; для N портов — 2N плюс базовый режим."
          }
        ],
        "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/ii02-2/index.html#practice"
          },
          {
            "title": "Подготовьте результат",
            "text": "Выполните запрошенные действия. В таблице укажите величину, значение, единицу, метод и файл-источник; для ошибки оставьте численное поле пустым и запишите причину. Пустой шаблон CSV не является результатом."
          },
          {
            "title": "Проверьте доказательства",
            "text": "1. Названы собственные материалы, использованные средства расчёта, единицы, параметры и режимы; для полевой работы указана сборка FEMM. Числа из примера отделены от самостоятельно полученных результатов.\n2. По переданному ответу и файлам можно повторить формулы или действия и найти каждый результат. Для полевого расчёта указаны порядок запуска, точки, области и контуры измерений; пропуски и отказы объяснены.\n3. Для двух портов требуется четыре возмущённых решения; для N портов — 2N плюс базовый режим.\n4. Все токи и угол обозначены; шаг проверен; матрица динамических индуктивностей не заменена отношениями потокосцеплений к токам; взаимность оценена численно.\n5. Все токи и угол обозначены; шаг проверен; матрица динамических индуктивностей не заменена отношениями потокосцеплений к токам; взаимность оценена численно.\n6. Для двух портов требуется четыре возмущённых решения; для N портов — 2N плюс базовый режим."
          },
          {
            "title": "Сдайте и получите отзыв",
            "text": "Заполните результаты, приложите обязательные файлы и скачайте ZIP. Передайте его преподавателю. Полученный JSON откройте на шаге 5; при замечаниях подготовьте новую версию.",
            "href": "workspace/index.html?assignment=practice-ii02-2&variant=A#assignment-work"
          }
        ]
      },
      {
        "id": "B",
        "title": "B · Защита выполненной работы",
        "task": "Защитите ранее выполненный практикум A. В письменном ответе укажите код/имя своей работы A и опирайтесь на её результаты. Вопрос защиты: Можно ли навязать симметрию матрице до проверки?",
        "sourceTask": "Можно ли навязать симметрию матрице до проверки?",
        "sourceVariantId": "II02.2:oral-defense",
        "sourceRubric": [
          "Для консервативной модели симметрия ожидается, но сначала нужно измерить исходное расхождение и найти его причину.",
          "Для двух портов требуется четыре возмущённых решения; для \\(N\\) портов — 2\\(N\\) плюс базовый режим."
        ],
        "source": {
          "file": "course-site/data/lessons-embedded.json",
          "lessonId": "II02.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": "Для двух портов требуется четыре возмущённых решения; для N портов — 2N плюс базовый режим."
          }
        ],
        "requiredExtensions": [],
        "requiredFileCounts": [],
        "allowEmptyFiles": true,
        "referenceNote": "Форма проверяет заполнение ответа. Предметную правильность по приведённым критериям подтверждает преподаватель. Защита относится к выполненной работе A; повторный полевой расчёт для одного вопроса не требуется.",
        "instructions": [
          {
            "title": "Уточните выданное условие",
            "text": "Защитите ранее выполненный практикум A. В письменном ответе укажите код/имя своей работы A и опирайтесь на её результаты. Вопрос защиты: Можно ли навязать симметрию матрице до проверки?"
          },
          {
            "title": "Откройте исходный практикум",
            "text": "Сопоставьте условия варианта с параметрами и действиями занятия. Сохраните исходники отдельно; работайте в своём каталоге.",
            "href": "lessons/ii02-2/index.html#practice"
          },
          {
            "title": "Подготовьте результат",
            "text": "Подготовьте письменный ответ с отсылками к своему пакету A. Дополнительные файлы можно приложить, если они нужны для объяснения."
          },
          {
            "title": "Проверьте доказательства",
            "text": "1. Указана работа A, её условия и конкретные результаты, на которые опирается ответ.\n2. Ответ содержит ход рассуждения и способ проверить вывод на сохранённых результатах работы A.\n3. Для консервативной модели симметрия ожидается, но сначала нужно измерить исходное расхождение и найти его причину.\n4. Для двух портов требуется четыре возмущённых решения; для N портов — 2N плюс базовый режим."
          },
          {
            "title": "Сдайте и получите отзыв",
            "text": "Заполните результаты, приложите обязательные файлы и скачайте ZIP. Передайте его преподавателю. Полученный JSON откройте на шаге 5; при замечаниях подготовьте новую версию.",
            "href": "workspace/index.html?assignment=practice-ii02-2&variant=B#assignment-work"
          }
        ]
      }
    ],
    "downloads": [
      {
        "label": "Итоговая модель FEMM",
        "path": "downloads/examples/nonlinear-3/Нелинейный-магнитопровод-09-Готовая-модель.fem",
        "sha256": "b1636ff4c9ed1eae09c9dba8b4a21e85ddca81b6d8d1456409d1aa43641cdaf0",
        "role": "reference"
      },
      {
        "label": "Численные результаты",
        "path": "results/nonlinear-3.json",
        "sha256": "944251dd41ce77591a009bda6725c7a06c7fc92580a4b5fa0e6dbc865602b231",
        "role": "reference"
      },
      {
        "label": "Исходная программа занятия",
        "path": "downloads/python/II02-2_Дифференциальная_индуктивность.py",
        "sha256": "f704c81dd071bdf03e97ed8cc70de92ec9be8faea0c8a3b341923fa2c1f6e1c3",
        "role": "source-code"
      },
      {
        "label": "Пустой шаблон таблицы результатов CSV",
        "path": "downloads/assignments/ii02-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": "Для двух портов требуется четыре возмущённых решения; для N портов — 2N плюс базовый режим."
      },
      {
        "id": "source-task",
        "label": "Самостоятельная часть",
        "description": "Все токи и угол обозначены; шаг проверен; матрица динамических индуктивностей не заменена отношениями потокосцеплений к токам; взаимность оценена численно."
      },
      {
        "id": "evidence-1",
        "label": "Предметный критерий 1",
        "description": "Все токи и угол обозначены; шаг проверен; матрица динамических индуктивностей не заменена отношениями потокосцеплений к токам; взаимность оценена численно."
      },
      {
        "id": "evidence-2",
        "label": "Предметный критерий 2",
        "description": "Для двух портов требуется четыре возмущённых решения; для N портов — 2N плюс базовый режим."
      }
    ],
    "reflectionPrompts": [
      "Почему нужно фиксировать второй ток при вычислении L_{11}?",
      "Можно ли навязать симметрию матрице до проверки?"
    ],
    "limitations": "Условная учебная кривая B(H), заданная в файле; это не паспорт промышленной стали. Статическая индуктивность (наклон секущей) и динамическая индуктивность (наклон касательной) при насыщении различаются.",
    "verificationNote": "Расширен путь сдачи и проверки исходного практикума. Новое выполнение всех вариантов в FEMM этим изменением не заявляется. Сохранённые результаты примеров относятся только к указанным в них моделям и условиям.",
    "teacherPlan": [
      {
        "minutes": 10,
        "title": "Условие и прогноз",
        "text": "Выдать A или продолжение B; проверить исходные данные и связь с практикумом."
      },
      {
        "minutes": 125,
        "title": "Выполнение",
        "text": "Локальный Якобиан потокосцеплений"
      },
      {
        "minutes": 15,
        "title": "Проверка и пакет",
        "text": "Для двух портов требуется четыре возмущённых решения; для N портов — 2N плюс базовый режим."
      },
      {
        "minutes": 10,
        "title": "Обратная связь",
        "text": "Применить рубрику выбранного варианта; вернуть адресные замечания и проверить новую сдачу."
      }
    ],
    "sources": [
      {
        "file": "course-site/data/lessons-embedded.json",
        "lessonId": "II02.2",
        "field": "objectives + questions + assignment",
        "sha256": "ce0962c054fbbd3562f421c3ddc53fccae08374844addbdd77fa0cb53287fe0e"
      },
      {
        "path": "tools/assignment_expansion.py",
        "kind": "source-backed-workflow"
      }
    ],
    "sourcePractice": {
      "title": "Локальный Якобиан потокосцеплений",
      "parameters": [
        {
          "name": "Рабочие токи",
          "value": "2; 1",
          "unit": "А"
        },
        {
          "name": "Шаги тока",
          "value": "0,1; 0,05",
          "unit": "А"
        },
        {
          "name": "Положение",
          "value": "фиксировано",
          "unit": ""
        }
      ],
      "steps": [
        "В двухобмоточной модели задайте рабочие токи и сохраните базовый результат.",
        "Для каждой цепи отдельно выполните два симметричных токовых возмущения и читайте \\(\\Psi\\) обеих обмоток.",
        "Соберите столбцы матрицы из центральных разностей. Между столбцами восстанавливайте базовые токи.",
        "Повторите вычисления с половинным шагом. Отдельно оцените расхождение взаимных элементов; не заменяйте их средним значением до проверки.",
        "Расширьте токовый набор до небольшой карты; вне рассчитанной области запретите интерполяцию.",
        "Укажите наличие постоянных магнитов и тип материала; не выдавайте отношение потокосцепления к току за динамическую индуктивность."
      ],
      "expected": "Матрица в одной рабочей точке и контроль зависимости от шага; карта содержит все исходные \\(\\Psi\\).",
      "verification": "Для двух портов требуется четыре возмущённых решения; для \\(N\\) портов — 2\\(N\\) плюс базовый режим.",
      "table_number": "31.5"
    },
    "sourceAssignment": {
      "task": "Постройте матрицу в двух рабочих точках с разным насыщением. Сравните собственные и взаимные производные, сохранив исходные таблицы.",
      "acceptance": "Все токи и угол обозначены; шаг проверен; матрица динамических индуктивностей не заменена отношениями потокосцеплений к токам; взаимность оценена численно."
    }
  },
  "lesson": {
    "id": "II02.2",
    "title": "Таблицы потокосцеплений и локальная матрица индуктивностей",
    "summary": "Строим таблицу потокосцеплений нескольких обмоток и определяем локальную матрицу индуктивностей при насыщении.",
    "objectives": [
      "Вычислять центральные производные \\(\\Psi_j\\) по каждому току при фиксированных остальных токах и положении.",
      "Получить четыре частные производные независимыми возмущениями токов.",
      "Проверить изменение результата при уменьшении шага и взаимность в одной рабочей точке."
    ],
    "prerequisites": [
      "II02.1"
    ],
    "theory": [
      {
        "heading": "Физическая и вычислительная постановка",
        "paragraphs": [
          "В линейной консервативной системе потокосцепления образуют линейное отображение токов. При нелинейном железе это отображение заменяется гладкой локальной картой, а её матрица Якоби является матрицей динамических индуктивностей. Разложение Тейлора \\(\\Psi\\)(\\(i\\) + \\(\\Delta i\\)) ≈ \\(\\Psi\\)(\\(i\\)) + \\(L_{\\text{дин}} \\Delta i\\) выводит эту матрицу непосредственно. Для каждого столбца меняется только один ток; остальные токи и положение фиксируются.",
          "Центральная разность использует симметричные возмущения и обычно уменьшает ошибку усечения относительно односторонней. Но чрезмерно малый шаг усиливает влияние численного шума поля. Поэтому проверяют \\(\\Delta I\\) и \\(\\Delta I\\)/2, сохраняя одну сетку и одинаковые допуски решателя. Взаимность \\(L_{jk}\\) = \\(L_{kj}\\) относится к локальным производным одной консервативной точки. Покомпонентное деление \\(\\Psi_j\\)/\\(i_k\\) не создаёт универсальную матрицу статических индуктивностей насыщенной многопортовой машины; присутствие постоянных магнитов дополнительно требует корректного учёта исходного потокосцепления.",
          "В линейной системе \\(\\boldsymbol\\Psi=\\boldsymbol\\Psi_0+\\mathbf L\\mathbf i\\) одна постоянная матрица L описывает и конечные изменения относительно \\(\\boldsymbol\\Psi_0\\), и локальные производные. При нелинейной B–H-характеристике именно матрица \\(L_{\\text{дин},jk}=\\partial\\Psi_j/\\partial i_k\\) однозначно задаёт малый отклик в фиксированной точке; универсальная статическая матрица не получается покомпонентным делением. Слова «касательная» и «дифференциальная» далее объясняют математический смысл динамической матрицы."
        ],
        "formulas": [
          {
            "latex": "\\Psi_j(\\mathbf i+\\Delta\\mathbf i)\\approx\\Psi_j(\\mathbf i)+\\sum_k L_{\\text{дин},jk}\\Delta i_k,\\quad L_{\\text{дин},jk}\\approx\\frac{\\Psi_j(\\mathbf i+\\Delta I\\mathbf e_k)-\\Psi_j(\\mathbf i-\\Delta I\\mathbf e_k)}{2\\Delta I}",
            "explanation": "\\(\\Delta I\\) — шаг тока, А; элементы локальной матрицы имеют единицу Гн.",
            "number": "31.3",
            "anchor": "eq-ii02-2-1"
          }
        ]
      },
      {
        "heading": "Порядок проверки результата",
        "paragraphs": [
          "Численный пример ниже является аналитическим учебным эталоном. Его значения вычислены по указанным формулам; они не обозначают результат решения новой модели методом конечных элементов. Практикум связывает эталон с полевой задачей: сначала воспроизведите уже проверенный результат части I, затем измените только один исследуемый параметр. Именно такое сравнение позволяет отделить ошибку программы от влияния геометрии, сетки и физического приближения. Сохраните исходную модель, рабочую копию и таблицу с заголовками величин. В подписи каждой величины укажите единицу, положительное направление и способ получения; для гармонических величин дополнительно укажите амплитудную нормировку. Если условие задачи не выполнено, остановите серию и сохраните причину отказа вместе с последним корректным состоянием."
        ],
        "formulas": []
      },
      {
        "heading": "Пояснение программы",
        "paragraphs": [
          "Функция `linkage1` задаёт независимую нелинейную характеристику первой обмотки. Во всех возмущённых состояниях ток второй обмотки равен 1 А. Производная по первому току вычисляется центральной разностью с расстоянием 2·step между точками. Два значения шага позволяют проверить устойчивость производной. В системе нескольких связанных обмоток такую проверку выполняют для каждого столбца локальной матрицы индуктивностей.",
          "Термин «дифференциальная индуктивность» в комментариях программы означает динамическую индуктивность \\(L_{\\text{дин}}\\): здесь вычисляется центральная оценка частной производной."
        ],
        "formulas": []
      },
      {
        "heading": "Таблица потокосцеплений как локальная модель",
        "paragraphs": [
          "Каждая строка таблицы относится к одной геометрии, температуре и положению. Все компоненты потокосцепления снимаются для одного совместного токового состояния."
        ],
        "formulas": [],
        "derivation_steps": [
          {
            "text": "Постройте таблицу в пространстве независимых токов. При постоянных магнитах сохраните ненулевое смещение при нулевом токе."
          },
          {
            "text": "В одной выбранной точке используйте парные возмущения каждого тока для столбцов Якобиана. Порядок токов и потокосцеплений должен совпадать во всех строках."
          },
          {
            "text": "Проверьте предсказание в случайном малом смешанном направлении и затем уменьшите его масштаб. Ошибка линейного предсказания должна уменьшаться до уровня численного шума."
          }
        ],
        "symbols": [
          {
            "symbol": "i",
            "meaning": "Мгновенный ток",
            "unit": "А"
          },
          {
            "symbol": "\\Psi",
            "meaning": "Потокосцепление обмотки",
            "unit": "Вб"
          },
          {
            "symbol": "L",
            "meaning": "Индуктивность при явно указанной линеаризации",
            "unit": "Гн"
          }
        ],
        "applicability": "Интерполяция допускается только внутри охваченного диапазона. Вне его программа должна явно сообщить об экстраполяции, особенно при насыщении.",
        "editorial_tag": "textbook-math-2026-10",
        "symbols_number": "31.4"
      },
      {
        "heading": "Связь с общими определениями",
        "paragraphs": [
          "Определения и границы применимости собраны в занятии [Статическая и динамическая индуктивности](../inductance-static-dynamic/index.html). Используйте интегральную запись как исходную; алгебраические формулы применяйте после проверки перечисленных там условий."
        ],
        "formulas": []
      }
    ],
    "worked_example": {
      "title": "Вычисленный аналитический эталон",
      "given": "Независимый математический эталон: \\(\\Psi_{1}\\) = 0,1\\(i_{1}\\) + 0,02\\(i_{2}\\) + 0,002\\(i_{1}^{3}\\); \\(\\Psi_{2}\\) = 0,02\\(i_{1}\\) + 0,08\\(i_{2}\\). Точка (\\(i_{1}\\),\\(i_{2}\\)) = (2,1) А; \\(\\Delta I\\) = 0,1 А. Положительный кубический член даёт растущую динамическую индуктивность и не моделирует насыщение железа. Эталон проверяет только разностный алгоритм; насыщенная полевая карта исследуется отдельно.",
      "steps": [
        {
          "text": "Производная \\(L_{11}\\) = 0,1 + 0,006\\(i_{1}^{2}\\) = 0,124 Гн. Центральная разность даёт 0,12402 Гн.",
          "latex": "\\mathbf L_{\\text{дин}}=\\begin{bmatrix}0{,}124&0{,}02\\\\0{,}02&0{,}08\\end{bmatrix}\\ \\text{Гн},\\quad \\det\\mathbf L_{\\text{дин}}=0{,}00952\\ \\text{Гн}^2",
          "formula_number": "31.4",
          "anchor": "eq-ii02-2-2"
        },
        {
          "text": "\\(L_{12}\\) = \\(L_{21}\\) = 0,02 Гн; \\(L_{22}\\) = 0,08 Гн."
        },
        {
          "text": "При \\(\\Delta I\\) = 0,05 А численный \\(L_{11}\\) = 0,124005 Гн; ошибка уменьшается в четыре раза."
        }
      ],
      "answer": "Локальная матрица [[0,124; 0,02],[0,02; 0,08]] Гн; центральные разности сходятся к ней.",
      "check": "Определитель 0,124 · 0,08 − 0,02² = 0,00952 Гн² > 0; симметрия выполнена."
    },
    "practice": {
      "title": "Локальный Якобиан потокосцеплений",
      "parameters": [
        {
          "name": "Рабочие токи",
          "value": "2; 1",
          "unit": "А"
        },
        {
          "name": "Шаги тока",
          "value": "0,1; 0,05",
          "unit": "А"
        },
        {
          "name": "Положение",
          "value": "фиксировано",
          "unit": ""
        }
      ],
      "steps": [
        "В двухобмоточной модели задайте рабочие токи и сохраните базовый результат.",
        "Для каждой цепи отдельно выполните два симметричных токовых возмущения и читайте \\(\\Psi\\) обеих обмоток.",
        "Соберите столбцы матрицы из центральных разностей. Между столбцами восстанавливайте базовые токи.",
        "Повторите вычисления с половинным шагом. Отдельно оцените расхождение взаимных элементов; не заменяйте их средним значением до проверки.",
        "Расширьте токовый набор до небольшой карты; вне рассчитанной области запретите интерполяцию.",
        "Укажите наличие постоянных магнитов и тип материала; не выдавайте отношение потокосцепления к току за динамическую индуктивность."
      ],
      "expected": "Матрица в одной рабочей точке и контроль зависимости от шага; карта содержит все исходные \\(\\Psi\\).",
      "verification": "Для двух портов требуется четыре возмущённых решения; для \\(N\\) портов — 2\\(N\\) плюс базовый режим.",
      "table_number": "31.5"
    },
    "widget": {
      "type": "map",
      "config": {
        "variant": "jacobian",
        "currents": [
          2,
          1
        ],
        "step": 0.1,
        "matrix": [
          [
            0.124,
            0.02
          ],
          [
            0.02,
            0.08
          ]
        ],
        "unit": "Гн"
      },
      "figure_numbers": {
        "main": "31.8",
        "schematic": "31.9",
        "response": "31.10"
      }
    },
    "questions": [
      {
        "question": "Почему нужно фиксировать второй ток при вычислении \\(L_{11}\\)?",
        "answer": "Иначе производная относится к другому пути возбуждения и не является частной производной по \\(i_{1}\\)."
      },
      {
        "question": "Можно ли навязать симметрию матрице до проверки?",
        "answer": "Для консервативной модели симметрия ожидается, но сначала нужно измерить исходное расхождение и найти его причину."
      }
    ],
    "assignment": {
      "task": "Постройте матрицу в двух рабочих точках с разным насыщением. Сравните собственные и взаимные производные, сохранив исходные таблицы.",
      "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": "15, 49–52, 105–110",
        "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, с. 84–103; исходный PDF, с. 119–138"
      }
    ],
    "model_family": "magnetic-circuit",
    "code": [
      {
        "title": "Аналитическая проверка центральной производной",
        "language": "python",
        "source": "# Учебная нелинейная характеристика первой обмотки; токи в А, потокосцепление в Вб.\ndef linkage1(i1, i2):\n    return 0.1*i1 + 0.02*i2 + 0.002*i1**3\n# Уменьшаем возмущение тока вдвое для независимой проверки шага производной.\nfor step in [0.1, 0.05]:\n    # Центральная разность по первому току при неизменном втором токе 1 А.\n    # Расстояние между двумя режимами равно 2·step; результат имеет размерность Гн.\n    derivative = (linkage1(2+step, 1)-linkage1(2-step, 1))/(2*step)\n    # Порядок вывода: шаг тока, А; дифференциальная индуктивность, Гн.\n    print(step, derivative)\n",
        "explanation": "Этот эталон проверяет разностный алгоритм; полевые \\(\\Psi\\) подставляются после независимого повторения GUI-модели.",
        "highlighted": "<span class=\"c1\"># Учебная нелинейная характеристика первой обмотки; токи в А, потокосцепление в Вб.</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">linkage1</span><span class=\"p\">(</span><span class=\"n\">i1</span><span class=\"p\">,</span> <span class=\"n\">i2</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"mf\">0.1</span><span class=\"o\">*</span><span class=\"n\">i1</span> <span class=\"o\">+</span> <span class=\"mf\">0.02</span><span class=\"o\">*</span><span class=\"n\">i2</span> <span class=\"o\">+</span> <span class=\"mf\">0.002</span><span class=\"o\">*</span><span class=\"n\">i1</span><span class=\"o\">**</span><span class=\"mi\">3</span>\n<span class=\"c1\"># Уменьшаем возмущение тока вдвое для независимой проверки шага производной.</span>\n<span class=\"k\">for</span> <span class=\"n\">step</span> <span class=\"ow\">in</span> <span class=\"p\">[</span><span class=\"mf\">0.1</span><span class=\"p\">,</span> <span class=\"mf\">0.05</span><span class=\"p\">]:</span>\n    <span class=\"c1\"># Центральная разность по первому току при неизменном втором токе 1 А.</span>\n    <span class=\"c1\"># Расстояние между двумя режимами равно 2·step; результат имеет размерность Гн.</span>\n    <span class=\"n\">derivative</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"n\">linkage1</span><span class=\"p\">(</span><span class=\"mi\">2</span><span class=\"o\">+</span><span class=\"n\">step</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">)</span><span class=\"o\">-</span><span class=\"n\">linkage1</span><span class=\"p\">(</span><span class=\"mi\">2</span><span class=\"o\">-</span><span class=\"n\">step</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">))</span><span class=\"o\">/</span><span class=\"p\">(</span><span class=\"mi\">2</span><span class=\"o\">*</span><span class=\"n\">step</span><span class=\"p\">)</span>\n    <span class=\"c1\"># Порядок вывода: шаг тока, А; дифференциальная индуктивность, Гн.</span>\n    <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">step</span><span class=\"p\">,</span> <span class=\"n\">derivative</span><span class=\"p\">)</span>\n",
        "title_html": "Аналитическая проверка центральной производной",
        "explanation_html": "Этот эталон проверяет разностный алгоритм; полевые <span class=\"inline-math\" data-inline-latex=\"\\Psi\">\\Psi</span> подставляются после независимого повторения GUI-модели."
      }
    ],
    "slug": "ii02-2",
    "display_number": "31.2",
    "paragraph_number": 31,
    "position": 101,
    "part": "VI",
    "part_label": "Углублённый расчёт электрических аппаратов",
    "module_id": "VI.01",
    "module_title": "Нелинейные полевые характеристики",
    "module_hours": 8.0,
    "curriculum_path": [
      "VI",
      "VI.01"
    ],
    "siblings": [
      {
        "id": "II02.1",
        "title": "Повтор катушки и электромагнита в реальной геометрии",
        "slug": "ii02-1",
        "sourceFile": "course-site/data/lessons-embedded.json",
        "legacyId": "II02.1",
        "moduleId": "VI.01",
        "hours": 2.6666666666666665,
        "displayNumber": "VI.01.1",
        "display_number": "31.1"
      },
      {
        "id": "II02.2",
        "title": "Таблицы потокосцеплений и локальная матрица индуктивностей",
        "slug": "ii02-2",
        "sourceFile": "course-site/data/lessons-embedded.json",
        "legacyId": "II02.2",
        "moduleId": "VI.01",
        "hours": 2.6666666666666665,
        "displayNumber": "VI.01.2",
        "display_number": "31.2"
      },
      {
        "id": "II02.3",
        "title": "Фиксированная и дифференциальная проницаемости: силы и проверка производных",
        "slug": "ii02-3",
        "sourceFile": "course-site/data/lessons-embedded.json",
        "legacyId": "II02.3",
        "moduleId": "VI.01",
        "hours": 2.6666666666666665,
        "displayNumber": "VI.01.3",
        "display_number": "31.3"
      }
    ],
    "previous": {
      "id": "II02.1",
      "slug": "ii02-1",
      "title": "Повтор катушки и электромагнита в реальной геометрии",
      "display_number": "31.1"
    },
    "next": {
      "id": "II02.3",
      "slug": "ii02-3",
      "title": "Фиксированная и дифференциальная проницаемости: силы и проверка производных",
      "display_number": "31.3"
    },
    "formula_count": 2,
    "fe_reference": {
      "name": "nonlinear-3",
      "description": "Расчёт выполнен установленным FEMM 5.0, сборка 06Oct2026, встроенным Python. Файл модели и решение позволяют повторить опыт; параметры этого образца указаны ниже. Повторный полевой расчёт 15 октября 2026 года и построение из учебной Python-программы подтвердили воспроизводимость модели.",
      "scope": "Условная учебная кривая B(H), заданная в файле; это не паспорт промышленной стали. Статическая индуктивность (наклон секущей) и динамическая индуктивность (наклон касательной) при насыщении различаются.",
      "metrics": [
        {
          "name": "Частота",
          "value": "0",
          "unit": "Гц"
        },
        {
          "name": "Активная длина",
          "value": "20",
          "unit": "мм"
        },
        {
          "name": "Ток цепи Первичная обмотка",
          "value": "3",
          "unit": "А"
        },
        {
          "name": "Потокосцепление цепи Первичная обмотка",
          "value": "0,02865062",
          "unit": "Вб"
        },
        {
          "name": "Ток цепи Вторичная обмотка",
          "value": "0",
          "unit": "А"
        },
        {
          "name": "Потокосцепление цепи Вторичная обмотка",
          "value": "0,01392905",
          "unit": "Вб"
        },
        {
          "name": "Энергия поля",
          "value": "0,02185968",
          "unit": "Дж"
        },
        {
          "name": "Модуль B в контрольной точке",
          "value": "1,397891",
          "unit": "Тл"
        },
        {
          "name": "Координаты контрольной точки (x, y)",
          "value": "0; 25",
          "unit": "мм"
        }
      ],
      "files": [
        {
          "path": "downloads/examples/nonlinear-3/Нелинейный-магнитопровод-09-Готовая-модель.fem",
          "title": "Итоговая модель FEMM",
          "download_name": "Нелинейный-магнитопровод-09-Готовая-модель.fem",
          "sha256": "b1636ff4c9ed1eae09c9dba8b4a21e85ddca81b6d8d1456409d1aa43641cdaf0",
          "bytes": 4022
        },
        {
          "path": "downloads/examples/nonlinear-3/Нелинейный-магнитопровод-09-Готовая-модель.ans",
          "title": "Сохранённое решение эталона",
          "download_name": "Нелинейный-магнитопровод-09-Готовая-модель.ans",
          "sha256": "eb94a4dd047c2aeeb4048f5bddb82506f2f303c4909bb08e0c6f179bf5c5f4e2",
          "bytes": 689291
        },
        {
          "path": "results/nonlinear-3.json",
          "title": "Численные результаты"
        }
      ],
      "image": "images/fields/nonlinear-3.svg",
      "caption": "Визуализация численных данных FEMM 5: Нелинейный магнитопровод. Это экспорт результатов поля, а не снимок окна программы.",
      "image_width": 960,
      "image_height": 900,
      "table_number": "31.6",
      "figure_number": "31.11"
    },
    "code_download": "downloads/python/II02-2_Дифференциальная_индуктивность.py",
    "code_download_name": "II02-2_Дифференциальная_индуктивность.py",
    "code_download_title": "Программа: Аналитическая проверка центральной производной",
    "screenshots": [
      {
        "shot_id": "13-two-winding-core-geometry",
        "path": "images/screenshots/13-two-winding-core-geometry.png",
        "caption": "Геометрия: двухобмоточный линейный сердечник, независимое первичное возбуждение",
        "width": 1026,
        "height": 800,
        "figure_number": "31.12"
      },
      {
        "shot_id": "13-two-winding-core-field",
        "path": "images/screenshots/13-two-winding-core-field.png",
        "caption": "Распределение магнитной индукции: двухобмоточный линейный сердечник, независимое первичное возбуждение",
        "width": 1026,
        "height": 800,
        "figure_number": "31.13"
      },
      {
        "shot_id": "15-nonlinear-material",
        "path": "images/screenshots/15-nonlinear-material.png",
        "caption": "Учебная нелинейная B–H-характеристика: подтверждение введённых точек и их единиц.",
        "width": 1026,
        "height": 800,
        "figure_number": "31.14"
      },
      {
        "shot_id": "16-nonlinear-field",
        "path": "images/screenshots/16-nonlinear-field.png",
        "caption": "Поле нелинейного двухобмоточного сердечника при первичном токе 3 А.",
        "width": 1026,
        "height": 800,
        "figure_number": "31.15"
      },
      {
        "shot_id": "python-ii02-2",
        "path": "images/screenshots/supplemental/python-ii02-2.png",
        "caption": "Встроенная консоль FEMM: Таблицы потокосцеплений и локальная матрица индуктивностей. Аналитическая проверка программы занятия.",
        "width": 1026,
        "height": 800,
        "source_series": "embedded_analytic",
        "figure_number": "31.16"
      }
    ],
    "detail_shots": [],
    "formula_refs": [
      {
        "number": "31.3",
        "anchor": "eq-ii02-2-1",
        "title": "Физическая и вычислительная постановка"
      },
      {
        "number": "31.4",
        "anchor": "eq-ii02-2-2",
        "title": "Численный пример"
      }
    ],
    "example_links": [
      {
        "id": "nonlinear-3",
        "slug": "nonlinear-3",
        "title": "Нелинейный магнитопровод",
        "path": "examples/nonlinear-3/index.html",
        "primary": true
      },
      {
        "id": "magnetic-circuit",
        "slug": "magnetic-circuit",
        "title": "Двухобмоточный магнитопровод: первичное возбуждение",
        "path": "examples/magnetic-circuit/index.html",
        "primary": false
      },
      {
        "id": "nonlinear-1",
        "slug": "nonlinear-1",
        "title": "Нелинейный магнитопровод: ток 1 А",
        "path": "examples/nonlinear-1/index.html",
        "primary": false
      },
      {
        "id": "nonlinear-2-9",
        "slug": "nonlinear-2-9",
        "title": "Нелинейный магнитопровод: ток 2,9 А",
        "path": "examples/nonlinear-2-9/index.html",
        "primary": false
      },
      {
        "id": "nonlinear-3-1",
        "slug": "nonlinear-3-1",
        "title": "Нелинейный магнитопровод: ток 3,1 А",
        "path": "examples/nonlinear-3-1/index.html",
        "primary": false
      },
      {
        "id": "nonlinear-5",
        "slug": "nonlinear-5",
        "title": "Нелинейный магнитопровод: ток 5 А",
        "path": "examples/nonlinear-5/index.html",
        "primary": false
      },
      {
        "id": "nonlinear-10",
        "slug": "nonlinear-10",
        "title": "Нелинейный магнитопровод: ток 10 А",
        "path": "examples/nonlinear-10/index.html",
        "primary": false
      }
    ],
    "view": {
      "id": "II02.2",
      "title": "Таблицы потокосцеплений и локальная матрица индуктивностей",
      "summary": "Строим таблицу потокосцеплений нескольких обмоток и определяем локальную матрицу индуктивностей при насыщении.",
      "objectives": [
        "Вычислять центральные производные <span class=\"inline-math\" data-inline-latex=\"\\Psi_j\">\\Psi_j</span> по каждому току при фиксированных остальных токах и положении.",
        "Получить четыре частные производные независимыми возмущениями токов.",
        "Проверить изменение результата при уменьшении шага и взаимность в одной рабочей точке."
      ],
      "prerequisites": [
        "31.1"
      ],
      "theory": [
        {
          "heading": "Физическая и вычислительная постановка",
          "paragraphs": [
            "В линейной консервативной системе потокосцепления образуют линейное отображение токов. При нелинейном железе это отображение заменяется гладкой локальной картой, а её матрица Якоби является матрицей динамических индуктивностей. Разложение Тейлора <span class=\"inline-math\" data-inline-latex=\"\\Psi\">\\Psi</span>(<span class=\"inline-math\" data-inline-latex=\"i\">i</span> + <span class=\"inline-math\" data-inline-latex=\"\\Delta i\">\\Delta i</span>) ≈ <span class=\"inline-math\" data-inline-latex=\"\\Psi\">\\Psi</span>(<span class=\"inline-math\" data-inline-latex=\"i\">i</span>) + <span class=\"inline-math\" data-inline-latex=\"L_{\\text{дин}} \\Delta i\">L_{\\text{дин}} \\Delta i</span> выводит эту матрицу непосредственно. Для каждого столбца меняется только один ток; остальные токи и положение фиксируются.",
            "Центральная разность использует симметричные возмущения и обычно уменьшает ошибку усечения относительно односторонней. Но чрезмерно малый шаг усиливает влияние численного шума поля. Поэтому проверяют <span class=\"inline-math\" data-inline-latex=\"\\Delta I\">\\Delta I</span> и <span class=\"inline-math\" data-inline-latex=\"\\Delta I\">\\Delta I</span>/2, сохраняя одну сетку и одинаковые допуски решателя. Взаимность <span class=\"inline-math\" data-inline-latex=\"L_{jk}\">L_{jk}</span> = <span class=\"inline-math\" data-inline-latex=\"L_{kj}\">L_{kj}</span> относится к локальным производным одной консервативной точки. Покомпонентное деление <span class=\"inline-math\" data-inline-latex=\"\\Psi_j\">\\Psi_j</span>/<span class=\"inline-math\" data-inline-latex=\"i_k\">i_k</span> не создаёт универсальную матрицу статических индуктивностей насыщенной многопортовой машины; присутствие постоянных магнитов дополнительно требует корректного учёта исходного потокосцепления.",
            "В линейной системе <span class=\"inline-math\" data-inline-latex=\"\\boldsymbol\\Psi=\\boldsymbol\\Psi_0+\\mathbf L\\mathbf i\">\\boldsymbol\\Psi=\\boldsymbol\\Psi_0+\\mathbf L\\mathbf i</span> одна постоянная матрица L описывает и конечные изменения относительно <span class=\"inline-math\" data-inline-latex=\"\\boldsymbol\\Psi_0\">\\boldsymbol\\Psi_0</span>, и локальные производные. При нелинейной B–H-характеристике именно матрица <span class=\"inline-math\" data-inline-latex=\"L_{\\text{дин},jk}=\\partial\\Psi_j/\\partial i_k\">L_{\\text{дин},jk}=\\partial\\Psi_j/\\partial i_k</span> однозначно задаёт малый отклик в фиксированной точке; универсальная статическая матрица не получается покомпонентным делением. Слова «касательная» и «дифференциальная» далее объясняют математический смысл динамической матрицы."
          ],
          "formulas": [
            {
              "latex": "\\Psi_j(\\mathbf i+\\Delta\\mathbf i)\\approx\\Psi_j(\\mathbf i)+\\sum_k L_{\\text{дин},jk}\\Delta i_k,\\quad L_{\\text{дин},jk}\\approx\\frac{\\Psi_j(\\mathbf i+\\Delta I\\mathbf e_k)-\\Psi_j(\\mathbf i-\\Delta I\\mathbf e_k)}{2\\Delta I}",
              "explanation": "<span class=\"inline-math\" data-inline-latex=\"\\Delta I\">\\Delta I</span> — шаг тока, А; элементы локальной матрицы имеют единицу Гн.",
              "number": "31.3",
              "anchor": "eq-ii02-2-1"
            }
          ]
        },
        {
          "heading": "Порядок проверки результата",
          "paragraphs": [
            "Численный пример ниже является аналитическим учебным эталоном. Его значения вычислены по указанным формулам; они не обозначают результат решения новой модели методом конечных элементов. Практикум связывает эталон с полевой задачей: сначала воспроизведите уже проверенный результат базового раздела, затем измените только один исследуемый параметр. Именно такое сравнение позволяет отделить ошибку программы от влияния геометрии, сетки и физического приближения. Сохраните исходную модель, рабочую копию и таблицу с заголовками величин. В подписи каждой величины укажите единицу, положительное направление и способ получения; для гармонических величин дополнительно укажите амплитудную нормировку. Если условие задачи не выполнено, остановите серию и сохраните причину отказа вместе с последним корректным состоянием."
          ],
          "formulas": []
        },
        {
          "heading": "Пояснение программы",
          "paragraphs": [
            "Функция <code>linkage1</code> задаёт независимую нелинейную характеристику первой обмотки. Во всех возмущённых состояниях ток второй обмотки равен 1 А. Производная по первому току вычисляется центральной разностью с расстоянием 2·step между точками. Два значения шага позволяют проверить устойчивость производной. В системе нескольких связанных обмоток такую проверку выполняют для каждого столбца локальной матрицы индуктивностей.",
            "Термин «дифференциальная индуктивность» в комментариях программы означает динамическую индуктивность <span class=\"inline-math\" data-inline-latex=\"L_{\\text{дин}}\">L_{\\text{дин}}</span>: здесь вычисляется центральная оценка частной производной."
          ],
          "formulas": []
        },
        {
          "heading": "Таблица потокосцеплений как локальная модель",
          "paragraphs": [
            "Каждая строка таблицы относится к одной геометрии, температуре и положению. Все компоненты потокосцепления снимаются для одного совместного токового состояния."
          ],
          "formulas": [],
          "derivation_steps": [
            {
              "text": "Постройте таблицу в пространстве независимых токов. При постоянных магнитах сохраните ненулевое смещение при нулевом токе."
            },
            {
              "text": "В одной выбранной точке используйте парные возмущения каждого тока для столбцов Якобиана. Порядок токов и потокосцеплений должен совпадать во всех строках."
            },
            {
              "text": "Проверьте предсказание в случайном малом смешанном направлении и затем уменьшите его масштаб. Ошибка линейного предсказания должна уменьшаться до уровня численного шума."
            }
          ],
          "symbols": [
            {
              "symbol": "i",
              "meaning": "Мгновенный ток",
              "unit": "А"
            },
            {
              "symbol": "\\Psi",
              "meaning": "Потокосцепление обмотки",
              "unit": "Вб"
            },
            {
              "symbol": "L",
              "meaning": "Индуктивность при явно указанной линеаризации",
              "unit": "Гн"
            }
          ],
          "applicability": "Интерполяция допускается только внутри охваченного диапазона. Вне его программа должна явно сообщить об экстраполяции, особенно при насыщении.",
          "editorial_tag": "textbook-math-2026-10",
          "symbols_number": "31.4"
        },
        {
          "heading": "Связь с общими определениями",
          "paragraphs": [
            "Определения и границы применимости собраны в занятии <a href=\"../inductance-static-dynamic/index.html\">Статическая и динамическая индуктивности</a>. Используйте интегральную запись как исходную; алгебраические формулы применяйте после проверки перечисленных там условий."
          ],
          "formulas": []
        }
      ],
      "worked_example": {
        "title": "Вычисленный аналитический эталон",
        "given": "Независимый математический эталон: <span class=\"inline-math\" data-inline-latex=\"\\Psi_{1}\">\\Psi_{1}</span> = 0,1<span class=\"inline-math\" data-inline-latex=\"i_{1}\">i_{1}</span> + 0,02<span class=\"inline-math\" data-inline-latex=\"i_{2}\">i_{2}</span> + 0,002<span class=\"inline-math\" data-inline-latex=\"i_{1}^{3}\">i_{1}^{3}</span>; <span class=\"inline-math\" data-inline-latex=\"\\Psi_{2}\">\\Psi_{2}</span> = 0,02<span class=\"inline-math\" data-inline-latex=\"i_{1}\">i_{1}</span> + 0,08<span class=\"inline-math\" data-inline-latex=\"i_{2}\">i_{2}</span>. Точка (<span class=\"inline-math\" data-inline-latex=\"i_{1}\">i_{1}</span>,<span class=\"inline-math\" data-inline-latex=\"i_{2}\">i_{2}</span>) = (2,1) А; <span class=\"inline-math\" data-inline-latex=\"\\Delta I\">\\Delta I</span> = 0,1 А. Положительный кубический член даёт растущую динамическую индуктивность и не моделирует насыщение железа. Эталон проверяет только разностный алгоритм; насыщенная полевая карта исследуется отдельно.",
        "steps": [
          {
            "text": "Производная <span class=\"inline-math\" data-inline-latex=\"L_{11}\">L_{11}</span> = 0,1 + 0,006<span class=\"inline-math\" data-inline-latex=\"i_{1}^{2}\">i_{1}^{2}</span> = 0,124 Гн. Центральная разность даёт 0,12402 Гн.",
            "latex": "\\mathbf L_{\\text{дин}}=\\begin{bmatrix}0{,}124&0{,}02\\\\0{,}02&0{,}08\\end{bmatrix}\\ \\text{Гн},\\quad \\det\\mathbf L_{\\text{дин}}=0{,}00952\\ \\text{Гн}^2",
            "formula_number": "31.4",
            "anchor": "eq-ii02-2-2"
          },
          {
            "text": "<span class=\"inline-math\" data-inline-latex=\"L_{12}\">L_{12}</span> = <span class=\"inline-math\" data-inline-latex=\"L_{21}\">L_{21}</span> = 0,02 Гн; <span class=\"inline-math\" data-inline-latex=\"L_{22}\">L_{22}</span> = 0,08 Гн."
          },
          {
            "text": "При <span class=\"inline-math\" data-inline-latex=\"\\Delta I\">\\Delta I</span> = 0,05 А численный <span class=\"inline-math\" data-inline-latex=\"L_{11}\">L_{11}</span> = 0,124005 Гн; ошибка уменьшается в четыре раза."
          }
        ],
        "answer": "Локальная матрица [[0,124; 0,02],[0,02; 0,08]] Гн; центральные разности сходятся к ней.",
        "check": "Определитель 0,124 · 0,08 − 0,02² = 0,00952 Гн² &gt; 0; симметрия выполнена."
      },
      "practice": {
        "title": "Локальный Якобиан потокосцеплений",
        "parameters": [
          {
            "name": "Рабочие токи",
            "value": "2; 1",
            "unit": "А"
          },
          {
            "name": "Шаги тока",
            "value": "0,1; 0,05",
            "unit": "А"
          },
          {
            "name": "Положение",
            "value": "фиксировано",
            "unit": ""
          }
        ],
        "steps": [
          "В двухобмоточной модели задайте рабочие токи и сохраните базовый результат.",
          "Для каждой цепи отдельно выполните два симметричных токовых возмущения и читайте <span class=\"inline-math\" data-inline-latex=\"\\Psi\">\\Psi</span> обеих обмоток.",
          "Соберите столбцы матрицы из центральных разностей. Между столбцами восстанавливайте базовые токи.",
          "Повторите вычисления с половинным шагом. Отдельно оцените расхождение взаимных элементов; не заменяйте их средним значением до проверки.",
          "Расширьте токовый набор до небольшой карты; вне рассчитанной области запретите интерполяцию.",
          "Укажите наличие постоянных магнитов и тип материала; не выдавайте отношение потокосцепления к току за динамическую индуктивность."
        ],
        "expected": "Матрица в одной рабочей точке и контроль зависимости от шага; карта содержит все исходные <span class=\"inline-math\" data-inline-latex=\"\\Psi\">\\Psi</span>.",
        "verification": "Для двух портов требуется четыре возмущённых решения; для <span class=\"inline-math\" data-inline-latex=\"N\">N</span> портов — 2<span class=\"inline-math\" data-inline-latex=\"N\">N</span> плюс базовый режим.",
        "table_number": "31.5"
      },
      "questions": [
        {
          "question": "Почему нужно фиксировать второй ток при вычислении <span class=\"inline-math\" data-inline-latex=\"L_{11}\">L_{11}</span>?",
          "answer": "Иначе производная относится к другому пути возбуждения и не является частной производной по <span class=\"inline-math\" data-inline-latex=\"i_{1}\">i_{1}</span>."
        },
        {
          "question": "Можно ли навязать симметрию матрице до проверки?",
          "answer": "Для консервативной модели симметрия ожидается, но сначала нужно измерить исходное расхождение и найти его причину."
        }
      ],
      "assignment": {
        "task": "Постройте матрицу в двух рабочих точках с разным насыщением. Сравните собственные и взаимные производные, сохранив исходные таблицы.",
        "acceptance": "Все токи и угол обозначены; шаг проверен; матрица динамических индуктивностей не заменена отношениями потокосцеплений к токам; взаимность оценена численно."
      },
      "pitfalls": [
        "Уменьшение шага без оценки полевого шума может ухудшить результат.",
        "Вычитание холостого потокосцепления постоянных магнитов при насыщении не обеспечивает линейного разделения источников."
      ],
      "model_family": "magnetic-circuit",
      "slug": "ii02-2",
      "display_number": "31.2",
      "paragraph_number": 31,
      "position": 101,
      "part": "VI",
      "part_label": "Углублённый расчёт электрических аппаратов",
      "module_id": "VI.01",
      "module_title": "Нелинейные полевые характеристики",
      "module_hours": 8.0,
      "curriculum_path": [
        "VI",
        "VI.01"
      ],
      "formula_count": 2,
      "fe_reference": {
        "name": "nonlinear-3",
        "description": "Расчёт выполнен установленным FEMM 5.0, сборка 06Oct2026, встроенным Python. Файл модели и решение позволяют повторить опыт; параметры этого образца указаны ниже. Повторный полевой расчёт 15 октября 2026 года и построение из учебной Python-программы подтвердили воспроизводимость модели.",
        "scope": "Условная учебная кривая B(H), заданная в файле; это не паспорт промышленной стали. Статическая индуктивность (наклон секущей) и динамическая индуктивность (наклон касательной) при насыщении различаются.",
        "metrics": [
          {
            "name": "Частота",
            "value": "0",
            "unit": "Гц"
          },
          {
            "name": "Активная длина",
            "value": "20",
            "unit": "мм"
          },
          {
            "name": "Ток цепи Первичная обмотка",
            "value": "3",
            "unit": "А"
          },
          {
            "name": "Потокосцепление цепи Первичная обмотка",
            "value": "0,02865062",
            "unit": "Вб"
          },
          {
            "name": "Ток цепи Вторичная обмотка",
            "value": "0",
            "unit": "А"
          },
          {
            "name": "Потокосцепление цепи Вторичная обмотка",
            "value": "0,01392905",
            "unit": "Вб"
          },
          {
            "name": "Энергия поля",
            "value": "0,02185968",
            "unit": "Дж"
          },
          {
            "name": "Модуль B в контрольной точке",
            "value": "1,397891",
            "unit": "Тл"
          },
          {
            "name": "Координаты контрольной точки (x, y)",
            "value": "0; 25",
            "unit": "мм"
          }
        ],
        "files": [
          {
            "path": "downloads/examples/nonlinear-3/Нелинейный-магнитопровод-09-Готовая-модель.fem",
            "title": "Итоговая модель FEMM",
            "download_name": "Нелинейный-магнитопровод-09-Готовая-модель.fem",
            "sha256": "b1636ff4c9ed1eae09c9dba8b4a21e85ddca81b6d8d1456409d1aa43641cdaf0",
            "bytes": 4022
          },
          {
            "path": "downloads/examples/nonlinear-3/Нелинейный-магнитопровод-09-Готовая-модель.ans",
            "title": "Сохранённое решение эталона",
            "download_name": "Нелинейный-магнитопровод-09-Готовая-модель.ans",
            "sha256": "eb94a4dd047c2aeeb4048f5bddb82506f2f303c4909bb08e0c6f179bf5c5f4e2",
            "bytes": 689291
          },
          {
            "path": "results/nonlinear-3.json",
            "title": "Численные результаты"
          }
        ],
        "image": "images/fields/nonlinear-3.svg",
        "caption": "Визуализация численных данных FEMM 5: Нелинейный магнитопровод. Это экспорт результатов поля, а не снимок окна программы.",
        "image_width": 960,
        "image_height": 900,
        "table_number": "31.6",
        "figure_number": "31.11"
      },
      "code_download": "downloads/python/II02-2_Дифференциальная_индуктивность.py",
      "code_download_name": "II02-2_Дифференциальная_индуктивность.py",
      "code_download_title": "Программа: Аналитическая проверка центральной производной",
      "detail_shots": [],
      "formula_refs": [
        {
          "number": "31.3",
          "anchor": "eq-ii02-2-1",
          "title": "Физическая и вычислительная постановка"
        },
        {
          "number": "31.4",
          "anchor": "eq-ii02-2-2",
          "title": "Численный пример"
        }
      ]
    },
    "client_data": {
      "id": "II02.2",
      "title": "Таблицы потокосцеплений и локальная матрица индуктивностей",
      "slug": "ii02-2",
      "widget": {
        "type": "map",
        "config": {
          "variant": "jacobian",
          "currents": [
            2,
            1
          ],
          "step": 0.1,
          "matrix": [
            [
              0.124,
              0.02
            ],
            [
              0.02,
              0.08
            ]
          ],
          "unit": "Гн"
        },
        "figure_numbers": {
          "main": "31.8",
          "schematic": "31.9",
          "response": "31.10"
        }
      },
      "formula_count": 2,
      "fe_reference": {
        "name": "nonlinear-3",
        "description": "Расчёт выполнен установленным FEMM 5.0, сборка 06Oct2026, встроенным Python. Файл модели и решение позволяют повторить опыт; параметры этого образца указаны ниже. Повторный полевой расчёт 15 октября 2026 года и построение из учебной Python-программы подтвердили воспроизводимость модели.",
        "scope": "Условная учебная кривая B(H), заданная в файле; это не паспорт промышленной стали. Статическая индуктивность (наклон секущей) и динамическая индуктивность (наклон касательной) при насыщении различаются.",
        "metrics": [
          {
            "name": "Частота",
            "value": "0",
            "unit": "Гц"
          },
          {
            "name": "Активная длина",
            "value": "20",
            "unit": "мм"
          },
          {
            "name": "Ток цепи Первичная обмотка",
            "value": "3",
            "unit": "А"
          },
          {
            "name": "Потокосцепление цепи Первичная обмотка",
            "value": "0,02865062",
            "unit": "Вб"
          },
          {
            "name": "Ток цепи Вторичная обмотка",
            "value": "0",
            "unit": "А"
          },
          {
            "name": "Потокосцепление цепи Вторичная обмотка",
            "value": "0,01392905",
            "unit": "Вб"
          },
          {
            "name": "Энергия поля",
            "value": "0,02185968",
            "unit": "Дж"
          },
          {
            "name": "Модуль B в контрольной точке",
            "value": "1,397891",
            "unit": "Тл"
          },
          {
            "name": "Координаты контрольной точки (x, y)",
            "value": "0; 25",
            "unit": "мм"
          }
        ],
        "files": [
          {
            "path": "downloads/examples/nonlinear-3/Нелинейный-магнитопровод-09-Готовая-модель.fem",
            "title": "Итоговая модель FEMM",
            "download_name": "Нелинейный-магнитопровод-09-Готовая-модель.fem",
            "sha256": "b1636ff4c9ed1eae09c9dba8b4a21e85ddca81b6d8d1456409d1aa43641cdaf0",
            "bytes": 4022
          },
          {
            "path": "downloads/examples/nonlinear-3/Нелинейный-магнитопровод-09-Готовая-модель.ans",
            "title": "Сохранённое решение эталона",
            "download_name": "Нелинейный-магнитопровод-09-Готовая-модель.ans",
            "sha256": "eb94a4dd047c2aeeb4048f5bddb82506f2f303c4909bb08e0c6f179bf5c5f4e2",
            "bytes": 689291
          },
          {
            "path": "results/nonlinear-3.json",
            "title": "Численные результаты"
          }
        ],
        "image": "images/fields/nonlinear-3.svg",
        "caption": "Визуализация численных данных FEMM 5: Нелинейный магнитопровод. Это экспорт результатов поля, а не снимок окна программы.",
        "image_width": 960,
        "image_height": 900,
        "table_number": "31.6",
        "figure_number": "31.11"
      },
      "code_download": "downloads/python/II02-2_Дифференциальная_индуктивность.py",
      "screenshots": [
        {
          "shot_id": "13-two-winding-core-geometry",
          "path": "images/screenshots/13-two-winding-core-geometry.png",
          "caption": "Геометрия: двухобмоточный линейный сердечник, независимое первичное возбуждение",
          "width": 1026,
          "height": 800,
          "figure_number": "31.12"
        },
        {
          "shot_id": "13-two-winding-core-field",
          "path": "images/screenshots/13-two-winding-core-field.png",
          "caption": "Распределение магнитной индукции: двухобмоточный линейный сердечник, независимое первичное возбуждение",
          "width": 1026,
          "height": 800,
          "figure_number": "31.13"
        },
        {
          "shot_id": "15-nonlinear-material",
          "path": "images/screenshots/15-nonlinear-material.png",
          "caption": "Учебная нелинейная B–H-характеристика: подтверждение введённых точек и их единиц.",
          "width": 1026,
          "height": 800,
          "figure_number": "31.14"
        },
        {
          "shot_id": "16-nonlinear-field",
          "path": "images/screenshots/16-nonlinear-field.png",
          "caption": "Поле нелинейного двухобмоточного сердечника при первичном токе 3 А.",
          "width": 1026,
          "height": 800,
          "figure_number": "31.15"
        },
        {
          "shot_id": "python-ii02-2",
          "path": "images/screenshots/supplemental/python-ii02-2.png",
          "caption": "Встроенная консоль FEMM: Таблицы потокосцеплений и локальная матрица индуктивностей. Аналитическая проверка программы занятия.",
          "width": 1026,
          "height": 800,
          "source_series": "embedded_analytic",
          "figure_number": "31.16"
        }
      ],
      "example_links": [
        {
          "id": "nonlinear-3",
          "slug": "nonlinear-3",
          "title": "Нелинейный магнитопровод",
          "path": "examples/nonlinear-3/index.html",
          "primary": true
        },
        {
          "id": "magnetic-circuit",
          "slug": "magnetic-circuit",
          "title": "Двухобмоточный магнитопровод: первичное возбуждение",
          "path": "examples/magnetic-circuit/index.html",
          "primary": false
        },
        {
          "id": "nonlinear-1",
          "slug": "nonlinear-1",
          "title": "Нелинейный магнитопровод: ток 1 А",
          "path": "examples/nonlinear-1/index.html",
          "primary": false
        },
        {
          "id": "nonlinear-2-9",
          "slug": "nonlinear-2-9",
          "title": "Нелинейный магнитопровод: ток 2,9 А",
          "path": "examples/nonlinear-2-9/index.html",
          "primary": false
        },
        {
          "id": "nonlinear-3-1",
          "slug": "nonlinear-3-1",
          "title": "Нелинейный магнитопровод: ток 3,1 А",
          "path": "examples/nonlinear-3-1/index.html",
          "primary": false
        },
        {
          "id": "nonlinear-5",
          "slug": "nonlinear-5",
          "title": "Нелинейный магнитопровод: ток 5 А",
          "path": "examples/nonlinear-5/index.html",
          "primary": false
        },
        {
          "id": "nonlinear-10",
          "slug": "nonlinear-10",
          "title": "Нелинейный магнитопровод: ток 10 А",
          "path": "examples/nonlinear-10/index.html",
          "primary": false
        }
      ]
    }
  }
}
