Используйте Fixed-Point Tool, чтобы исследовать числовое поведение

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

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

Этот пример использует фиксированную точку прямой фильтр формы, реализованный с помощью основных базовых блоков, таких как Gain, Delay и Sum. Модель содержит блок Signal Generator, который подает входной сигнал прямоугольной волны к фильтру. В этом примере вы исследуете поведение фильтра для области значений входных параметров сигнала.

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

    fxpdemo_direct_form2

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

    simIn(1) = Simulink.SimulationInput('fxpdemo_direct_form2');
    simIn(2) = Simulink.SimulationInput('fxpdemo_direct_form2');
    simIn(3) = Simulink.SimulationInput('fxpdemo_direct_form2');
    simIn(4) = Simulink.SimulationInput('fxpdemo_direct_form2');
    simIn(5) = Simulink.SimulationInput('fxpdemo_direct_form2');
    simIn(6) = Simulink.SimulationInput('fxpdemo_direct_form2');
    
    
    simIn(1:6) = Simulink.SimulationInput('fxpdemo_direct_form2'); 

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

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

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

Откройте Fixed-Point Tool и соберите области значений

  1. Во вкладке Apps fxpdemo_direct_form2 модель, выберите Fixed-Point Tool.

  2. В Fixed-Point Tool нажмите New > Range Collection.

  3. Под System Under Design (SUD) выберите fxpdemo_direct_form2.

  4. Под Range Collection Mode выберите Simulation Ranges как метод сбора области значений.

  5. Под Simulation Inputs выберите Simulink.SimulationInput объект, simIn, то, что вы задали в базовом рабочем пространстве.

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

    Установите относительную погрешность (Rel Tol) сигнала, что вы регистрировали к 15%.

  7. Под Collect Ranges выберите Double precision.

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

  8. Нажмите кнопку Collect Ranges.

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

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

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

  9. Нажмите Settings, затем выберите Specified data types.

  10. Нажмите Simulate with Embedded Types.

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

    Workflow Browser указывает что шести сценариев симуляции, только EmbeddedRun_Scenario_4 соответствовавший допуски заданы. Результаты с переполнением подсвечены в красном.

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

  1. Выберите вкладку Explore Fixed-Point Tool, чтобы заняться расследованиями далее. Под Numerical Issues выберите Overflow, затем нажмите Execution Order.

    Fixed-Point Tool отображает только EmbeddedRun результаты с переполнением и видами список на основе порядка выполнения блока. В этом примере первое переполнение происходит в блоке Gain4.

    Можно дважды кликнуть на любой строке в электронной таблице Results, чтобы подсветить блок в модели.

  2. Можно сравнить фиксированную точку и поведение с плавающей точкой модели для определенного сценария симуляции с помощью Инспектора Данных моделирования. Например, Fixed-Point Tool указывает на тот EmbeddedRun_Scenario_3 не соответствовал заданному допуску. Чтобы сравнить этот встроенный запуск с поведением с плавающей точкой для этого сценария симуляции, щелкните правой кнопкой по EmbeddedRun_Scenario_3 и выберите Open SDI, чтобы соответствовать BaselineRun_Scenario_3.

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

Смотрите также

| |