exponenta event banner

Масштабирование модели с фиксированной точкой

В этом примере показано, как использовать инструмент Fixed-Point Tool для уточнения масштабирования типов данных с фиксированной точкой, связанных с моделью контроллера обратной связи. Несмотря на то, что инструмент позволяет использовать несколько рабочих процессов для преобразования цифрового контроллера, описанного в идеальных числах двойной точности, в число, реализованное в числах с фиксированной точкой, в этом примере используется следующий подход:

  • Коллекция диапазонов (Range Collection) - используйте рабочий процесс коллекции диапазонов для изучения числового поведения модели.

    Выполните глобальное переопределение типов данных с фиксированной точкой с использованием чисел с двойной точностью. Программа Simulink ® регистрирует результаты моделирования и отображает их с помощью инструмента Fixed-Point Tool.

    Выполните начальное моделирование с использованием разумного предположения при фиксированном размере слова и масштабировании, а затем сравните результаты моделирования с выполнением с двойной точностью. Эта задача иллюстрирует, насколько сложно угадать наилучшее масштабирование.

  • Предлагать длины дробей с использованием данных диапазона моделирования - используйте итерационный рабочий процесс преобразования с фиксированной точкой для автоматического масштабирования модели.

    Инструмент «Фиксированная точка» использует результаты моделирования с двойной точностью, чтобы предложить масштабирование с фиксированной точкой для соответствующим образом настроенных блоков. Инструмент «Фиксированная точка» позволяет принимать и применять предложения по масштабированию выборочно. После этого определяется качество результатов путем анализа входных и выходных данных аналоговой установки модели.

Пример модели контроллера обратной связи

Чтобы открыть модель проектирования с обратной связью Simulink для данного учебного пособия, в командной строке MATLAB ® введитеfxpdemo_feedback.

Модель состоит из следующих блоков и подсистем:

  • Ссылка

    Этот блок генератора сигналов генерирует опорный сигнал непрерывного времени. Он сконфигурирован для вывода прямоугольной волны.

  • Сумма

    Этот блок Add вычитает выходной сигнал установки из опорного сигнала.

  • ZOH

    Блок удержания нулевого порядка отсчитывает и удерживает непрерывный сигнал. Этот блок сконфигурирован так, что он квантует сигнал во времени на 0,01 секунды.

  • Аналогово-цифровой интерфейс

    Аналого-цифровой (АЦП) интерфейс состоит из блока преобразования типа данных, который преобразует double к типу данных с фиксированной точкой. Он представляет любое аппаратное обеспечение, которое оцифровывает амплитуду аналогового входного сигнала. В реальном мире; его характеристики фиксированы.

  • Диспетчер

    Цифровой контроллер - это подсистема, представляющая программное обеспечение, выполняющееся на аппаратном целевом устройстве. См. раздел Реализация цифрового контроллера.

  • Цифроаналоговый интерфейс

    Цифроаналоговый (D/A) интерфейс состоит из блока преобразования типа данных, который преобразует тип данных с фиксированной точкой в double. Он представляет любое аппаратное обеспечение, которое преобразует оцифрованный сигнал в аналоговый сигнал. В реальном мире его характеристики зафиксированы.

  • Аналоговый завод

    Аналоговая установка описывается передаточной функцией и управляется цифровым контроллером. В реальном мире его характеристики зафиксированы.

  • Объем

    Модель включает в себя блок Scope, отображающий выходной сигнал установки.

Настройка моделирования

Чтобы настроить этот вид моделирования контроллера обратной связи с фиксированной точкой:

  1. Определите все компоненты конструкции.

    В реальном мире существуют компоненты конструкции с фиксированными характеристиками (аппаратные средства) и компоненты конструкции с характеристиками, которые можно изменить (программное обеспечение). В этой схеме обратной связи основными компонентами аппаратных средств являются аппаратные средства A/D, аппаратные средства D/A и аналоговая установка. Основным программным компонентом является цифровой контроллер.

  2. Разработка теоретической модели установки и контроллера.

    Для проекта обратной связи в данном учебном пособии завод характеризуется функцией переноса.

    Модель цифрового контроллера в этом учебном пособии описывается функцией передачи z-домена и реализуется с использованием реализации в прямой форме.

  3. Оцените поведение завода и контроллера.

    Поведение завода и контроллера оценивается с помощью графика Боде. Эта оценка является идеализированной, поскольку все числа, операции и состояния имеют двойную точность.

  4. Смоделировать систему.

    Вы имитируете конструкцию контроллера обратной связи с помощью программного обеспечения Simulink и Fixed-Point Designer™. В среде моделирования можно обрабатывать все компоненты (программное обеспечение и оборудование) так, как если бы их характеристики не были фиксированными.

