Основанная на машинном обучении идентификация системы 2D бака

В этом примере показано, как идентифицировать динамическую модель черного ящика нелинейной системы 2D бака.

Для этой системы, входа u(t) напряжение [V], применился к насосу, который генерирует приток в верхний бак. Потоки воды через отверстие в нижней части верхнего бака и заполняют более низкий бак. Выход y(t) из 2D бака система является уровнем жидкости [m] более низкого бака.

Пример использует результаты измерений, который содержит 3 000 выборок ввода - вывода системы 2D бака, сгенерированной с помощью шага расчета 0,2 секунд. Загрузите набор данных и создайте iddata объект.

load twotankdata
z1f = iddata(y,u,0.2,'Name','Two-tank system');

Этот набор данных также используется в следующих примерах.

Этот пример о моделировании черного ящика с помощью нелинейных моделей ARX с моделью ансамбля дерева регрессии. Поэтому никакое знание фактических физических законов не принято.

Модели ансамбля дерева регрессии являются непараметрическими моделями, которые структурированы как взвешенная комбинация деревьев множественной регрессии. Каждое дерево регрессии состоит из узлов решения и вершин. Узел решения представляет значение для атрибута протестированная (функция). Вершина представляет численное значение, сопоставленное решением [1]. Модели регрессии оцениваются рекурсивно путем разделения набора данных на прогрессивно меньшие компоненты. Объединение деревьев множественной регрессии улучшает прогнозирующую производительность моделей ансамбля дерева регрессии.

Предварительная Обработка Данных

Прежде, чем оценить модель, предварительно обработайте данные первым разделением его в данные об оценке и валидации. Затем отфильтруйте данные, чтобы удалить высокочастотный шум.

Разделите набор данных в два подмножества равного размера. Вы оцениваете модель с помощью набора данных z1 и подтвердите модель с помощью набора данных z2.

z1 = z1f(1:1500);
z2 = z1f(1501:3000);
plot(z1,z2)
legend('Estimation','Validation');

Из графика вы видите, что выходные данные имеют высокочастотный шум. Примените фильтр lowpass, чтобы удалить этот шум.

z1f = idfilt(z1,3,0.066902);
z2f = idfilt(z2,3,0.066902);

Удалите эффект начальных условий фильтра из данных путем обрезки точек исходных данных от каждого набора данных.

z1f = z1f(20:end);
z2f = z2f(20:end);

Отобразите на графике необработанные данные об оценке и соответствующие отфильтрованные данные

plot(z1(20:end),z1f)
legend('Estimation (unfiltered)','Estimation (filtered)',...
    'Location','best')

Отобразите на графике необработанные данные о валидации и соответствующие отфильтрованные данные

plot(z2(20:end),z2f)
legend('Validation (unfiltered)','Validation (filtered)',...
    'Location','best')  

Оцените и подтвердите модель

Создайте объект отображения ансамбля дерева решений с настройками по умолчанию. Можно оценить нелинейные модели ARX, которые используют эту нелинейность в качестве выходной функции. Используя это отображение объект требует программного обеспечения Statistics and Machine Learning Toolbox™.

ens = idTreeEnsemble;

Оцените нелинейную модель ARX с обоими регрессорами ввода и вывода.

mdl1 = nlarx(z1f,[30 30 0],ens);

Оцените нелинейную модель ARX с входными регрессорами только.

mdl2 = nlarx(z1f,[0 150 0],ens);

Сравните выходные параметры предполагаемых моделей с измеренными данными об оценке.

compare(z1f,mdl1,mdl2)

Сравните выходные параметры предполагаемых моделей с измеренными данными о валидации.

compare(z2f,mdl1,mdl2)

Смотрите также

|

Похожие темы