Интерактивное создание отчета Simulink Report Generator

В этом примере показано, как использовать Report Explorer для разработки файла настройки отчета и создания отчета, который делает следующее:

  • Открывает Simulink® модель для уравнения Ван дер Поля, называемая vdp модель.

  • Устанавливает параметр Gain для блока Mu в пять различных значений.

  • Моделирует модель каждый раз, когда установлен параметр Gain.

  • Собирает результаты. Результаты, входящие в заданную область, появляются в таблице сгенерированного отчета.

Вам не нужно знать MATLAB® или ПО Simulink, чтобы создать и запустить этот пример отчета. Однако знание этих продуктов поможет вам понять код MATLAB и симуляцию модели, которая выполняется.

Для создания этого отчета необходимо выполнить следующие основные задачи:

Этот пример включает отдельные разделы для различных видов задач создания и генерации отчетов. Каждый раздел основан на предыдущих разделах. Однако, если необходимо просмотреть компоненты настройки отчета для более позднего раздела без выполнения предыдущих разделов, в MATLAB можно просмотреть завершенный файл настройки отчета, запустив динамический отчет Simulink. Отчет предназначен для vdp модель.

Укажите опции отчета в файле настройки

Чтобы создать и сконфигурировать файл настройки отчета:

  1. Запустите Simulink.

  2. Откройте Report Explorer на панели инструментов Simulink. На вкладке Apps, в разделе Simulation Graphics and Reporting, нажмите Report Generator.

  3. Выберите File > New, чтобы создать файл настройки отчета.

  4. Сохраните файл настройки отчета.

    На панели « Свойствах»:

    1. Укажите, где сохранить файл настройки отчета. Чтобы сохранить его в текущей рабочей папке, выберите Present Working Directory из Directory списка выбора.

    2. Укажите формат отчета. В списке File format выбора выберите Acrobat (PDF).

      Совет

      Если вы хотите включить гиперссылки в снимки системы, используйте Direct PDF (from template) формат файла.

    3. Введите описание для отчета. В Report description текстовом поле замените существующее содержимое следующим текстом.

      Совет

      Скопируйте и вставьте этот код из HTML в Report Explorer.

      Simulink Dynamic Report
      
      This report opens up a model, sets a block parameter 
      several times, simulates the model, and collects the
      results. Results that fall within a specified range are 
      displayed in a table after the test is complete.
      
      The report is configured to test the vdp model only.
      By selecting the Eval String component immediately 
      below the Report component, you can modify
      * model
      * block
      * parameter
      * tested values
  5. Щелкните File > Save As, чтобы сохранить файл настройки отчета как simulink_tutorial.rpt.

    На панели Контур слева отображается новое имя файла.

Для создания содержимого отчета см. раздел Добавление содержимого отчета с компонентами.

Добавление содержимого отчета с компонентами

Отчеты по компонентам

Сообщите components укажите, какую информацию включить в отчет. Компоненты являются автономными модульными объектами MATLAB, которые управляют процессом генерации отчетов и вставляют элементы, такие как таблицы, списки и рисунки, в файл настройки отчетов. Используйте компоненты для настройки внешнего вида и выхода отчетов.

Для получения дополнительной информации см. раздел «Отчеты по компонентам».

На следующем рисунке показан пример страницы из отчета, созданного в этом примере, и компонентов, используемых для создания этого выхода.

Примечание

Не деактивируйте компоненты отчета, добавленные в файл настройки отчета.

Добавление кода MATLAB

Примечание

Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».

Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report. Отчет предназначен для vdp модель.

