exponenta event banner

getInputIndex

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

Описание

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 соответствует входному блоку частоты вращения подачи.

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

     1     1

index1(1) - индекс объекта входной спецификации для блока Fed rpm в 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

Можно также получить индексы нескольких векторных элементов одновременно. Например, получить индексы для первого и третьего элементов вектора 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 возвращает индексы всех элементов в выбранной входной спецификации. Пример см. в разделе Получение индекса указанного входного элемента спецификации рабочей точки.

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

свернуть все

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

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

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

Представлен в R2017a