exponenta event banner

simscape.op.create

Создание рабочей точки путем извлечения данных из модели или из зарегистрированных данных моделирования

Описание

пример

op = simscape.op.create(simlog,t) создает OperatingPoint объект op извлекая переменные цели из записанных данных моделирования в момент времени t. Если набор времен записан в журнал данных моделирования simlog содержит точное совпадение по времени tзатем функция извлекает эти переменные целевые значения в данные рабочих точек. Если нет точного совпадения, но t находится между минимальным и максимальным временем simlogзатем функция использует линейную интерполяцию для определения целевых значений. Если t меньше минимального времени, затем функция извлекает первое значение для каждой переменной в simlog. Аналогично, если t больше максимального времени, затем функция извлекает последнее значение в simlog.

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

пример

op = simscape.op.create(block,simPhase) создает OperatingPoint объект op извлекая переменные цели из всей модели или из определенного блока или подсистемы на указанной фазе моделирования модели.

пример

op = simscape.op.create(block,simPhase, true) создает OperatingPoint объект op путем извлечения кэшированных значений переменных целевых объектов из модели, которая была ранее инициализирована или смоделирована. Этот метод позволяет сэкономить время, избегая повторной инициализации модели, если данные, которые требуется извлечь, не изменились. Функция возвращает ошибку, если модель не была обновлена, инициализирована или смоделирована ранее в сессии.

Примеры

свернуть все

Откройте пример модели двигателя постоянного тока с постоянным магнитом, в котором уже включена регистрация данных. Запуск моделирования для создания переменной журнала моделирования simlog_ssc_dcmotor (как указано параметром конфигурации модели имени переменной рабочей области) в текущей рабочей области:

ssc_dcmotor
sim('ssc_dcmotor');

Создание OperatingPoint объект с именем op1 из зарегистрированных данных моделирования через 0,1 секунды после начала моделирования:

op1 = simscape.op.create(simlog_ssc_dcmotor, 0.1)
op1 = 

  OperatingPoint with children:
  -----------------------------
   DC Motor
   DC Voltage
   ERef
   Load Torque
   MRRef Motor
   MRRef Torque
   Sensing
  -----------------------------

Откройте пример модели двигателя постоянного тока с постоянным магнитом и создайте OperatingPoint объект с именем op2 с использованием Start значения из модели:

ssc_dcmotor
op2 = simscape.op.create(gcs, 'Start')
op2 = 

  OperatingPoint with children:
  -----------------------------
   DC Motor
   DC Voltage
   ERef
   Load Torque
   MRRef Motor
   MRRef Torque
   Sensing
  -----------------------------

Инициализация модели требует времени. При работе с большой моделью можно избежать ненужной повторной инициализации с помощью кэшированных значений переменных целевых объектов.

Откройте пример модели двигателя постоянного тока с постоянным магнитом и смоделируйте ее:

ssc_dcmotor
sim('ssc_dcmotor');

Создание OperatingPoint объект с именем op3 с использованием Start значения для подсистемы двигателя постоянного тока без повторной инициализации модели:

op3 = simscape.op.create('ssc_dcmotor/DC Motor', 'Start', true)
op3 = 

  OperatingPoint with children:
  ----------------------------------------
   Friction
   Inertia
   Rotational Electromechanical Converter
   Rotor Inductance
   Rotor Resistance
  ----------------------------------------

При извлечении данных операционной точки для блока или подсистемы в модели нельзя немедленно использовать эту операционную точку для инициализации этого блока или подсистемы из-за несоответствия иерархии структуры данных. Используйте relativePath чтобы определить правильное местоположение, а затем добавить необходимые слои для вставки этих данных в рабочую точку для текущей модели.

Откройте пример модели двигателя постоянного тока с постоянным магнитом.

ssc_dcmotor

Откройте подсистему двигателя постоянного тока, выберите блок индуктора и создайте OperatingPoint объект с именем opRI с использованием Start значения из модели:

opRI = simscape.op.create(gcb, 'Start')
opRI = 

  OperatingPoint with children:
  -----------------------------
   i    1.5000e-09|'A'  None
   i_L           0|'A'  High
   v        1.5000|'V'  None
  -----------------------------
   n
   p
  -----------------------------

Измените цель инициализации для переменной тока индуктора, i_L:

t = simscape.op.Target(1.5, 'A', 'High');
opRI = set(opRI, 'i_L', t)
opRI = 

  OperatingPoint with children:
  -----------------------------
   i    1.5000e-09|'A'  None
   i_L      1.5000|'A'  High
   v        1.5000|'V'  None
  -----------------------------
   n
   p
  -----------------------------

Чтобы использовать новый целевой объект для инициализации блока, необходимо создать рабочую точку для всей модели и вставить рабочую точку блока в правильное место.

Создать пустой OperatingPoint объект с именем opModel:

opModel = simscape.op.OperatingPoint
opModel = 

  OperatingPoint with no children.

Установите Identifier имущества OperatingPoint объект для сопоставления с именем модели и поиска относительного пути для блока индуктора:

opModel.Identifier = bdroot(gcb);
relPath = relativePath(opModel, gcb)
relPath =

    'DC Motor/Rotor Inductance'

Добавить OperatingPoint объект opRI в OperatingPoint объект opModel:

opModel = set(opModel, relPath, opRI)
opModel = 

  OperatingPoint with children:
  -----------------------------
   DC Motor
  -----------------------------

Команда вставила данные в расположение, определенное relPathдобавление узлов в дерево данных при необходимости.

Теперь вы можете использовать opModel для инициализации модели и применения новой цели к блоку индуктора.

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

свернуть все

переменная рабочей области журнала моделирования, содержащая записанные данные моделирования модели, или узел этой переменной, указанный как simscape.logging.Node объект. Имя переменной журнала моделирования задается с помощью параметра Имя переменной рабочего пространства (Workspace variable name) на панели Simscape (Simscape) диалогового окна Параметры конфигурации (Configuration Parameters).

Время моделирования для извлечения данных, указанное как вещественное число.

Типы данных: double

Имя или идентификатор блока, подсистемы или модели, указанный как дескриптор, имя модели, полный путь к блоку или подсистеме в модели, Simulink.Block объект или допустимый идентификатор Simulink (SID).

Типы данных: double | char | string

Этап моделирования модели для извлечения данных, указанный как один из:

  • 'Start' - функция инициализирует корневую модель и извлекает переменные цели для всей модели или для указанного блока или подсистемы в данные операционной точки. Эти цели соответствуют Start значения в средстве просмотра переменных.

  • 'Prestart' - функция обновляет корневую модель и извлекает целевые значения для всей модели или для указанного блока или подсистемы перед инициализацией модели. Эти цели соответствуют Prestart значения в средстве просмотра переменных.

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

Типы данных: char

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

свернуть все

Рабочая точка в базовом рабочем пространстве, возвращенная как OperatingPoint с переменными данными инициализации, извлеченными из модели или из зарегистрированных данных моделирования.

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