Первым добавляемым компонентом является компонент Evaluate MATLAB Expression, который оценивает команды MATLAB в рабочей области. Код в этом компоненте присваивает начальные значения переменным, используемым в этом примере.

  1. На панели Контур слева выберите simulink_tutorial.rpt.

  2. На панели «Библиотека» посередине, в категории MATLAB, выберите Evaluate MATLAB Expression.

  3. На панели свойств справа щелкните значок рядом с Add component to current report, чтобы вставить компонент в отчет.

    Примечание

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

    На левой панели Контур (Outline) Evaluate MATLAB Expression компонент появляется под simulink_tutorial файл настройки отчета. Программа Simulink Report Generator™ сокращает имя компонента, чтобы Eval.

    Значок в верхнем левом углу значка Eval компонента указывает, что этот компонент не может иметь дочерних компонентов. По умолчанию все компоненты, добавляемые при выборе Eval компонента, являются одноуровневыми компонентами этого компонента.

    Опции для Evaluate MATLAB Expression компонента отображаются на панели свойств справа.

  4. Снимите флажки Insert MATLAB expression in report и Display command window output in report, чтобы не включать в этот отчет код MATLAB или выход.

  5. Добавьте код MATLAB в текстовое поле Expression to evaluate in the base workspace, чтобы задать следующие значения:

    • Имя модели

    • Имя блока

    • The параметров блоков

    • Значения параметров

    • Другие начальные значения, необходимые для обработки модели vdp

    Замените существующий текст следующим кодом MATLAB.

    %The name of the model
    %that will be changed
    expModel='vdp';
    
    %The name of the block in the model
    %that will be changed
    expBlock='vdp/Mu';
    
    %The name of the block parameter
    %that will be changed
    expParam='Gain';
    
    %The values that will be set
    %during experimentation
    expValue=[-1 0 .5 1 2];
    
    %expValue can be either a vector
    %or a cell array
    
    testMin=2.1;
    testMax=3;
    
    %---- do not change code below line ---
    
    try
       open_system(expModel);
    end
    
    expOkValues=cell(0,2);

    Примечание

    Когда вы меняете поле на панели свойств справа, фон поля изменяет цвет (по умолчанию это кремовый цвет), указывая, что в этом поле есть неприменимые изменения. Как только вы выполняете операции с другим компонентом, программное обеспечение Simulink Report Generator применяет изменения, и цвет фона снова становится белым.

  6. Установите флажок Evaluate this expression if there is an error.

  7. В поле под флажком замените существующий текст следующим текстом:

    disp(['Error during eval: ', evalException.message])
    Теперь окно Report Explorer выглядит следующим образом.

    Совет

    Чтобы запустить команды, указанные в выражении MATLAB, нажмите кнопку Eval Now. Эта кнопка находится в правом верхнем углу Report Explorer. Это простой способ убедиться, что ваши команды верны и не вызовут проблем генерации отчетов.

  8. Щелкните File > Save, чтобы сохранить файл настройки отчета.

Для получения информации об обработке условий ошибки смотрите Обработку ошибок для кода MATLAB.

Добавление страницы Заголовка

Примечание

Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».

Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report. Отчет предназначен для vdp модель.

Создайте пользовательскую страницу заголовка для отчета с помощью компонента Title Page.

  1. На левой панели Контур (Outline) выберите компонент Eval.

  2. На панели «Библиотека» в середине, в категории Formatting, нажмите Title Page.

  3. Щелкните значок рядом с Add component to current report.

    Компонент Title Page появится на панели Контур (Outline).

    Примечание

    Для использования компонента Title Page необходимо иметь в отчете компонент Chapter. Компонент Chapter еще не добавлен, поэтому на панели « Свойствах» отображается сообщение о том, что для корректного отображения компонента Title Page требуются разделы. Поскольку позже в этом примере вы добавляете Chapter компоненты к этому отчету, можно игнорировать это сообщение.

  4. На панели свойств справа:

    1. В Title текстовом поле введите:

      Dynamic Simulink Report
    2. В Subtitle текстовом поле введите:

      Using Simulink Report Generator to Document Changes
    3. В Options разделе выберите Custom Author из списка выбора.

    4. Введите имя в текстовое поле.

    5. Установите флажок Include report creation date.

    6. Выберите формат даты и времени по умолчанию из списка выбора. Панель свойств справа выглядит следующим образом.

  5. Сохраните файл настройки отчета.

