Открыть модель проекта обратной связи Simulink® для этого примера, в командной строке MATLAB®, fxpdemo_feedback
типа.
Модель Simulink проекта обратной связи состоит из следующих блоков и подсистем:
Ссылка
Этот блок Signal Generator генерирует непрерывно-разовый ссылочный сигнал. Это сконфигурировано, чтобы вывести прямоугольную волну.
Сумма
Этот блок Sum вычитает объект вывод из ссылочного сигнала.
ZOH
Выборки блока Zero-Order Hold и содержат непрерывный сигнал. Этот блок сконфигурирован так, чтобы он квантовал сигнал вовремя на 0,01 секунды.
Аналого-цифровой интерфейс
Аналого-цифровой интерфейс (A/D) состоит из блока Data Type Conversion, который преобразовывает double
в тип данных с фиксированной точкой. Это представляет любое оборудование, которое оцифровывает амплитуду сигнала аналогового входа. В реальном мире фиксируются его характеристики.
Контроллер
Цифровой контроллер является подсистемой, которая представляет программное обеспечение, работающее на аппаратной цели. Обратитесь к Цифровой Реализации Контроллера.
Цифро-аналоговый интерфейс
Цифро-аналоговый интерфейс (D/A) состоит из блока Data Type Conversion, который преобразовывает тип данных с фиксированной точкой в double
. Это представляет любое оборудование, которое преобразовывает оцифрованный сигнал в аналоговый сигнал. В реальном мире фиксируются его характеристики.
Аналоговый объект
Аналоговый объект описывает передаточная функция и управляет цифровой контроллер. В реальном мире фиксируются его характеристики.
Осциллограф
Модель включает блок Scope, который отображает выходной сигнал объекта.
Настраивать этот вид контроллера обратной связи фиксированной точки симуляция:
Идентифицируйте все компоненты проекта.
В реальном мире существуют компоненты проекта с фиксированными характеристиками (оборудование) и компоненты проекта с характеристиками, которые можно изменить (программное обеспечение). В этом проекте обратной связи основные аппаратные компоненты являются оборудованием A/D, оборудованием D/A и аналоговым объектом. Основной компонент программного обеспечения является цифровым контроллером.
Разработайте теоретическую модель объекта и контроллера.
Для проекта обратной связи в этом примере объект характеризуется передаточной функцией.
Цифровые модели контроллеров в этом примере описаны передаточной функцией z-области и реализованы с помощью реализации прямой формы.
Оцените поведение объекта и контроллера.
Вы оцениваете поведение объекта и контроллера с Диаграммой Боде. Эта оценка идеализирована, потому что все числа, операции и состояния с двойной точностью.
Моделируйте систему.
Вы моделируете проектирование контроллера обратной связи с помощью программного обеспечения 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-битному номеру (базовый тип данных).
Условия числителя и условия знаменателя
Каждый из этих Дискретных КИХ-блоков Фильтра представляет взвешенную сумму, выполненную в цели центрального процессора. Размер слова и точность в вычислениях отражают те из аккумулятора. Условия числителя умножают и накапливают новые входные параметры с КИХ-коэффициентами числителя. Множители Условий знаменателя и накапливают новые задержанные выходные параметры с КИХ-коэффициентами знаменателя. Коэффициенты хранятся в ROM с помощью базового типа данных. Новые входные параметры хранятся в глобальном RAM с помощью базового типа данных.
Объедините условия
Объединитесь Условия блок Sum, который представляет аккумулятор в центральном процессоре. Его размер слова и точность дважды больше чем это RAM (двойные биты).
Вниз бросок
Вниз Бросок является блоком Data Type Conversion, который представляет взятие номера от центрального процессора и хранения его в RAM. Размер слова и точность уменьшаются до вдвое меньше чем это аккумулятора, когда преобразовано назад к базовому типу данных.
Предыдущий
Предыдущий блок Unit Delay, который задерживает сигнал обратной связи в памяти одним демонстрационным периодом. Сигналы хранятся в глобальном RAM с помощью базового типа данных.
Прямая Реализация Формы. Контроллер непосредственно реализует это уравнение:
u (k – 1) представляет вход от предыдущего временного шага.
y (k) представляет текущую производительность, и y (k – 1) представляет вывод от предыдущего временного шага.
bi представляет КИХ-коэффициенты числителя.
ai представляет КИХ-коэффициенты знаменателя.
Первое суммирование в y (k) представляет умножение и накопление новых входных параметров и коэффициентов числителя в аккумуляторе. Второе суммирование в y (k) представляет умножение и накопление новых выходных параметров и коэффициентов знаменателя в аккумуляторе. Поскольку КИХ-коэффициенты, входные параметры и выходные параметры все представлены 16-битными числами (базовый тип данных), любое умножение, включающее эти числа, производит 32-битный вывод (тип данных аккумулятора).
Этот пример показывает вам, как использовать Fixed-Point Tool, чтобы совершенствовать масштабирование типов данных с фиксированной точкой, сопоставленных с моделями контроллеров обратной связи. Несмотря на то, что инструмент включает несколько рабочих процессов для преобразования цифрового контроллера, описанного в идеальных числах с двойной точностью к одному реализованному в числах фиксированной точки, этот пример использует следующий подход:
Исходное предположение при Масштабировании. Запустите начальную симуляцию с помощью разумного предположения в размере слова фиксированной точки и масштабировании. Эта задача иллюстрирует, как трудный это должно предположить лучшее масштабирование.
Набор области значений. Выполните глобальное переопределение типов данных с фиксированной точкой с помощью чисел с двойной точностью. Программное обеспечение Simulink регистрирует результаты симуляции, и Fixed-Point Tool отображает их.
Автоматический Ввод Данных. Выполните автоматическую процедуру ввода данных, которая использует результаты симуляции с двойной точностью, чтобы предложить фиксированную точку, масштабирующуюся для соответственно сконфигурированных блоков. Fixed-Point Tool позволяет вам принимать и применять масштабирующиеся предложения выборочно. Позже, вы определяете качество результатов путем исследования ввода и вывода аналогового объекта модели.
Исходные предположения для масштабирования каждого блока уже заданы в каждой маске блока в модели. Эта задача иллюстрирует трудность предположения лучшего масштабирования.
Откройте модель fxpdemo_feedback
.
Откройте Fixed-Point Tool. В модели выберите Analysis> Data Type Design> Fixed-Point Tool.
В Fixed-Point Tool, в разделе Prepare System панели инструментов, под System Under Design, выбирают подсистему, которую вы хотите преобразовать в фиксированную точку. В этом примере выберите Controller
.
В разделе Collect Ranges выберите Simulation Ranges как метод сбора области значений.
Кликните по стрелке кнопки Collect Ranges и выберите Use current settings. Нажмите кнопку Collect Ranges, чтобы запустить симуляцию. Fixed-Point Tool моделирует модель с помощью в настоящее время заданных типов данных и хранит собранную информацию области значений в выполнении, названном Run 1
. Можно просмотреть собранные области значений в SimMin и столбцах SimMax электронной таблицы, или в панели Result Details.
Fixed-Point Tool подсвечивает строку, содержащую блок Up Cast
, чтобы указать, что существует проблема с этим результатом. Панель Result Details показывает, что блок насыщал 23 раза, который указывает на плохое предположение для его масштабирования.
В модели нажмите на значок антенны при выводе блока Transfer Fcn под названием Analog Plant
.
Инспектор Данных моделирования строит сигнал, сопоставленный с объектом вывод.
График выходного сигнала объекта отражает исходное предположение при масштабировании. Проект Диаграммы Боде стремился произвести линейный ответ хорошего поведения для системы с обратной связью. Безусловно, ответ нелинеен. Значительные эффекты квантования вызывают нелинейные функции. Важная часть проекта фиксированной точки находит масштабирование, которое уменьшает эффекты квантования до допустимых уровней.
Переопределение типа данных позволяет вам выполнить глобальное переопределение типов данных с фиксированной точкой с типами данных с двойной точностью, таким образом, избегая эффектов квантования. При выполнении автоматического масштабирования, чтобы предложить более высокое масштабирование фиксированной точки точности, Fixed-Point Tool использует эти результаты симуляции.
Кликните по стрелке кнопки Collect Ranges и выберите Double Precision.
Нажмите кнопку Collect Ranges.
Программное обеспечение Simulink моделирует модель fxpdemo_feedback
в режиме переопределения типа данных и хранит результаты в запущенном Ranges (Double)
. Позже, в электронной таблице, Fixed-Point Tool отображает результаты выполнения. Скомпилированный тип данных (CompiledDT), столбец для запущенного Ranges (Double)
показывает, что блоки модели использовали тип данных double
во время симуляции.
В модели нажмите на значок антенны при выводе блока Transfer Fcn под названием Analog Plant
снова.
Инспектор Данных моделирования строит и Ranges (Double)
и версии Run 1
сигнала, сопоставленного с объектом вывод (верхние оси). Нажмите Compare, чтобы построить различие между активными и ссылочными версиями того сигнала. Сравните идеал (тип данных double
) выходной сигнал объекта с его версией фиксированной точки.
От Инспектора Данных моделирования панель меню используйте инструменты изменения масштаба, чтобы увеличить масштаб области.
Используя автоматическую процедуру ввода данных, можно максимизировать точность типа выходных данных при охвате полной области значений симуляции.
Поскольку никакая информация области значений проекта не предоставляется, Fixed-Point Tool использует данные об области значений симуляции, которые были собраны во время симуляции, запущенной для предложения типов данных. Значение параметров Safety margin for simulation min/max (%) умножает “необработанные” значения симуляции. Установка этого параметра на значение, больше, чем 1 уменьшение вероятность, что переполнение произойдет, когда типы данных с фиксированной точкой будут использоваться. Для получения дополнительной информации о том, как Fixed-Point Tool вычисляет предложения по типу данных, смотрите, Как Fixed-Point Tool Предлагает Типы данных.
Из-за нелинейных эффектов квантования симуляция фиксированной точки приводит к результатам, которые отличаются от идеализированного, удваивается - базирующаяся симуляция. Сигналы в симуляции фиксированной точки могут покрыть большую или меньшую область значений, чем в удваивании - базирующаяся симуляция. Если область значений увеличивается достаточно, переполнение или насыщение могли бы произойти. Запас прочности уменьшает эту вероятность, но это может также уменьшить точность симуляции.
Когда максимальные и минимальные значения симуляции покрывают полный, намеченный рабочий диапазон вашего проекта, Fixed-Point Tool приводит к значимым автоматическим результатам ввода данных.
Выполните автоматический ввод данных для подсистемы Controller
. Эта подсистема представляет программное обеспечение, работающее на цели, и требует оптимизации.
В Fixed-Point Tool, в разделе Convert Data Types панели инструментов, нажимают кнопку Settings. Установите параметр Safety margin for simulation min/max (%) на 20
. Используйте настройки по умолчанию для всех других параметров.
Нажмите Propose Data Types.
В диалоговом окне выберите Ranges (Double), и затем нажмите OK.
Fixed-Point Tool анализирует масштабирование всех блоков фиксированной точки, параметр Lock output data type setting against changes by the fixed-point tools которых очищен.
Fixed-Point Tool использует минимальные и максимальные значения, сохраненные в Ranges (Double)
, запущенном, чтобы предложить типы данных каждого блока, таким образом, что точность максимизируется, в то время как полный спектр значений симуляции заполнен. Инструмент отображает предложенные типы данных В электронной таблице.
Рассмотрите масштабирование, которое предлагает Fixed-Point Tool. Можно принять решение принять масштабирующееся предложение по каждому блоку. В электронной таблице установите соответствующий флажок Accept. По умолчанию Fixed-Point Tool принимает все предложения по масштабированию, которые отличаются от текущего масштабирования. В данном примере гарантируйте, что флажок Accept устанавливается для каждого из блоков Подсистемы контроллера.
В Fixed-Point Tool нажмите кнопку Apply Data Types.
Fixed-Point Tool применяет масштабирующиеся предложения, что вы приняли на предыдущем шаге к блокам подсистемы Controller
.
В разделе Verify панели инструментов нажмите кнопку Simulate with Embedded Types.
Simulink моделирует модель fxpdemo_feedback
с помощью нового масштабирования, которое вы применили. Информация об этой симуляции хранится в выполнении под названием Embedded
. Позже, Fixed-Point Tool отображает информацию о блоках, которые регистрировали данные фиксированной точки. Скомпилированный тип данных (CompiledDT), столбец для запущенного Embedded
показывает, что блоки Подсистемы контроллера использовали типы данных с фиксированной точкой с новым масштабированием.
В модели нажмите на значок антенны при выводе блока Transfer Fcn под названием Analog Plant
снова. В Инспекторе Данных моделирования нажмите кнопку Compare.
Рядом с Baseline выберите запущенный Ranges (Double)
. Рядом с Compare to выберите запущенный Embedded
.
Нажмите Compare.
Инспектор Данных моделирования строит фиксированную точку, и дважды замените версии выходного сигнала объекта, а также их различие.
Выходной сигнал объекта, представленный запущенной фиксированной точкой, достигает устойчивого состояния, но небольшой предельный цикл присутствует из-за неоптимального проекта A/D.