Создайте отчет Simulink Report Generator в интерактивном режиме

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

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

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

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

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

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

Чтобы создать этот отчет, вы выполняете эти основные задачи:

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

setedit simulink-dynamic.rpt

Отчет для slrgex_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) использования fileFormat .

    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 slrgex_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-dynamic.rpt файл настройки.

setedit simulink-dynamic.rpt
Отчет для slrgex_vdp модель.

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

  1. В панели Схемы слева, выберите simulink_tutorial.rpt.

  2. В панели Библиотеки в середине, под категорией MATLAB, выбирают Evaluate MATLAB Expression.

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

    Примечание

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

    В панели Схемы слева, компонент 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, чтобы задать следующие значения:

    • Имя модели

    • Имя блока

    • Параметры блоков

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

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

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

    %The name of the model
    %which will be changed
    expModel='slrgex_vdp';
    
    %The name of the block in the model
    %which will be changed
    expBlock='slrgex_vdp/Mu';
    
    %The name of the block parameter
    %which will be changed
    expParam='Gain';
    
    %The values which 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-dynamic.rpt файл настройки.

setedit simulink-dynamic.rpt
Отчет для slrgex_vdp модель.

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

  1. В панели Схемы слева, выберите компонент Eval.

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

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

    Компонент Title Page появляется в панели Схемы.

    Примечание

    Чтобы использовать компонент 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-dynamic.rpt файл настройки.

setedit simulink-dynamic.rpt
Отчет для slrgex_vdp модель.

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

try
   open_system(expModel);
end

Совет

Выберите компонент Eval в панели Схемы слева, чтобы посмотреть на этот код снова.

Видеть если slrgex_vdp модель была успешно открыта, протестируйте результат open_system команда с помощью компонента Logical If.

  1. В панели Схемы слева, выберите компонент Title Page.

  2. В панели Библиотеки в середине, под категорией Logical and Flow Control, выбирают Logical If. Эти проверки компонента, чтобы видеть, является ли данным условием TRUE или FALSE; в этом случае, если модель, открытая успешно.

  3. В панели Свойств справа, кликните по значку рядом с Add component to current report. Компонент Logical If появляется как if в панели Схемы.

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

    Этот компонент может иметь дочерние компоненты. Еще добавьте Логический Затем и Логический, Компоненты объясняют, как добавить два дочерних компонента в компонент if.

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

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

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

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

Еще добавьте логический затем и логический компоненты

Примечание

Этот раздел основывается на предыдущих задачах.

Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt файл настройки.

setedit simulink-dynamic.rpt
Отчет для slrgex_vdp модель.

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

  1. В панели Схемы слева, выберите компонент if.

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

  3. В панели Схемы слева, выберите компонент if снова.

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

    Оба элемента добавляются как дочерние компоненты к, если компонент, как показано в Схеме разделяет на области.

  5. Еще чтобы переместиться компонент под компонентом then, еще выберите компонент и кликните по стреле down на панели инструментов однажды. Панель Схемы на левых взглядах можно следующим образом.

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

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

Примечание

Этот раздел основывается на предыдущих задачах. Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt файл настройки.

setedit simulink-dynamic.rpt
Отчет для slrgex_vdp модель.

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

  1. В панели Схемы слева, выберите компонент else.

  2. В панели Библиотеки в середине, под категорией Formatting, дважды кликают Chapter/Subsection, чтобы добавить его как дочерний элемент компонента else. Этот компонент отображает сообщение об ошибке, если ошибка происходит при открытии slrgex_vdp модель.

    Примечание

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

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

    Load Model Failed.

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

    Панель Схемы смотрит можно следующим образом.

  4. В панели Схемы слева, выберите компонент Chapter.

  5. В панели Библиотеки в середине, под Formatting, дважды кликают Paragraph.

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

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

  7. В панели Схемы слева, выберите Chapter.

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

    Панель Схемы смотрит можно следующим образом.

Создайте тело отчета

Примечание

Этот раздел основывается на предыдущих задачах. Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt файл настройки.

setedit simulink-dynamic.rpt
Отчет для slrgex_vdp модель.

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

Каждое действие требует отдельного компонента под компонентом then. Для получения информации о тогдашнем компоненте в этом отчете смотрите Еще, Добавляют Логический Затем и Логический Компоненты.

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

Примечание

Этот раздел основывается на предыдущих задачах. Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt файл настройки.

setedit simulink-dynamic.rpt
Отчет для slrgex_vdp модель.

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

  1. В панели Схемы слева, выберите компонент then.

  2. В панели Библиотеки в середине прокрутите вниз к категории Simulink, и затем дважды кликните Model Loop. Это добавляется как дочерний элемент then компонент.

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

  3. В Свойствах разделяют на области справа:

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

    2. В списке выбора Traverse model выберите Selected system(s) only пересекать только slrgex_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-dynamic.rpt файл настройки.

setedit simulink-dynamic.rpt
Отчет для slrgex_vdp модель.

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

  1. В панели Схемы слева, выберите компонент 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-dynamic.rpt файл настройки.

