Вычислите рабочую точку для модели Nonlinear ARX
[X,U] =
findop(sys,'steady',InputLevel,OutputLevel)[X,U] =
findop(sys,spec)[X,U] =
findop(___,Options)[X,U,Report]
= findop(___)[X,U] =
findop(sys,'snapshot',T,Uin)[X,U] =
findop(sys,'snapshot',T,Uin,X0)[ возвращает значения состояния рабочей точки, X,U] =
findop(sys,'steady',InputLevel,OutputLevel)X, и входные значения, U, для theidnlarx модели, sys, с помощью установившихся спецификаций ввода и вывода.
Оцените нелинейную модель ARX.
load iddata6;
M = nlarx(z6,[4 3 1]);Найдите установившуюся рабочую точку, где уровень на входе фиксируется к 1, и вывод неизвестен.
[X,U] = findop(M,'steady',1,NaN);Оцените нелинейную модель ARX.
load iddata7;
M = nlarx(z7,[4 3*ones(1,2) 2*ones(1,2)]);Создайте объект спецификации рабочей точки по умолчанию.
spec = operspec(M);
Установите значения для входных сигналов.
spec.Input.Value(1) = -1; spec.Input.Value(2) = 1;
Установите максимальные и минимальные значения для выходного сигнала.
spec.Output.Max = 10; spec.Output.Min = -10;
Найдите установившуюся рабочую точку с помощью данных спецификаций.
[X,U] = findop(M,spec);
Оцените нелинейную модель ARX.
load iddata6;
M = nlarx(z6,[4 3 2]);Создайте набор опции findopOptions по умолчанию.
opt = findopOptions(M);
Измените набор опции, чтобы задать метод поиска градиента быстрейшего спуска, имеющий до 50 итераций.
opt.SearchMethod = 'grad';
opt.SearchOptions.MaxIterations = 50;Найдите установившуюся рабочую точку с помощью заданных опций.
[X,U] = findop(M,'steady',1,1,opt);Оцените нелинейную модель ARX.
load iddata7;
M = nlarx(z7,[4 3*ones(1,2) 2*ones(1,2)]);Найдите, что установившаяся рабочая точка, где введено 1 установлена в 1 и ввела 2, неограниченно. Исходным предположением для выходного значения является 2.
[X,U,R] = findop(M,'steady',[1 NaN],2);Отобразите сводный отчет.
disp(R);
SearchMethod: 'auto'
WhyStop: 'Near (local) minimum, (norm(g) < tol).'
Iterations: 11
FinalCost: 0
FirstOrderOptimality: 0
SignalLevels: [1x1 struct]
Загрузите данные об оценке и оцените нелинейную модель ARX.
load twotankdata;
z = iddata(y,u,1);
M = nlarx(z,[4 3 1]);Найдите снимок состояния симуляции после 10 секунд, приняв начальные состояния нуля.
[X,U] = findop(M,'snapshot',10,z);Загрузите данные об оценке и оцените нелинейную модель ARX.
load twotankdata;
z = iddata(y,u,1);
M = nlarx(z,[4 3 1]);Создайте вектор начального состояния. Первые четыре состояния соответствуют задержанным выходным значениям, и итоговые три состояния соответствуют задержанным входным параметрам.
X0 = [2;2;2;2;5;5;5];
Найдите снимок состояния симуляции после 10 секунд с помощью заданных начальных состояний.
[X,U] = findop(M,'snapshot',10,z,X0);sys — Nonlinear ARXidnlarxНелинейная модель ARX, заданная как объект idnlarx.
InputLevel — Установившийся уровень на входеУстановившийся уровень на входе для вычисления рабочей точки, заданной как вектор. Длина InputLevel должна равняться количеству входных параметров, заданных в sys.
Алгоритм оптимизации принимает, что конечные значения в InputLevel являются зафиксированными входными значениями. Используйте NaN, чтобы задать неизвестные входные сигналы с исходными предположениями 0. Минимальные и максимальные границы для всех входных параметров имеют значения по умолчанию -Inf и +Inf соответственно.
OutputLevel — Установившийся уровень на выходеУстановившийся уровень на выходе для вычисления рабочей точки, заданной как вектор. Длина OutputLevel должна равняться количеству выходных параметров, заданных в sys.
Значения в OutputLevel указывают на исходные предположения для алгоритма оптимизации. Используйте NaN, чтобы задать неизвестные выходные сигналы с исходными предположениями 0. Минимальные и максимальные границы для всех выходных параметров имеют значения по умолчанию -Inf и +Inf соответственно.
spec — Спецификации рабочей точкиoperspecСпецификации рабочей точки, такие как минимальные и максимальные ограничения ввода/вывода и известные входные параметры, заданные как anoperspec объект.
T Время снимка состояния рабочей точкиВремя снимка состояния рабочей точки, заданное как положительная скалярная величина. Значение T должно быть в области значений [T0, N *Ts], где N является количеством входных выборок, Ts является шагом расчета, и T0 является входным временем начала (Uin.Tstart).
Uin — Создайте снимки вход симуляцииiddata | матрицаСоздайте снимки вход симуляции, заданный как одно из следующего:
Объект iddata временного интервала с шагом расчета и входным размером, который совпадает с sys.
Матрица со столькими же столбцов сколько там вводится каналы. Если матрица имеет строки N, входные данные принят, чтобы соответствовать временному вектору (1:N)*sys.Ts.
X0 Начальные состоянияНачальные состояния симуляции, заданной как вектор-столбец с размером, равняются количеству состояний в sys. X0 обеспечивает начальные условия в то время соответствие первой входной выборке (Uin.Start, если Uin является объектом iddata или sys.Ts, если Uin является двойной матрицей).
Для получения дополнительной информации о состояниях модели idnlarx, см. Определение idnlarx состояний.
Опции Параметры поиска рабочей точкиfindopOptions установленаУстановлены параметры поиска рабочей точки, заданные как опция findopOptions.
X Значения состояния рабочей точкиЗначения состояния рабочей точки, возвращенные как вектор-столбец длины, равняются количеству образцовых состояний.
U Входные значения рабочей точкиВходные значения рабочей точки, возвращенные как вектор-столбец длины, равняются количеству входных параметров.
Report — Сводные данные результата поискаСводный отчет результата поиска, возвращенный как структура со следующими полями:
| Поле | Описание |
|---|---|
SearchMethod | Метод поиска используется для итеративной оценки параметра. Смотрите SearchMethod в findopOptions для получения дополнительной информации. |
WhyStop | Условие завершения алгоритма поиска. |
Iterations | Количество итераций оценки выполняется. |
FinalCost | Окончательное значение целевой функции минимизации (сумма квадратичных невязок). |
FirstOrderOptimality | - норма поискового вектора градиента, когда алгоритм поиска останавливается. |
SignalLevels | Структура, содержащая поля Input и Output, которые являются уровнями сигнала ввода и вывода рабочей точки соответственно. |
findop вычисляет рабочую точку из установившихся спецификаций рабочей точки или в снимке состояния симуляции.
Чтобы вычислить установившуюся рабочую точку, вызовите findop с помощью любого из следующих синтаксисов:
[X,U] = findop(sys,'steady',InputLevel,OutputLevel) [X,U] = findop(sys,spec)
Чтобы вычислить состояния, X, и вход, U, установившейся рабочей точки, findop минимизирует норму ошибки e (t) = y (t)-f (x (t), u (t)), где:
f является средством оценки нелинейности.
u (t) является входом.
x (t) является образцовым состоянием.
y (t) является образцовый вывод.
Можно задать алгоритм поиска и параметры поиска с помощью набора опции findopOptions.
Алгоритм использует следующие независимые переменные для минимизации:
Неизвестные (незаданные) уровни входного сигнала
Уровни выходного сигнала
Поскольку состояния модели idnlarx являются задержанными выборками переменных ввода и вывода, значения состояния являются постоянными значениями соответствующих установившихся вводов и выводов. Для получения дополнительной информации об определении нелинейных состояний модели ARX, см. Определение idnlarx состояний.
Когда вы используете синтаксис [X,U] = findop(sys,'snapshot',T,Uin,X0), алгоритм моделирует образцовый вывод до времени снимка состояния, T. Во время снимка состояния алгоритм передает выборки ввода и вывода команде data2state, чтобы сопоставить эти значения с вектором текущего состояния.
Для основанных на снимке состояния вычислений findop не выполняет числовую оптимизацию.
Поддержка параллельных вычислений доступна для оценки с помощью метода поиска lsqnonlin (требует Optimization Toolbox™). Чтобы включить параллельные вычисления, используйте findopOptions, установите SearchMethod на 'lsqnonlin' и установите SearchOptions.Advanced.UseParallel на true.
Например:
opt = findopOptions(idnlarx);
opt.SearchMethod = 'lsqnonlin';
opt.SearchOptions.Advanced.UseParallel = true;
data2state | findopOptions | idnlarx | idnlarx/operspec | idnlhw/findop | sim
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.