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