Оценка нелинейных параметров серой модели
Загрузить данные.
load(fullfile(matlabroot,'toolbox','ident','iddemos','data','twotankdata')); z = iddata(y,u,0.2,'Name','Two tanks');
Данные содержат 3000 выборок данных ввода-вывода двухбачковой системы. Входной сигнал - это напряжение, подаваемое на насос, а выходной сигнал - это уровень жидкости в нижнем резервуаре.
Укажите файл, описывающий структуру модели для двухбачковой системы. Файл определяет производные состояния и выходные данные модели как функцию времени, состояний, входных данных и параметров модели.
FileName = 'twotanks_c';Укажите порядки моделей [ny nu nx].
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 метод поиска (требуется 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.