exponenta event banner

operpoint

Создание рабочей точки для модели Simulink

Описание

пример

op = operpoint(mdl) возвращает рабочую точку модели Simulink ®mdl. Можно вычислить линейную модель системы в этой рабочей точке с помощью linearize функция.

Примеры

свернуть все

Откройте модель Simulink.

open_system('magball')

Создайте рабочую точку для модели.

op = operpoint('magball')
 Operating point for the Model magball.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
(1.) magball/Controller/PID Controller/Filter/Cont. Filter/Filter
      x: 0            
(2.) magball/Controller/PID Controller/Integrator/Continuous/Integrator
      x: 14           
(3.) magball/Magnetic Ball Plant/Current
      x: 7            
(4.) magball/Magnetic Ball Plant/dhdt
      x: 0            
(5.) magball/Magnetic Ball Plant/height
      x: 0.05         

Inputs: None 
----------

op содержит список всех блоков в модели, имеющих состояния. В этой модели отсутствуют входные данные корневого уровня, поэтому op не содержит входных данных.

Создать новые переменные операционной точки можно тремя способами:

  • Использование operpoint функция

  • Использование назначения с равными (=) оператор

  • Использование copy функция

Использование = оператор приводит к связанным переменным, которые указывают на одни и те же базовые данные. Использование copy функция приводит к независимому объекту операционной точки. В этом примере создайте объекты операционных точек обоими способами и проверьте их поведение.

mdl = 'watertank';
open_system(mdl);
op1 = operpoint(mdl)
 Operating point for the Model watertank.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
(1.) watertank/PID Controller/Integrator/Continuous/Integrator
      x: 0            
(2.) watertank/Water-Tank System/H
      x: 1            

Inputs: None 
----------

Создание нового объекта операционной точки с помощью назначения = оператор.

op2 = op1;

op2 является объектом операционной точки, указывающим на те же базовые данные, что и op1. Из-за этой связи невозможно независимо изменить свойства двух объектов операционной точки. Чтобы увидеть это, измените свойство op2. Например, измените значение первого состояния с 0 на 2. Изменение отображается в States раздел дисплея.

op2.States(1).x = 2
 Operating point for the Model watertank.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
(1.) watertank/PID Controller/Integrator/Continuous/Integrator
      x: 2            
(2.) watertank/Water-Tank System/H
      x: 1            

Inputs: None 
----------

Осмотрите дисплей op1 чтобы увидеть, что соответствующее значение свойства op1 также изменяется с 0 на 2.

op1
 Operating point for the Model watertank.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
(1.) watertank/PID Controller/Integrator/Continuous/Integrator
      x: 2            
(2.) watertank/Water-Tank System/H
      x: 1            

Inputs: None 
----------

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

op3 = copy(op1);

Теперь при изменении свойства op3, op1 не меняется. Например, измените значение первого состояния с 2 на 4.

op3.States(1).x = 4
 Operating point for the Model watertank.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
(1.) watertank/PID Controller/Integrator/Continuous/Integrator
      x: 4            
(2.) watertank/Water-Tank System/H
      x: 1            

Inputs: None 
----------

В op1соответствующее значение остается равным 2.

op1.States(1).x
ans = 2

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

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

свернуть все

Имя модели Simulink, указанное как символьный вектор или строка. Модель должна находиться в текущей рабочей папке или в пути MATLAB ®.

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

свернуть все

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

СобственностьОписание
ModelИмя модели Simulink, возвращаемое как символьный вектор.
States

Рабочая точка состояния, возвращаемая как вектор объектов состояния. Каждая запись в States представляет поддерживаемые состояния одного блока Simulink.

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

Примечание

Если блок имеет несколько именованных непрерывных состояний, States содержит одну структуру для каждого именованного состояния.

Каждый объект состояния имеет следующие поля:

ОбластьОписание
Nx только для чтения

Количество состояний в блоке

Block

Путь блока, возвращаемый как символьный вектор.

StateName

Название штата

x

Значения всех поддерживаемых состояний блоков, возвращаемые в виде вектора длины Nx.

Ts

Время выборки и смещение каждого поддерживаемого состояния блока, возвращаемое как вектор. Для систем непрерывного времени, Ts равно нулю.

SampleType

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

  • 'CSTATE' - Состояние непрерывного времени

  • 'DSTATE' - Дискретно-временное состояние

inReferencedModel

Флаг, указывающий, находится ли блок внутри ссылочной модели, возвращаемый как одно из следующих значений:

  • 1 - Блок находится внутри ссылочной модели.

  • 0 - Блок находится в файле текущей модели.

Description

Описание состояния блока, возвращаемое в виде символьного вектора.

Inputs

Входной уровень в рабочей точке, возвращаемый как вектор входных объектов. Каждая запись в Inputs представляет входные уровни одного блока ввода корневого уровня в модели.

Каждый входной объект имеет следующие поля:

ОбластьОписание
Block

Имя блока ввода

PortWidth

Количество сигналов блока ввода

PortDimensions

Размер сигналов, принимаемых вводом

u

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

Description

Входное описание блока ввода, возвращаемое в виде символьного вектора.

Time

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

Version

Номер версии объекта

Совет

  • Можно создавать новые operpoint переменные тремя способами:

    • Создание нового объекта с помощью operpoint команда.

    • Создайте новую переменную путем назначения с помощью оператора equals (=).

    • Копировать operpoint с использованием copy команда.

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

Альтернативная функциональность

operpoint функция возвращает операционную точку с текущим состоянием и входными значениями модели. Чтобы создать операционную точку, соответствующую спецификациям приложения, используйте findop функция. Дополнительные сведения см. в разделе Расчет рабочих точек в установившемся состоянии.

Представлен до R2006a