В этом примере показано, как спроектировать компьютерный контроллер положения комбинированной головки жесткого диска, использующий классические методы системы управления.
Используя законы Ньютона, смоделируйте комбинированную головку с помощью следующего дифференциального уравнения:
Здесь,
инерция блока головок.
вязкий коэффициент демпфирования подшипников.
коэффициент упругости возврата.
постоянный крутящий момент двигателя.
угловое положение головы.
текущий вход.
Беря Преобразование Лапласа, передаточная функция от к
Задайте физические константы модели, такой что:
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)
Полюса быстро оставляют модульный круг и идут нестабильные. Поэтому необходимо ввести некоторый вывод системе.
Задайте ведущий компенсатор с нулем в и полюсом в.
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
- ось и 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.3069 Wcg = 296.7989 Wcp = 105.4679
Эта команда возвращает запас по амплитуде, Gm
, запас по фазе Pm
, и их соответствующие частоты среза, Wcg
и Wcp
.
Преобразуйте запас по амплитуде в дБ.
20*log10(Gm)
ans = 11.6776
Можно также отобразить поля графически.
margin(olk)
Этот проект устойчив и может терпеть увеличение с 11 усилениями дБ или задержку фазы с 40 степенями в системе разомкнутого контура, не идя нестабильный. Путем продолжения этого процесса проектирования можно смочь найти компенсатор, который стабилизирует систему разомкнутого контура и уменьшает время поиска далее.