MATLAB+Simulink 8.0 (R2012b): проектирование и анализ систем контроля

№ 8’2014
PDF версия
Средства проектирования и анализа систем контроля в новейшей реализации матричной системы MATLAB+Simulink 8.0 (R2012b), появившейся на рынке осенью 2012 года, сосредоточены в пакетах расширения Control System Toolbox и Simulink Control Design. Эта статья описывает возможности таких пакетов расширения на большом числе демонстрационных примеров. Автор благодарит корпорацию The MathWorks Inc. за предоставленную систему MATLAB 8.0 + Simulink 8.0 (R2012b), использованную для подготовки данной серии статей.

Введение

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

Новейшая реализация пакета имеет то же наименование серии, что и система MATLAB, — R2012a. На рис. 1 представлено окно справки по этому пакету с перечнем его основных разделов.

Окно справки пакета Control System Toolbox

Рис. 1. Окно справки пакета Control System Toolbox

Как видно из рис. 1, данный пакет расширения состоит из следующих разделов:

  • Linear System Representation — модели представления линейных систем;
  • Basic Models — модели основных систем;
  • Model Interconnection — модель соединения и диаграммы;
  • Model Transformation — преобразования моделей;
  • Linear analysis — линейный анализ систем;
  • Control Design — проектирование контроля;
  • Matrix Computations — матричные операции.
Системы и основные функции систем пакета расширения Control System Toolbox

Рис. 2. Системы и основные функции систем пакета расширения Control System Toolbox

Системы и основные функции систем, входящие в пакет расширения Control System Toolbox, представлены на рис. 2. Система в Control System Toolbox характеризуется графической диаграммой. Ее типичный (но далеко не единственный) вид представлен на рис. 3.

Типичная диаграмма системы

Рис. 3. Типичная диаграмма системы

 

Основные характеристики линейных систем

Пакет Control System Toolbox работает с линейными системами. Наиболее часто используются системы single-input, single-output (SISO) — с одним входом и одним выходом следующего типа:

  • Basic Models — основные модели;
  • Tunable Models — перестраиваемые модели;
  • Models with Time Delays — модели с временной задержкой;
  • Model Attributes — модель атрибутов;
  • Model Arrays — модель массивов.

Системы SISO задаются своей передаточной характеристикой, указанной в операторной форме G(s) в виде отношения числителя (numerator) к знаменателю (denominator), например:

G(s) = s/(s2+3s+2).

Такая математическая модель системы на языке MATLAB создается следующими командами с применением функции задания передаточной характеристики tf:

>> num = [1 0];
>> den = [1 3 2];
>> G = tf(num,den);

Как видно, числитель и знаменатель задаются векторами коэффициентов операторной передаточной характеристики. Отметим еще три важные характеристики линейных систем sys:

  • Переходная step(sys)— реакция системы на единичный скачок.
  • Импульсная impulse(sys)— реакция системы на импульс единичной площади и стремящейся к 0 длительностью.
  • Диаграмма Боде bode(sys)— логарифмическая амплитудно-частотная и фазочас-тотная характеристики коэффициента передачи системы — отношения операторного выражения для выходного сигнала системы к операторному выражению для входного сигнала.

Эти характеристики (как и диаграмму Найквиста в комплексной плоскости) строит следующая программа, заданная в редакторе программного кода MATLAB (рис. 4):

Основные характеристики линейной системы: переходная, импульсная, амплитудно- и фазочастотная, Найквиста

Рис. 4. Основные характеристики линейной системы: переходная, импульсная, амплитудно- и фазочастотная, Найквиста

sys = tf([8 18 32],[1 6 14 24]);
subplot(221); step(sys); subplot(222), impulse(sys)
subplot(223); bode(sys), grid; subplot(224);nyquist(sys), grid;

Если задана некоторая временная зависимость сигнала, то нетрудно найти реакцию на u‑сигнал системы (рис. 5):

Сигнал и реакция на него системы

Рис. 5. Сигнал и реакция на него системы

