getInputIndex

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

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

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

Синтаксис

index = getInputIndex(op,block)
index = getInputIndex(op,block,element)

Описание

пример

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