Откройте модель Simulink

Примечание

Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».

Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report. Отчет предназначен для vdp модель.

Следующий оператор в компоненте Evaluate MATLAB Expression, который вы создали в Add MATLAB Code, пытается открыть vdp модель:

try
   open_system(expModel);
end

Совет

Выберите компонент Eval на панели Контур (Outline) слева, чтобы снова просмотреть этот код.

Чтобы увидеть, vdp ли модель была успешно открыта, протестируйте результат open_system команда с использованием компонента Logical If.

  1. На левой панели Контур (Outline) выберите компонент Title Page.

  2. На панели «Библиотека» посередине, в категории Logical and Flow Control, выберите Logical If. Этот компонент проверяет, верно ли заданное условие или ложно; в этом случае, если модель открылась успешно.

  3. На панели свойств справа щелкните значок рядом с Add component to current report. Компонент Logical If появляется следующим if на панели Контур (Outline).

    Эти компоненты являются дочерними компонентами отчета и одноуровневыми узлами. Компоненты могут иметь родительские, дочерние и одноуровневые отношения.

    Этот компонент может иметь дочерние компоненты. Add Logical Then и Logical Else Components объясняют, как добавить два дочерних компонента к if компоненту.

  4. На панели свойств справа, в Test expression текстовом поле, замените текст по умолчанию true, со следующим текстом:

    strcmp(bdroot(gcs),expModel)
    strcmp функция сравнивает имя открытой модели Simulink и значение expModel, который был установлен в 'vdp'. Он проверяет, открылась ли модель vdp успешно. strcmp возвращает 1 (true) если две строки совпадают, и 0 (false) если нет.

  5. Сохраните файл настройки отчета.

    Имя if компонента на панели контура изменяется таким образом, чтобы включать добавленное выражение.

Добавьте логические компоненты и логические компоненты Else

Примечание

Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».

Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report. Отчет предназначен для vdp модель.

The if strcmp(bdroot(gcs), expModel) компонент имеет два возможных результата. Добавьте два дочерних компонента в файл настройки отчета, чтобы обработать эти случаи.

  1. На левой панели Контур (Outline) выберите компонент if.

  2. На панели «Библиотека» в середине, в категории Logical and Flow Control, дважды кликните Logical Then.

  3. На левой панели Контур (Outline) снова выберите if компонент.

  4. На панели «Библиотека» в середине, в категории Logical and Flow Control, дважды кликните Logical Else.

    Оба элемента добавляются как дочерние компоненты к компоненту if, как показано на панели Контур (Outline).

  5. Чтобы переместить компонент else под компонент then, выберите компонент else и один раз щелкните стрелу down на панели инструментов. Панель Контур (Outline) слева выглядит следующим образом.

  6. Сохраните файл настройки отчета.

Ошибка, если модель не может быть открыта

Примечание

Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».

Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report. Отчет предназначен для vdp модель.

Если на if strcmp(bdroot(gcs), expModel) отказ компонента (vdp модель не может быть открыта), else компонент выполняется. Отображение сообщения об ошибке в отчете с помощью Chapter/Subsection компонент.

  1. На левой панели Контур (Outline) выберите компонент else.

  2. На панели «Библиотека» в середине, в категории Formatting, дважды щелкните Chapter/Subsection, чтобы добавить его в качестве дочернего элемента else компонента. Этот компонент отображает сообщение об ошибке, если ошибка возникает при открытии vdp модель.

    Примечание

    При добавлении компонента к отчету он по умолчанию добавляется как дочерний компонент, если выбранный компонент не может иметь дочерних компонентов.

  3. На панели свойств справа выберите Custom из Title списка выбора, а затем введите следующий текст в текстовое поле:

    Load Model Failed.

    Сохраните файл отчета.

    Общий вид панели выглядит следующим образом.

  4. На левой панели Контур (Outline) выберите компонент Chapter.

  5. На панели Library в середине, под Formatting, дважды кликните Paragraph.

  6. На панели свойств справа введите следующий текст в текстовое поле Paragraph Text, чтобы отобразить следующее сообщение об ошибке:

    Error: Model %<expModel> could not be opened.
    Выражение %<expModel> указывает, что значение переменной рабочей области expModel вставляется в текст, как в следующем примере.
    Error: Model vdp could not be opened.

  7. На панели Контур слева выберите Раздел.

  8. Сохраните файл настройки отчета.

    Общий вид панели выглядит следующим образом.