t = 0:0.01:5; figure
u = exp(-t).*sin(t); lsimplot(sys,u,t)

Одними из широко распространенных устройств, описываемых линейными системами контроля второго порядка, являются RLC-цепи с одной индуктивностью и емкостью. Для оценки поведения таких цепей создано окно анализа с графическим интерфейсом пользователя GUI, имитирующим лабораторную работу по RLC-цепям. Для его вызова достаточно исполнить в окне командного режима MATLAB команду:

>> rlc_gui

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

Окно GUI с примером анализа RLC-систем

Рис. 6. Окно GUI с примером анализа RLC-систем

 

Системы с обратной связью

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

Обратная связь может существенно изменить параметры, характеристики и поведение системы. Поэтому для простейшей системы с обратной связью было введено окно с графическим интерфейсом пользователя GUI (рис. 7), позволяющее в интерактивном режиме исследовать простые системы с обратной связью и находить их запасы (margins) по усилению и фазе. Оно вызывается командой:

Окно GUI с моделью простой системы с обратной связью

Рис. 7. Окно GUI с моделью простой системы с обратной связью

>> margin_gui

Пакет System Control Toolbox поддерживает анализ и проектирование большого числа SISO-систем различной конфигурации, например показанных на рис. 8. Наряду с однопетлевыми и двухпетлевыми системами с обратной связью обеспечена поддержка и многопетлевых систем контроля.

Различные конфигурации SISO-систем контроля

Рис. 8. Различные конфигурации SISO-систем контроля

Конструирование SISO-систем облегчается наличием GUI-конструктора и анализатора SISO-систем, которые вводятся командой (рис. 9):

Средства с GUI для анализа и проектирования SISO-систем

Рис. 9. Средства с GUI для анализа и проектирования SISO-систем

>> sisotool(tf(1,[1,1]))

В состав систем с обратной связью часто входят блоки различных корректоров, регуляторов, стабилизирующих устройств и т. д. Например, широкое распространение получили пропорционально-интегрирующие регуляторы PID, содержащие два блока — пропорционального регулирования и интегрирования. Включение таких блоков в состав системы с отрицательной обратной связью позволяет уменьшить время нарастания переходной характеристики системы, устранить выбросы выходного сигнала и повысить точность контроля (рис. 10).

Система с PID-регулятором

Рис. 10. Система с PID-регулятором

Для задания такой системы и получения ее характеристик Боде (рис. 11) в окне командного режима работы достаточно выполнить команды:

Диаграмма Боде системы с пропорционально-интегрирующим регулятором

Рис. 11. Диаграмма Боде системы с пропорционально-интегрирующим регулятором

>> notch = tf([1,0.5,9],[1,5,9]); integ = pid(0,0.34);
>> C = integ*notch; figure; bode(C);

 

Преобразование моделей

Небольшое число MATLAB-функций служит для преобразования моделей систем. Прежде всего, это функция преобразования непрерывной модели в дискретную c2d (рис. 12):

Преобразование модели из непрерывной в дискретную форму

Рис. 12. Преобразование модели из непрерывной в дискретную форму

H = tf([1 -1], [1 3 4], ‘inputdelay’, 0.35);
Hd = c2d(H, 0.2, ‘foh’); step(H,‘-’,Hd,‘--’);

Сигнал на выходе дискретной модели является квантованным с равномерным квантованием во времени. И на рис. 12 это отчетливо видно. Рис. 13 дает пример реализации дискретизации модели Notch-фильтра, запускаемой командой:

Дискретизация Notch-фильтра

Рис. 13. Дискретизация Notch-фильтра

>> notchdemo

В раздел функций преобразования включена также функция построения графика сингулярных Hankel-значений (рис. 14) динамической модели:

Hankel-сингулярные значения динамической модели

Рис. 14. Hankel-сингулярные значения динамической модели

sys = rss(20);
h = hsvplot(sys,‘AbsTol’,1e-6);
setoptions(h,‘Yscale’,‘log’,‘Offset’,0.3)

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

>> resampledemo

