Simulink.sdi. Класс CustomSnapshot

Пакет: Simulink.sdi

Задайте настройки для снимка состояния, не открываясь или влияя на Инспектора Данных моделирования

Описание

Используйте объект Simulink.sdi.CustomSnapshot задать настройки для снимка состояния, который вы хотите создать, не открывая Инспектора Данных моделирования или влияя на открытое заседание. Создание снимка состояния с помощью объекта Simulink.sdi.CustomSnapshot является наилучшим вариантом для полностью рабочих процессов в виде сценария. Можно задать размерности снимка состояния в пикселях, размещении подграфика и пределах для x-и y-осей. Можно использовать clearSignals и методы plotOnSubplot, чтобы построить сигналы, которые вы хотите включать в снимок состояния. Чтобы получить снимок состояния, можно передать объект Simulink.sdi.CustomSnapshot, когда значение для пары "имя-значение" settings для Simulink.sdi.snapshot функционирует или использует метод snapshot.

Конструкция

snap = Simulink.sdi.CustomSnapshot создает объект Simulink.sdi.CustomSnapshot.

Свойства

развернуть все

Ширина изображения, в пикселях.

Пример: 750

Высота изображения, в пикселях.

Пример: 500

Количество строк подграфика, заданных как скаляр между 1 и 8, включительно. Используйте Rows и Columns, чтобы установить ваше желаемое размещение подграфика.

Пример 2

Количество столбцов подграфика, заданных как скаляр между 1 и 8, включительно. Используйте Rows и Columns, чтобы установить ваше желаемое размещение подграфика.

Пример 3

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

Пример: [0 20]

Массив ячеек 1 2 матриц, задающих ось Y, ограничивает для всех подграфиков в пользовательском снимке состояния. По умолчанию YRange является [-3 3] для всех подграфиков.

Пример: {[-10 10],[0 100]}

Методы

clearSignals Четкие сигналы построены на подграфиках объекта Simulink.sdi.CustomSnapshot
plotOnSubPlot Постройте сигналы на подграфиках объекта Simulink.sdi.CustomSnapshot
снимок состояния Создайте пользовательский снимок состояния

Копировать семантику

Указатель. Чтобы изучить, как классы Handle влияют на операции копии, смотрите Копирование Объектов (MATLAB).

Примеры

свернуть все

Этот пример показывает, как скопировать настройки представления от одного выполнения до другого и как создать фигуры, использующие объект Simulink.sdi.CustomSnapshot.

Моделируйте свою модель и получите объект выполнения

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

load_system('vdp')
set_param('vdp','SaveFormat','Dataset','SaveOutput','on')
set_param('vdp/Mu','Gain','1');
sim('vdp')
ans = 
  Simulink.SimulationOutput:

                   yout: [1x1 Simulink.SimulationData.Dataset] 

     SimulationMetadata: [1x1 Simulink.SimulationMetadata] 
           ErrorMessage: [0x0 char] 

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

runIndex = Simulink.sdi.getRunCount;
runID = Simulink.sdi.getRunIDByIndex(runIndex);
vdpRun = Simulink.sdi.getRun(runID);

Измените настройки представления сигнала

Используйте объект Simulink.sdi.Run получить доступ к сигналам в выполнении. Затем измените настройки представления сигнала. Этот пример задает цвет линии и стиль для каждого сигнала. Настройки представления для выполнения включают настройки представления для каждого сигнала и просматривают настройки, заданные для области построения.

sig1 = vdpRun.getSignalByIndex(1);
sig2 = vdpRun.getSignalByIndex(2);

sig1.LineColor = [0 0 1];
sig1.LineDashed = '-.';

sig2.LineColor = [1 0 0];
sig2.LineDashed = ':';

Получите снимок состояния от инспектора данных моделирования

Создайте объект Simulink.sdi.CustomSnapshot и используйте функцию Simulink.sdi.snapshot, чтобы программно получить снимок состояния содержимого Инспектора Данных моделирования.

snap = Simulink.sdi.CustomSnapshot;

Можно использовать свойства объекта Simulink.sdi.CustomSnapshot сконфигурировать настройки графика, как размещение подграфика и пределы по осям, и построить сигналы. Когда вы используете объект Simulink.sdi.CustomSnapshot создать вашу фигуру, эти настройки графика не влияют на Инспектора Данных моделирования.

snap.Rows = 2;
snap.YRange = {[-2.25 2.25],[-3 3]};
snap.plotOnSubPlot(1,1,sig1,true)
snap.plotOnSubPlot(2,1,sig2,true)

Используйте Simulink.sdi.snapshot, чтобы сгенерировать фигуру, которую вы задали в свойствах объекта Simulink.sdi.CustomSnapshot.

fig = Simulink.sdi.snapshot("from","custom","to","figure","settings",snap);

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

Моделируйте модель снова с различным значением Mu. Используйте Инспектора Данных моделирования программируемый интерфейс, чтобы получить доступ к данным моделирования.

set_param('vdp/Mu','Gain','5')
sim('vdp')
ans = 
  Simulink.SimulationOutput:

                   yout: [1x1 Simulink.SimulationData.Dataset] 

     SimulationMetadata: [1x1 Simulink.SimulationMetadata] 
           ErrorMessage: [0x0 char] 

runIndex2 = Simulink.sdi.getRunCount;
runID2 = Simulink.sdi.getRunIDByIndex(runIndex2);
run2 = Simulink.sdi.getRun(runID2);

Чтобы создать график новых выходных данных, который похож на тот, который вы создали на предыдущем шаге, можно скопировать настройки представления в выполнение в одной строке кода с помощью Simulink.sdi.copyRunViewSettings. Функция Simulink.sdi.copyRunViewSettings автоматически не обновляет настройки графика в объектах Simulink.sdi.CustomSnapshot, поэтому задает вход plot как false.

sigIDs = Simulink.sdi.copyRunViewSettings(runID,runID2,false);

Получите снимок состояния нового выполнения симуляции

Используйте объект Simulink.sdi.CustomSnapshot получить снимок состояния новой запущенной симуляции. Во-первых, очистите сигналы от подграфиков. Затем постройте сигналы от нового выполнения и получите другой снимок состояния.

snap.clearSignals
snap.YRange = {[-2.25 2.25],[-8 8]};
snap.plotOnSubPlot(1,1,sigIDs(1),true)
snap.plotOnSubPlot(2,1,sigIDs(2),true)

fig = snap.snapshot("to","figure");

Введенный в R2018a