Технические характеристики рабочих точек
Откройте модель Simulink.
sys = 'watertank';
open_system(sys)

Создайте для модели объект спецификации рабочей точки по умолчанию.
opspec = operspec(sys)
Operating point specification for the Model watertank. (Time-Varying Components Evaluated at time t=0) States: ---------- (1.) watertank/PID Controller/Integrator/Continuous/Integrator spec: dx = 0, initial guess: 0 (2.) watertank/Water-Tank System/H spec: dx = 0, initial guess: 1 Inputs: None ---------- Outputs: None ----------
opspec содержит спецификации для двух состояний в модели. Поскольку в модели отсутствуют входные или выходные данные корневого уровня, opspec не содержит входных или выходных спецификаций. Для добавления выходных спецификаций используйте addoutputspec.
Измените спецификации рабочих точек для каждого состояния с помощью точечного обозначения. Например, настройте первое состояние следующим образом:
Находиться в устойчивом состоянии.
Иметь нижнюю границу 0.
Иметь начальное значение 2 для обрезки.
opspec.States(1).SteadyState = 1; opspec.States(1).x = 2; opspec.States(1).Min = 0;
Можно создавать новые operspec переменные тремя способами:
Использование operspec команда
Использование назначения с равными значениями (=) оператор
Использование copy команда
Использование = оператор приводит к связанным переменным, которые указывают на одни и те же базовые данные. Использование copy команда приводит к независимому operspec объект. В этом примере создайте operspec объекты в обоих направлениях и проверьте их поведение.
mdl = 'watertank';
open_system(mdl);
opspec1 = operspec(mdl)Operating point specification for the Model watertank. (Time-Varying Components Evaluated at time t=0) States: ---------- (1.) watertank/PID Controller/Integrator/Continuous/Integrator spec: dx = 0, initial guess: 0 (2.) watertank/Water-Tank System/H spec: dx = 0, initial guess: 1 Inputs: None ---------- Outputs: None ----------
Создание нового объекта спецификации операционной точки с помощью назначения = оператор.
opspec2 = opspec1;
opspec2 является operspec объект, указывающий на те же базовые данные, что и opspec1. Из-за этой связи невозможно независимо изменить свойства двух operspec объекты. Чтобы увидеть это, измените свойство opspec2. Например, измените начальное значение для первого состояния с 0 на 2. Изменение отображается в States раздел дисплея.
opspec2.States(1).x = 2
Operating point specification for the Model watertank. (Time-Varying Components Evaluated at time t=0) States: ---------- (1.) watertank/PID Controller/Integrator/Continuous/Integrator spec: dx = 0, initial guess: 2 (2.) watertank/Water-Tank System/H spec: dx = 0, initial guess: 1 Inputs: None ---------- Outputs: None ----------
Осмотрите дисплей opspec1 чтобы увидеть, что соответствующее значение свойства opspec1 также изменяется с 0 на 2.
opspec1
Operating point specification for the Model watertank. (Time-Varying Components Evaluated at time t=0) States: ---------- (1.) watertank/PID Controller/Integrator/Continuous/Integrator spec: dx = 0, initial guess: 2 (2.) watertank/Water-Tank System/H spec: dx = 0, initial guess: 1 Inputs: None ---------- Outputs: None ----------
Чтобы создать независимую копию спецификации операционной точки, используйте copy команда.
opspec3 = copy(opspec1);
Теперь при изменении свойства opspec3, opspec1 не меняется. Например, измените начальное значение для первого состояния с 2 на 4.
opspec3.States(1).x = 4
Operating point specification for the Model watertank. (Time-Varying Components Evaluated at time t=0) States: ---------- (1.) watertank/PID Controller/Integrator/Continuous/Integrator spec: dx = 0, initial guess: 4 (2.) watertank/Water-Tank System/H spec: dx = 0, initial guess: 1 Inputs: None ---------- Outputs: None ----------
В opspec1соответствующее значение остается равным 2.
opspec1.States(1).x
ans = 2
Такое поведение копирования происходит из-за operspec является объектом-дескриптором. Дополнительные сведения об объектах-дескрипторах см. в разделе Поведение объектов-дескрипторов.
Откройте модель Simulink.
sys = 'watertank';
open_system(sys)

