Пакет: Simulink. SimulationData
Полностью заданный путь блока Simulink
Simulink ® создает объекты пути блоков при создании объектов набора данных для регистрации сигналов и хранения данных .Simulink.SimulationData.Signal и Simulink.SimulationData.DataStoreMemory объекты включают объекты контуров блоков.
Можно создать контур блока, который можно использовать с getElement для доступа к определенному элементу набора данных. Если требуется создать набор данных в MATLAB для использования в качестве опорной структуры для сравнения с набором данных регистрации сигнала или хранилища данных, необходимо создать пути блоков как часть этого набора данных.
Simulink.SimulationData.BlockPath класс очень похож на Simulink.BlockPath класс.
Для использования программы Simulink не требуется Simulink.SimulationData.BlockPath класс. Однако для использования программы Simulink необходимо установить Simulink.BlockPath класс. Если установлена программа 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)
Блок в модели, на который ссылается блок модели, указанный в предыдущем символьном векторе
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