Технические требования рабочей точки
Открытая модель Simulink.
sys = 'watertank';
open_system(sys)
Создайте объект спецификации рабочей точки по умолчанию для модели.
opspec = operspec(sys)
opspec = Operating point specification for the Model watertank. (Time-Varying Components Evaluated at time t=0) States: ---------- <strong>x</strong> <strong>Known</strong> <strong>SteadyState</strong> <strong>Min</strong> <strong>Max</strong> <strong>dxMin</strong> <strong>dxMax</strong> <strong>_</strong> <strong>_____</strong> <strong>___________</strong> <strong>____</strong> <strong>___</strong> <strong>_____</strong> <strong>_____</strong> (1.) watertank/PID Controller/Integrator/Continuous/Integrator 0 false true -Inf Inf -Inf Inf (2.) watertank/Water-Tank System/H 1 false true 0 Inf -Inf Inf 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)
opspec1 = Operating point specification for the Model watertank. (Time-Varying Components Evaluated at time t=0) States: ---------- x Known SteadyState Min Max dxMin dxMax _ _____ ___________ ____ ___ _____ _____ (1.) watertank/PID Controller/Integrator/Continuous/Integrator 0 false true -Inf Inf -Inf Inf (2.) watertank/Water-Tank System/H 1 false true 0 Inf -Inf Inf Inputs: None ---------- Outputs: None ----------
Создайте новый объект спецификации рабочей точки использование присвоения с =
оператор.
opspec2 = opspec1;
opspec2
operspec
возразите что точки против тех же базовых данных как opspec1
. Из-за этой ссылки вы не можете независимо изменить свойства двух operspec
объекты. Чтобы видеть это, измените свойство opspec2
. Например, измените начальное значение для первого состояния с 0 до 2. Изменение показывает в States
раздел отображения.
opspec2.States(1).x = 2
opspec2 = Operating point specification for the Model watertank. (Time-Varying Components Evaluated at time t=0) States: ---------- x Known SteadyState Min Max dxMin dxMax _ _____ ___________ ____ ___ _____ _____ (1.) watertank/PID Controller/Integrator/Continuous/Integrator 2 false true -Inf Inf -Inf Inf (2.) watertank/Water-Tank System/H 1 false true 0 Inf -Inf Inf Inputs: None ---------- Outputs: None ----------
Исследуйте отображение opspec1
видеть что соответствующее значение свойства opspec1
также изменения от 0 до 2.
opspec1
opspec1 = Operating point specification for the Model watertank. (Time-Varying Components Evaluated at time t=0) States: ---------- x Known SteadyState Min Max dxMin dxMax _ _____ ___________ ____ ___ _____ _____ (1.) watertank/PID Controller/Integrator/Continuous/Integrator 2 false true -Inf Inf -Inf Inf (2.) watertank/Water-Tank System/H 1 false true 0 Inf -Inf Inf Inputs: None ---------- Outputs: None ----------
Чтобы создать независимую копию спецификации рабочей точки, используйте copy
команда.
opspec3 = copy(opspec1);
Теперь, когда вы изменяете свойство opspec3
, opspec1
не изменяется. Например, измените начальное значение для первого состояния от 2 до 4.
opspec3.States(1).x = 4
opspec3 = Operating point specification for the Model watertank. (Time-Varying Components Evaluated at time t=0) States: ---------- x Known SteadyState Min Max dxMin dxMax _ _____ ___________ ____ ___ _____ _____ (1.) watertank/PID Controller/Integrator/Continuous/Integrator 4 false true -Inf Inf -Inf Inf (2.) watertank/Water-Tank System/H 1 false true 0 Inf -Inf Inf 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
ArrayDimensionsИзмерения массива в виде одного из следующего:
Целое число — Создает вектор-столбец dim
объекты спецификации рабочей точки.
Вектор-строка из целых чисел — Создает массив объектов спецификации рабочей точки с размерностями, заданными dim
.
Например, чтобы создать 4 5 массив объектов спецификации рабочей точки, используйте:
opspec = operspec(mdl,[4,5]);
Чтобы создать многомерный массив объектов спецификации рабочей точки, задайте дополнительные размерности. Например, чтобы создать массив 2 на 3 на 4, используйте:
opspec = operspec(mdl,[2,3,4]);
opspec
— Технические требования рабочей точкиOperatingSpec
возразите | массив OperatingSpec
объектыТехнические требования рабочей точки, возвращенные как OperatingSpec
возразите или массив таких объектов.
Можно изменить технические требования рабочей точки с помощью записи через точку. Например, если opspec
один OperatingSpec
объект, opspec.States(1).x
получает доступ к значениям состояния первого состояния модели. Если opspec
массив OperatingSpec
объекты opspec(2,3).Inputs(1).u
получает доступ к уровню на входе первого блока импорта для спецификации в строке 2
, столбец 3
.
Каждый OperatingSpec
объект имеет следующие свойства.
Свойство | Описание | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Model | Имя модели Simulink, возвращенное как вектор символов. | ||||||||||||||||||||||||||||||
States | Технические требования рабочей точки состояния, возвращенные как вектор из объектов спецификации состояния. Каждая запись в Для списка поддерживаемых состояний для объектов рабочей точки смотрите состояния Модели Simulink, Включенные в Объект Рабочей точки. Отредактируйте свойства этого объекта с помощью записи через точку или Примечание Если блок имеет несколько именованных непрерывных состояний, Каждый объект спецификации состояния имеет следующие поля:
| ||||||||||||||||||||||||||||||
Inputs | Технические требования уровня на входе в рабочей точке, возвращенной как вектор из входных объектов спецификации. Каждая запись в Каждый входной объект спецификации имеет следующие поля:
| ||||||||||||||||||||||||||||||
Outputs | Технические требования уровня на выходе в рабочей точке, возвращенной как вектор из выходных объектов спецификации. Каждая запись в Можно задать дополнительное выходное ограничительное использование для обрезки Каждый выходной объект спецификации имеет следующие поля:
| ||||||||||||||||||||||||||||||
Time | Времена, в которые выполнены изменяющиеся во времени функции в модели, возвратились как вектор. | ||||||||||||||||||||||||||||||
CustomObjFcn | Функция, обеспечивающая дополнительную пользовательскую целевую функцию для обрезки в виде указателя на пользовательскую функцию, или вектор символов или строку, которая содержит имя функции. Пользовательская функция должна быть на MATLAB® путь или в текущей рабочей папке. Можно задать пользовательскую целевую функцию как алгебраическую комбинацию состояний модели, входных параметров и выходных параметров. Для получения дополнительной информации смотрите, Вычисляют Рабочие точки Используя Пользовательские Ограничения и Целевые функции. | ||||||||||||||||||||||||||||||
CustomConstrFcn | Функция, обеспечивающая дополнительные пользовательские ограничения для обрезки в виде указателя на пользовательскую функцию, или вектор символов или строку, которая содержит имя функции. Пользовательская функция должна быть на пути MATLAB или в текущей рабочей папке. Можно задать пользовательское равенство и ограничения неравенства как алгебраические комбинации состояний модели, входных параметров и выходных параметров. Для получения дополнительной информации смотрите, Вычисляют Рабочие точки Используя Пользовательские Ограничения и Целевые функции. | ||||||||||||||||||||||||||||||
CustomMappingFcn | Функция, которая сопоставляет состояния модели, входные параметры и выходные параметры к векторам, принятым Для сложных моделей вы можете передать подмножества входных параметров модели, выходных параметров, и утверждаете к пользовательскому ограничению и целевым функциям с помощью пользовательской функции отображения. Если вы задаете пользовательское отображение, необходимо использовать отображение и для пользовательской ограничительной функции и для пользовательской целевой функции. Для получения дополнительной информации смотрите, Вычисляют Рабочие точки Используя Пользовательские Ограничения и Целевые функции. |
Чтобы отобразить свойства объектов спецификации рабочей точки, использовать get
.
Можно создать новый operspec
переменные 3 способами:
Создайте новый объект с operspec
команда.
Создайте новую переменную присвоением с равнянием (=) оператор.
Скопируйте operspec
объект с помощью copy
команда.
Используя operspec
или copy
создает новый, независимый объект. Когда вы используете присвоение, существует ссылка между старой и новой переменной. Для примера см. Копию Спецификация Рабочей точки.
PortWidth
свойство вводов и выводов спецификации рабочей точки будет удаленоНе рекомендуемый запуск в R2021b
Ввод и вывод PortWidth
свойства технических требований рабочей точки будут удалены в будущем релизе. Используйте новый Nu
и Ny
свойства вместо этого.
Чтобы обновить ваш код, измените экземпляры PortWidth
к любому Nu
или Ny
как показано в следующей таблице.
Не рекомендуемый | Рекомендуемый |
---|---|
op = operspec('scdplane'); numOut = op.Outputs(1).PortWidth; numIn = op.Inputs(1).PortWidth; |
op = operspec('scdplane'); numOut = op.Outputs(1).Ny; numIn = op.Inputs(1).Nu; |
findop
| addoutputspec
| update
| copy
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.