Создание тела отчета

Примечание

Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».

Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report. Отчет предназначен для vdp модель.

Создание тела отчета включает настройку компонентов и кода для динамического выполнения компонентов отчета. В этом примере вы выполняете следующие задачи:

Каждое действие требует отдельного компонента под then компонентом. Дополнительные сведения о тогдашнем компоненте этого отчета см. в разделах Добавление логических компонентов и Логические компоненты Else.

Процесс с компонентом цикла модели

Примечание

Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».

Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report.

Отчет изменяет параметр Gain для блока Mu в vdp модель несколько раз. Для выполнения этой задачи требуется компонент Model Loop.

  1. На левой панели Контур (Outline) выберите компонент then.

  2. На панели «Библиотека» в середине прокрутите список до категории Simulink и дважды щелкните Model Loop. Он добавляется как дочерний элемент then компонент.

    Панель свойств справа выглядит следующим образом.

  3. На панели свойств справа:

    1. Установите флажок Active, чтобы обработать vdp модель.

    2. В списке Traverse model выбора выберите Selected system(s) only чтобы пройти только vdp модель.

    3. Выберите Model root из Starting system(s) списка выбора.

    4. В нижней части панели свойств слева установите флажок Create section for each object in loop, чтобы создать главу или раздел для каждой модели. При установке этого флажка имя компонента на панели Контур слева изменяется на Model Loop Chapter.

    5. Установите флажок Display the object type in the section title, чтобы включить тип объекта (в этом примере, модель) в имя заголовка.

    6. Снимите флажок Create link anchor for each object in loop.

  4. Сохраните файл настройки отчета.

Добавьте абзац для каждой модели

Примечание

Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».

Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report. Отчет предназначен для vdp модель.

В каждом Model Loop Chapter добавьте объяснение с использованием компонента Paragraph.

  1. На левой панели Контур (Outline) выберите компонент Model Loop Chapter.

  2. На панели «Библиотека» в середине прокрутите список до категории Formatting и дважды щелкните Paragraph. Компонент Paragraph добавляется как дочерний компонент компонента Model Loop Chapter.

  3. На панели « Свойствах» справа, в Paragraph Text текстовом поле, введите следующий текст:

    This report demonstrates Simulink Report Generator's ability
    to experiment with Simulink systems and auto-document
    the results. In this report, you load the model %<expModel>
    and simulate it %<length> times. This report modifies the
    %<expBlock> block's "%<expParam>" value, setting it to the 
    values %<expValue>. Each iteration of the test includes 
    a set of scope snapsnots in the report.
    Когда этот отчет генерируется, имена переменных, предшествующие процентным знакам (%) и заключены в угловые скобки (<>), заменяются значениями этих переменных в рабочем пространстве MATLAB.

  4. Сохраните файл настройки отчета.

Вставка снимка модели

Примечание

Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».

Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report. Отчет предназначен для vdp модель.

Внутри каждого компонента Model Loop Chapter включите снимок текущей модели с помощью компонента System Snapshot.

  1. На левой панели Контур (Outline) выберите компонент Model Loop Chapter.

  2. На панели «Библиотека» в середине прокрутите список до категории Simulink и дважды щелкните компонент System Snapshot.

    Этот компонент вставляет изображение текущей модели в отчет. Панель свойств справа выглядит следующим образом.

  3. На панели свойств справа:

    1. Выберите Zoom из Scaling списка выбора.

    2. Введите 70 как % значение.

  4. На левой панели Контур (Outline) выберите компонент System Snapshot.

  5. Один раз щелкните стрелу down на панели инструментов, чтобы переместить ее под Paragraph компонент.

  6. Сохраните файл настройки отчета.