setedit simulink-dynamic.rpt
Отчет для slrgex_vdp модель.

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

  1. В панели Схемы слева, выберите компонент Model Loop Chapter.

  2. В панели Библиотеки в середине прокрутите вниз к категории Simulink, и затем дважды кликните компонент System Snapshot.

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

  3. В Свойствах разделяют на области справа:

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

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

  4. В панели Схемы слева, выберите компонент System Snapshot.

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

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

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

Примечание

Этот раздел основывается на предыдущих задачах. Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt файл настройки.

setedit simulink-dynamic.rpt
Отчет для slrgex_vdp модель.

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

  1. В панели Схемы слева, выберите компонент 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-dynamic.rpt файл настройки.

setedit simulink-dynamic.rpt
Отчет для slrgex_vdp модель.

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

  1. В панели Схемы слева, выберите компонент for.

  2. В панели Библиотеки в середине, под категорией MATLAB, дважды кликают Evaluate MATLAB Expression. В панели Схемы имя компонента сокращено к 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
      Iteration_Value переменная представляет обозначенный элемент массива.

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

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

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

Примечание

Этот раздел основывается на предыдущих задачах. Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt файл настройки.

setedit simulink-dynamic.rpt
Отчет для slrgex_vdp модель.

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

  1. В панели Схемы слева, под компонентом for, выбирают компонент Eval.

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

  3. В Свойствах разделяют на области справа:

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

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

      Processing the slrgex_vdp model

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

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

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

Примечание

Этот раздел основывается на предыдущих задачах. Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt файл настройки.

setedit simulink-dynamic.rpt
Отчет для slrgex_vdp модель.

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

  1. В панели Схемы слева, выберите компонент Section 1.

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

  3. В Свойствах разделяют на области справа:

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

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

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

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

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

Примечание

Этот раздел основывается на предыдущих задачах. Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt файл настройки.

setedit simulink-dynamic.rpt
Отчет для slrgex_vdp модель.

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

  1. В панели Схемы слева, выберите компонент 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);
    set_param наборы команд значение параметра Gain для блока Mu в slrgex_vdp модель к значению Iteration_Value.

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

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

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

    Панель Схемы на левых взглядах можно следующим образом.

Контрольное число Используя логическое, если компонент

Примечание

Этот раздел основывается на предыдущих задачах. Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt файл настройки.

setedit simulink-dynamic.rpt
Отчет для slrgex_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 ложь), поэтому вставьте два компонента — Logical Then и Logical Else — чтобы обработать те условия:

  1. В панели Схемы слева, выберите компонент if (okSetValue).

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

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

    2. Выберите компонент if (okSetValue) снова.

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

  3. В панели Схемы справа, выберите компонент else.

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

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

  5. В Свойствах разделяют на области справа:

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

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

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

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

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

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

Примечание

Этот раздел основывается на предыдущих задачах. Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt файл настройки.

setedit simulink-dynamic.rpt
Отчет для slrgex_vdp модель.

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

  1. В панели Схемы слева, выберите компонент then под компонентом if (okSetValue).

  2. В панели Библиотеки, под категорией Simulink, дважды кликают Model Simulation. В панели Схемы слева, этот компонент переименован в Simulate model.

  3. В Свойствах разделяют на области справа:

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

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

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

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

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

  4. В панели Схемы слева, выберите компонент 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. В панели Схемы слева, выберите компонент 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. В панели Схемы слева, выберите компонент 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. В панели Схемы слева, выберите компонент 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-dynamic.rpt файл настройки.

setedit simulink-dynamic.rpt
Отчет для slrgex_vdp модель.

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

  1. В панели Схемы слева, выберите компонент Model Loop Chapter.

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

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

    Кликните по стреле down три раза так перемещения Section 1 в конец компонента Model Loop Chapter.

  3. В Свойствах разделяют на области справа:

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

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

  4. В панели Схемы слева, выберите новый компонент Section 1.

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

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

    1. В панели Схемы слева, выберите Paragraph компонент и добавляет дочерний компонент Logical If.

    2. В панели Свойств справа, введите выражение, чтобы оценить в текстовом поле Test expression:

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

    3. В панели Схемы слева, выберите компонент if (~isempty(expOkValue)) и добавьте компонент Logical Else как дочерний элемент.

    4. Выберите компонент if(~isempty(expOkValue)) снова и добавьте компонент Logical Then как дочерний элемент.

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

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

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

    1. В панели Схемы слева, выберите компонент 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. В панели Схемы слева, выберите компонент 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. В панели Схемы слева, выберите компонент 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. В панели Схемы слева, выберите компонент Eval.

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

  13. В Свойствах разделяют на области справа:

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

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

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

    Панель Схемы на левых взглядах можно следующим образом.

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

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

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

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

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

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

  4. Каждый компонент отчета подсвечен, как это выполняется в панели Схемы слева в окне Report Explorer.

Когда генерация отчета завершена, отчет открывается.

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