В этом примере показано, как использовать инструмент Fixed-Point Tool для уточнения масштабирования типов данных с фиксированной точкой, связанных с моделью контроллера обратной связи. Несмотря на то, что инструмент позволяет использовать несколько рабочих процессов для преобразования цифрового контроллера, описанного в идеальных числах двойной точности, в число, реализованное в числах с фиксированной точкой, в этом примере используется следующий подход:
Коллекция диапазонов (Range Collection) - используйте рабочий процесс коллекции диапазонов для изучения числового поведения модели.
Выполните глобальное переопределение типов данных с фиксированной точкой с использованием чисел с двойной точностью. Программа Simulink ® регистрирует результаты моделирования и отображает их с помощью инструмента Fixed-Point Tool.
Выполните начальное моделирование с использованием разумного предположения при фиксированном размере слова и масштабировании, а затем сравните результаты моделирования с выполнением с двойной точностью. Эта задача иллюстрирует, насколько сложно угадать наилучшее масштабирование.
Предлагать длины дробей с использованием данных диапазона моделирования - используйте итерационный рабочий процесс преобразования с фиксированной точкой для автоматического масштабирования модели.
Инструмент «Фиксированная точка» использует результаты моделирования с двойной точностью, чтобы предложить масштабирование с фиксированной точкой для соответствующим образом настроенных блоков. Инструмент «Фиксированная точка» позволяет принимать и применять предложения по масштабированию выборочно. После этого определяется качество результатов путем анализа входных и выходных данных аналоговой установки модели.
Чтобы открыть модель проектирования с обратной связью Simulink для данного учебного пособия, в командной строке MATLAB ® введитеfxpdemo_feedback.

