Оценка нелинейных параметров модели серого ящика
Загрузка данных.
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).
init_sys
- Построенная нелинейная модель серого ящикаidnlgrey
объект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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.