Создайте массив объектов спецификации рабочих точек 2 на 3. Такие массивы позволяют выполнять пакетную обрезку модели в нескольких рабочих точках.
opspec = operspec(sys,[2,3]);
Каждый элемент opspec содержит объект спецификации рабочей точки по умолчанию для модели.
Измените объекты спецификации операционной точки с помощью точечного обозначения. Например, настройте второе состояние объекта спецификации в строке 1, столбец 3.
opspec(1,3).States(2).SteadyState = 1; opspec(1,3).States(1).x = 2;
Можно также создать многомерные массивы объектов спецификации рабочих точек. Например, создайте массив 3 на 4 на 5.
opspec = operspec(sys,[3,4,5]);
mdl - Модель SimulinkИмя модели Simulink, указанное как символьный вектор или строка.
dim - Размеры массиваРазмеры массива, указанные как одно из следующих:
Целое число - создание вектора столбца dim объекты спецификации рабочей точки.
Вектор строк целых чисел - создание массива объектов спецификации операционной точки с размерами, указанными в dim.
Например, чтобы создать массив объектов спецификации операционной точки 4 на 5, используйте:
opspec = operspec(mdl,[4,5]);
Чтобы создать многомерный массив объектов спецификации операционной точки, укажите дополнительные размеры. Например, чтобы создать массив 2 на 3 на 4, используйте:
opspec = operspec(mdl,[2,3,4]);
opspec - Технические характеристики рабочих точекСпецификации операционных точек, возвращаемые как объект спецификации операционных точек или массив таких объектов.
Спецификации рабочих точек можно изменить с помощью точечных обозначений. Например, если opspec является одним объектом спецификации операционной точки, opspec.States(1).x получает доступ к значениям состояния первого состояния модели. Если opspec является массивом объектов спецификации opspec(2,3).Inputs(1).u доступ к входному уровню первого блока ввода для спецификации в строке 2, столбец 3.
Каждый объект спецификации имеет следующие свойства:
| Собственность | Описание | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Model | Имя модели Simulink, возвращаемое как символьный вектор. | ||||||||||||||||||||||||||||||
States | Спецификации рабочих точек состояния, возвращаемые как вектор объектов спецификации состояния. Каждая запись в Список поддерживаемых состояний для объектов операционной точки см. в разделе Состояния модели Simulink, включенные в объект операционной точки. Изменение свойств этого объекта с помощью точечной нотации или Примечание Если блок имеет несколько именованных непрерывных состояний, Каждый объект спецификации состояния имеет следующие поля:
| ||||||||||||||||||||||||||||||
Inputs | Спецификации уровня ввода в рабочей точке, возвращаемые как вектор объектов спецификации ввода. Каждая запись в Каждый объект спецификации ввода имеет следующие поля:
| ||||||||||||||||||||||||||||||
Outputs | Спецификации уровня вывода в рабочей точке, возвращаемые как вектор объектов спецификации вывода. Каждая запись в Дополнительные ограничения вывода обрезки можно задать с помощью Каждый объект спецификации вывода имеет следующие поля:
| ||||||||||||||||||||||||||||||
Time | Времена, в которые вычисляются изменяющиеся во времени функции в модели, возвращаемые в виде вектора. | ||||||||||||||||||||||||||||||
CustomObjFcn | Функция, предоставляющая дополнительную пользовательскую целевую функцию для обрезки, заданную как дескриптор пользовательской функции, или символьный вектор или строку, содержащую имя функции. Пользовательская функция должна находиться в пути MATLAB ® или в текущей рабочей папке. Можно задать пользовательскую целевую функцию как алгебраическую комбинацию состояний модели, входов и выходов. Дополнительные сведения см. в разделе Расчет операционных точек с использованием пользовательских ограничений и целевых функций. | ||||||||||||||||||||||||||||||
CustomConstrFcn | Функция, обеспечивающая дополнительные пользовательские ограничения для обрезки, заданная как дескриптор пользовательской функции, или символьный вектор или строка, содержащая имя функции. Пользовательская функция должна находиться в пути MATLAB или в текущей рабочей папке. Можно задать пользовательские ограничения равенства и неравенства как алгебраические комбинации состояний модели, входов и выходов. Дополнительные сведения см. в разделе Расчет операционных точек с использованием пользовательских ограничений и целевых функций. | ||||||||||||||||||||||||||||||
CustomMappingFcn | Функция, отображающая состояния модели, входы и выходы на векторы, принятые Для сложных моделей можно передать подмножества входов, выходов и состояний модели пользовательским ограничениям и целевым функциям с помощью пользовательской функции сопоставления. Если задано пользовательское сопоставление, необходимо использовать сопоставление как для пользовательской функции ограничения, так и для пользовательской целевой функции. Дополнительные сведения см. в разделе Расчет операционных точек с использованием пользовательских ограничений и целевых функций. |
Для отображения свойств объекта спецификации операционной точки используйте get.
Можно создавать новые operspec переменные 3 способами:
Создание нового объекта с помощью operspec команда.
Создайте новую переменную путем назначения с помощью оператора equals (=).
Копировать operspec с использованием copy команда.
Используя operspec или copy создает новый независимый объект. При использовании присвоения существует связь между старой и новой переменной. Пример см. в разделе Копирование спецификации операционной точки.
addoutputspec | copy | findop | update
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.