Идеализированный дизайн обратной связи

Графики с разомкнутым контуром (контроллер и установка) и только для установки для модели «Scaling a Fixed-Point Control Design» показаны на следующем рисунке. График Боде с разомкнутым контуром получается из цифрового контроллера, описанного в идеализированном мире непрерывного времени, коэффициентов двойной точности, хранения состояний и математических операций.

Графики Боде были созданы с использованием переменных рабочей области, созданных сценарием с именем preload_feedback.m.

Реализация цифрового контроллера

В этом моделировании цифровой контроллер реализуется с использованием реализации прямой формы с фиксированной точкой, показанной на следующей диаграмме. Аппаратная цель - 16-разрядный процессор. Переменные и коэффициенты обычно представлены с использованием 16 битов, особенно если эти величины хранятся в ПЗУ или глобальном ОЗУ. Использование 32-разрядных чисел ограничено временными переменными, которые ненадолго существуют в регистрах ЦП или в стеке.

Реализация цифрового контроллера состоит из следующих блоков:

  • Вверх по форме

    Up Cast - это блок преобразования типа данных, который соединяет аппаратное обеспечение A/D с цифровым контроллером. Он помещает размер выходного слова A/D аппаратных средств с нулями в конце в 16-битное число (базовый тип данных).

  • Числительные термины и знаменатели

    Каждый из этих блоков дискретного КИХ-фильтра представляет взвешенную сумму, выполненную в целевом процессоре. Размер и точность слов в вычислениях отражают размеры накопителя. Числительные члены умножают и накапливают самые последние входные данные с коэффициентами числителя КИХ. Члены знаменателя умножают и накапливают самые последние задержанные выходы с коэффициентами знаменателя FIR. Коэффициенты сохраняются в ПЗУ с использованием базового типа данных. Последние входные данные хранятся в глобальной оперативной памяти с использованием базового типа данных.

  • Объединить термины

    Combine Terms - это блок добавления, представляющий накопитель в ЦП. Его размер слова и точность вдвое больше, чем у ОЗУ (двойные биты).

  • Литой вниз

    Down Cast - это блок преобразования типа данных, который представляет собой извлечение номера из ЦП и сохранение его в ОЗУ. Размер слова и точность уменьшаются в два раза по сравнению с накопителем при преобразовании обратно в базовый тип данных.

  • Предыдущий выход

    Prev Out - это блок единичной задержки, который задерживает сигнал обратной связи в памяти на один период выборки. Сигналы сохраняются в глобальной оперативной памяти с использованием базового типа данных.

Прямая реализация формы.  Контроллер непосредственно реализует это уравнение:

y (k) =∑i=0Nbiu (k 1) −∑i=1Naiy (k − 1),

где:

  • u ( k-1 ) представляет собой входной сигнал предыдущего временного шага.

  • y (k) представляет токовый выход, и y  (k-1 ) представляет выход предыдущего временного шага.

  • bi представляет коэффициенты числителя FIR.

  • ai представляет коэффициенты знаменателя FIR.

Первое суммирование в y (k) представляет умножение и накопление самых последних входных данных и числительных коэффициентов в накопителе. Второе суммирование в y (k) представляет умножение и накопление самых последних выходных сигналов и коэффициентов знаменателя в накопителе. Поскольку коэффициенты КИХ, входы и выходы представлены 16-битными числами (базовый тип данных), любое умножение, включающее эти числа, создает 32-битный выход (тип данных накопителя).

Изучение численного поведения модели

Начальные догадки для масштабирования каждого блока уже указаны в каждой маске блока в модели. Эта задача иллюстрирует сложность угадывания наилучшего масштабирования с фиксированной точкой. В этом примере сравнивается поведение модели с идеализированной версией с плавающей запятой с помощью рабочего процесса сбора диапазонов в инструменте «Фиксированная точка».

  1. Откройте окно fxpdemo_feedback модель.

  2. Откройте инструмент «Фиксированная точка». В галерее «Приложения» выберите инструмент «Фиксированная точка».

  3. В инструменте «Фиксированная точка» нажмите «Создать» и выберите Range Collection.

    Рабочий процесс сбора диапазонов можно использовать для изучения числового поведения модели и сравнения ее с идеализированной версией с плавающей запятой.

  4. В разделе Система под проектированием (SUD) выберите подсистему, которую требуется проанализировать. В этом примере выберите Controller.

  5. В разделе Режим сбора диапазонов (Range Collection Mode) выберите Расчетные диапазоны (Simulation Ranges) в качестве метода сбора диапазонов.

  6. В разделе Входные данные моделирования (Simulation Inputs) используйте входные данные модели по умолчанию для моделирования.

  7. Щелкните стрелку кнопки Собрать диапазоны (Collect Ranges) и выберите Double precision. Нажмите кнопку Собрать диапазоны (Collect Ranges), чтобы начать моделирование.

    Программное обеспечение Simulink моделирует fxpdemo_feedback модель в режиме переопределения типа данных и сохраняет результаты в BaselineRun. Переопределение типа данных позволяет выполнить глобальное переопределение типов данных с фиксированной точкой с двойной точностью, тем самым избегая эффектов квантования. В электронной таблице «Результаты» результаты прогона отображаются с помощью инструмента «Фиксированная точка». Столбец типа скомпилированных данных (CompiledDT) для BaselineRun показывает, что блоки в модели использовали double тип данных во время моделирования.

  8. Затем смоделируйте систему с использованием типов данных с фиксированной точкой, указанных в модели. Нажмите кнопку «Параметры» и выберите «Указанные типы данных». Щелкните Моделирование со встроенными типами (Simulate with Embedded Types).

    Инструмент «Фиксированная точка» моделирует модель с использованием указанных в настоящее время типов данных фиксированных точек и сохраняет информацию о диапазоне в EmbeddedRun. Собранные диапазоны можно просмотреть в столбцах SimMin и SimMax электронной таблицы.

    Инструмент «Фиксированная точка» выделяет строку, содержащую Up Cast блок, указывающий на наличие проблемы с этим результатом. На панели Сведения о результате (Result Details) показано, что блок был заполнен 23 раза, что указывает на плохое предположение о его масштабировании.

    Совет

    Для просмотра и фильтрации результатов можно использовать вкладку Обзор (Explore).

  9. Щелкните Сравнить результаты (Compare Results), чтобы открыть инспектор данных моделирования.

  10. В инспекторе данных моделирования выберите PlantOutput как сигнал для сравнения.

    Инспектор данных моделирования строит график сигнала, связанного с выходом установки для BaselineRun и EmbeddedRun.

    График выходного сигнала установки для EmbeddedRun отражает начальное предположение при масштабировании. Сюжетная конструкция Боде стремилась произвести хорошо работающий линейный отклик для системы с замкнутым контуром, представленной идеалом BaselineRun. Тем не менее, ответ EmbeddedRun является нелинейным. Значительные эффекты квантования вызывают нелинейные признаки. Важной частью конструкции с фиксированной точкой является поиск масштабирования, которое уменьшает эффекты квантования до приемлемых уровней.

Предложение длин дробей с использованием данных диапазона моделирования

С помощью автоматического ввода данных можно максимизировать точность выходного типа данных, охватывая весь моделируемый диапазон. Итеративный рабочий процесс преобразования с фиксированной точкой в инструменте Fixed-Point Tool позволяет максимизировать точность выходных типов данных при охвате всего моделируемого диапазона. Этот процесс известен как автоматическое масштабирование.

Поскольку в этом примере информация о диапазоне проектирования не представлена, инструмент Fixed-Point использует данные диапазона моделирования для предложения типов данных. Значение параметра Запас прочности для моделирования min/max (%) умножает «необработанные» значения моделирования. Установка для этого параметра значения больше 1 снижает вероятность переполнения при использовании типов данных с фиксированной точкой. Дополнительные сведения о том, как инструмент «Фиксированная точка» вычисляет предложения по типам данных, см. в разделе Как инструмент «Фиксированная точка» предлагает типы данных.