Добавьте цикл для обработки модели

Примечание

Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».

Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report. Отчет предназначен для vdp модель.

Создайте цикл для обработки модели %length время использования компонента For Loop.

  1. На левой панели Контур (Outline) выберите компонент System Snapshot.

  2. На панели «Библиотека» в середине, в категории Logical and Flow Control, дважды кликните For Loop. Компонент For Loop добавляется как одноуровневый компонент компонента System Snapshot.

  3. На панели свойств справа:

    1. В End текстовом поле замените существующий текст следующим текстом:

      length(expValue)
      expValue - массив значений параметров Gain назначенных в компоненте Eval командой expValue=[-1 0 0.5 1 2];. Выражение length(expValue) вычисляет, чтобы 5 в этом примере.

    2. В Variable name текстовом поле замените существующий текст на имя for loop переменная. Введите следующий текст:

      expIteration
      Имя компонента For на панели Контур слева изменяется, отражая переменную цикла и значение завершения.

  4. Сохраните файл настройки отчета.

Параметры блоков из выражения MATLAB

Примечание

Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».

Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report. Отчет предназначен для vdp модель.

Для каждой итерации получите значение из expValue массив для использования в качестве Gain значения параметров. Для выполнения этой задачи требуется компонент Evaluate MATLAB Expression.

  1. На левой панели Контур (Outline) выберите компонент for.

  2. На панели «Библиотека» в середине, в категории MATLAB, дважды кликните Evaluate MATLAB Expression. На панели Контур (Outline) имя компонента сокращается до Eval.

  3. На панели свойств справа:

    1. Снимите флажки Insert MATLAB expression in report и Display command window output in report.

    2. Введите следующий текст в Expression to evaluate in the base workspace поле:

      %Evaluate this string in the base workspace
      
      if iscell(expValue)
         Iteration_Value=expValue{expIteration};
      else
        Iteration_Value=...
           num2str(expValue(expIteration));
      end
      The Iteration_Value переменная представляет назначенный элемент массива.

    3. Снимите флажок Evaluate this expression if there is an error.

  4. Сохраните файл настройки отчета.

Создайте раздел для каждой итерации

Примечание

Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».

Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report. Отчет предназначен для vdp модель.

Создайте отдельный раздел для каждой итерации цикла, который включает данные с помощью Chapter/Subsection компонент.

  1. На панели Контур слева, под компонентом for, выберите компонент Eval.

  2. На панели «Библиотека» в середине, в категории Formatting, дважды кликните Chapter/Subsection, чтобы добавить его в качестве родного брата. Этот компонент автоматически добавляется как Section 1, поскольку он находится внутри Chapter компонента (Model Loop Chapter компонента).

  3. На панели свойств справа:

    1. В списке Title выбора выберите Custom.

    2. В текстовом поле введите следующий заголовок:

      Processing the vdp model

    Это указывает, что заголовок раздела происходит от первого дочернего компонента. Не изменяйте другие свойства.

  4. Сохраните файл настройки отчета.

Вставьте значение блока

Примечание

Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».

Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report. Отчет предназначен для vdp модель.

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

  1. На левой панели Контур (Outline) выберите компонент Section 1.

  2. На панели «Библиотека» в середине, в категории MATLAB, дважды кликните Insert Variable.

  3. На панели свойств справа:

    1. В Variable name текстовом поле введите Iteration_Value.

    2. В списке Display as выбора выберите Paragraph.

    Панель свойств справа выглядит следующим образом.

  4. Сохраните файл настройки отчета.

Установите значение параметров

