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

В этом примере показано, как выполнить онлайновую оценку параметра для подбора кривой линии с помощью рекурсивных алгоритмов оценки в командной строке 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=950s. Шаг расчета является 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=50s до t=950s.

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

Выход сгенерирован с вышеупомянутыми истинными значениями 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 команду оценки, чтобы создать Системный объект для онлайновой оценки параметра. Вы затем используете команду шага, чтобы обновить оценки параметра, x (t), в каждый такт на основе H (t) и y (t).

Вы задаете следующие свойства recursiveLS System Object:

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

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

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

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

  • InitialParameterCovariance: Ваша оценка неопределенности в начальном предположении параметра. Установите его на маленькое значение, 1% абсолютного значения начальных параметров, если вы уверены в начальных предположениях параметра. Дополнительный, но рекомендуемый, особенно когда вы задаете InitialParameters. Это только используется с методами оценки ForgettingFactor и 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)) пара к средству оценки за один раз. Вызовите команду шага, чтобы обновить параметры с каждой новой парой. Адаптация параметра включена только, когда вход 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): Второй выходной аргумент метода шага yˆ(t)=H(t)xˆ(t). Относительная и абсолютная погрешность между y и yˆ меры совершенства подгонки.

  2. Оценка ковариации параметра Pˆ(t): Это доступно с алгоритмами ForgettingFactor и KalmanFilter. Это хранится в свойстве ParameterCovarianceMatrix средства оценки. Диагонали 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.1bar. Относительные погрешности ниже 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

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

| | | | | | | | | | |

Похожие темы