Проект контроллера головки чтения/записи жесткого диска

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

Создайте модель головки чтения/записи

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

$$J\frac{{{d^2}\theta }}{{d{t^2}}} + C\frac{{d\theta }}{{dt}} + K\theta = {K_i}i$$

Вот,

  • $J$ - инерция сборки головки.

  • $C$ - вязкий коэффициент демпфирования подшипников.

  • $K$ является возврат коэффициента упругости.

  • $K_i$ - крутящий момент двигателя, константа.

  • $\theta$ - угловое положение головы.

  • $i$ - вход ток.

Принимая преобразование Лапласа, передаточная функция от$i$ до$\theta$ является

$$H(s) = \frac{{{K_i}}}{{J{s^2} + Cs + K}}.$$

Задайте физические константы модели, такие что:

  • $J = 0.01\;kgm^2$

  • $C = 0.004\;Nm/(rad/sec)$

  • $K = 10\;Nm/rad$

  • $K_i = 0.05\;Nm/rad$

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    

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

Добавьте коэффициент усиления компенсатора

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

rlocus(Hd)

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

Добавление ведущей сети

Задайте опережающий компенсатор с нулем на$\alpha = -0.85$ и полюсом на.$b = 0$

$$D(z) = \frac{{z + \alpha }}{{z + b}}$$

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')

Компенсатор добавляет в систему вывод, который смещает фазовый отклик вверх в частотной области значений.$\omega > 10$

Исследуйте поведение полюсов системы с обратной связью с помощью корневого годографа графика. Установите пределы обоих x-ось и y-ось от -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-градусную задержку фазы в системе с разомкнутым контуром, не становясь нестабильной. Продолжая этот процесс проекта, вы можете найти компенсатор, который стабилизирует систему без разомкнутого контура и сокращает время поиска дальше.

См. также

| | |