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 симуляции (как задано параметром конфигурации модели Workspace variable name) в вашей текущей рабочей области:

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

Откройте подсистему двигателя постоянного тока, выберите блок Inductor и создайте 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 возразите, чтобы совпадать с именем модели и найти относительный путь для блока Inductor:

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 рабочая точка, чтобы инициализировать модель и применить новую цель к блоку Inductor.

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

свернуть все

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

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

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

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

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

Фаза симуляции модели для экстракции данных в виде одного из:

  • 'Start' — Функция инициализирует корневую модель и извлекает переменные цели для целой модели, или для заданного блока или подсистемы, в данные о рабочей точке. Эти цели соответствуют Start значения в Переменном Средстве просмотра.

  • 'Prestart' — Функция обновляет корневую модель и извлекает целевые значения для целой модели, или для заданного блока или подсистемы, прежде, чем инициализировать модель. Эти цели соответствуют Prestart значения в Переменном Средстве просмотра.

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

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

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

свернуть все

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

Введенный в R2017b