Примечание

Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».

Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report. Отчет предназначен для vdp модель.

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

  1. На левой панели Контур (Outline) выберите компонент Variable.

  2. На панели «Библиотека» в середине, в категории MATLAB, дважды кликните Evaluate MATLAB Expression. Этот компонент добавляется как одноуровневый компонент компонента Variable.

  3. На панели свойств справа снимите флажки Insert MATLAB expression in report и Display command window output in report.

  4. В Expression to evaluate in the base workspace текстовом поле замените существующий текст следующим текстом.

    set_param(expBlock,expParam,Iteration_Value);
    okSetValue=(1);
    The set_param команда устанавливает значение параметра Gain для блока Mu в vdp модель к значению Iteration_Value.

  5. Убедитесь, что Вы выбрали Evaluate this expression if there is an error. Введите в текстовое поле следующий текст:

    okSetValue=logical(0);
    Если на set_param командные работы, okSetValue установлено в 1. Если происходит ошибка, okSetValue установлено в 0. Затем следующий компонент сообщает об ошибке и прекращает обработку.

  6. Сохраните файл настройки отчета.

    Панель Контур (Outline) слева выглядит следующим образом.

Проверяйте значение с помощью логического компонента if

Примечание

Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».

Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report. Отчет предназначен для vdp модель.

Проверяйте значение okSetValue использование компонента Logical If. Если значение 0продолжение симуляции невозможно, поскольку не удалось задать параметр Gain.

  1. На панели Контур слева выберите компонент Eval для set_param команда.

  2. На панели «Библиотека» в середине, в категории Logical and Flow Control, дважды кликните Logical If. Компонент добавляется как одноуровневый компонент Eval.

  3. На панели « Свойства» справа, в Test expression текстовом поле, замените true с okSetValue.

okSetValue можно 1 (true) или 0 (false), так вставьте два компонента - Logical Then и Logical Else - для обработки этих условий:

  1. На левой панели Контур (Outline) выберите компонент if (okSetValue).

  2. Для вставки Logical Then и Logical Else в правильном порядке:

    1. На панели «Библиотека» в середине дважды щелкните компонент Logical Else.

    2. Еще раз выберите if (okSetValue) компонент.

    3. Дважды кликните компонент Logical Then. Панель Контур (Outline) слева выглядит следующим образом.

  3. На панели Контур справа выберите компонент else.

  4. На панели «Библиотека» в середине дважды кликните Paragraph.

    Если okSetValue = 0Gain значения параметров не задан, и в отчете отображается ошибка.

  5. На панели свойств справа:

    1. Выберите Custom title из Title Options списка выбора.

    2. Введите Error в текстовом поле рядом со списком выбора.

    3. Введите в Paragraph Text текстовое поле следующий текст:

      Could not set %<expBlock> "%<expParam>" to value 
      %<Iteration_Value>.

  6. Сохраните отчет.

Симулируйте модель с использованием компонента симуляции модели

Примечание

Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».

Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report. Отчет предназначен для vdp модель.

