Оцените нелинейные параметры модели серого ящика
Загрузка данных.
load(fullfile(matlabroot,'toolbox','ident','iddemos','data','twotankdata')); z = iddata(y,u,0.2,'Name','Two tanks');
Данные содержат 3 000 выборок данных ввода - вывода двух систем бака. Вход является напряжением, применился к насосу, и выход является уровнем жидкости более низкого бака.
Задайте файл, описывающий структуру модели для системы 2D бака. Файл задает производные состояния и выходные параметры модели как функция времени, состояний, входных параметров и параметров модели.
FileName = 'twotanks_c';
Задайте порядки модели [число выходов число входов число переменных состояния].
Order = [1 1 2];
Задайте начальные параметры (Np = 6).
Parameters = {0.5;0.0035;0.019; ...
9.81;0.25;0.016};
Задайте начальные начальные состояния.
InitialStates = [0;0.1];
Задайте как непрерывная система.
Ts = 0;
Создайте idnlgrey
объект модели.
nlgr = idnlgrey(FileName,Order,Parameters,InitialStates,Ts, ... 'Name','Two tanks');
Установите некоторые параметры как постоянные.
nlgr.Parameters(1).Fixed = true; nlgr.Parameters(4).Fixed = true; nlgr.Parameters(5).Fixed = true;
Оцените параметры модели.
nlgr = nlgreyest(z,nlgr);
Создайте набор опции оценки для nlgreyest
просмотреть прогресс оценки и установить максимальные шаги итерации на 50.
opt = nlgreyestOptions;
opt.Display = 'on';
opt.SearchOptions.MaxIterations = 50;
Загрузка данных.
load(fullfile(matlabroot,'toolbox','ident','iddemos','data','dcmotordata')); z = iddata(y,u,0.1,'Name','DC-motor');
Данные от линейного двигателя постоянного тока с одним входом (напряжение) и два выходных параметров (угловое положение и скорость вращения). Структура модели задана dcmotor_m.m
файл.
Создайте нелинейную модель серого ящика.
file_name = 'dcmotor_m'; Order = [2 1 2]; Parameters = [1;0.28]; InitialStates = [0;0]; init_sys = idnlgrey(file_name,Order,Parameters,InitialStates,0, ... 'Name','DC-motor');
Оцените параметры модели с помощью опций оценки.
sys = nlgreyest(z,init_sys,opt);
data
— Данные об области времениiddata
объектДанные об оценке временного интервала в виде iddata
объект. data
имеет те же размерности ввода и вывода как init_sys
.
Если вы задаете InterSample
свойство data
как 'bl'
(ограниченный полосой) и модель непрерывное время, программное обеспечение обрабатывает данные как задержку первого порядка (foh) интерполированный для оценки.
options
— Опции оценкиnlgreyestOptions
опция установленаОпции оценки для нелинейной идентификации модели серого ящика в виде nlgreyestOptions
опция установлена.
sys
— Предполагаемая нелинейная модель серого ящикаidnlgrey
объектНелинейная модель серого ящика с той же структурой как init_sys
, возвращенный как idnlgrey
объект. Параметры sys
оцениваются таким образом что ответ sys
совпадает с выходным сигналом в данных об оценке.
Информация о результатах оценки и используемых опциях хранится в Report
свойство модели. Report
имеет следующие поля:
Сообщите о поле | Описание | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Status | Сводные данные состояния модели, которое указывает, была ли модель создана конструкцией или получена оценкой. | ||||||||||||||||||
Method | Имя решателя симуляции и метода поиска используется во время оценки. | ||||||||||||||||||
Fit | Количественная оценка оценки, возвращенной как структура. Смотрите Функцию потерь и Метрики качества Модели для получения дополнительной информации об этих метриках качества. Структура имеет следующие поля:
| ||||||||||||||||||
Parameters | Ориентировочные стоимости параметров модели. Структура со следующими полями:
| ||||||||||||||||||
OptionsUsed | Набор опции используется в оценке. Если никакие пользовательские опции не были сконфигурированы, это - набор опций по умолчанию. Смотрите | ||||||||||||||||||
RandState | Состояние потока случайных чисел в начале оценки. | ||||||||||||||||||
DataUsed | Атрибуты данных, используемых в оценке — Структура со следующими полями:
| ||||||||||||||||||
Termination | Условия завершения для итеративного поиска используются в ошибочной минимизации предсказания. Структура со следующими полями:
Для методов оценки, которые не требуют числовой оптимизации поиска, |
Для получения дополнительной информации см. Отчет Оценки.
Поддержка параллельных вычислений доступна для оценки с помощью lsqnonlin
метод поиска (требует Optimization Toolbox™). Чтобы включить параллельные вычисления, используйте nlgreyestOptions
, установите SearchMethod
к 'lsqnonlin'
, и набор SearchOptions.Advanced.UseParallel
к true
.
Например:
opt = nlgreyestOptions;
opt.SearchMethod = 'lsqnonlin';
opt.SearchOptions.Advanced.UseParallel = true;
aic
| fpe
| goodnessOfFit
| idnlgrey
| nlgreyestOptions
| pem
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.