В этом примере показано, как использовать Report Explorer, чтобы спроектировать файл настройки отчета и сгенерировать отчет, который делает следующее:
Открывает Simulink® модель для уравнения Ван дер Поля, названного slrgex_vdp
модель.
Устанавливает параметр Gain для блока Mu к пяти различным значениям.
Симулирует модель каждый раз, когда параметр Gain устанавливается.
Собирает результаты. Результаты, которые находятся в пределах заданной области, появляются в таблице в сгенерированном отчете.
Вы не должны знать MATLAB® или программное обеспечение Simulink, чтобы создать и запустить этот отчет в качестве примера. Однако знание этих продуктов поможет вам изучить код MATLAB и симуляцию модели, которая выполняется.
Чтобы создать этот отчет, вы выполняете эти основные задачи:
Этот пример включает отдельные участки для различных видов задачи создания и генерации отчета. Каждый раздел основывается на предыдущих разделах. Однако, если вы хотите видеть компоненты настройки отчета для более позднего раздела, не делая предыдущих разделов, в MATLAB можно просмотреть завершенный файл настройки отчета путем открытия simulink-dynamic.rpt
файл настройки.
setedit simulink-dynamic.rpt
Отчет для slrgex_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)
использования fileFormat .
Введите описание для отчета. В текстовом поле 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
Нажмите File> Save As, чтобы сохранить файл настройки отчета как simulink_tutorial.rpt
.
Панель Схемы на левых отображениях новое имя файла.
Чтобы создать содержимое для отчета, смотрите, Добавляет Содержимое Отчета с Компонентами.
Сообщите, что components задает что информацию включать в отчет. Компоненты являются автономными, модульный MATLAB возражает, что управляют процессом генерации отчета и вставляют элементы, такие как таблицы, списки и фигуры, в файл настройки отчета. Используйте компоненты, чтобы настроить внешний вид и выход отчетов.
Для получения дополнительной информации смотрите Компоненты Отчета.
Следующий рисунок показывает демонстрационную страницу из отчета, который вы создаете в этом примере, и какие компоненты вы используете, чтобы произвести этот выход.
Примечание
Не деактивируйте компоненты отчета, которые вы добавляете в файл настройки отчета.
Примечание
Этот раздел основывается на предыдущих задачах. Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt
файл настройки.
setedit simulink-dynamic.rpt
slrgex_vdp
модель.Первый компонент, который добавит, является компонентом Evaluate MATLAB Expression, который оценивает команды MATLAB в рабочей области. Код в этом компоненте присваивает начальные значения переменным, используемым в этом примере.
В панели Схемы слева, выберите simulink_tutorial.rpt
.
В панели Библиотеки в середине, под категорией MATLAB, выбирают Evaluate MATLAB Expression.
В панели Свойств справа, кликните по значку рядом с Add component to current report, чтобы вставить компонент в отчет.
Примечание
Вы не можете отредактировать информацию компонента в панели Свойств справа, пока вы не добавляете компонент в отчет.
В панели Схемы слева, компонент 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, чтобы задать следующие значения:
Имя модели
Имя блока
Параметры блоков
Значения параметров
Другие начальные значения, требуемые для обработки 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 применяет изменения, и цвет фона становится белым снова.
Установите флажок Evaluate this expression if there is an error.
В поле под флажком замените существующий текст на следующий текст:
disp(['Error during eval: ', evalException.message])
Совет
Чтобы запустить команды, которые вы задали в своем выражении MATLAB, нажмите кнопку Eval Now. Эта кнопка расположена в верхнем правом углу Report Explorer. Это - простой способ гарантировать, что ваши команды правильны и не вызовут, сообщают о проблемах генерации.
Нажмите File> Save, чтобы сохранить файл настройки отчета.
Для получения информации об условиях ошибки из-за неправильного обращения смотрите Обработку ошибок для кода MATLAB.
Примечание
Этот раздел основывается на предыдущих задачах. Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt
файл настройки.
setedit simulink-dynamic.rpt
slrgex_vdp
модель.Создайте пользовательский титульный лист для своего отчета с помощью компонента Title Page.
В панели Схемы слева, выберите компонент Eval.
В панели Библиотеки в середине, под категорией Formatting, нажимают Title Page.
Кликните по значку рядом с Add component to current report.
Компонент Title Page появляется в панели Схемы.
Примечание
Чтобы использовать компонент 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-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.
В панели Схемы слева, выберите компонент Title Page.
В панели Библиотеки в середине, под категорией Logical and Flow Control, выбирают Logical If. Эти проверки компонента, чтобы видеть, является ли данным условием TRUE или FALSE; в этом случае, если модель, открытая успешно.
В панели Свойств справа, кликните по значку рядом с Add component to current report. Компонент Logical If появляется как if в панели Схемы.
Эти компоненты являются дочерними компонентами отчета и одноуровневыми элементами друг друга. Компоненты могут иметь родительский элемент, дочерний элемент и одноуровневые отношения.
Этот компонент может иметь дочерние компоненты. Еще добавьте Логический Затем и Логический, Компоненты объясняют, как добавить два дочерних компонента в компонент if.
В панели Свойств справа, в текстовом поле Test expression, заменяют текст по умолчанию, true
, со следующим текстом:
strcmp(bdroot(gcs),expModel)
strcmp
функция сравнивает имя открытой модели Simulink и значение expModel
, который был установлен в 'slrgex_vdp'
. Это тестирует, чтобы видеть если slrgex_vdp
модель открыта успешно. strcmp
возвращает 1
TRUE
) если две строки соответствуют, и 0
ложь
) если нет. Сохраните файл настройки отчета.
Имя компонента if в панели Схемы изменяется, чтобы включать выражение, которое вы добавили.
Примечание
Этот раздел основывается на предыдущих задачах.
Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt
файл настройки.
setedit simulink-dynamic.rpt
slrgex_vdp
модель.if strcmp(bdroot(gcs), expModel)
компонент имеет два возможных результата. Добавьте два дочерних компонента в файл настройки отчета, чтобы обработать эти случаи.
В панели Схемы слева, выберите компонент if.
В панели Библиотеки в середине, под категорией Logical and Flow Control, дважды кликают Logical Then.
В панели Схемы слева, выберите компонент if снова.
В панели Библиотеки в середине, под категорией Logical and Flow Control, дважды кликают Logical Else.
Оба элемента добавляются как дочерние компоненты к, если компонент, как показано в Схеме разделяет на области.
Еще чтобы переместиться компонент под компонентом then, еще выберите компонент и кликните по стреле down на панели инструментов однажды. Панель Схемы на левых взглядах можно следующим образом.
Сохраните файл настройки отчета.
Примечание
Этот раздел основывается на предыдущих задачах. Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt
файл настройки.
setedit simulink-dynamic.rpt
slrgex_vdp
модель.Если if strcmp(bdroot(gcs), expModel)
сбои компонента (slrgex_vdp
модель не может открыться), компонент else выполняется. Отобразите сообщение об ошибке в отчете с помощью Chapter/Subsection
компонент.
В панели Схемы слева, выберите компонент else.
В панели Библиотеки в середине, под категорией Formatting, дважды кликают Chapter/Subsection, чтобы добавить его как дочерний элемент компонента else. Этот компонент отображает сообщение об ошибке, если ошибка происходит при открытии slrgex_vdp
модель.
Примечание
Когда вы добавляете компонент в отчет, это добавляется по умолчанию как дочерний компонент, если выбранный компонент не может иметь дочерних компонентов.
В панели Свойств справа, выберите Custom
из списка выбора Title, и затем вводят следующий текст в текстовом поле:
Load Model Failed.
Сохраните файл отчета.
Панель Схемы смотрит можно следующим образом.
В панели Схемы слева, выберите компонент Chapter.
В панели Библиотеки в середине, под Formatting, дважды кликают Paragraph.
В панели Свойств справа, введите следующий текст в текстовом поле Paragraph Text, чтобы отобразить следующее сообщение об ошибке:
Error: Model %<expModel> could not be opened.
%<expModel>
указывает что значение переменной expModel
рабочей области
вставляется в текст, как в следующем примере.Error: Model slrgex_vdp could not be opened.
В панели Схемы слева, выберите Chapter.
Сохраните файл настройки отчета.
Панель Схемы смотрит можно следующим образом.
Примечание
Этот раздел основывается на предыдущих задачах. Чтобы видеть завершенный файл настройки отчета, откройте 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.
В панели Схемы слева, выберите компонент then.
В панели Библиотеки в середине прокрутите вниз к категории Simulink, и затем дважды кликните Model Loop. Это добавляется как дочерний элемент then
компонент.
Свойства разделяют на области на правильных взглядах можно следующим образом.
В Свойствах разделяют на области справа:
Установите флажок Active, чтобы обработать slrgex_vdp
модель.
В списке выбора Traverse model выберите Selected system(s) only
пересекать только slrgex_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-dynamic.rpt
файл настройки.
setedit simulink-dynamic.rpt
slrgex_vdp
модель.В каждом Model Loop Chapter добавьте объяснение с помощью компонента Paragraph.
В панели Схемы слева, выберите компонент 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-dynamic.rpt
файл настройки.
setedit simulink-dynamic.rpt
slrgex_vdp
модель.В каждом компоненте Model Loop Chapter включайте снимок состояния текущей модели с помощью компонента System Snapshot.
В панели Схемы слева, выберите компонент Model Loop Chapter.
В панели Библиотеки в середине прокрутите вниз к категории Simulink, и затем дважды кликните компонент System Snapshot.
Этот компонент вставляет изображение текущей модели в ваш отчет. Свойства разделяют на области на правильных взглядах можно следующим образом.
В Свойствах разделяют на области справа:
Выберите Zoom
из списка выбора Scaling.
Введите 70
как значение %.
В панели Схемы слева, выберите компонент System Snapshot.
Кликните по стреле down на панели инструментов однажды, чтобы переместить его под компонентом Paragraph.
Сохраните файл настройки отчета.
Примечание
Этот раздел основывается на предыдущих задачах. Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt
файл настройки.
setedit simulink-dynamic.rpt
slrgex_vdp
модель.Создайте цикл, чтобы обработать модель %length
времена с помощью компонента For Loop.
В панели Схемы слева, выберите компонент 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-dynamic.rpt
файл настройки.
setedit simulink-dynamic.rpt
slrgex_vdp
модель.Для каждой итерации получите значение от expValue
массив, чтобы использовать в качестве значения параметров Gain. Эта задача требует компонента Evaluate MATLAB Expression.
В панели Схемы слева, выберите компонент for.
В панели Библиотеки в середине, под категорией MATLAB, дважды кликают Evaluate MATLAB Expression. В панели Схемы имя компонента сокращено к 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-dynamic.rpt
файл настройки.
setedit simulink-dynamic.rpt
slrgex_vdp
модель.Создайте отдельный участок для каждой итерации цикла, который включает данные с помощью Chapter/Subsection
компонент.
В панели Схемы слева, под компонентом for, выбирают компонент Eval.
В панели Библиотеки в середине, под категорией Formatting, дважды кликают Chapter/Subsection, чтобы добавить его как одноуровневый элемент. Этот компонент автоматически добавляется как Section 1, потому что это в компоненте Chapter (компонент Model Loop Chapter).
В Свойствах разделяют на области справа:
В списке выбора Title выберите Custom
.
В текстовом поле введите следующий заголовок:
Processing the slrgex_vdp model
Это указывает, что заголовок раздела прибывает из первого дочернего компонента. Не изменяйте никакие другие свойства.
Сохраните файл настройки отчета.
Примечание
Этот раздел основывается на предыдущих задачах. Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt
файл настройки.
setedit simulink-dynamic.rpt
slrgex_vdp
модель.Вставьте Gain
значение, которое используется для каждой симуляции.
В панели Схемы слева, выберите компонент Section 1.
В панели Библиотеки в середине, под категорией MATLAB, дважды кликают Insert Variable.
В Свойствах разделяют на области справа:
В текстовом поле Variable name введите Iteration_Value
.
В списке выбора Display as выберите Paragraph
.
Свойства разделяют на области на правильных взглядах можно следующим образом.
Сохраните файл настройки отчета.
Примечание
Этот раздел основывается на предыдущих задачах. Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt
файл настройки.
setedit simulink-dynamic.rpt
slrgex_vdp
модель.Для каждой итерации, набор Gain
параметр к значению, которое вы извлекли из expValue
массив.
В панели Схемы слева, выберите компонент 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 в slrgex_vdp
модель к значению Iteration_Value
.Убедитесь, что вы выбираете Evaluate this expression if there is an error. Введите следующий текст в текстовое поле:
okSetValue=logical(0);
set_param
команда работает, okSetValue
установлен в 1
. Если ошибка происходит, okSetValue
установлен в 0
. Следующий компонент затем сообщает об ошибке и отключает обработку.Сохраните файл настройки отчета.
Панель Схемы на левых взглядах можно следующим образом.
Примечание
Этот раздел основывается на предыдущих задачах. Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt
файл настройки.
setedit simulink-dynamic.rpt
slrgex_vdp
модель.Проверяйте значение okSetValue
использование компонента Logical If. Если значением является 0
, симуляция не может продолжить, потому что параметр Gain не мог быть установлен.
В панели Схемы слева, выберите компонент Eval для set_param
команда.
В панели Библиотеки в середине, под категорией Logical and Flow Control, дважды кликают Logical If. Компонент добавляется как одноуровневый элемент Eval.
В панели Свойств справа, в текстовом поле Test expression, true
замены с
okSetValue
.
okSetValue
может быть 1
TRUE
) или 0
ложь
), поэтому вставьте два компонента — Logical Then и Logical Else — чтобы обработать те условия:
В панели Схемы слева, выберите компонент if (okSetValue).
Вставить Logical Then и Logical Else в правильном порядке:
В панели Библиотеки в середине дважды кликните компонент Logical Else.
Выберите компонент if (okSetValue) снова.
Дважды кликните компонент Logical Then. Панель Схемы на левых взглядах можно следующим образом.
В панели Схемы справа, выберите компонент else.
В панели Библиотеки в середине дважды кликните Paragraph.
Если okSetValue
= 0 , значение параметров Gain не установлено, и отчет отображает ошибку.
В Свойствах разделяют на области справа:
Выберите Custom title
из списка выбора Title Options.
Введите Error
в текстовом поле рядом со списком выбора.
Введите следующий текст в текстовое поле Paragraph Text:
Could not set %<expBlock> "%<expParam>" to value %<Iteration_Value>.
Сохраните отчет.
Примечание
Этот раздел основывается на предыдущих задачах. Чтобы видеть завершенный файл настройки отчета, откройте simulink-dynamic.rpt
файл настройки.
setedit simulink-dynamic.rpt
slrgex_vdp
модель.Теперь, когда модель открыта, и параметр Gain устанавливается, используйте компонент Model Simulation, чтобы симулировать slrgex_vdp
модель.
В панели Схемы слева, выберите компонент then под компонентом if (okSetValue).
В панели Библиотеки, под категорией Simulink, дважды кликают Model Simulation. В панели Схемы слева, этот компонент переименован в Simulate model.
В Свойствах разделяют на области справа:
Снимите флажок Use model's workspace I/O variable names.
В текстовом поле Time введите dynamicT
.
В текстовом поле States введите dynamicX
.
В текстовом поле Output введите dynamicY
.
Свойства разделяют на области на правильных взглядах можно следующим образом.
В панели Схемы слева, выберите компонент Simulate model.
В Библиотеке разделяют на области в середине:
Прокрутите вниз к категории Simulink Blocks.
Дважды кликните Scope Snapshot, чтобы добавить его как одноуровневый элемент компонента Simulink Model.
Этот компонент получает осциллограф для каждой итерации.
В Свойствах разделяют на области справа:
В списке выбора Paper orientation выберите Portrait
.
Для Image size введите [5 4]
.
В списке выбора Scaling выберите Zoom
.
Введите 75
для значения %.
Сохраните файл настройки отчета.
Чтобы протестировать, чтобы видеть, находится ли данные сигнала в пределах заданной области, добавьте другой компонент Logical If:
В панели Схемы слева, выберите компонент Scope Snapshot.
В Библиотеке разделяют на области в середине, прокрутке до категории Logical and Flow Control.
Дважды кликните компонент Logical If.
Чтобы протестировать данные сигнала, замените true
в текстовом поле Test expression со следующим в Свойствах разделяют на области справа:
max(dynamicX(:,2))>testMin & max(dynamicX(:,2))<testMax
Сохраните отчет.
Панель Схемы смотрит можно следующим образом:
Если это условие верно, данные сигнала находится в пределах желаемой области значений. Добавьте компонент Paragraph, чтобы распечатать информацию о данных сигнала в отчете.
В панели Схемы слева, выберите компонент 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.
В панели Схемы слева, выберите компонент 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-dynamic.rpt
файл настройки.
setedit simulink-dynamic.rpt
slrgex_vdp
модель.Теперь, когда вы собрали все требуемые значения, создайте аналитический раздел после испытания путем составления таблицы и вставки его в отчет в конце этой главы.
В панели Схемы слева, выберите компонент Model Loop Chapter.
В панели Библиотеки в середине, под категорией Formatting, дважды кликают Chapter/Subsection.
Новый раздел появляется в начале главы.
Кликните по стреле down три раза так перемещения Section 1 в конец компонента Model Loop Chapter.
В Свойствах разделяют на области справа:
Выберите Custom
в списке выбора Title.
Введите Post-Test Analysis
в текстовом поле.
В панели Схемы слева, выберите новый компонент Section 1.
В панели Библиотеки в середине, под категорией Formatting, дважды кликают Paragraph. Не изменяйте его свойства.
Чтобы проверять, существуют ли какие-либо значения сигналов в желаемой области значений, проверяйте массив expOkValues
с компонентом Logical If. Если expOkValues
пусто, в желаемой области значений нет никаких значений сигналов. Сообщите о результате этой проверки.
В панели Схемы слева, выберите Paragraph
компонент и добавляет дочерний компонент Logical If.
В панели Свойств справа, введите выражение, чтобы оценить в текстовом поле Test expression:
~isempty(expOkValues)
0
ложь
) если expOkValues
isempty; в противном случае это оценивает к 1
TRUE
).В панели Схемы слева, выберите компонент if (~isempty(expOkValue)) и добавьте компонент Logical Else как дочерний элемент.
Выберите компонент if(~isempty(expOkValue)) снова и добавьте компонент Logical Then как дочерний элемент.
Эти два компонента являются одноуровневыми элементами в панели Схемы слева.
Сохраните файл настройки отчета.
Теперь вставьте компоненты отчета, чтобы обработать случай где expOkValues
isempty; то есть, где никакие значения сигналов не находятся в пределах обозначенной области значений.
В панели Схемы слева, выберите компонент else.
В панели Библиотеки в середине дважды кликните компонент Text, чтобы добавить его как дочерний элемент компонента else.
В панели Свойств справа, в текстовом поле Text to include in report, вводят следующее:
None of the selected iteration values had a maximum signal value between %<testMin> and %<testMax>.
Теперь обработайте случай где expOkValues
не пусто, и вы хотите вставить таблицу приемлемых значений сигналов.
В панели Схемы слева, выберите компонент 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.
В панели Схемы слева, выберите компонент 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])
В панели Схемы слева, выберите компонент Eval.
В панели Библиотеки в середине, под категорией Formatting, дважды кликают компонент Array-Based Table, таким образом, это становится одноуровневым элементом компонентов Eval и Text.
В Свойствах разделяют на области справа:
В текстовом поле Workspace variable name введите expOkValues
. Программное обеспечение Simulink Report Generator использует содержимое expOkValues
создать таблицу.
В текстовом поле Table title введите Valid Iteration Values
.
Сохраните файл настройки отчета.
Панель Схемы на левых взглядах можно следующим образом.
Чтобы сгенерировать отчет, кликните по значку Report на панели инструментов. Следующее происходит:
Окно List сообщения появляется, отображая информационные и сообщения об ошибке, когда отчет обрабатывается. Задайте уровень детализации, который вы хотели бы, чтобы окно List сообщения отобразило, в то время как отчет генерируется. Опции лежат в диапазоне от 0
(наименьшее количество детали) к 6
(большая часть детали). Кликните по списку выбора, расположенному под заголовком панель окна List сообщения, чтобы выбрать опцию.
Message level 3 (Important messages)
используется для оставшейся части этого примера.
slrgex_vdp
модель появляется. Вы видите каждый раз, когда это симулировано.
Окно scope появляется. График осциллографа изменяет каждый раз изменения значения параметров.
Каждый компонент отчета подсвечен, как это выполняется в панели Схемы слева в окне Report Explorer.
Когда генерация отчета завершена, отчет открывается.