В этом примере показано, как спроектировать контроллер положения головки чтения/записи жесткого диска компьютера с использованием классических методов управления.

Используя законы Ньютона, смоделировать головку чтения/записи, используя следующее дифференциальное уравнение:

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

Укажите физические константы модели, чтобы:




J = 0.01; C = 0.004; K = 10; Ki = 0.05;
Определите передаточную функцию с помощью этих констант.
num = Ki; den = [J C K]; H = tf(num,den)
H =
0.05
-----------------------
0.01 s^2 + 0.004 s + 10
Continuous-time transfer function.
Для создания цифрового контроллера, который обеспечивает точное позиционирование головки считывания/записи, сначала дискретизируйте установку непрерывного времени.
Укажите время выборки.
Ts = 0.005;
Дискретизируйте модель. Так как контроллер будет иметь цифроаналоговый преобразователь (с удержанием нулевого порядка), подключенный к его входу, используйте c2d с помощью команды 'zoh' способ дискретизации.
Hd = c2d(H,Ts,'zoh')
Hd = 6.233e-05 z + 6.229e-05 ----------------------- z^2 - 1.973 z + 0.998 Sample time: 0.005 seconds Discrete-time transfer function.
Сравните графики Боде моделей непрерывного и дискретного времени.
bodeplot(H,'-',Hd,'--') legend('Continuous-time','Discrete-time')

Чтобы проанализировать дискретизированную систему, постройте график ее ответа на шаг.
stepplot(Hd)

Ступенчатая реакция имеет значительное колебание, что, скорее всего, связано с затуханием света. Проверьте демпфирование полюсов системы с разомкнутым контуром.
damp(Hd)
Pole Magnitude Damping Frequency Time Constant
(rad/seconds) (seconds)
9.87e-01 + 1.57e-01i 9.99e-01 6.32e-03 3.16e+01 5.00e+00
9.87e-01 - 1.57e-01i 9.99e-01 6.32e-03 3.16e+01 5.00e+00
Как и ожидалось, полюса имеют световое эквивалентное демпфирование и находятся вблизи единичной окружности. Поэтому необходимо спроектировать компенсатор, увеличивающий демпфирование в системе.
Простейший компенсатор - коэффициент усиления без полюсов или нулей. Попробуйте выбрать соответствующий коэффициент усиления обратной связи с помощью метода root locus. Локус корня отображает траектории полюсов с замкнутым контуром как функцию коэффициента усиления обратной связи.
rlocus(Hd)

Полюса быстро покидают единичный круг и идут нестабильно. Поэтому необходимо ввести в систему некоторый свинец.
Определите компенсатор выводов с нулем
в и полюсом в.

D = zpk(0.85,0,1,Ts);
Соответствующая модель с разомкнутым контуром представляет собой последовательное подключение компенсатора и установки.

oloop = Hd*D
oloop =
6.2328e-05 (z+0.9993) (z-0.85)
------------------------------
z (z^2 - 1.973z + 0.998)
Sample time: 0.005 seconds
Discrete-time zero/pole/gain model.
Чтобы увидеть, как компенсатор выводов влияет на частотную характеристику с разомкнутым контуром, сравните графики Боде Hd и oloop.
bodeplot(Hd,'--',oloop,'-') legend('Plant','Plant plus lead compensator')

Компенсатор добавляет свинец к системе, которая сдвигает фазовый отклик вверх в частотном диапазоне.
Проверьте поведение системных полюсов с замкнутым контуром, используя график корневого локуса. Установите пределы обоих x-axis и y-axis из -1 кому 1.
rlocus(oloop) zgrid xlim([-1 1]) ylim([-1 1])

Полюса с замкнутым контуром остаются в пределах единичной окружности в течение некоторого времени.
Чтобы создать маркер данных для графика, щелкните кривую корневого локуса. Найдите точку на кривой, в которой демпфирование является наибольшим, перетаскивая маркер. Максимальное демпфирование 0,782 соответствует коэффициенту усиления обратной связи 4.07e+03.

Чтобы проанализировать эту конструкцию, сначала определите систему с замкнутым контуром, которая состоит из системы с разомкнутым контуром с коэффициентом усиления обратной связи, равным 4.07e+03.

k = 4.07e+03; cloop = feedback(oloop,k);
Постройте график ответа на шаг с замкнутым контуром.
stepplot(cloop)

Этот ответ зависит от уставки замкнутого контура. Показанная здесь относительно быстрая и оседает примерно за 0,06 секунды. Следовательно, система дисковода с замкнутым контуром имеет время поиска 0,06 секунды. Хотя это время поиска относительно медленно по современным стандартам, вы также начали с слегка затухающей системы.
Рекомендуется изучить надежность конструкции. Для этого вычислите значения коэффициента усиления и запаса по фазе для системы. Во-первых, сформировать разомкнутую систему единичной обратной связи путем последовательного соединения компенсатора, установки и коэффициента усиления обратной связи.
olk = k*oloop;
Затем вычислите поля для этой модели с разомкнутым контуром.
[Gm,Pm,Wcg,Wcp] = margin(olk)
Gm =
3.8360
Pm =
43.3068
Wcg =
296.7978
Wcp =
105.4680
Эта команда возвращает запас усиления, Gm, запас по фазе Pmи их соответствующие перекрестные частоты, Wcg и Wcp.
Преобразуйте запас усиления в дБ.
20*log10(Gm)
ans = 11.6775
Поля также можно отобразить графически.
margin(olk)

Эта конструкция является надежной и может допускать увеличение коэффициента усиления 11-dB или 40-градусное отставание фазы в системе с разомкнутым контуром без нестабильности. Продолжая этот процесс проектирования, вы можете найти компенсатор, который стабилизирует систему с разомкнутым контуром и еще больше сокращает время поиска.