getInputIndex

Получите индекс входного элемента спецификации рабочей точки

Описание

Inputs свойство спецификации рабочей точки является массивом, который содержит технические требования обрезки для каждого входа модели. Когда определение отображения функционирует для индивидуально настраиваемой обрезки Simulink® модели, можно использовать getInputIndex получить индекс входной спецификации на основе соответствующего блока path.

При обрезке моделей Simulink с помощью основанного на оптимизации поиска некоторые приложения требуют дополнительной гибкости в определении параметров поиска оптимизации. Для таких систем можно задать пользовательские ограничения и пользовательскую целевую функцию. Для сложных моделей можно задать отображение, которое выбирает подмножество состояний модели, входных параметров и выходных параметров, чтобы передать пользовательскому ограничению и целевым функциям. Для получения дополнительной информации смотрите, Вычисляют Рабочие точки Используя Пользовательские Ограничения и Целевые функции.

пример

index = getInputIndex(op,block) возвращает индекс входной спецификации, которая соответствует block в Inputs свойство спецификации рабочей точки op.

пример

index = getInputIndex(op,block,element) возвращает индекс заданного element в рамках входной спецификации для входного порта, который имеет порт width, больше, чем 1.

Примеры

свернуть все

Открытая модель Simulink.

mdl = 'scdtmpSetpoints';
open_system(mdl)

Создайте объект спецификации рабочей точки для модели.

opspec = operspec(mdl);

opspec содержит технические требования для входных портов корневого уровня модели.

opspec.Inputs
ans = 

    <strong>u</strong>    <strong>Known</strong>    <strong>Min</strong>     <strong>Max</strong>
    <strong>_</strong>    <strong>_____</strong>    <strong>____</strong>    <strong>___</strong>

(1.) scdtmpSetpoints/Feed rpm
    0    false    -Inf    Inf
(2.) scdtmpSetpoints/Setpoints
    0    false    -Inf    Inf
    0    false    -Inf    Inf
    0    false    -Inf    Inf
    0    false    -Inf    Inf

Получите индекс спецификации в opspec.Inputs это соответствует входному блоку об/мин Канала.

index1 = getInputIndex(opspec,'scdtmpSetpoints/Feed rpm')
index1 =

     1     1

index1(1) индекс входного объекта спецификации для блока об/мин Канала в opspec.Inputs. Поскольку этот входной порт является скалярным сигналом, index1 ссорится и index1(2) 1.

Если входной порт является векторным сигналом, можно получить индексы для всех элементов в соответствующей входной спецификации.

index2 = getInputIndex(opspec,'scdtmpSetpoints/Setpoints')
index2 =

     2     1
     2     2
     2     3
     2     4

Каждая строка index2 индекс для одного элемента входного вектора Заданных значений.

Открытая модель Simulink.

mdl = 'scdtmpSetpoints';
open_system(mdl)

Создайте объект спецификации рабочей точки для модели.

opspec = operspec(mdl);

opspec содержит технические требования для входных портов корневого уровня модели.

Получите индекс элемента, который соответствует второму сигналу во входном векторе Заданных значений.

index1 = getInputIndex(opspec,'scdtmpSetpoints/Setpoints',2)
index1 =

     2     2

Можно также получить индексы нескольких векторных элементов одновременно. Например, получите индексы для первых и третьих элементов вектора Заданных значений.

index2 = getInputIndex(opspec,'scdtmpSetpoints/Setpoints',[1 3])
index2 =

     2     1
     2     3

Входные параметры

свернуть все

Спецификация рабочей точки или рабочая точка для модели Simulink в виде OperatingSpec, OperatingPoint, или OperatingReport объект.

Блок path, который соответствует входной спецификации в Inputs свойство opВ виде вектора символов или строки, которая содержит путь входа корневого уровня модели Simulink.

Чтобы видеть все блоки, которые ввели технические требования, просмотрите Inputs свойство op.

op.Inputs

Введите индекс элемента в виде положительного целого числа, меньше чем или равного порту width входа, заданного block, или как вектор из таких целых чисел. По умолчанию, если вы не задаете element, getInputIndex возвращает индексы всех элементов в выбранной входной спецификации. Для примера смотрите, Получают индекс Указанного Входного Элемента Спецификации Рабочей точки.

Выходные аргументы

свернуть все

Введите индекс, возвращенный как вектор-строка с 2 элементами когда element целое число или массив с 2 столбцами когда element вектор. Каждая строка index содержит индекс для одного входного элемента модели.

Первый столбец index содержит индекс соответствующей входной спецификации в Inputs свойство op. Второй столбец содержит индекс элемента в рамках входной спецификации.

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

Введенный в R2017a