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