getInputIndex

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

Описание

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

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

пример

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

пример

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

Примеры

свернуть все

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

mdl = 'scdtmpSetpoints';
mdlpath = fullfile(matlabroot,'examples','slcontrol',mdl);
open_system(mdlpath)

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

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

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

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

     2     1
     2     2
     2     3
     2     4

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

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

mdl = 'scdtmpSetpoints';
mdlpath = fullfile(matlabroot,'examples','slcontrol',mdl);
open_system(mdlpath)

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

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, заданной как operspec объект объектной или рабочей точки.

Блок 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