Из-за нелинейных эффектов квантования моделирование с фиксированной точкой дает результаты, которые отличаются от идеализированного двойного моделирования. Сигналы при моделировании с фиксированной точкой могут охватывать больший или меньший диапазон, чем при моделировании с двойной точкой. Если диапазон увеличивается достаточно, могут произойти переливы или насыщения. Запас прочности уменьшает эту вероятность, но может также снизить точность моделирования.

Примечание

Когда максимальное и минимальное расчетные значения охватывают полный рабочий диапазон проекта, инструмент Fixed-Point Tool дает значимые результаты автоматического ввода данных.

Автоматически масштабировать Controller подсистема. Эта подсистема представляет программное обеспечение, запущенное на целевом компьютере, и требует оптимизации.

  1. В инструменте «Фиксированная точка» нажмите «Создать» и выберите Iterative Fixed-Point Conversion.

    Совет

    При переключении рабочих процессов в инструменте «Фиксированная точка» удаляются настройки и все данные, собранные во время активного рабочего процесса. Модель остается в текущем состоянии.

  2. В разделе Система под конструкцией (SUD) выберите Controller подсистема как система для анализа и преобразования.

  3. В разделе Режим сбора диапазонов (Range Collection Mode) выберите Диапазоны моделирования (Simulation rang

  4. В разделе Входные данные моделирования (Simulation Inputs) используйте входные данные модели по умолчанию для моделирования.

  5. Щелкните Подготовить (Prepare), чтобы создать точку восстановления и автоматически подготовить проектируемую систему к преобразованию.

  6. Щелкните стрелку кнопки Собрать диапазоны (Collect Ranges) и выберите Double precision. Щелкните Собрать диапазоны (Collect Ranges), чтобы начать моделирование.

    Программное обеспечение Simulink моделирует fxpdemo_feedback модель в режиме переопределения типа данных и сохраняет результаты в BaselineRun_2.

  7. В разделе «Преобразование» нажмите кнопку «Параметры». Установите для параметра Запас прочности для моделирования min/max (%) значение 20. Используйте настройки по умолчанию для всех остальных параметров.

  8. Щелкните Предложить типы данных.

    Инструмент «Фиксированная точка» анализирует масштабирование всех блоков с фиксированной точкой, для которых параметр «Блокировать тип выходных данных» очищен от изменений с помощью параметра «Инструменты с фиксированной точкой».

    Инструмент «Фиксированная точка» использует минимальное и максимальное значения, сохраненные в BaselineRun_2 предложить типы данных каждого блока таким образом, чтобы точность была максимизирована, в то время как весь диапазон значений моделирования охватывается. Инструмент отображает предлагаемые типы данных в электронной таблице Результаты (Results).

  9. Просмотрите масштаб, предложенный инструментом «Фиксированная точка». Можно принять предложение по масштабированию для каждого блока. В электронной таблице Результаты (Results) установите соответствующий флажок Принять (Accept). По умолчанию инструмент «Фиксированная точка» принимает все предложения по масштабированию, которые отличаются от текущего масштабирования. В этом примере убедитесь, что для каждого блока подсистемы контроллера установлен флажок Принять.

  10. Нажмите кнопку «Применить типы данных».

    Инструмент «Фиксированная точка» применяет предложения по масштабированию, принятые на предыдущем шаге, к блокам в Controller подсистема.

  11. В разделе «Проверка» нажмите кнопку «Моделирование со встроенными типами».

    Simulink имитирует fxpdemo_feedback с использованием нового примененного масштабирования. Сведения об этом моделировании хранятся в прогоне с именем EmbeddedRun_2. После этого инструмент Fixed-Point Tool отображает информацию о блоках, которые регистрировали данные Fixed-Point. Столбец типа скомпилированных данных (CompiledDT) для EmbeddedRun_2 показывает, что блоки подсистемы контроллера использовали фиксированные типы данных с новым масштабированием.

  12. Щелкните Сравнить результаты (Compare Results), чтобы открыть инспектор данных моделирования.

  13. В инспекторе данных моделирования выберите PlantOutput как сигнал для сравнения.

    Инспектор данных моделирования строит график сигнала, связанного с выходом установки для BaselineRun_2 и EmbeddedRun_2, а также их разницу.

    Выходной сигнал установки, представленный прогоном с фиксированной точкой, достигает устойчивого состояния, но существует небольшой предельный цикл из-за неоптимальной АЦП.

Связанные примеры

Подробнее