getInputIndex

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

Описание

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

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

пример

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

пример

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

Примеры

свернуть все

Откройте модель Simulink.

mdl = 'scdtmpSetpoints';
open_system(mdl)

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

opspec = operspec(mdl);

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

opspec.Inputs
(1.) scdtmpSetpoints/Feed rpm
	 initial guess: 0            
(2.) scdtmpSetpoints/Setpoints
	 initial guess: 0            
	 initial guess: 0            
	 initial guess: 0            
	 initial guess: 0            

Получите индекс спецификации в opspec.Inputs который соответствует входному блоку Feed rpm.

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

     1     1

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

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

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

     2     1
     2     2
     2     3
     2     4

Каждая строка index2 - индекс для одного элемента входного вектора Setpoints.

Откройте модель Simulink.

mdl = 'scdtmpSetpoints';
open_system(mdl)

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

opspec = operspec(mdl);

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

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

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

     2     2

Можно также получить индексы нескольких векторных элементов одновременно. Для примера получите индексы для первого и третьего элементов вектора Setpoints.

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

     2     1
     2     3

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

свернуть все

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

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

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

op.Inputs

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

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

свернуть все

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

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

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

Введенный в R2017a