Линейная аппроксимация с оперативной рекурсивной оценкой методом наименьших квадратов

Этот пример показывает, как выполнить онлайн-оценку параметра для линейной подгонки с помощью рекурсивных алгоритмов оценки в командной строке MATLAB. Вы захватываете изменяющееся во времени поведение вход-выход гидравлического клапана непрерывно переменной трансмиссии.

Физическая система

Система является непрерывно переменной коробкой передач (CVT), управляемой гидравлическим клапаном, вдохновленной ссылкой [1]. Давление клапана соединяется с CVT, что позволяет ему изменять отношение скоростей и передавать крутящий момент от двигателя к колесам. Поведение клапана на входе-выходе может быть аппроксимировано:

y(t)=k(t)u(t)+b(t)for-b(t)k(t)<u1

Здесь t - текущее время, y (t) - давление клапана в баре, u (t) - бесчисленный вход в области значений [0, 1]. Условие-bk<u - мертвая полоса клапана.

Наклон, k (t) и смещение, b (t), зависят от температуры системы. Они варьируются при прогреве системы от холодной до обычной рабочей температуры. Вы хотите оценить k (t) и b (t) на основе шумных измерений u (t) и y (t).

Данные

Истинные параметры наклона и смещения k (0) = 70 и b (0) = -15 в момент t = 0s. В t = 50s запускается двигатель. Параметры изменяются со временем, пока они не достигнут k (950) = 50 и b (950) = -13 в t = 950-х годах. Время дискретизации Ts = 0.1s

Содержимое входного сигнала u критически важно для оценки параметра. Рассмотрим случай, когда u, и, следовательно, y, является постоянным. Тогда существует бесконечно много значений k и b, которые удовлетворяют y = k u + b. u (t) должна постоянно возбуждать систему для успешной оценки k (t) и b (t). В этом примере вход u:

  • равен нулю от t = 0s до t = 50s.

  • имеет изменения шага 0,40, 0,45, 0,50, 0,55, 0,60, 0,55, 0,50, 0,45, 0,40 каждые 100, от t = 50 до t = 950.

  • Гауссову случайную переменную с нулевым средним, 0,02 стандартного отклонения добавляли на каждом временном шаге от t = 50 до t = 950 для обеспечения дополнительного возбуждения динамики системы в целях идентификации.

Выход генерируется с вышеупомянутыми истинными значениями k (t), b (t) вместе с входным сигналом u (t), используя y (t) = k (t) u (t) + b (t) + e (t). e (t), измерение шум, является Гауссовой случайной переменной с нулем средним и стандартным отклонением 0,05.

load LineFittingRLSExample u y k b t;
figure();
subplot(2,1,1);
plot(t,u);
ylabel('Input signal, u, [unitless]');
subplot(2,1,2);
plot(t,y);
ylabel('Valve pressure, y, [bar]');
xlabel('Time [s]');

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

Онлайн-оценка параметра с использованием рекурсивных наименьших квадратов

Запишите модель вход-выход клапана с помощью векторного обозначения:

y(t)=k(t)u(t)+b(t)+e(t)=[u(t)1][k(t)b(t)]T+e(t)=H(t)x(t)+e(t)

где H(t)=[u(t)1] является регрессорами и x=[k(t)b(t)]T - параметры, которые будут оценены. e (t) - неизвестный шум. Вы используете команду recursiveLS estimation, чтобы создать Системный объект для онлайн-оценки параметра. Затем вы используете команду step, чтобы обновить оценки параметров x (t) на каждом временном шаге, основанном на H (t) и y (t).

Вы задаете следующие свойства recursiveLS Системный Объект:

  • Количество параметров: 2.

  • EstimationMethod: 'FormettingFactor' (по умолчанию). Этот метод имеет только один скалярный параметр, FormettingFactor, который требует ограниченной предварительной информации относительно значений параметров.

  • FormettingFactor: 0.95. Ожидается, что параметры изменятся с течением времени, следовательно, менее 1. 11-λ=20 количество прошлых выборок данных, которые больше всего влияют на оценки.

  • InitialParameters: [70; -15], начальное предположение для значений параметров. Необязательно, но рекомендуется для уменьшения начальных переходных процессов.

  • InitialParameterCovariation: Ваша оценка неопределенности в исходном параметре угадает. Установите его на небольшое значение, 1% от абсолютного значения начальных параметров, если у вас есть доверие в начальных предположениях параметра. Необязательно, но рекомендуемо, особенно когда вы задаете InitialParameters. Это используется только с методами оценки FormettingFactor и KalmanFilter.

X = recursiveLS(2,... % 2=number of estimated parameters
    'EstimationMethod','ForgettingFactor',...
    'ForgettingFactor',0.95,...
    'InitialParameters',[70; -15],...
    'InitialParameterCovariance',[0.7 0.15]);