Теперь, когда модель открыта, и параметр Gain установлен, используйте Model Simulation компонент, чтобы симулировать модель vdp.

  1. На панели Контур (Outline) слева выберите компонент then под компонентом if (okSetValue).

  2. На панели «Библиотека» в категории Simulink дважды щелкните Model Simulation. На панели Контур (Outline) слева этот компонент переименован Simulate model.

  3. На панели свойств справа:

    1. Снимите флажок Use model's workspace I/O variable names.

    2. В Time текстовом поле введите dynamicT.

    3. В States текстовом поле введите dynamicX.

    4. В Output текстовом поле введите dynamicY.

    Панель свойств справа выглядит следующим образом.

  4. На левой панели Контур (Outline) выберите компонент Simulate model.

  5. На панели «Библиотека» в середине:

    1. Прокрутка вниз до категории Simulink Blocks.

    2. Дважды кликните Scope Snapshot, чтобы добавить его в качестве одноуровневого компонента Simulink Model.

    Этот компонент захватывает возможности для каждой итерации.

  6. На панели свойств справа:

    1. В списке Paper orientation выбора выберите Portrait.

    2. Для Image size введите [5 4].

    3. В списке Scaling выбора выберите Zoom.

    4. Введите 75 для % значения.

  7. Сохраните файл настройки отчета.

  8. Чтобы проверить, попадают ли данные сигнала в заданную область, добавьте другой Logical If компонент:

    1. На левой панели Контур (Outline) выберите компонент Scope Snapshot.

    2. На панели «Библиотека» в середине прокрутите список до категории Logical and Flow Control.

    3. Дважды кликните компонент Logical If.

  9. Чтобы протестировать данные сигнала, замените true в Test expression текстовом поле со следующим на панели « Свойствах» справа:

    max(dynamicX(:,2))>testMin & max(dynamicX(:,2))<testMax

  10. Сохраните отчет.

    Общий вид панели выглядит следующим образом:

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

    1. На панели Контур (Outline) слева выберите только что добавленный компонент if.

    2. На панели «Библиотека» в середине под категорией Formatting дважды щелкните мышью Paragraph чтобы она стала дочерним элементом if компонента.

    3. На панели свойств справа:

      1. Из Title Options списка выбора выберите Custom title.

      2. Тип Success в текстовом поле.

      3. Введите следующий текст в Paragraph text поле.

        The conditioned signal has a maximum value
        of %<max(dynamicX(:,2))>, which lies in the
        desired range of greater than %<testMin> and
        less than %<testMax>.

  12. Чтобы сохранить значения успеха для вставки в таблицу в конце итераций, используйте Evaluate MATLAB Expression компонент.

    1. На левой панели Контур (Outline) выберите компонент Paragraph.

    2. На панели «Библиотека» в середине, в категории MATLAB, дважды кликните Evaluate MATLAB Expression.

      Возникает непреднамеренный результат: новый компонент является дочерним элементом Paragraph компонента.

    3. Чтобы сделать новый компонент одноуровневым для Paragraph компонента, на панели Контур слева выберите Eval компонент, а затем щелкните стреле влево на панели инструментов. Компонент Eval становится одноуровневым компонентом компонента Paragraph.

  13. На панели « Свойствах» справа для компонента Eval:

    1. Снимите флажки Insert MATLAB expression in report и Display command window output in report.

    2. В Expression to evaluate in the base workspace текстовом поле введите следующее, чтобы сохранить желаемые значения сигналов в expOkValues массив:

      expOkValues=[expOkValues;...
           {Iteration_Value,max(dynamicX(:,2))}];

    3. Убедитесь, что Вы выбрали Evaluate this expression if there is an error. Вставьте в текстовое поле следующий текст:

      disp(['Error during eval: ', evalException.message])

  14. Сохраните файл настройки отчета.

Создайте раздел анализа после тестирования

