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

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

  • Набор области значений — Использование рабочий процесс набора области значений, чтобы исследовать числовое поведение модели.

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

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

  • Предложите Дробные Длины Используя Данные об Области значений Симуляции — Использование итеративный рабочий процесс преобразования фиксированной точки, чтобы автомасштабировать модель.

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

О контроллере обратной связи модель в качестве примера

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

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

  • Ссылка

    Этот блок Signal Generator генерирует опорный сигнал непрерывного времени. Это сконфигурировано, чтобы вывести прямоугольную волну.

  • Сумма

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

  • ZOH

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

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

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

  • Контроллер

    Цифровой контроллер является подсистемой, которая представляет программное обеспечение, работающее на аппаратной цели. Обратитесь к Цифровой Реализации Контроллера.

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

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

  • Аналоговый объект

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

  • Осциллограф

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

Setup симуляции

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

  1. Идентифицируйте все компоненты проекта.

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

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

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

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

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

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

  4. Симулируйте систему.

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

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

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

Диаграммы Боде были созданы с помощью переменных рабочей области, произведенных скриптом под названием preload_feedback.m.

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

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

Цифровая реализация контроллера состоит из этих блоков:

  • Бросок

    Бросок является блоком Data Type Conversion, который соединяет оборудование A/D с цифровым контроллером. Это заполняет выходной размер слова оборудования A/D с конечными нулями к 16-битному номеру (базовый тип данных).

  • Условия числителя и условия знаменателя

    Каждый из этих блоков Discrete FIR Filter представляет взвешенную сумму, выполненную в цели центрального процессора. Размер слова и точность в вычислениях отражают те из аккумулятора. Условия числителя умножают и накапливают новые входные параметры с КИХ-коэффициентами числителя. Множители Условий знаменателя и накапливают новые задержанные выходные параметры с КИХ-коэффициентами знаменателя. Коэффициенты хранятся в ROM с помощью базового типа данных. Новые входные параметры хранятся в глобальном RAM с помощью базового типа данных.

  • Объедините условия

    Объединитесь Условия блок Add, который представляет аккумулятор в центральном процессоре. Его размер слова и точность дважды больше чем это RAM (двойные биты).

  • Вниз бросок

    Вниз Бросок является блоком Data Type Conversion, который представляет взятие номера от центрального процессора и хранения его в RAM. Размер слова и точность уменьшаются до вдвое меньше чем это аккумулятора, когда преобразовано назад к базовому типу данных.

  • Предыдущий

    Предыдущий блок Unit Delay, который задерживает сигнал обратной связи в памяти к одному периоду расчета. Сигналы хранятся в глобальном RAM с помощью базового типа данных.

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

y(k)=i=0Nbiu(k1)i=1Naiy(k1),

где:

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

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

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

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

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

Исследуйте числовое поведение модели

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

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

  2. Откройте Fixed-Point Tool. В галерее Apps выберите Fixed-Point Tool.

  3. В Fixed-Point Tool нажмите New и выберите Range Collection.

    Можно использовать рабочий процесс набора области значений, чтобы исследовать числовое поведение модели и сравнить его с идеализированной, версией с плавающей точкой.

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

  5. Под Range Collection Mode выберите Simulation Ranges как метод сбора области значений.

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

  7. Кликните по стреле кнопки Collect Ranges и выберите Double precision. Нажмите кнопку Collect Ranges, чтобы запустить симуляцию.

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

  8. Затем симулируйте систему с помощью типов данных с фиксированной точкой, заданных в модели. Кликните по стреле кнопки Settings и выберите Specified data types. Нажмите Simulate with Embedded Types.

    Fixed-Point Tool симулирует модель с помощью в настоящее время заданных типов данных с фиксированной точкой и хранит информацию области значений в EmbeddedRun. Можно просмотреть собранные области значений в SimMin и столбцах SimMax электронной таблицы.

    Fixed-Point Tool подсвечивает строку, содержащую Up Cast блокируйтесь, чтобы указать, что существует проблема с этим результатом. Панель Result Details показывает, что блок насыщал 23 раза, который указывает на плохое предположение для его масштабирования.

    Совет

    Можно использовать вкладку Explore, чтобы исследовать и отфильтровать результаты.

  9. Нажмите Compare Results, чтобы открыть Инспектора Данных моделирования.

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

    Инспектор Данных моделирования строит сигнал, сопоставленный с объектом выход для BaselineRun и EmbeddedRun.

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

Предложите дробные длины Используя данные об области значений симуляции

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

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

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

Примечание

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

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

  1. В Fixed-Point Tool нажмите New и выберите Iterative Fixed-Point Conversion.

    Совет

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

  2. Под System Under Design (SUD) выберите Controller подсистема как система, чтобы анализировать и преобразовать.

  3. Под Range Collection Mode выберите Simulation ranges.

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

  5. Нажмите Prepare, чтобы создать точку восстановления и автоматически подготовить систему в соответствии с проектом для преобразования.

  6. Кликните по стреле кнопки Collect Ranges и выберите Double precision. Нажмите Collect Ranges, чтобы запустить симуляцию.

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

  7. В разделе Convert нажмите кнопку Settings. Установите параметр Safety margin for simulation min/max (%) на 20. Используйте настройки по умолчанию для всех других параметров.

  8. Нажмите Propose Data Types.

    Fixed-Point Tool анализирует масштабирование всех блоков фиксированной точки, параметр Lock output data type setting against changes by the fixed-point tools которых очищен.

    Fixed-Point Tool использует минимальные и максимальные значения, сохраненные в BaselineRun_2 предложить типы данных каждого блока, таким образом, что точность максимизируется, в то время как полный спектр значений симуляции заполнен. Инструмент отображает предложенные типы данных в электронной таблице Results.

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

  10. Нажмите кнопку Apply Data Types.

    Fixed-Point Tool применяет масштабирующиеся предложения, что вы приняли на предыдущем шаге с блоками в Controller подсистема.

  11. В разделе Verify нажмите кнопку Simulate with Embedded Types.

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

  12. Нажмите Compare Results, чтобы открыть Инспектора Данных моделирования.

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

    Инспектор Данных моделирования строит сигнал, сопоставленный с объектом выход для BaselineRun_2 и EmbeddedRun_2, а также их различие.

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

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

Больше о