Он демонстрирует такую возможность (время квантования меняется от 0,1 до 0,025 с). При его исполнении получаем выход:

Gd =
    0.07462 z - 0.09162
  z^(-10) * --------------
    z^2 - 1.571 z + 0.7408
  Sample time: 0.1 seconds
Discrete-time transfer function.
Gr =
    0.02343 z - 0.02463
  z^(-40) * ---------------
    z^2 - 1.916 z + 0.9277
  Sample time: 0.025 seconds
Discrete-time transfer function.
----------------------------

Иногда мощным средством преобразования систем контроля является изменение их порядка. Следующая программа иллюстрирует выполнение этой операции:

h = tf([1 11 36 26],[1 14.6 74.96 153.7 99.65]);
[hb,g] = balreal(h); g'
hmdc = modred(hb,2:4,'MatchDC');
hdel = modred(hb,2:4,'Truncate');
bodeplot(h,'-',hmdc,'x',hdel,'*')
Ее исполнение дает:
ans =
  0.1394	0.0095	0.0006	0.0000

Далее программа строит диаграммы Боде для исходной и измененной систем, показанные на рис. 15.

Диаграммы Боде исходной системы и системы с измененным порядком

Рис. 15. Диаграммы Боде исходной системы и системы с измененным порядком

Для построения переходных характеристик (рис. 16) в конец программы надо добавить строку:

Переходные характеристики исходной системы и системы с измененным порядком

Рис. 16. Переходные характеристики исходной системы и системы с измененным порядком

stepplot(h,‘-’,hmdc,‘-.’,hdel,‘--’);

 

Анализ устойчивости и стабильности систем с обратной связью

Выводы о характере работы систем с обратной связью обычно получают из анализа расположения нулей и полюсов линейной или линеаризованной нелинейной системы на комплексной плоскости. Для этого служат функции zero и pole. Есть также функция damping для оценки логарифмического коэффициента затухания динамических систем и функции сортировки полюсов. Особо важны функции margin и allmargin для оценки запасов устойчивости систем со 100%-ной обратной связью, такие как представлены на рис. 17.

Система со 100%-ной обратной связью

Рис. 17. Система со 100%-ной обратной связью

Функция margin используется в виде:

[Gm,Pm,Wg,Wp] = margin(sys)
[Gm,Pm,Wg,Wp] = margin(mag,phase,w)

Она выдает выходные параметры:

  • Gm — запас по усилению;
  • Pm — запас по фазе;
  • Wg — частота, на которой оценивается запас по усилению;
  • Wp — частота, на которой оценивается запас по фазе.

Пример вычисления параметров устойчивости систем с обратной связью:

>> hd = tf([0.04798 0.0464],[1 -1.81 0.9048],0.1);
>> [Gm,Pm,Wg,Wp] = margin(hd)

Будут получены параметры: Gm = 2,0517, Pm = 13,5711, Wg = 5,4374 и Wp = 4,3544.

Для конкретной системы диаграммы Боде (рис. 18) строятся командой:

Диаграммы Боде с указанием запасов по усилению и фазе

Рис. 18. Диаграммы Боде с указанием запасов по усилению и фазе

>> margin(hd)

На рис. 18 показан графический смысл запасов по усилению и по фазе. Запас по усилению — это разница между усилением в 0 дБ и усилением на частоте, для которой фазовый сдвиг равен 180%. Запас по фазе — это разница между фазовым сдвигом –180% и фазовым сдвигом на частоте, при которой усиление равно 0 дБ (или 1 в абсолютных значениях). Чем эти запасы выше, тем меньше вероятность самовозбуждения системы при изменении ее параметров, ведущем к переходу обратной связи от отрицательной к положительной.

 

Оценка чувствительности систем с обратной связью

Чувствительность по отношению к изменению того или иного параметра оценивается крутизной графических характеристик этого параметра. Так, чувствительность к изменению переходной характеристики системы (рис. 19) позволяет оценивать следующий пример:

Семейства переходных характеристик для оценки чувствительности к их изменению