Примечание

Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».

Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report. Отчет предназначен для vdp модель.

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

  1. На левой панели Контур (Outline) выберите компонент Model Loop Chapter.

  2. На панели «Библиотека» в середине, в категории Formatting, дважды кликните Chapter/Subsection.

    Новый раздел появляется в начале главы.

    Три раза щелкните стрелу down Section 1 чтобы перейти к концу Model Loop Chapter компонента.

  3. На панели свойств справа:

    1. Выберите Custom в списке выбора Title.

    2. Введите Post-Test Analysis в текстовом поле.

  4. На левой панели Контур (Outline) выберите новый компонент Section 1.

  5. На панели «Библиотека» в середине, в категории Formatting, дважды кликните Paragraph. Не изменяйте его свойства.

  6. Чтобы проверить, есть ли значения сигналов в желаемой области значений, проверьте массив expOkValues с Logical If компонентом. Если expOkValues пуст, значений сигналов в желаемой области значений нет. Сообщите о результатах этой проверки.

    1. На панели Контур слева выберите Paragraph и добавить Logical If дочерний компонент.

    2. На панели свойств справа введите выражение для вычисления в Test expression текстовое поле:

      ~isempty(expOkValues)
      Это выражение вычисляется как 0 (false), если expOkValues пуст; в противном случае выполняется оценка на 1 (true).

    3. На панели Контур (Outline) слева выберите компонент if (~isempty(expOkValue)) и добавьте компонент Logical Else в качестве дочернего компонента.

    4. Еще раз выберите if(~isempty(expOkValue)) компонент и добавьте Logical Then компонент в качестве дочернего.

      Эти два компонента являются одноуровневыми узлами на панели контура слева.

  7. Сохраните файл настройки отчета.

  8. Теперь вставьте компоненты отчета, чтобы обработать случай, где expOkValues пуст; то есть, где никакие значения сигналов не попадают в установленную область значений.

    1. На левой панели Контур (Outline) выберите компонент else.

    2. На панели «Библиотека» в середине дважды щелкните компонент Text, чтобы добавить его в качестве дочернего элемента компонента else.

    3. На панели « Свойствах» справа, в Text to include in report текстовом поле, введите следующее:

      None of the selected iteration values had 
      a maximum signal value between %<testMin> and %<testMax>.

  9. Теперь рассмотрим случай, где expOkValues не пуст, и необходимо вставить таблицу допустимых значений сигналов.

    1. На левой панели Контур (Outline) выберите компонент then.

    2. Добавьте компонент Text в качестве дочернего компонента к компоненту then.

    3. На панели « Свойствах» справа, в Text to include in report текстовом поле, введите следующий текст.

      %<size(expOkValues, 1)> values for %<expBlock> were 
      found that resulted in a maximum signal value greater
      than %<testMin> but less than %<testMax>. The following
      table shows those values and their resulting signal maximum.

    4. На панели Контур (Outline) слева выберите компонент Text под then компонентом компонента if (~isempty(expOkValues)).

  10. Чтобы создать массив для использования при форматировании таблицы, используйте компонент Evaluate MATLAB Expression.

    1. На панели «Библиотека» в середине дважды кликните Evaluate MATLAB Expression.

    2. На панели свойств справа:

      1. Снимите флажки Insert MATLAB expression in report и Display command window output in report.

      2. В следующем компоненте отчета используются строки Mu Value и Signal Maximum как значения заголовка таблицы. Добавьте строки в переднюю часть expOkValues массив ячеек путем ввода следующего текста в Expression to evaluate in the base workspace текстовое поле:

        expOkValues=[{'Mu Value','Signal Maximum'} expOkValues];

      3. Убедитесь, что установлен флажок Evaluate this expression if there is an error. Введите в текстовое поле следующий текст:

        disp(['Error during eval: ', evalExpression.message])

  11. На левой панели Контур (Outline) выберите компонент Eval.

  12. В середине панели «Библиотека» под категорией Formatting дважды щелкните компонент Array-Based Table, чтобы он стал одноуровневым компонентом компонентов Text и Eval.

  13. На панели свойств справа:

    1. В Workspace variable name текстовом поле введите expOkValues. Программное обеспечение Simulink Report Generator использует содержимое expOkValues чтобы создать таблицу.

    2. В Table title текстовом поле введите Valid Iteration Values.

  14. Сохраните файл настройки отчета.

    Панель Контур (Outline) слева выглядит следующим образом.

Сгенерируйте отчет

Чтобы сгенерировать отчет, щелкните значок Report на панели инструментов. Происходит следующее:

  1. Появится окно Список, в котором будут отображаться информационные сообщения и сообщения об ошибке при обработке отчета. Укажите уровень детализации, который необходимо отобразить в окне Список сообщений во время создания отчета. Опции варьируются от 0 (методом наименьших подробностей), чтобы 6 (наиболее подробно). Для выбора опции щелкните по списку выбора, расположенному под строкой заголовка окна Список сообщений.

    Message level 3 (Important messages) используется в оставшейся части этого примера.

  2. The vdp появляется модель. Вы можете видеть каждый раз, когда он моделируется.

  3. Появится окно scope. График возможностей изменяется каждый раз, когда изменяется значение параметров.

  4. Каждый компонент отчета подсвечивается во время его выполнения на панели Контур (Outline) слева в окне Обозреватель отчетов (Report Explorer).

После завершения генерации отчета откроется отчет.