Этот пример моделирует оперативную операцию оценщика путем предоставления одной (y (t), H (t)) пары в оценщик за раз. Вызовите команду step, чтобы обновить параметры каждой новой пары. Адаптация параметра включена только, когда вход u находится вне мертвой полосы (u > 0,3).

theta = zeros(numel(u),2);
yHat = zeros(numel(u),1);
PHat = zeros(numel(u),2,2);
for kk=1:numel(u)
    % enable parameter estimation only when u is outside the dead-band
    if u(kk)>=0.3 
        X.EnableAdaptation = true();
    else
        X.EnableAdaptation = false();
    end
    [theta(kk,:),yHat(kk)] = step(X,y(kk),[u(kk) 1]); % get estimated parameters and output
    PHat(kk,:,:) = X.ParameterCovariance; % get estimated uncertainty in parameters
    % perform any desired tasks with the parameters
end

Предполагаемые параметры

Истинное и оцененное значения параметров:

figure();
subplot(2,1,1);
plot(t,theta(:,1),t,k); % Estimated and real slope, respectively
ylabel('Slope');
xlabel('Time');
ylim([49 71]);
legend('Estimated','Real','Location','Best');
subplot(2,1,2);
plot(t,theta(:,2),t,b); % Estimated and real offset, respectively
ylabel('Offset');
xlabel('Time');
ylim([-15.25 -12.75]);

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent Estimated, Real. Axes 2 contains 2 objects of type line.

Валидация предполагаемой модели

Оценщик предоставляет следующие два инструмента для оценки качества оценок параметра:

  1. Оценка выхода yˆ(t): Второй выходной аргумент метода step: yˆ(t)=H(t)xˆ(t). Относительная и абсолютная ошибка между y и yˆ - меры качества подгонки.

  2. Оценка параметра ковариации Pˆ(t): Это доступно с помощью алгоритмов FormettingFactor и KalmanFilter. Он хранится в свойстве ParameterCovariationMatrix оценщика. Диагонали Pˆ - предполагаемые отклонения параметров. Чем ниже, тем лучше.

Выходное измерение и его оценка, а также связанные абсолютные и относительные погрешности, когда двигатель включен:

engineOn = t>50 & t<950;
figure();
subplot(2,1,1);
absoluteError = y-yHat;
plot(t(engineOn),absoluteError(engineOn));
ylim([-0.15 0.15]);
ylabel('Abs. Error [bar]');
subplot(2,1,2);
relativeError = (y-yHat)./y;
plot(t(engineOn),relativeError(engineOn));
ylim([-0.025 0.025]);
ylabel('Rel. Error [unitless]');
xlabel('Time [s]');

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

Абсолютные ошибки составляют около 0,1 бар. Относительные погрешности ниже 2%. Обе величины малы.

Диагонали матрицы параметра ковариации, масштабированные отклонением невязок y(t)-yˆ(t), захватывайте отклонения оценок параметров. Квадратный корень дисперсий является стандартными отклонениями от оценок параметра.

noiseVariance = var(y(engineOn)-yHat(engineOn));
figure();
subplot(2,1,1);
hold on;
plot(t,sqrt(PHat(:,1,1)*noiseVariance));
ylim([0 1]);
ylabel('Std. dev. of slope k');
subplot(2,1,2);
plot(t,sqrt(PHat(:,2,2)*noiseVariance));
ylim([0 1]);
ylabel('Std. dev. of offset b');
xlabel('Time [s]');
hold on;

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

Стандартное отклонение наклона k колеблется около 0,7. Это мало относительно области значений значений k [50, 70]. Это дает доверие в оценках параметров. Аналогичная ситуация и со смещением b, которое находится в области значений [-15 -13].

Обратите внимание, что стандартные отклонения параметра также являются оценочными. Они основаны на предположении, что невязки y(t)-yˆ(t) белые. Это зависит от способа оценки, связанных с ним параметров, структуры оценочной модели и входного сигнала u. Различия между предполагаемой и фактической структурой модели, отсутствие стойкого входного возбуждения или нереалистичные настройки метода оценки могут привести к чрезмерно оптимистичным или пессимистичным оценкам неопределенности.

Сводные данные

Вы выполнили подгонку линии, используя рекурсивные наименьшие квадраты, чтобы захватить изменяющееся во времени поведение гидравлического клапана на входе и выходе. Вы оценили качество подгонки, рассмотрев два сигнала: ошибку между оцененным и измеренным выходом системы и ковариацией оценок.

Ссылки

[1] Готье, Жан-Филипп и Филипп Мишо. «Регулируемые RLS и DHOBE: адаптивный Feedforward для электромагнитного клапана». Технология систем управления, транзакции IEEE на 20.5 (2012): 1311-1318

См. также

| | | | | | | | | | |

Похожие темы