Этот пример показывает, как использовать Тип данных Visualizer и вкладка Explore Fixed-Point Tool, чтобы идентифицировать, какие части модели вызывают числовые проблемы.
Используя Visualizer, можно просмотреть сводные данные гистограмм битов, используемых каждым объектом в модели. Каждый столбец в визуализации типа данных представляет гистограмму для одного объекта в вашей модели. Каждый интервал в гистограмме соответствует немного в двоичном слове.
Выбор столбца подсвечивает соответствующий объект модели в электронной таблице Fixed-Point Tool и заполняет Панель Результата с более подробной информацией о выбранном результате.
Можно использовать визуализацию типа данных, чтобы видеть сводные данные областей значений объектов в модели и определить источники переполнения, потерь значимости и неэффективных типов данных. Чтобы просмотреть визуализацию типа данных, моделируйте систему с инструментированием фиксированной точки или включенным журналированием сигнала. Переполнение отмечено красным треугольником выше столбца, представляющего объект модели. Потери значимости отмечены желтым треугольником. Чтобы отсортировать и отфильтровать результаты в Fixed-Point Tool, выберите вкладку Explore.
Текущие настройки фиксированной точки на этой модели в качестве примера вызывают переполнение. Вы отлаживаете модель путем включения инструментирования фиксированной точки и симуляции модели, затем исследования панели Visualization of Simulation Data, чтобы определить, какие объекты модели влияют на поведение модели.
Первоначально, вход к блоку Gain является синусоидой амплитудного 7
. Моделируйте модель с помощью локальных параметров настройки системы с журналированием активированного, чтобы видеть, происходят ли какое-либо переполнение или насыщение.
Откройте модель ex_fixedpoint_debug
. В командной строке MATLAB®, введите:
addpath(fullfile(docroot,'toolbox','fixpoint','examples')) ex_fixedpoint_debug
Из меню модели Analysis выберите Data Type Design> Fixed-Point Tool.
В разделе Prepare System панели инструментов, под System under design, выбирают ex_fixedpoint_debug
как систему, которую вы хотите преобразовать.
В разделе Collect Ranges панели инструментов выберите Simulation Ranges как метод для набора области значений.
Нажмите кнопку Prepare. Fixed-Point Tool проверяет систему в соответствии с проектом для совместимости с процессом преобразования и сообщает о любых проблемах, найденных в модели.
Инструмент сообщает, что необходимо задать аппаратные настройки для модели. В Параметрах конфигурации, на панели Hardware Implementation, устанавливает Device Vendor на Texas Instruments
. Установите Device Type на C2000
.
Нажмите кнопку Prepare снова. Система теперь готова к преобразованию.
Нажмите кнопку Collect Ranges.
Simulink® моделирует модель, в то время как переопределение в настоящее время заданных типов данных с удваивается. После, Fixed-Point Tool отображает результаты симуляции для каждого блока, который регистрировал данные фиксированной точки. Инструмент хранит результаты в выполнении под названием Ranges (Double)
. Панель Visualization of Simulation Data Fixed-Point Tool подсвечивает subsysB/Math2/Add1:Output
с красным треугольником, чтобы указать, что результат переполнился бы с в настоящее время заданным типом. Панель Result Details для этого результата показывает ту же гистограмму данных моделирования для выбранного результата.
Моделируйте модель с различным входом. Перед симуляцией выберите, чтобы объединить результаты симуляции так, чтобы инструмент собрал область значений симуляции для обоих входных параметров.
В модели ex_fixedpoint_debug
дважды кликните Ручной блок switch, чтобы выбрать Chirp Signal1
как вход к блоку Gain.
В Fixed-Point Tool, в разделе Collect Ranges панели инструментов, кликают по стрелке кнопки Simulation Ranges и выбирают Merge min/max.
Нажмите кнопку Collect Ranges.
Simulink моделирует модель с помощью типов данных с двойной точностью. Позже, Fixed-Point Tool отображает результаты симуляции для каждого блока, который регистрировал данные фиксированной точки. Инструмент хранит объединенные результаты в выполнении под названием Ranges (Double).
subsysB/Math2/Add1:Output
является все еще единственным результатом, который содержит переполнение. Можно посмотреть больше деталей о результате в панели Result Details.
В разделе Convert Data Types панели инструментов нажмите Propose Data Types.
Fixed-Point Tool предлагает новые типы данных с фиксированной точкой для объектов в модели, чтобы избежать числовых проблем, таких как переполнение. Панель Visualization of Simulation Data обновляет, чтобы показать эффект, что предложенные типы данных имели бы на модели. Результат subsysB/Math2/Add1:Output
больше не содержит переполнения.
Иногда, чтобы избежать переполнения при повиновении заданным настройкам предложения, Fixed-Point Tool должен уменьшать точность результата. В некоторых случаях это может вызвать потери значимости.
Например, отредактируйте поле ProposedDT результата subsysA/Math1/Gain
к fixdt(1,16,2)
. Гистограммы в панели Visualization of Simulation Data обновляют и теперь показывают потерю значимости, отмеченную желтым треугольником.
Измените предложенный тип данных для результата назад к масштабированию, первоначально предложенному инструментом, fixdt(1,16,16)
.
Поскольку Fixed-Point Tool отметил все предложенные результаты зеленым значком, чтобы указать, что предложенные типы данных не излагают проблем этим объектам, применяют предложения.
Нажмите кнопку Apply Data Types.
Проверьте, что новые настройки не вызывают числовых проблем путем симуляции модели с помощью новых масштабирований фиксированной точки и регистрируя результаты.
Нажмите кнопку Simulate with Embedded Types.
Simulink моделирует модель с помощью новых настроек фиксированной точки. После, Fixed-Point Tool отображает результаты симуляции в запущенном Embedded
. Никакое переполнение или насыщение не происходят, указывая, что модель может теперь обработать полный входной диапазон.