simscape.op.create

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

Описание

пример

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

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

пример

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 диалогового окна Параметры конфигурации.

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

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

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

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

Моделируйте фазу симуляции для извлечения данных, заданную как одну из:

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

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

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

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

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

свернуть все

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

Введенный в R2017b