Модель состоит из следующих блоков и подсистем:
Ссылка
Этот блок генератора сигналов генерирует опорный сигнал непрерывного времени. Он сконфигурирован для вывода прямоугольной волны.
Сумма
Этот блок Add вычитает выходной сигнал установки из опорного сигнала.
ZOH
Блок удержания нулевого порядка отсчитывает и удерживает непрерывный сигнал. Этот блок сконфигурирован так, что он квантует сигнал во времени на 0,01 секунды.
Аналогово-цифровой интерфейс
Аналого-цифровой (АЦП) интерфейс состоит из блока преобразования типа данных, который преобразует double к типу данных с фиксированной точкой. Он представляет любое аппаратное обеспечение, которое оцифровывает амплитуду аналогового входного сигнала. В реальном мире; его характеристики фиксированы.
Диспетчер
Цифровой контроллер - это подсистема, представляющая программное обеспечение, выполняющееся на аппаратном целевом устройстве. См. раздел Реализация цифрового контроллера.
Цифроаналоговый интерфейс
Цифроаналоговый (D/A) интерфейс состоит из блока преобразования типа данных, который преобразует тип данных с фиксированной точкой в double. Он представляет любое аппаратное обеспечение, которое преобразует оцифрованный сигнал в аналоговый сигнал. В реальном мире его характеристики зафиксированы.
Аналоговый завод
Аналоговая установка описывается передаточной функцией и управляется цифровым контроллером. В реальном мире его характеристики зафиксированы.
Объем
Модель включает в себя блок Scope, отображающий выходной сигнал установки.
Чтобы настроить этот вид моделирования контроллера обратной связи с фиксированной точкой:
Определите все компоненты конструкции.
В реальном мире существуют компоненты конструкции с фиксированными характеристиками (аппаратные средства) и компоненты конструкции с характеристиками, которые можно изменить (программное обеспечение). В этой схеме обратной связи основными компонентами аппаратных средств являются аппаратные средства A/D, аппаратные средства D/A и аналоговая установка. Основным программным компонентом является цифровой контроллер.
Разработка теоретической модели установки и контроллера.
Для проекта обратной связи в данном учебном пособии завод характеризуется функцией переноса.
Модель цифрового контроллера в этом учебном пособии описывается функцией передачи z-домена и реализуется с использованием реализации в прямой форме.
Оцените поведение завода и контроллера.
Поведение завода и контроллера оценивается с помощью графика Боде. Эта оценка является идеализированной, поскольку все числа, операции и состояния имеют двойную точность.
Смоделировать систему.
Вы имитируете конструкцию контроллера обратной связи с помощью программного обеспечения 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 - это блок единичной задержки, который задерживает сигнал обратной связи в памяти на один период выборки. Сигналы сохраняются в глобальной оперативной памяти с использованием базового типа данных.
Прямая реализация формы. Контроллер непосредственно реализует это уравнение:
(k − 1),
где:
u ( k-1 ) представляет собой входной сигнал предыдущего временного шага.
y (k) представляет токовый выход, и y (k-1 ) представляет выход предыдущего временного шага.
bi представляет коэффициенты числителя FIR.
ai представляет коэффициенты знаменателя FIR.
Первое суммирование в y (k) представляет умножение и накопление самых последних входных данных и числительных коэффициентов в накопителе. Второе суммирование в y (k) представляет умножение и накопление самых последних выходных сигналов и коэффициентов знаменателя в накопителе. Поскольку коэффициенты КИХ, входы и выходы представлены 16-битными числами (базовый тип данных), любое умножение, включающее эти числа, создает 32-битный выход (тип данных накопителя).
Начальные догадки для масштабирования каждого блока уже указаны в каждой маске блока в модели. Эта задача иллюстрирует сложность угадывания наилучшего масштабирования с фиксированной точкой. В этом примере сравнивается поведение модели с идеализированной версией с плавающей запятой с помощью рабочего процесса сбора диапазонов в инструменте «Фиксированная точка».
Откройте окно fxpdemo_feedback модель.
Откройте инструмент «Фиксированная точка». В галерее «Приложения» выберите инструмент «Фиксированная точка».
В инструменте «Фиксированная точка» нажмите «Создать» и выберите Range Collection.
Рабочий процесс сбора диапазонов можно использовать для изучения числового поведения модели и сравнения ее с идеализированной версией с плавающей запятой.
В разделе Система под проектированием (SUD) выберите подсистему, которую требуется проанализировать. В этом примере выберите Controller.
В разделе Режим сбора диапазонов (Range Collection Mode) выберите Расчетные диапазоны (Simulation Ranges) в качестве метода сбора диапазонов.
В разделе Входные данные моделирования (Simulation Inputs) используйте входные данные модели по умолчанию для моделирования.
Щелкните стрелку кнопки Собрать диапазоны (Collect Ranges) и выберите Double precision. Нажмите кнопку Собрать диапазоны (Collect Ranges), чтобы начать моделирование.
Программное обеспечение Simulink моделирует fxpdemo_feedback модель в режиме переопределения типа данных и сохраняет результаты в BaselineRun. Переопределение типа данных позволяет выполнить глобальное переопределение типов данных с фиксированной точкой с двойной точностью, тем самым избегая эффектов квантования. В электронной таблице «Результаты» результаты прогона отображаются с помощью инструмента «Фиксированная точка». Столбец типа скомпилированных данных (CompiledDT) для BaselineRun показывает, что блоки в модели использовали double тип данных во время моделирования.
Затем смоделируйте систему с использованием типов данных с фиксированной точкой, указанных в модели. Нажмите кнопку «Параметры» и выберите «Указанные типы данных». Щелкните Моделирование со встроенными типами (Simulate with Embedded Types).
Инструмент «Фиксированная точка» моделирует модель с использованием указанных в настоящее время типов данных фиксированных точек и сохраняет информацию о диапазоне в EmbeddedRun. Собранные диапазоны можно просмотреть в столбцах SimMin и SimMax электронной таблицы.
Инструмент «Фиксированная точка» выделяет строку, содержащую Up Cast блок, указывающий на наличие проблемы с этим результатом. На панели Сведения о результате (Result Details) показано, что блок был заполнен 23 раза, что указывает на плохое предположение о его масштабировании.
Совет
Для просмотра и фильтрации результатов можно использовать вкладку Обзор (Explore).
Щелкните Сравнить результаты (Compare Results), чтобы открыть инспектор данных моделирования.
В инспекторе данных моделирования выберите PlantOutput как сигнал для сравнения.
Инспектор данных моделирования строит график сигнала, связанного с выходом установки для BaselineRun и EmbeddedRun.

