Активное управление вибрацией в трехэтажном создании

Этот пример использует systune управлять сейсмическими колебаниями в трехэтажном создании.

Фон

Этот пример рассматривает систему управления Активного массового драйвера (AMD) для изоляции вибрации в трехэтажной экспериментальной структуре. Эта настройка используется, чтобы оценить методы системы управления для увеличения безопасности структур гражданского строительства во время землетрясений. Структура состоит из трех историй с активным массовым драйвером на верхнем этаже, который используется, чтобы ослабить наземные воздействия. Это приложение одолжено от "Эталонных тестовых задач в Структурном Управлении: Первая часть - Активная Массовая Система Драйвера", Б.Ф. Спенсер младший, С.Дж. Дайк и Х.С. Деоскэр, Землетрясение Техническая и Структурная Динамика, 27 (11), 1998, стр 1127-1139.

Рисунок 1: активная массовая система управления драйвера

Объект P модель с 28 состояниями со следующими переменными состояния:

  • x(i): смещение i-ого пола относительно земли (cm)

  • xm: смещение AMD относительно 3-го этажа (cm)

  • xv(i): скорость i-ого пола относительно земли (cm/s)

  • xvm: скорость AMD относительно земли (cm/s)

  • xa(i): ускорение i-ого пола относительно земли (g)

  • xam: ускорение AMD относительно земли (g)

  • d(1)=x(1), d(2)=x(2)-x(1), d(3)=x(3)-x(2): дрейфы межистории

Входные параметры являются наземным ускорением xag (в g) и управляющий сигнал u. Мы используем 1 г = 981 cm/s^2.

load ThreeStoryData
size(P)
State-space model with 20 outputs, 2 inputs, and 28 states.

Модель ускорения землетрясения

Ускорение землетрясения моделируется, когда процесс белого шума проник в фильтр Канаи-Тэджими.

zg = 0.3;
wg = 37.3; 
S0 = 0.03*zg/(pi*wg*(4*zg^2+1));
Numerator = sqrt(S0)*[2*zg*wg wg^2];
Denominator = [1 2*zg*wg wg^2];

F = sqrt(2*pi)*tf(Numerator,Denominator);
F.InputName = 'n';   % white noise input

bodemag(F)
grid
title('Kanai-Tajimi filter')

Figure contains an axes object. The axes object with title From: n To: Out(1) contains an object of type line. This object represents F.

Характеристики разомкнутого контура

Эффект землетрясения на неконтролируемой структуре может быть симулирован путем введения входа n белого шума в комбинацию фильтра объекта. Можно также использовать covar непосредственно вычислить стандартные отклонения получившихся дрейфов межистории и ускорений.

% Add Kanai-Tajimi filter to the plant
PF = P*append(F,1); 

% Standard deviations of open-loop drifts
CV = covar(PF('d','n'),1);
d0 = sqrt(diag(CV));

% Standard deviations of open-loop acceleration 
CV = covar(PF('xa','n'),1);
xa0 = sqrt(diag(CV));

% Plot open-loop RMS values 
clf
bar([d0; xa0])
title('Drifts and accelerations for uncontrolled structure')
ylabel('Standard deviations')
set(gca,'XTickLabel',{'d(1)','d(2)','d(3)','xa(1)','xa(2)','xa(3)'})

Figure contains an axes object. The axes object with title Drifts and accelerations for uncontrolled structure contains an object of type bar.

Структура управления и конструктивные требования

Структура управления изображена в рисунке 2.

Рисунок 2: структура управления

Контроллер C измерения использования yxa и yxam из xa и xam сгенерировать управляющий сигнал u. Физически, управление u электрический ток, управляющий гидравлическим приводом, который перемещает массы AMD. Конструктивные требования включают:

  • Минимизация межистории дрейфует d(i) и ускорения xa(i)

  • Трудные ограничения на усилие по управлению в терминах массового смещения xm, массовое ускорение xam, и управляйте усилием u

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

% Soft requirements on drifts and accelerations 
Soft = [...
   TuningGoal.Variance('n','d(1)',d0(1)) ; ...
   TuningGoal.Variance('n','d(2)',d0(2)) ; ...
   TuningGoal.Variance('n','d(3)',d0(3)) ; ...
   TuningGoal.Variance('n','xa(1)',xa0(1)) ; ...
   TuningGoal.Variance('n','xa(2)',xa0(2)) ; ...
   TuningGoal.Variance('n','xa(3)',xa0(3))];

% Hard requirements on control effort
Hard = [...
   TuningGoal.Variance('n','xm',3) ; ...
   TuningGoal.Variance('n','xam',2) ; ...
   TuningGoal.Variance('n','u',1)];

Контроллер, настраивающийся

systune позволяет вам настроить фактически любую структуру контроллера, удовлетворяющую этим требованиям. Сложность контроллера может быть настроена методом проб и ошибок, начиная с достаточно старшего разряда, чтобы измерить пределы эффективности, затем уменьшая порядок, пока вы не наблюдаете значимого ухудшения эффективности. В данном примере начните с контроллера 5-го порядка без проходного термина.

C = tunableSS('C',5,1,4);
C.D.Value = 0;
C.D.Free = false;   % Fix feedthrough to zero

Создайте настраиваемую модель T0 из системы с обратной связью рисунка 2 и мелодии параметры контроллера с systune.

% Build tunable closed-loop model 
T0 = lft(PF,C); 

