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