График выходного сигнала установки для EmbeddedRun отражает начальное предположение при масштабировании. Сюжетная конструкция Боде стремилась произвести хорошо работающий линейный отклик для системы с замкнутым контуром, представленной идеалом BaselineRun. Тем не менее, ответ EmbeddedRun является нелинейным. Значительные эффекты квантования вызывают нелинейные признаки. Важной частью конструкции с фиксированной точкой является поиск масштабирования, которое уменьшает эффекты квантования до приемлемых уровней.
С помощью автоматического ввода данных можно максимизировать точность выходного типа данных, охватывая весь моделируемый диапазон. Итеративный рабочий процесс преобразования с фиксированной точкой в инструменте Fixed-Point Tool позволяет максимизировать точность выходных типов данных при охвате всего моделируемого диапазона. Этот процесс известен как автоматическое масштабирование.
Поскольку в этом примере информация о диапазоне проектирования не представлена, инструмент Fixed-Point использует данные диапазона моделирования для предложения типов данных. Значение параметра Запас прочности для моделирования min/max (%) умножает «необработанные» значения моделирования. Установка для этого параметра значения больше 1 снижает вероятность переполнения при использовании типов данных с фиксированной точкой. Дополнительные сведения о том, как инструмент «Фиксированная точка» вычисляет предложения по типам данных, см. в разделе Как инструмент «Фиксированная точка» предлагает типы данных.
Из-за нелинейных эффектов квантования моделирование с фиксированной точкой дает результаты, которые отличаются от идеализированного двойного моделирования. Сигналы при моделировании с фиксированной точкой могут охватывать больший или меньший диапазон, чем при моделировании с двойной точкой. Если диапазон увеличивается достаточно, могут произойти переливы или насыщения. Запас прочности уменьшает эту вероятность, но может также снизить точность моделирования.
Примечание
Когда максимальное и минимальное расчетные значения охватывают полный рабочий диапазон проекта, инструмент Fixed-Point Tool дает значимые результаты автоматического ввода данных.
Автоматически масштабировать Controller подсистема. Эта подсистема представляет программное обеспечение, запущенное на целевом компьютере, и требует оптимизации.
В инструменте «Фиксированная точка» нажмите «Создать» и выберите Iterative Fixed-Point Conversion.
Совет
При переключении рабочих процессов в инструменте «Фиксированная точка» удаляются настройки и все данные, собранные во время активного рабочего процесса. Модель остается в текущем состоянии.
В разделе Система под конструкцией (SUD) выберите Controller подсистема как система для анализа и преобразования.
В разделе Режим сбора диапазонов (Range Collection Mode) выберите Диапазоны моделирования (Simulation rang
В разделе Входные данные моделирования (Simulation Inputs) используйте входные данные модели по умолчанию для моделирования.
Щелкните Подготовить (Prepare), чтобы создать точку восстановления и автоматически подготовить проектируемую систему к преобразованию.
Щелкните стрелку кнопки Собрать диапазоны (Collect Ranges) и выберите Double precision. Щелкните Собрать диапазоны (Collect Ranges), чтобы начать моделирование.
Программное обеспечение Simulink моделирует fxpdemo_feedback модель в режиме переопределения типа данных и сохраняет результаты в BaselineRun_2.
В разделе «Преобразование» нажмите кнопку «Параметры». Установите для параметра Запас прочности для моделирования min/max (%) значение 20. Используйте настройки по умолчанию для всех остальных параметров.
Щелкните Предложить типы данных.
Инструмент «Фиксированная точка» анализирует масштабирование всех блоков с фиксированной точкой, для которых параметр «Блокировать тип выходных данных» очищен от изменений с помощью параметра «Инструменты с фиксированной точкой».
Инструмент «Фиксированная точка» использует минимальное и максимальное значения, сохраненные в BaselineRun_2 предложить типы данных каждого блока таким образом, чтобы точность была максимизирована, в то время как весь диапазон значений моделирования охватывается. Инструмент отображает предлагаемые типы данных в электронной таблице Результаты (Results).
Просмотрите масштаб, предложенный инструментом «Фиксированная точка». Можно принять предложение по масштабированию для каждого блока. В электронной таблице Результаты (Results) установите соответствующий флажок Принять (Accept). По умолчанию инструмент «Фиксированная точка» принимает все предложения по масштабированию, которые отличаются от текущего масштабирования. В этом примере убедитесь, что для каждого блока подсистемы контроллера установлен флажок Принять.
Нажмите кнопку «Применить типы данных».
Инструмент «Фиксированная точка» применяет предложения по масштабированию, принятые на предыдущем шаге, к блокам в Controller подсистема.
В разделе «Проверка» нажмите кнопку «Моделирование со встроенными типами».
Simulink имитирует fxpdemo_feedback с использованием нового примененного масштабирования. Сведения об этом моделировании хранятся в прогоне с именем EmbeddedRun_2. После этого инструмент Fixed-Point Tool отображает информацию о блоках, которые регистрировали данные Fixed-Point. Столбец типа скомпилированных данных (CompiledDT) для EmbeddedRun_2 показывает, что блоки подсистемы контроллера использовали фиксированные типы данных с новым масштабированием.
Щелкните Сравнить результаты (Compare Results), чтобы открыть инспектор данных моделирования.
В инспекторе данных моделирования выберите PlantOutput как сигнал для сравнения.
Инспектор данных моделирования строит график сигнала, связанного с выходом установки для BaselineRun_2 и EmbeddedRun_2, а также их разницу.

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