% Tune controller parameters
[T,fSoft,gHard]  = systune(T0,Soft,Hard);
Final: Soft = 0.601, Hard = 0.99915, Iterations = 213

Сводные данные указывают, что мы достигли полного сокращения 40% в стандартных отклонениях (Soft = 0.6) при встрече всех трудных ограничений (Hard < 1).

Валидация

Вычислите стандартные отклонения дрейфов и ускорений для управляемой структуры и сравните с неконтролируемыми результатами. Система управления AMD дает к значительному сокращению и дрейфа и ускорения.

% Standard deviations of closed-loop drifts
CV = covar(T('d','n'),1);
d = sqrt(diag(CV));

% Standard deviations of closed-loop acceleration 
CV = covar(T('xa','n'),1);
xa = sqrt(diag(CV));

% Compare open- and closed-loop values
clf
bar([d0 d; xa0 xa])
title('Drifts and accelerations')
ylabel('Standard deviations')
set(gca,'XTickLabel',{'d(1)','d(2)','d(3)','xa(1)','xa(2)','xa(3)'})
legend('Uncontrolled','Controlled','location','NorthWest')

Figure contains an axes object. The axes object with title Drifts and accelerations contains 2 objects of type bar. These objects represent Uncontrolled, Controlled.

Симулируйте ответ 3 структур повествования к подобному землетрясению возбуждению и в разомкнутом контуре и в замкнутом цикле. Ускорение землетрясения моделируется как процесс белого шума, окрашенный фильтром Канаи-Тэджими.

% Sampled white noise process
rng('default')
dt = 1e-3; 
t = 0:dt:500;
n = randn(1,length(t))/sqrt(dt); % white noise signal

% Open-loop simulation
ysimOL = lsim(PF(:,1), n , t); 

% Closed-loop simulation 
ysimCL = lsim(T, n , t); 

% Drifts
clf
subplot(3,1,1) 
plot(t,ysimOL(:,13),'b',t,ysimCL(:,13),'r')
grid
title('Inter-story drift d(1) (blue=open loop, red=closed loop)')
ylabel('cm')
subplot(3,1,2)
plot(t,ysimOL(:,14),'b',t,ysimCL(:,14),'r')
grid 
title('Inter-story drift d(2)')
ylabel('cm')
subplot(3,1,3)
plot(t,ysimOL(:,15),'b',t,ysimCL(:,15),'r')
grid 
title('Inter-story drift d(3)')
ylabel('cm')

Figure contains 3 axes objects. Axes object 1 with title Inter-story drift d(1) (blue=open loop, red=closed loop) contains 2 objects of type line. Axes object 2 with title Inter-story drift d(2) contains 2 objects of type line. Axes object 3 with title Inter-story drift d(3) contains 2 objects of type line.

Ускорения

clf
subplot(3,1,1)
plot(t,ysimOL(:,9),'b',t,ysimCL(:,9),'r')
grid
title('Acceleration of 1st floor xa(1) (blue=open loop, red=closed loop)')
ylabel('g')
subplot(3,1,2)
plot(t,ysimOL(:,10),'b',t,ysimCL(:,10),'r')
grid
title('Acceleration of 2nd floor xa(2)')
ylabel('g')
subplot(3,1,3)
plot(t,ysimOL(:,11),'b',t,ysimCL(:,11),'r')
grid
title('Acceleration of 3rd floor xa(3)')
ylabel('g')

Figure contains 3 axes objects. Axes object 1 with title Acceleration of 1st floor xa(1) (blue=open loop, red=closed loop) contains 2 objects of type line. Axes object 2 with title Acceleration of 2nd floor xa(2) contains 2 objects of type line. Axes object 3 with title Acceleration of 3rd floor xa(3) contains 2 objects of type line.

Контрольные переменные

clf
subplot(3,1,1)
plot(t,ysimCL(:,4),'r')
grid 
title('AMD position xm')
ylabel('cm') 
subplot(3,1,2)
plot(t,ysimCL(:,12),'r')
grid 
title('AMD acceleration xam')
ylabel('g') 
subplot(3,1,3)
plot(t,ysimCL(:,16),'r')
grid 
title('Control signal u')

Figure contains 3 axes objects. Axes object 1 with title AMD position xm contains an object of type line. Axes object 2 with title AMD acceleration xam contains an object of type line. Axes object 3 with title Control signal u contains an object of type line.

Постройте среднеквадратичное значение (RMS) симулированных сигналов и для управляемых и для неконтролируемых сценариев. Принимая эргодичность, эффективность RMS может быть оценена от одной достаточно долгой симуляции процесса и совпадает со стандартными отклонениями, вычисленными ранее. Действительно график RMS тесно совпадает с графиком стандартного отклонения, полученным ранее.

clf
bar([std(ysimOL(:,13:15)) std(ysimOL(:,9:11)) ; ...
   std(ysimCL(:,13:15)) std(ysimCL(:,9:11))]')
title('Drifts and accelerations')
ylabel('Simulated RMS values')
set(gca,'XTickLabel',{'d(1)','d(2)','d(3)','xa(1)','xa(2)','xa(3)'})
legend('Uncontrolled','Controlled','location','NorthWest')

Figure contains an axes object. The axes object with title Drifts and accelerations contains 2 objects of type bar. These objects represent Uncontrolled, Controlled.

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

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

| |

Похожие темы