Спецификации к рабочей точке
Откройте модель 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
является указатель объекта. Для получения дополнительной информации об указателе объектов смотрите Указатель Объекта Behavior.
Откройте модель 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
обращается к входному уровню первого блока inport для спецификации в строке 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.