В этом примере показано, как использовать Report Explorer для разработки файла настройки отчета и создания отчета, который делает следующее:
Открывает Simulink® модель для уравнения Ван дер Поля, называемая vdp
модель.
Устанавливает параметр Gain для блока Mu в пять различных значений.
Моделирует модель каждый раз, когда установлен параметр Gain.
Собирает результаты. Результаты, входящие в заданную область, появляются в таблице сгенерированного отчета.
Вам не нужно знать MATLAB® или ПО Simulink, чтобы создать и запустить этот пример отчета. Однако знание этих продуктов поможет вам понять код MATLAB и симуляцию модели, которая выполняется.
Для создания этого отчета необходимо выполнить следующие основные задачи:
Этот пример включает отдельные разделы для различных видов задач создания и генерации отчетов. Каждый раздел основан на предыдущих разделах. Однако, если необходимо просмотреть компоненты настройки отчета для более позднего раздела без выполнения предыдущих разделов, в MATLAB можно просмотреть завершенный файл настройки отчета, запустив динамический отчет Simulink. Отчет предназначен для vdp
модель.
Чтобы создать и сконфигурировать файл настройки отчета:
Запустите Simulink.
Откройте Report Explorer на панели инструментов Simulink. На вкладке Apps, в разделе Simulation Graphics and Reporting, нажмите Report Generator.
Выберите File > New, чтобы создать файл настройки отчета.
Сохраните файл настройки отчета.
На панели « Свойствах»:
Укажите, где сохранить файл настройки отчета. Чтобы сохранить его в текущей рабочей папке, выберите Present Working Directory
из Directory списка выбора.
Укажите формат отчета. В списке File format выбора выберите Acrobat (PDF)
.
Совет
Если вы хотите включить гиперссылки в снимки системы, используйте Direct PDF (from template)
формат файла.
Введите описание для отчета. В 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
Щелкните File > Save As, чтобы сохранить файл настройки отчета как simulink_tutorial.rpt
.
На панели Контур слева отображается новое имя файла.
Для создания содержимого отчета см. раздел Добавление содержимого отчета с компонентами.
Сообщите components укажите, какую информацию включить в отчет. Компоненты являются автономными модульными объектами MATLAB, которые управляют процессом генерации отчетов и вставляют элементы, такие как таблицы, списки и рисунки, в файл настройки отчетов. Используйте компоненты для настройки внешнего вида и выхода отчетов.
Для получения дополнительной информации см. раздел «Отчеты по компонентам».
На следующем рисунке показан пример страницы из отчета, созданного в этом примере, и компонентов, используемых для создания этого выхода.
Примечание
Не деактивируйте компоненты отчета, добавленные в файл настройки отчета.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».
Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report
. Отчет предназначен для vdp
модель.
Первым добавляемым компонентом является компонент Evaluate MATLAB Expression, который оценивает команды MATLAB в рабочей области. Код в этом компоненте присваивает начальные значения переменным, используемым в этом примере.
На панели Контур слева выберите simulink_tutorial.rpt
.
На панели «Библиотека» посередине, в категории MATLAB, выберите Evaluate MATLAB Expression.
На панели свойств справа щелкните значок рядом с Add component to current report, чтобы вставить компонент в отчет.
Примечание
Вы не можете редактировать информацию о компоненте на панели свойств справа, пока не добавите компонент в отчет.
На левой панели Контур (Outline) Evaluate MATLAB Expression компонент появляется под simulink_tutorial
файл настройки отчета. Программа Simulink Report Generator™ сокращает имя компонента, чтобы Eval.
Значок в верхнем левом углу значка Eval компонента указывает, что этот компонент не может иметь дочерних компонентов. По умолчанию все компоненты, добавляемые при выборе Eval компонента, являются одноуровневыми компонентами этого компонента.
Опции для Evaluate MATLAB Expression компонента отображаются на панели свойств справа.
Снимите флажки Insert MATLAB expression in report и Display command window output in report, чтобы не включать в этот отчет код MATLAB или выход.
Добавьте код 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 применяет изменения, и цвет фона снова становится белым.
Установите флажок Evaluate this expression if there is an error.
В поле под флажком замените существующий текст следующим текстом:
disp(['Error during eval: ', evalException.message])
Совет
Чтобы запустить команды, указанные в выражении MATLAB, нажмите кнопку Eval Now. Эта кнопка находится в правом верхнем углу Report Explorer. Это простой способ убедиться, что ваши команды верны и не вызовут проблем генерации отчетов.
Щелкните File > Save, чтобы сохранить файл настройки отчета.
Для получения информации об обработке условий ошибки смотрите Обработку ошибок для кода MATLAB.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».
Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report
. Отчет предназначен для vdp
модель.
Создайте пользовательскую страницу заголовка для отчета с помощью компонента Title Page.
На левой панели Контур (Outline) выберите компонент Eval.
На панели «Библиотека» в середине, в категории Formatting, нажмите Title Page.
Щелкните значок рядом с Add component to current report.
Компонент Title Page появится на панели Контур (Outline).
Примечание
Для использования компонента Title Page необходимо иметь в отчете компонент Chapter. Компонент Chapter еще не добавлен, поэтому на панели « Свойствах» отображается сообщение о том, что для корректного отображения компонента Title Page требуются разделы. Поскольку позже в этом примере вы добавляете Chapter компоненты к этому отчету, можно игнорировать это сообщение.
На панели свойств справа:
В Title текстовом поле введите:
Dynamic Simulink Report
В Subtitle текстовом поле введите:
Using Simulink Report Generator to Document Changes
В Options разделе выберите Custom Author
из списка выбора.
Введите имя в текстовое поле.
Установите флажок Include report creation date.
Выберите формат даты и времени по умолчанию из списка выбора. Панель свойств справа выглядит следующим образом.
Сохраните файл настройки отчета.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета 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.
На левой панели Контур (Outline) выберите компонент Title Page.
На панели «Библиотека» посередине, в категории Logical and Flow Control, выберите Logical If. Этот компонент проверяет, верно ли заданное условие или ложно; в этом случае, если модель открылась успешно.
На панели свойств справа щелкните значок рядом с Add component to current report. Компонент Logical If появляется следующим if на панели Контур (Outline).
Эти компоненты являются дочерними компонентами отчета и одноуровневыми узлами. Компоненты могут иметь родительские, дочерние и одноуровневые отношения.
Этот компонент может иметь дочерние компоненты. Add Logical Then и Logical Else Components объясняют, как добавить два дочерних компонента к if компоненту.
На панели свойств справа, в Test expression текстовом поле, замените текст по умолчанию true
, со следующим текстом:
strcmp(bdroot(gcs),expModel)
strcmp
функция сравнивает имя открытой модели Simulink и значение expModel
, который был установлен в 'vdp'
. Он проверяет, открылась ли модель vdp успешно. strcmp
возвращает 1
(true
) если две строки совпадают, и 0
(false
) если нет. Сохраните файл настройки отчета.
Имя if компонента на панели контура изменяется таким образом, чтобы включать добавленное выражение.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».
Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report
. Отчет предназначен для vdp
модель.
The if strcmp(bdroot(gcs), expModel)
компонент имеет два возможных результата. Добавьте два дочерних компонента в файл настройки отчета, чтобы обработать эти случаи.
На левой панели Контур (Outline) выберите компонент if.
На панели «Библиотека» в середине, в категории Logical and Flow Control, дважды кликните Logical Then.
На левой панели Контур (Outline) снова выберите if компонент.
На панели «Библиотека» в середине, в категории Logical and Flow Control, дважды кликните Logical Else.
Оба элемента добавляются как дочерние компоненты к компоненту if, как показано на панели Контур (Outline).
Чтобы переместить компонент else под компонент then, выберите компонент else и один раз щелкните стрелу down на панели инструментов. Панель Контур (Outline) слева выглядит следующим образом.
Сохраните файл настройки отчета.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».
Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report
. Отчет предназначен для vdp
модель.
Если на if strcmp(bdroot(gcs), expModel)
отказ компонента (vdp
модель не может быть открыта), else компонент выполняется. Отображение сообщения об ошибке в отчете с помощью Chapter/Subsection
компонент.
На левой панели Контур (Outline) выберите компонент else.
На панели «Библиотека» в середине, в категории Formatting, дважды щелкните Chapter/Subsection, чтобы добавить его в качестве дочернего элемента else компонента. Этот компонент отображает сообщение об ошибке, если ошибка возникает при открытии vdp
модель.
Примечание
При добавлении компонента к отчету он по умолчанию добавляется как дочерний компонент, если выбранный компонент не может иметь дочерних компонентов.
На панели свойств справа выберите Custom
из Title списка выбора, а затем введите следующий текст в текстовое поле:
Load Model Failed.
Сохраните файл отчета.
Общий вид панели выглядит следующим образом.
На левой панели Контур (Outline) выберите компонент Chapter.
На панели Library в середине, под Formatting, дважды кликните Paragraph.
На панели свойств справа введите следующий текст в текстовое поле Paragraph Text, чтобы отобразить следующее сообщение об ошибке:
Error: Model %<expModel> could not be opened.
%<expModel>
указывает, что значение переменной рабочей области expModel
вставляется в текст, как в следующем примере.Error: Model vdp could not be opened.
На панели Контур слева выберите Раздел.
Сохраните файл настройки отчета.
Общий вид панели выглядит следующим образом.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».
Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report
. Отчет предназначен для vdp
модель.
Создание тела отчета включает настройку компонентов и кода для динамического выполнения компонентов отчета. В этом примере вы выполняете следующие задачи:
Каждое действие требует отдельного компонента под then компонентом. Дополнительные сведения о тогдашнем компоненте этого отчета см. в разделах Добавление логических компонентов и Логические компоненты Else.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».
Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report
.
Отчет изменяет параметр Gain для блока Mu в vdp
модель несколько раз. Для выполнения этой задачи требуется компонент Model Loop.
На левой панели Контур (Outline) выберите компонент then.
На панели «Библиотека» в середине прокрутите список до категории Simulink и дважды щелкните Model Loop. Он добавляется как дочерний элемент then
компонент.
Панель свойств справа выглядит следующим образом.
На панели свойств справа:
Установите флажок Active, чтобы обработать vdp
модель.
В списке Traverse model выбора выберите Selected system(s) only
чтобы пройти только vdp
модель.
Выберите Model root
из Starting system(s) списка выбора.
В нижней части панели свойств слева установите флажок Create section for each object in loop, чтобы создать главу или раздел для каждой модели. При установке этого флажка имя компонента на панели Контур слева изменяется на Model Loop Chapter.
Установите флажок Display the object type in the section title, чтобы включить тип объекта (в этом примере, модель) в имя заголовка.
Снимите флажок Create link anchor for each object in loop.
Сохраните файл настройки отчета.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».
Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report
. Отчет предназначен для vdp
модель.
В каждом Model Loop Chapter добавьте объяснение с использованием компонента Paragraph.
На левой панели Контур (Outline) выберите компонент Model Loop Chapter.
На панели «Библиотека» в середине прокрутите список до категории Formatting и дважды щелкните Paragraph. Компонент Paragraph добавляется как дочерний компонент компонента Model Loop Chapter.
На панели « Свойствах» справа, в 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.Сохраните файл настройки отчета.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».
Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report
. Отчет предназначен для vdp
модель.
Внутри каждого компонента Model Loop Chapter включите снимок текущей модели с помощью компонента System Snapshot.
На левой панели Контур (Outline) выберите компонент Model Loop Chapter.
На панели «Библиотека» в середине прокрутите список до категории Simulink и дважды щелкните компонент System Snapshot.
Этот компонент вставляет изображение текущей модели в отчет. Панель свойств справа выглядит следующим образом.
На панели свойств справа:
Выберите Zoom
из Scaling списка выбора.
Введите 70
как % значение.
На левой панели Контур (Outline) выберите компонент System Snapshot.
Один раз щелкните стрелу down на панели инструментов, чтобы переместить ее под Paragraph компонент.
Сохраните файл настройки отчета.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».
Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report
. Отчет предназначен для vdp
модель.
Создайте цикл для обработки модели %length
время использования компонента For Loop.
На левой панели Контур (Outline) выберите компонент System Snapshot.
На панели «Библиотека» в середине, в категории Logical and Flow Control, дважды кликните For Loop. Компонент For Loop добавляется как одноуровневый компонент компонента System Snapshot.
На панели свойств справа:
В End текстовом поле замените существующий текст следующим текстом:
length(expValue)
expValue
- массив значений параметров Gain назначенных в компоненте Eval командой expValue=[-1 0 0.5 1 2];
. Выражение length(expValue)
вычисляет, чтобы 5
в этом примере.В Variable name текстовом поле замените существующий текст на имя for loop
переменная. Введите следующий текст:
expIteration
Сохраните файл настройки отчета.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».
Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report
. Отчет предназначен для vdp
модель.
Для каждой итерации получите значение из expValue
массив для использования в качестве Gain значения параметров. Для выполнения этой задачи требуется компонент Evaluate MATLAB Expression.
На левой панели Контур (Outline) выберите компонент for.
На панели «Библиотека» в середине, в категории MATLAB, дважды кликните Evaluate MATLAB Expression. На панели Контур (Outline) имя компонента сокращается до Eval.
На панели свойств справа:
Снимите флажки Insert MATLAB expression in report и Display command window output in report.
Введите следующий текст в 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
переменная представляет назначенный элемент массива.Снимите флажок Evaluate this expression if there is an error.
Сохраните файл настройки отчета.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».
Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report
. Отчет предназначен для vdp
модель.
Создайте отдельный раздел для каждой итерации цикла, который включает данные с помощью Chapter/Subsection
компонент.
На панели Контур слева, под компонентом for, выберите компонент Eval.
На панели «Библиотека» в середине, в категории Formatting, дважды кликните Chapter/Subsection, чтобы добавить его в качестве родного брата. Этот компонент автоматически добавляется как Section 1, поскольку он находится внутри Chapter компонента (Model Loop Chapter компонента).
На панели свойств справа:
В списке Title выбора выберите Custom
.
В текстовом поле введите следующий заголовок:
Processing the vdp model
Это указывает, что заголовок раздела происходит от первого дочернего компонента. Не изменяйте другие свойства.
Сохраните файл настройки отчета.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».
Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report
. Отчет предназначен для vdp
модель.
Вставьте Gain
значение, которое используется для каждой симуляции.
На левой панели Контур (Outline) выберите компонент Section 1.
На панели «Библиотека» в середине, в категории MATLAB, дважды кликните Insert Variable.
На панели свойств справа:
В Variable name текстовом поле введите Iteration_Value
.
В списке Display as выбора выберите Paragraph
.
Панель свойств справа выглядит следующим образом.
Сохраните файл настройки отчета.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».
Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report
. Отчет предназначен для vdp
модель.
Для каждой итерации установите Gain
параметр к значению, которое вы извлекли из expValue
массив.
На левой панели Контур (Outline) выберите компонент Variable.
На панели «Библиотека» в середине, в категории MATLAB, дважды кликните Evaluate MATLAB Expression. Этот компонент добавляется как одноуровневый компонент компонента Variable.
На панели свойств справа снимите флажки Insert MATLAB expression in report и Display command window output in report.
В Expression to evaluate in the base workspace текстовом поле замените существующий текст следующим текстом.
set_param(expBlock,expParam,Iteration_Value); okSetValue=(1);
set_param
команда устанавливает значение параметра Gain для блока Mu в vdp
модель к значению Iteration_Value
.Убедитесь, что Вы выбрали Evaluate this expression if there is an error. Введите в текстовое поле следующий текст:
okSetValue=logical(0);
set_param
командные работы, okSetValue
установлено в 1
. Если происходит ошибка, okSetValue
установлено в 0
. Затем следующий компонент сообщает об ошибке и прекращает обработку.Сохраните файл настройки отчета.
Панель Контур (Outline) слева выглядит следующим образом.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».
Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report
. Отчет предназначен для vdp
модель.
Проверяйте значение okSetValue
использование компонента Logical If. Если значение 0
продолжение симуляции невозможно, поскольку не удалось задать параметр Gain.
На панели Контур слева выберите компонент Eval для set_param
команда.
На панели «Библиотека» в середине, в категории Logical and Flow Control, дважды кликните Logical If. Компонент добавляется как одноуровневый компонент Eval.
На панели « Свойства» справа, в Test expression текстовом поле, замените true
с okSetValue
.
okSetValue
можно 1
(true
) или 0
(false
), так вставьте два компонента - Logical Then и Logical Else - для обработки этих условий:
На левой панели Контур (Outline) выберите компонент if (okSetValue).
Для вставки Logical Then и Logical Else в правильном порядке:
На панели «Библиотека» в середине дважды щелкните компонент Logical Else.
Еще раз выберите if (okSetValue) компонент.
Дважды кликните компонент Logical Then. Панель Контур (Outline) слева выглядит следующим образом.
На панели Контур справа выберите компонент else.
На панели «Библиотека» в середине дважды кликните Paragraph.
Если okSetValue
= 0
Gain значения параметров не задан, и в отчете отображается ошибка.
На панели свойств справа:
Выберите Custom title
из Title Options списка выбора.
Введите Error
в текстовом поле рядом со списком выбора.
Введите в Paragraph Text текстовое поле следующий текст:
Could not set %<expBlock> "%<expParam>" to value %<Iteration_Value>.
Сохраните отчет.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».
Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report
. Отчет предназначен для vdp
модель.
Теперь, когда модель открыта, и параметр Gain установлен, используйте Model Simulation компонент, чтобы симулировать модель vdp.
На панели Контур (Outline) слева выберите компонент then под компонентом if (okSetValue).
На панели «Библиотека» в категории Simulink дважды щелкните Model Simulation. На панели Контур (Outline) слева этот компонент переименован Simulate model.
На панели свойств справа:
Снимите флажок Use model's workspace I/O variable names.
В Time текстовом поле введите dynamicT
.
В States текстовом поле введите dynamicX
.
В Output текстовом поле введите dynamicY
.
Панель свойств справа выглядит следующим образом.
На левой панели Контур (Outline) выберите компонент Simulate model.
На панели «Библиотека» в середине:
Прокрутка вниз до категории Simulink Blocks.
Дважды кликните Scope Snapshot, чтобы добавить его в качестве одноуровневого компонента Simulink Model.
Этот компонент захватывает возможности для каждой итерации.
На панели свойств справа:
В списке Paper orientation выбора выберите Portrait
.
Для Image size введите [5 4]
.
В списке Scaling выбора выберите Zoom
.
Введите 75
для % значения.
Сохраните файл настройки отчета.
Чтобы проверить, попадают ли данные сигнала в заданную область, добавьте другой Logical If компонент:
На левой панели Контур (Outline) выберите компонент Scope Snapshot.
На панели «Библиотека» в середине прокрутите список до категории Logical and Flow Control.
Дважды кликните компонент Logical If.
Чтобы протестировать данные сигнала, замените true
в Test expression текстовом поле со следующим на панели « Свойствах» справа:
max(dynamicX(:,2))>testMin & max(dynamicX(:,2))<testMax
Сохраните отчет.
Общий вид панели выглядит следующим образом:
Если это условие верно, данные о сигнале попадают в желаемую область значений. Добавьте компонент Paragraph для печати информации о сигнальных данных в отчете.
На панели Контур (Outline) слева выберите только что добавленный компонент if.
На панели «Библиотека» в середине под категорией Formatting дважды щелкните мышью Paragraph чтобы она стала дочерним элементом if компонента.
На панели свойств справа:
Из Title Options списка выбора выберите Custom title
.
Тип Success
в текстовом поле.
Введите следующий текст в 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>.
Чтобы сохранить значения успеха для вставки в таблицу в конце итераций, используйте Evaluate MATLAB Expression компонент.
На левой панели Контур (Outline) выберите компонент Paragraph.
На панели «Библиотека» в середине, в категории MATLAB, дважды кликните Evaluate MATLAB Expression.
Возникает непреднамеренный результат: новый компонент является дочерним элементом Paragraph компонента.
Чтобы сделать новый компонент одноуровневым для Paragraph компонента, на панели Контур слева выберите Eval компонент, а затем щелкните стреле влево на панели инструментов. Компонент Eval становится одноуровневым компонентом компонента Paragraph.
На панели « Свойствах» справа для компонента Eval:
Снимите флажки Insert MATLAB expression in report и Display command window output in report.
В Expression to evaluate in the base workspace текстовом поле введите следующее, чтобы сохранить желаемые значения сигналов в expOkValues
массив:
expOkValues=[expOkValues;... {Iteration_Value,max(dynamicX(:,2))}];
Убедитесь, что Вы выбрали Evaluate this expression if there is an error. Вставьте в текстовое поле следующий текст:
disp(['Error during eval: ', evalException.message])
Сохраните файл настройки отчета.
Примечание
Этот раздел основан на предыдущих задачах, описанных в пошаговом примере, результирующем в разделе «Интерактивное создание отчета Simulink Report Generator».
Чтобы увидеть завершенный файл настройки отчета, откройте Simulink Dynamic Report
. Отчет предназначен для vdp
модель.
Теперь, когда вы собрали все желаемые значения, создайте раздел анализа после тестирования, создав таблицу и вставив ее в отчет в конце этой главы.
На левой панели Контур (Outline) выберите компонент Model Loop Chapter.
На панели «Библиотека» в середине, в категории Formatting, дважды кликните Chapter/Subsection.
Новый раздел появляется в начале главы.
Три раза щелкните стрелу down Section 1 чтобы перейти к концу Model Loop Chapter компонента.
На панели свойств справа:
Выберите Custom
в списке выбора Title.
Введите Post-Test Analysis
в текстовом поле.
На левой панели Контур (Outline) выберите новый компонент Section 1.
На панели «Библиотека» в середине, в категории Formatting, дважды кликните Paragraph. Не изменяйте его свойства.
Чтобы проверить, есть ли значения сигналов в желаемой области значений, проверьте массив expOkValues
с Logical If компонентом. Если expOkValues
пуст, значений сигналов в желаемой области значений нет. Сообщите о результатах этой проверки.
На панели Контур слева выберите Paragraph
и добавить Logical If дочерний компонент.
На панели свойств справа введите выражение для вычисления в Test expression текстовое поле:
~isempty(expOkValues)
0
(false
), если expOkValues
пуст; в противном случае выполняется оценка на 1
(true
).На панели Контур (Outline) слева выберите компонент if (~isempty(expOkValue)) и добавьте компонент Logical Else в качестве дочернего компонента.
Еще раз выберите if(~isempty(expOkValue)) компонент и добавьте Logical Then компонент в качестве дочернего.
Эти два компонента являются одноуровневыми узлами на панели контура слева.
Сохраните файл настройки отчета.
Теперь вставьте компоненты отчета, чтобы обработать случай, где expOkValues
пуст; то есть, где никакие значения сигналов не попадают в установленную область значений.
На левой панели Контур (Outline) выберите компонент else.
На панели «Библиотека» в середине дважды щелкните компонент Text, чтобы добавить его в качестве дочернего элемента компонента else.
На панели « Свойствах» справа, в Text to include in report текстовом поле, введите следующее:
None of the selected iteration values had a maximum signal value between %<testMin> and %<testMax>.
Теперь рассмотрим случай, где expOkValues
не пуст, и необходимо вставить таблицу допустимых значений сигналов.
На левой панели Контур (Outline) выберите компонент then.
Добавьте компонент Text в качестве дочернего компонента к компоненту then.
На панели « Свойствах» справа, в 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.
На панели Контур (Outline) слева выберите компонент Text под then компонентом компонента if (~isempty(expOkValues)).
Чтобы создать массив для использования при форматировании таблицы, используйте компонент Evaluate MATLAB Expression.
На панели «Библиотека» в середине дважды кликните Evaluate MATLAB Expression.
На панели свойств справа:
Снимите флажки Insert MATLAB expression in report и Display command window output in report.
В следующем компоненте отчета используются строки Mu Value
и Signal Maximum
как значения заголовка таблицы. Добавьте строки в переднюю часть expOkValues
массив ячеек путем ввода следующего текста в Expression to evaluate in the base workspace текстовое поле:
expOkValues=[{'Mu Value','Signal Maximum'} expOkValues];
Убедитесь, что установлен флажок Evaluate this expression if there is an error. Введите в текстовое поле следующий текст:
disp(['Error during eval: ', evalExpression.message])
На левой панели Контур (Outline) выберите компонент Eval.
В середине панели «Библиотека» под категорией Formatting дважды щелкните компонент Array-Based Table, чтобы он стал одноуровневым компонентом компонентов Text и Eval.
На панели свойств справа:
В Workspace variable name текстовом поле введите expOkValues
. Программное обеспечение Simulink Report Generator использует содержимое expOkValues
чтобы создать таблицу.
В Table title текстовом поле введите Valid Iteration Values
.
Сохраните файл настройки отчета.
Панель Контур (Outline) слева выглядит следующим образом.
Чтобы сгенерировать отчет, щелкните значок Report на панели инструментов. Происходит следующее:
Появится окно Список, в котором будут отображаться информационные сообщения и сообщения об ошибке при обработке отчета. Укажите уровень детализации, который необходимо отобразить в окне Список сообщений во время создания отчета. Опции варьируются от 0
(методом наименьших подробностей), чтобы 6
(наиболее подробно). Для выбора опции щелкните по списку выбора, расположенному под строкой заголовка окна Список сообщений.
Message level 3 (Important messages)
используется в оставшейся части этого примера.
The vdp
появляется модель. Вы можете видеть каждый раз, когда он моделируется.
Появится окно scope. График возможностей изменяется каждый раз, когда изменяется значение параметров.
Каждый компонент отчета подсвечивается во время его выполнения на панели Контур (Outline) слева в окне Обозреватель отчетов (Report Explorer).
После завершения генерации отчета откроется отчет.