Пакет: Simulink.SimulationData
Полностью заданный путь к блоку Simulink
Simulink® создает объекты контуров блока при создании объектов набора данных для логгирования сигнала и логгирования хранилища данных. Simulink.SimulationData.Signal
и Simulink.SimulationData.DataStoreMemory
объекты включают объекты контуров блока.
Можно создать блок path, который можно использовать с getElement
метод, чтобы получить доступ к определенному элементу набора данных. Если вы хотите создать набор данных в MATLAB, чтобы использовать в качестве базовой линии, чтобы выдержать сравнение с логгированием сигнала или хранилищем данных, регистрирующим набор данных, то необходимо создать пути к блоку как часть того набора данных.
Simulink.SimulationData.BlockPath
класс очень похож на Simulink.BlockPath
класс.
Вам нельзя было устанавливать Simulink, чтобы использовать Simulink.SimulationData.BlockPath
класс. Однако необходимо было установить Simulink, чтобы использовать Simulink.BlockPath
класс. Если вам установили Simulink, рассматриваете использование Simulink.BlockPath
вместо Simulink.SimulationData.BlockPath
, потому что Simulink.BlockPath
класс включает метод для проверки валидности объектов контуров блока без вас имеющий необходимость обновить диаграмму модели.
Имя | Описание |
---|---|
Отдельный компонент в блоке задан блоком path |
Имя | Описание |
---|---|
Создайте блок path. | |
Преобразуйте блок path в массив ячеек из символьных векторов. | |
Получите один блок path в иерархии модели - ссылки. | |
Получите длину блока path. |
Представляет отдельный компонент в блоке, заданном блоком path.
Например, если блок path обращается к графику Stateflow®, можно использовать SubPath
указать на сигналы графика. Например:
Block Path: 'sf_car/shift_logic' SubPath: 'gear_state.first'
символьный вектор
RW
Создайте блок path
blockpath_object = Simulink.SimulationData.BlockPath() blockpath_object = Simulink.SimulationData.BlockPath(blockpath) blockpath_object = Simulink.SimulationData.BlockPath(paths) blockpath_object = Simulink.SimulationData.BlockPath(paths, subpath)
blockpath
Объект контуров блока, который вы хотите скопировать.
paths
Вектор символов или массив ячеек из символьных векторов, что использование Simulink, чтобы создать блок path.
Задайте каждый вектор символов в порядке от топ-модели с определенным блоком, для которого вы создаете блок path.
Каждый вектор символов должен быть путем к блоку в модели Simulink. Блок должен быть:
Блок в одной модели
Блок Model (за исключением вектора последнего знака, который может быть блоком кроме блока Model),
Блок, который находится в модели, на которую ссылается блок Model, который задан в предыдущем векторе символов
subpath
Вектор символов, который представляет отдельный компонент в блоке.
blockpath_object
Блок path, который вы создаете.
blockpath_object = Simulink.SimulationData.BlockPath()
создает пустой блок path.
blockpath_object = Simulink.SimulationData.BlockPath(
создает копию блока path объекта контуров блока, который вы задаете с blockpath
)source_blockpath
аргумент.
blockpath = Simulink.SimulationData.BlockPath(
создает блок path из вектора символов или массива ячеек из символьных векторов, который вы задаете с paths
)paths
аргумент. Каждый вектор символов представляет путь на уровне иерархии модели.
blockpath = Simulink.SimulationData.BlockPath(
создает блок path из вектора символов или массива ячеек из символьных векторов, который вы задаете с paths
, subpath
)paths
аргумент и создает путь для отдельного компонента (например, сигнал) блока.
Создайте объект контуров блока под названием bp1
, использование массива ячеек из символьных векторов, представляющего элементы блока path.
bp1 = Simulink.SimulationData.BlockPath(... {'sldemo_mdlref_depgraph/thermostat', ... 'sldemo_mdlref_heater/Fahrenheit to Celsius', ... 'sldemo_mdlref_F2C/Gain1'})
Получившийся блок path отражает иерархию модели - ссылки для блока path.
bp1 = Simulink.BlockPath Package: Simulink Block Path: 'sldemo_mdlref_depgraph/thermostat' 'sldemo_mdlref_heater/Fahrenheit to Celsius' 'sldemo_mdlref_F2C/Gain1
Преобразуйте блок path в массив ячеек из символьных векторов
cellarray = blockPathObject.convertToCell()
cellarray
Массив ячеек из символьных векторов, представляющий элементы блока path.
cellarray = blockPathObject.convertToCell()
преобразует блок path в массив ячеек из символьных векторов.
bp1 = Simulink.SimulationData.BlockPath(... {'sldemo_mdlref_depgraph/thermostat', ... 'sldemo_mdlref_heater/Fahrenheit to Celsius', ... 'sldemo_mdlref_F2C/Gain1'}) cellarray_for_bp1 = bp1.convertToCell()
Результатом является массив ячеек, представляющий элементы блока path.
cellarray_for_bp1 = 'sldemo_mdlref_depgraph/thermostat' 'sldemo_mdlref_heater/Fahrenheit to Celsius' 'sldemo_mdlref_F2C/Gain1'
Получите один блок path в иерархии модели - ссылки
block = blockPathObject.getBlock(index)
index
Индекс блока, для которого вы хотите получить блок path. Индекс отражает уровень в иерархии модели - ссылки. Индекс 1 представляет блок в модели верхнего уровня, индекс 2 представляет блок в модели, на которую ссылается блок индекса 1 и индекса n
представляет блок что блок с индексом n-1
ссылки.
block
Блок, представляющий уровень в иерархии модели - ссылки, задан index
аргумент.
blockpath = Simulink.SimulationData.BlockPath.getBlock(
возвращает блок path блока, заданного index
)index
аргумент.
Получите блок для второго уровня в иерархии модели - ссылки.
bp1 = Simulink.SimulationData.BlockPath(... {'sldemo_mdlref_depgraph/thermostat', ... 'sldemo_mdlref_heater/Fahrenheit to Celsius', ... 'sldemo_mdlref_F2C/Gain1'}) blockpath = bp1.getBlock(2)
Результатом является thermostat
блокируйтесь, который является на втором уровне в иерархии блока path.
blockpath = sldemo_mdlref_heater/Fahrenheit to Celsius
Получите длину блока path
length = blockPathObject.getLength()
length
Длина блока path. Длина является количеством уровней в иерархии модели - ссылки.
length = Simulink.SimulationData.BlockPath.getLength()
возвращает числовое значение, которое соответствует количеству уровней в иерархии модели - ссылки для блока path.
Получите длину блока path bp1
.
bp1 = Simulink.SimulationData.BlockPath(... {'sldemo_mdlref_depgraph/thermostat', ... 'sldemo_mdlref_heater/Fahrenheit to Celsius', ... 'sldemo_mdlref_F2C/Gain1'}) length_bp1 = bp1.getLength()
Результат отражает, что блок path имеет три элемента.
length_bp1 = 3