Рис. 19. Семейства переходных характеристик для оценки чувствительности к их изменению

wn = realp('wn',3); zeta = realp('zeta',0.8);
F = tf(wn^2,[1 2*zeta*wn wn^2]);
Fsample = replaceBlock(F,'wn',[3;5],'zeta',[0.6 0.8 1.0]);
step(Fsample)

В другом примере рассматривается Noth-фильтр с PI-контроллером и его поведение во временной области:

s = tf('s'); P = exp(-2.6*s)*(s+3)/(s^2+0.3*s+1);
C = 0.06 * (1 + 1/s); T = feedback(ss(P*C),1);
notch = tf([1 0.2 1],[1 .8 1]); C = 0.05 * (1 + 1/s);
Tnotch = feedback(ss(P*C*notch),1); 
tau = linspace(2,3,5); Tsens = repsys(Tnotch,[1 1 5]);
for j=1:5; Tsens(:,:,j).InternalDelay = tau(j); step(Tsens); grid
title('Closed-loop response for 5 delay values between 2.0 and 3.0')

Нетрудно заметить, что характеристики (рис. 20) содержат определенные горизонтальные участки, на которых изменение времени с изменением амплитуды весьма значительно. С помощью дополнительного фрагмента программы:

Переходные характеристики Noth-фильтра с PI-регулятором

Рис. 20. Переходные характеристики Noth-фильтра с PI-регулятором

Tnotch0 = Tnotch; Totch0.InternalDelay = 0;
bode(Tnotch,’b’,Tnotch0,’r’,{1e-2,3})
grid, legend(‘Delay = 2.6’,’No delay’,’Location’,’SouthWest’)

нетрудно убедиться в том, что характеристики Боде данной системы (рис. 21) также имеют небольшие почти горизонтальные участки.

Семейство переходных характеристик временной задержки с участками повышенной чувствительности

Рис. 21. Семейство переходных характеристик временной задержки с участками повышенной чувствительности

 

Пакет расширения Simulink Control Design

Общей тенденцией развития системы MATLAB является реализация большинства MATLAB-функций в виде функций и блоков пакета расширения для блочного имитационного моделирования Simulink. Это позволяет задавать и решать задачи пользователя в удобной графической оболочке и применять более понятные, чем программы, графические диаграммы систем и их функций. Для анализа и проектирования систем контроля типичными для Simulink средствами служит пакет расширения Simulink Control Toolbox.

Библиотечка Simulink Control Toolbox содержит небольшое число блоков, представленных на рис. 22. Наряду с этими блоками в диаграммах моделей систем управления можно использовать многочисленные блоки как самого пакета расширения Simulink, так и других пакетов расширения. Методика и приемы построения диаграмм вполне обычные и описаны в книгах по Simulink. Следует подчеркнуть, что многие диаграммы запускаются командой MATLAB open с указанием имени демонстрационного примера.

Блоки пакета расширения

Рис. 22. Блоки пакета расширения

На рис. 23 показана простая диаграмма Simulink-модели контроля блока watertank (резервуар с водой), субмодель которого также представлена на рисунке. Это типичная нелинейная система с обратной связью и интегратором. Основная диаграмма имеет PID-регулятор, петлю обратной связи и виртуальные средства Simulink-измерений и визуализации параметров системы.

Типичная графическая диаграмма Simulink-модели контроля блока watertank

Рис. 23. Типичная графическая диаграмма Simulink-модели контроля блока watertank

 

Функции пакета расширения Simulink Control Toolbox

Ряд функций пакета расширения Simulink Control Toolbox нужен для генерации сложных сигналов, предназначенных для использования в качестве входных сигналов различных систем контроля. Это последовательности синусоидальных сигналов, сигналы с частотной модуляцией, генерация перепадов и др. Имя этих точек начинается со слова frest, а затем через точку указывается основное имя функции.

Примером может служить функция frest.Sinestream для генерации в программе watertank последовательности из нескольких периметров синусоидального сигнала с различной амплитудой (рис. 24), периодом и декрементом роста и затухания:

Входной Simulink-сигнал

Рис. 24. Входной Simulink-сигнал

input = frest.Sinestream(sys)
input = frest.Sinestream(‘OptionName’,OptionValue)

Пример применения этой функции представлен ниже (рис. 24):

input = frest.Sinestream('Frequency',[1 2.5 5], 'Amplitude',[1 2 1.5],...
    'NumPeriods',[4 6 12], 'RampPeriods',[0 2 6], 'SettlingPeriods',[1 3 7]);
plot(input)

Другая часть функций предназначена для анализа реакции систем контроля на входное воздействие: вычисления диаграмм Боде и переходных характеристик, диаграмм нулей и полюсов — словом, уже описанных функций. Но предназначены они для реализации не в MATLAB, а в Simulink. Могут анализироваться как линейные, так и (после линеаризации) нелинейные системы.

Приведем пример на построение диаграммы Боде системы watertank (рис. 25):

Simulink-диаграмма Боде для модели watertank (рис. 23)

Рис. 25. Simulink-диаграмма Боде для модели watertank (рис. 23)

input = frest.Sinestream('Frequency',logspace(-3,2,30)); watertank
io(1)=linio('watertank/PID Controller',1,'in');
io(2)=linio('watertank/Water-Tank System',1,'out','on');
watertank_spec = operspec('watertank');
op = findop('watertank',watertank_spec);
sysest = frestimate('watertank',op,io,input); bode(sysest)

Другой пример (построения переходной характеристики, рис. 26) представлен следующей программой:

Переходная характеристика модели watertank

Рис. 26. Переходная характеристика модели watertank

input = frest.createStep(‘FinalTime’,100);
watertank; watertank_spec = operspec(‘watertank’);
op = findop(‘watertank’,watertank_spec)
io(1)=linio(‘watertank/PID Controller’,1,‘in’);
io(2)=linio(‘watertank/Water-Tank System’,1,‘out’);
[sysest,simout] = frestimate(‘watertank’,op,io,input)
sys = linearize(‘watertank’,op,io);
frest.simCompare(simout,sys,input);

В этих примерах нелинейная система линеаризируется с помощью функций linio и kinearize, и используется аппарат анализа линейных систем пакета расширений Control System Toolbox.

 

Проектирование и настройка компенсаторов

Для улучшения характеристик систем контроля используются, помимо PID-регуляторов, различные типы компенсаторов. Пример системы с PID-регулятором и компенсатором приведен на рис. 27.

Пример графической диаграммы системы контроля с блоками PID-регулятора и компенсатора

Рис. 27. Пример графической диаграммы системы контроля с блоками PID-регулятора и компенсатора

Simulink-программа для этой диаграммы предусматривает основные средства для интерактивной настройки систем с компенсатором — SISO Deaign Tool for SISO Design Task и конструктор линейных цепей типа LTI. Настройка осуществляется путем перемещения мышью маркера на диаграмме Боде компенсатора с контролем изменений других параметров системы, например ее переходной характеристики (рис. 27). Интерактивность достигается благодаря применению GUI-интерфейса (рис. 28).

Интерактивные средства проектирования и настройки компенсаторов

Рис. 28. Интерактивные средства проектирования и настройки компенсаторов

 

Линеаризация и контроль скорости пневмодвигателя

Наиболее простыми системами контроля являются системы электрического привода. Но MATLAB с пакетами расширения по системам контроля обеспечивает построение и анализ гораздо более «экзотических» систем — например, управления пневмодвигателем (рис. 29).

Диаграмма модели пневмодвигателя

Рис. 29. Диаграмма модели пневмодвигателя

Как видно из рис. 29, зависимость скорости двигателя от времени получается практически монотонная, что важно для некоторых практических применений. Она индицируется виртуальным осциллографом и представлена осциллограммой — это типичные средства Simulink.

 

Моделирование сливного бачка

