Спецификации рабочей точки
Открытая модель 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
объект указателя. Для получения дополнительной информации об объектах указателя, смотрите Поведение объекта Указателя (MATLAB).
Открытая модель 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
ArrayDimensionsИзмерения массива, заданные как одно из следующего:
Целое число — Создает вектор-столбец 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
команда.
Создайте новую переменную присвоением с равнянием (=) оператор.
Скопируйте operspec
объект с помощью copy
команда.
Используя operspec
или copy
создает новый, независимый объект. Когда вы используете присвоение, существует ссылка между старой и новой переменной. Для примера см. Копию Спецификация Рабочей точки.
addoutputspec
| copy
| findop
| update
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.