exponenta event banner

Использование инструмента «Фиксированная точка» для просмотра числового поведения

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

Настройка модели

В этом учебном пособии используется фильтр прямой формы с фиксированной точкой, реализованный с использованием основных стандартных блоков, таких как «Усиление», «Задержка» и «Сумма». Модель содержит блок генератора сигналов, который подает на вход фильтра квадратные волны. В этом учебном пособии рассматривается поведение фильтра для диапазона входных сигналов.

  1. Чтобы открыть fxpdemo_direct_form2 например, в командной строке MATLAB ® введите :

    fxpdemo_direct_form2

  2. Чтобы задать несколько сценариев моделирования для сбора диапазонов, определите Simulink.SimulationInput в базовом рабочем пространстве или рабочем пространстве модели. Определение Simulink.SimulationInput объект, simIn, которая задает амплитуду входного сигнала прямоугольной волны для диапазона значений.

    simIn(1:6) = Simulink.SimulationInput('fxpdemo_direct_form2'); 
    
    simIn(1) = simIn(1).setBlockParameter('fxpdemo_direct_form2/Input','Amplitude','0.001');
    simIn(2) = simIn(2).setBlockParameter('fxpdemo_direct_form2/Input','Amplitude','0.01');
    simIn(3) = simIn(3).setBlockParameter('fxpdemo_direct_form2/Input','Amplitude','0.1');
    simIn(4) = simIn(4).setBlockParameter('fxpdemo_direct_form2/Input','Amplitude','1');
    simIn(5) = simIn(5).setBlockParameter('fxpdemo_direct_form2/Input','Amplitude','10');
    simIn(6) = simIn(6).setBlockParameter('fxpdemo_direct_form2/Input','Amplitude','100');

    Инструмент «Фиксированная точка» собирает диапазоны для каждого указанного сценария и объединяет результаты всех прогонов моделирования. Объединение позволяет исследовать численное поведение модели в полном диапазоне моделирования.

  3. Чтобы задать допуски сигнала, включите регистрацию сигнала на выходе блока Sum1.

    Simulink.sdi.markSignalForStreaming('fxpdemo_direct_form2/Sum1',1,'on');

Открытие инструмента «Фиксированная точка» и сбор диапазонов

  1. На вкладке «Приложения» fxpdemo_direct_form2 выберите инструмент «Фиксированная точка».

  2. В инструменте «Фиксированная точка» выберите «Создать» > «Коллекция диапазонов».

  3. В разделе «Система под проектированием» (SUD) выберите fxpdemo_direct_form2.

  4. В разделе Режим сбора диапазонов (Range Collection Mode) выберите Расчетные диапазоны (Simulation Ranges) в качестве метода сбора диапазонов.

  5. В разделе Входные данные моделирования (Simulation Inputs) выберите Simulink.SimulationInput объект, simIn, которая была определена в базовой рабочей области.

  6. Чтобы задать допуски для системы, в разделе Допуски сигнала (Signal Tolerances) укажите допуски для любого сигнала в модели с включенным регистрированием сигнала.

    Установите относительный допуск (Rel Tol) зарегистрированного сигнала на 15%.

  7. В разделе «Собрать диапазоны» выберите Double precision.

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

  8. Нажмите кнопку Собрать диапазоны.

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

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

    Выбор BaselineRun узел в браузере рабочего процесса показывает объединенные диапазоны из шести сценариев моделирования.

  9. Щелкните Настройки, затем выберите Specified data types.

  10. Щелкните Моделирование со встроенными типами (Simulate with Embedded Types).

    Инструмент фиксированных точек моделирует модель один раз для каждого сценария моделирования с использованием типов данных фиксированных точек, указанных в модели. Выбор EmbeddedRun узел в браузере рабочего процесса показывает объединенные результаты из шести сценариев моделирования.

    Браузер рабочего процесса указывает, что из шести сценариев моделирования только EmbeddedRun_Scenario_4 удовлетворяют указанным допускам. Результаты с переполнениями выделены красным цветом.

Изучение поведения модели с фиксированной точкой

  1. Выберите вкладку «Обзор» инструмента «Фиксированная точка» для дальнейшего изучения. В разделе «Числовые проблемы» выберите Overflowзатем щелкните Заказ на выполнение.

    Инструмент «Фиксированная точка» отображает только EmbeddedRun результаты с переполнениями и сортировкой списка по порядку выполнения блока. В этом примере происходит первое переполнение в блоке Gain4.

    Можно дважды щелкнуть любую строку в таблице Результаты (Results), чтобы выделить блок в модели.

  2. Можно сравнить поведение модели с фиксированной и плавающей точками для определенного сценария моделирования с помощью инспектора данных моделирования. Например, инструмент «Фиксированная точка» указывает, что EmbeddedRun_Scenario_3 не соответствует указанному допуску. Чтобы сравнить этот встроенный прогон с поведением с плавающей точкой для этого сценария моделирования, щелкните правой кнопкой мыши EmbeddedRun_Scenario_3 и выберите Открыть SDI для сравнения с BaselineRun_Scenario_3.

    Инспектор данных моделирования отображает зарегистрированный сигнал, связанный с выходом Sum1 блок для BaselineRun_Scenario_3 и EmbeddedRun_Scenario_3, а также их разность и допуск, заданный для этого сигнала.

См. также

| |