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

В этом примере показано, как использовать 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™. В среде симуляции можно обрабатывать все компоненты (программное и оборудование), как если бы их характеристики не были фиксированы.

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

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

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

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

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

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

  • Приведение Вверх

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

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

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

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

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

  • Приведение вниз

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

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

    Prev Out является Unit Delay блоком, который задерживает сигнал обратной связи в памяти на один период дискретизации. Сигналы хранятся в глобальной ОЗУ с использованием базового типа данных.

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

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, чтобы открыть Данные моделирования Inspector.

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

    Simulation Data Inspector строит график сигнала, сопоставленного с выходом объекта для 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, чтобы открыть Данные моделирования Inspector.

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

    Simulation Data Inspector строит график сигнала, сопоставленного с выходным сигналом объекта для BaselineRun_2 и EmbeddedRun_2, а также их различие.

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

Похожие примеры

Подробнее о