Модель сливного бачка, обычно применяемого в туалетах, в особых комментариях, видимо, не нуждается — пожалуй, каждому пришлось наблюдать, а то и ремонтировать это устройство. Хотя комментарий в туалете одной из научных фирм «Сделав дело, дерни это!» слишком прост для описания моделирования слива воды даже в сливном бачке. А потому приведем диаграмму модели, которая показана на рис. 30.

Диаграмма модели сливного бачка

Рис. 30. Диаграмма модели сливного бачка

Это типичная релаксационная система. Она имеет два вида обратной связи — назад и вперед. При запуске диаграмма выводит окно с графическим интерфейсом пользователя и интерактивным управлением, дающее повышенную степень визуализации «процессов» (слива воды в бачке и его последующего заполнения до заданного уровня).

 

Моделирование конвейерного механизма

Средства пакетов расширения Control System Toolbox, особенно Simulik Control Design, совместно с другими пакетами расширения удобны для моделирования конвейерных механизмов, представляющих собой длинную цепочку устройств, расположенных друг за другом (рис. 31).

Пример графической диаграммы конвейерного механизма

Рис. 31. Пример графической диаграммы конвейерного механизма

 

Моделирование MIMO-системы химического реактора

Иногда возникает необходимость в моделировании систем, управляемых многими параметрами. В этом случае используются MIMO-системы со многими входами и многими выходами. Пример моделирования химического реактора запускается командой:

open_system(‘scdcstrctrlpidblock’);

На рис. 32 изображена диаграмма модели химического реактора с загруженными параметрами. Она использует макромодель реактора CSTR, которая тоже присутствует на рисунке справа. Показаны также полученные виртуальным осциллографом результаты моделирования.

Диаграмма модели MIMO-системы химического реактора

Рис. 32. Диаграмма модели MIMO-системы химического реактора

 

Моделирование маятника Фуко с демонстрацией виртуальной модели

Диаграмма, показанная на рис. 33, описывает поведение маятника Фуко с учетом физических законов и их параметров в заданном месте. Маятник Фуко — это груз, подвешенный на достаточно длинной нити к потолку высокой комнаты. В справке по этому примеру можно найти его теоретическое описание и аналитические выражения, лежащие в основе модели маятника.

Диаграмма модели маятника Фуко

Рис. 33. Диаграмма модели маятника Фуко

Программа этого примера предусматривает применение средства виртуальной реальности для отображения построения работающего маятника Фуко (рис. 34). Обратите внимание на естественность виртуального изображения маятника!

Иллюстрация построения виртуального маятника Фуко

Рис. 34. Иллюстрация построения виртуального маятника Фуко

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

 

Заключение

Проектирование и анализ систем контроля в системе MATLAB+Simulink 8.0 (R2012b) реализованы в ряде пакетов расширения. Из них наиболее специализированными являются пакеты Control System Toolbox для MATLAB и Simulink Control Design для Simulink. Оба пакета имеют небольшой набор функций и блоков, специально предназначенных для проектирования и анализа систем контроля в матричной среде MATLAB и построения графических диаграмм в пакете блочного имитационного моделирования Simulink последних реализаций. Пакеты обеспечивают объектно-ориентированное и визуально-ориентированное программирование при решении задач проектирования и анализа SISO и MIMO линейных систем с различными видами обратных связей, возможности линеаризации нелинейных систем и проектирования систем контроля самых разнообразных устройств, систем и механизмов.

Литература
  1. mathworks.com
  2. Дьяконов В. П. MATLAB R2006/2007/2008 + Simulink 5/6.7. Основы применения. 2‑е издание, дополненное и переработанное. М.: СОЛОН-Пресс. 2008.
  3. Дьяконов В. П. MATLAB. Полный самоучитель. М.: ДМК-Пресс, 2012.
  4. Дьяконов В. П. MATLAB и Simulink для радиоинженеров. Издание 2‑е. М.: ДМК-Пресс, 2012.
  5. Дьяконов В. П. Особенности новой реализации MATLAB и Simulink 2012a // Компоненты и технологии. 2012. № 7.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *