56 ИСПОЛЬЗОВАНИЕ ПАКЕТА SIMULINK/MATLAB ДЛЯ ИССЛЕДОВАНИЯ СИСТЕМ УПРАВЛЕНИЯ - Страница 4

а) подключите к его входу блок  Step из категории Sources , а к выходу – блок Scope из категории Sinks;

б) нажмите кнопку (Start). В окне Scope вы получите переходную характеристику апериодического звена с постоянной времени T=0,33 с. и коэффициентом усиления k=0,67.

 

2.15. Использование контекстно-зависимого меню правой клавиши мыши для введения команд

 

Simulink отображает контекстно-зависимое меню, если вы щелкните правой клавишей мыши в рабочем пространстве модельного или библиотечного окон.   Контекстно-зависимое меню правой клавиши мыши удобно тем, что для любого из объектов (блоков и линий связи) оно выводит перечень команд и операций для данного контекста, т.е. для данного объекта и его состояния. Содержание этого меню зависит от того,  выделен входящий в блок-схему объект или нет. Если объект выделен, то меню правой клавиши мыши показывает команды, которые применимы только к выделенному объекту.  Если объект  не выделен,  то меню включает  команды, применимые к модельному и библиотечному окнам в целом.

В контекстно-зависимом меню правой клавиши мыши для выделенного объекта можно найти команды, которые позволяют копировать  (Copy), вырезать (Cut)   и удалять  (Clear) указанный блок, открывать (Block Parameters) окно настройки параметров этого блока. Подменю Format правой клавиши содержит ряд команд форматирования блока: замены шрифта и его стиля для названия блока  (Font), удаления названия блока (Hide name), изменения расположения названия блока (Flip name), поворота блока на 180 (Flip block)  и 90 градусов (Rotate Block), включения и отключения тени (Show Drop Shadow). Там же есть опции по изменению цвета общего фона.

Контекстно-зависимое меню правой клавиши мыши для выделенной линии связи включает в себя такие команды, как Cut, Copy, Clear, Signal Properties. Команда Signal Properties… открывает диалоговое окно Signal Properties, позволяющее, в частности, устанавливать метку (обозначение) сигнала (Signal Name)  и его аннотацию (Descriptor).

Меню правой клавиши мыши составного блока содержит команды Open Block (раскрыть содержание (открыть блок-схему) составного блока), Mask Subsystem (вызвать редактор маски). Меню правой клавиши мыши для маскированного  составного блока  содержит команды: Edit Mask (открыть редактор маски для  правки составного блока),  Look under  Mask (раскрыть содержание, иными словами, блок-схему маскированного  составного блока), Mask parameters…(открыть окно Block parameters: Subsystem  настроек параметров маскированного  составного блока) и другие.

 

3. Построение блок-схем линейных систем управления

 

В Simulink используются два основных способа построения блок-схем линейных  непрерывных и цифровых систем управления:

1) с помощью динамической структурной схемы, основанной на понятии передаточных функций звеньев и уравнений связи между ними;

2) с помощью операционной структурной схемы, основанной на уравнениях в переменных состояния.

Рассмотрим каждый из этих способов в отдельности.

 

3.1. Построение блок-схемы линейной системы управления с помощью динамической структурной схемы

 

Основными элементами динамической структурной схемы являются звено, описываемое передаточной функцией W(p); сумматор, осуществляющий сложение (вычитание), приложенных к нему сигналов; точка разветвления сигналов.

Первым из этих двух элементов в библиотеке Simulink соответствуют блоки Transfer Fcn (передаточная функция в обычной форме)  и Sum (сумматор), которые реализуют операции, связанные с преобразованием и суммированием сигналов, поступающих на его вход. В блок-схеме звено структурной схемы может быть представлено также блоком Zero-Pole (передаточная функция в приведенном виде, определяемая значениями нулей и полюсов), удобным для использования в случае, если передаточная функция задана с помощью нулей и полюсов. Если передаточная функция звена равна постоянной величине k, т.е. W(p)=k, то удобно использовать блок Gain (усилитель) вместо блоков типа передаточной функции.

Третий основной элемент динамической структурной схемы (точка разветвления сигнала) реализуется в блок-схеме системы управления теми операциями, которые рассмотрены в п. 2.1.3,  таким образом, если построена динамическая структурная схема исследуемой системы управления, то не представляет большого труда получить её фактическое отображение в модельном окне Simulink в виде соответствующей блок-схемы, составленной из блоков типа "передаточная функция" (Transfer Fcn или Zero-Pole) и блоков суммирования (Sum).

Специалисты в области управления называют блоки типа "передаточная функция" просто звеньями системы управления, тем самым не делая различия между динамической структурной схемой и соответствующей ей схемой. Однако, пользуясь такой терминологией, нельзя забывать, что в отличие от структурной схемы блок-схема системы управления может быть "оживлена" за счёт подачи на её входы сигналов, вырабатываемых блоками из категории Sources (генераторы сигналов), и что сигналы, циркулирующие в блок-схеме, являются физическими сигналами, а в структурной схеме они являются сигналами "на бумаге".

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

3.1.1. Создание блоков типа "передаточная функция" и блока типа сумматор

Блок Transfer Fcn (передаточная функция в обычной форме) моделирует линейное звено (систему) с одним входом и одним выходом, описываемое передаточной функцией в обычной форме:

 

, n≥m,

 

где  b и a– постоянные коэффициенты числителя и знаменателя. В инструментальном средстве MATLAB обычная форма называется tf - формой передаточной функции [1,2.3].

Примечание: в Simulink комплексная переменная p обозначается s.

3.1.1.1. Чтобы создать блок Transfer Fcn, реализующий звено с передаточной функцией в обычной форме:

а) из окна библиотеки Simulink Library Browsers или окна библиотеки Library: Simulink3 выберите категорию Continuous (непрерывные элементы) и перенесите в модельное окно блок Transfer Fcn;

б) дважды щелкните над ним мышью. Появляется диалоговое окно настроек Block Parameters: Transfer Fcn (рис. 20);

 

 

 

Рис. 20

в) в текстовое поле Denominator (знаменатель) из группы полей Parameters (параметры) введите в квадратные скобки последовательно значения всех коэффициентов знаменателя передаточной функции, начиная с а, в том числе значения, равные нулю. Дело в том, что Simulink определяет порядок n знаменателя передаточной функции по числу n+1 коэффициентов, которые вы ввели. Для отделения между собой значений коэффициентов используйте пробелы. Не забывайте полученный вектор коэффициентов заключить в квадратные скобки.

г) в текстовое поле Numerator (числитель) из группы полей Parameters (параметры) введите последовательно значения всех коэффициентов числителя передаточной функции, начиная с b, в том числе значения,  равные нулю. Simulink определяет порядок m числителя по числу m+1 введенных коэффициентов;

д) сделайте одно из двух:

- щелкните кнопку Apply (применить) в окне настроек блока, чтобы измененные значения параметров вступили в силу. При этом окно настроек блока не закрывается;

- щелкните кнопкой ОК в окне настроек блока, чтобы измененные значения параметров вступили в силу и чтобы окно настроек блока закрылось.

При этом в модельном окне внутри прямоугольника, изображающего блок Transfer Fcn, высвечивается передаточная функция W(s).

Пример 1. Пусть передаточная функция W(p)=(2p+1)/p, n=m=1.

Введите в окно Denominator: [1 0], а в окно Numerator: [2,1]. После команд Apply или ОК в блоке Transfer Fcn, изображенном в модельном окне, высвечивается передаточная функция .

Пример 2. W(p)=(p+2)/p, n=m=1, при этом в окне Denominator: установите [1 0], а в окне Numerator: [1 2].

Пример 3. Пусть W(p)=p2/(p2+2p+3), n=m=2. Тогда установите в окне Denominator: [1 2 3], а в окне Numerator: [1 0 0].

Пример 4. Пусть W(p)=p/(p+1), n=m=1, при этом в окне Denominator: установите [1 1], а в окне Numerator: [1 0].

Пример 5. Пусть W(p)=2/(p2+3p), n=2, m=0. Введите в окно Denominator: [1 3 0], а в окно Numerator: [2].

По умолчанию в окне настроек Block Parameters: Transfer Fcn в текстовых окнах Numerator: и Denominator: установлены [1] и [1 1] соответственно, а внутри прямоугольника, изображающего блок Transfer Fcn, высвечивается передаточная функция   .

Блок Zero-Pole (передаточная функция в приведенном виде, определяемая значениями нулей и полюсов) моделирует линейное звено (систему) с одним входом и одним выходом, описываемое передаточной функцией

, n≥m,

где zi, si – соответственно нули и полюсы, а – приведенный коэффициент звена (системы).

В MATLAB такая форма передаточной функции называется zpk-формой нулей, полюсов и коэффициента усиления или zpk-формой передаточной функции [1,2,3].

 

 

Рис. 21

3.1.1.2. Чтобы создать блок Zero-Pole, реализующей звено с передаточной функцией в приведенном виде:

а) из окна библиотеки блоков    Simulink Library Browsers  или  из       окна библиотеки блоков Library:simulink3 выберите категорию Continuous (непрерывные элементы) и перенесите в модельное окно блок Zero-Pole;

б) дважды щелкните над ним мышью. Появляется диалоговое окно настроек Block Parameters: Zero-Pole (рис. 21);

в) в текстовое окно Zeros: (нули) в квадратные скобки введите все нули передаточной функции. Если нули отсутствуют (m=0), то  надо ввести пустую матрицу []. По умолчанию в это окно введён один нуль: 1;

г) в текстовое окно Poles (полюсы) в квадратные скобки введите полюсы передаточной функции, по умолчанию в это окно введены два полюса: 0 и –1;

д) в текстовое окно Gain (коэффициенты усиления) введите в квадратные скобки значение приведённого коэффициента усиления. По умолчанию приведённый коэффициент усиления равен 1;

е) щелкните кнопку Apply или кнопку ОК. При этом в модельном окне внутри прямоугольника, изображающего блок Zero-Pole, высвечивается передаточная функция W(p) в zpk-форме. По умолчанию высвечиваемая передаточная функция имеет вид

.

 

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

Пример 1. Пусть

,

 

так что z1=0;  s1=2,  s2,3=-2±3i,  =-2. При этом в окне Zeros установите: [0], в окне Poles: [2 -2+3i -2-3i],  а в окне Gain: [-2]. После команд Аpply или ОК в блоке, изображенном в модельном окне, высвечивается передаточная функция

 

.

 

Пример 2. Пусть W(p)=5p2/(p+2)(p-3). При этом z1=z2=0; s1=-2, s2=3, =5.

Тогда установите в окне Zeros: [0 0], в окне Poles: [-2 3], в окне Gain: [5]. В модельном окне появляется прямоугольник с передаточной функцией 5s2/(s+2)(s-3).

Пример 3. Введите в окно Zeros: [3 2 1], в окно Poles: [7 5 3 1], в окно Gain: [4]. После команд Аpply или ОК в модельном окне внутри прямоугольника, изображающего блок Zero-Pole, высвечивается передаточная функция

.

 

Не забывайте при вводе нулей и полюсов оставлять между ними пробелы и заключать векторы нулей и полюсов в квадратные скобки. Если вы вводите комплексный нуль/полюс, то требуется ввести ему сопряженный, т.е. допускается ввод лишь комплексно-сопряженной пары нулей/полюсов.

Блок Sum (сумматор) реализует алгебраическое суммирование поступающих на его вход N сигналов vi , используя формулу

S=γ1 v12 v2 +…+γN vN,

где коэффициенты  γi могут принимать значения, равные +1 или –1, в зависимости от того, что требуется: сложить сигнал с суммой сигналов в правой части или вычесть сигнал из этой суммы.

Следовательно, можно ввести в рассмотрение вектор или список знаков коэффициентов [знак γ1, знак γ2, …, знак γN], который полностью определяет при известных входных сигналах смысл операции, осуществляемой с помощью блока Sum. Хотя этот блок допускает алгебраическое сложение векторных и матричных сигналов, ограничимся рассмотрением случая, когда все входные сигналы являются скалярными.

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

а) из окна библиотеки блоков Simulink Library Browsers или из окна библиотеки блоков Library:simulink3 выберите категорию Math (математические элементы) и перенесите в модельное окно блок Sum;

б) дважды щелкните над ним мышью. Появляется окно настроек этого блока Block Parameters: Sum (рис. 22);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 22

 

в) в текстовом окне Icon Shape (форма значка) с помощью раскрывающегося списка  выберите форму изображения блока в модельном окне: в виде окружности (round) или прямоугольника (rectangular). При построении блок-схем систем управления рекомендуется использовать круглую (в виде окружности) форму блока Sum. Кстати,  она установлена по умолчанию;

г) введите в текстовое поле List of Sings (список знаков) без квадратных скобок вектор знаков всех коэффициентов γi . Число элементов  N этого списка информирует  Simulink о количестве входных сигналов, а знаки + и – сообщают о том, что надо делать с каждым из этих сигналов: складывать или вычитать.

д) щелкните кнопку ОК. В модельном окне высвечивается блок Sum с N входными петлями связи (входными портами) и одной выходной петлей связи (выходным портом). Внутри изображения блока Sum около каждой входной петли стоит знак + или - , показывающий,  с каким знаком будет осуществляться сложение этого сигнала. Заметим, что между знаками, введёнными в поле List of Sings,  не должно быть пробелов.

Блок Gain (усилитель) реализует операцию умножения входного сигнала v  на заданный коэффициент усиления k:

y=kv.

3.1.1.4. Чтобы создать блок Gain, реализующий операцию умножения:

а) из окна библиотеки Simulink Library Browsers или окна библиотеки Library: simulink3 выберите категорию Math (математические элементы) и перенесите в модельное окно блок Gain;

б) дважды щелкните над ним мышью. Появляется окно настроек Block Parameters: Gain (рис. 23);

 

 

 

Рис. 23

в) введите в текстовое поле Gain (коэффициент усиления) значение коэффициента усиления k;

г) щелкните кнопкой ОК. В модельном окне высвечивается изображение блока Gain в виде треугольника, внутри которого изображается введённое вами значение коэффициента усиления.

3.1.1.5. Чтобы построить блок-схему одноконтурной системы управления с неединичной обратной связью:

а) введите в модельное окно все блоки Transfer Fcn, Zero-Pole, Gain, соответствующие звеньям системы, охваченным обратной связью, установите их параметры и соедините между собой;

б) введите в модельное окно все блоки Transfer Fcn, Zero-Pole, Gain, соответствующие звеньям системы, расположенным в обратной связи. Выделите и затем  поверните эти блоки на 180 градусов, используя команду Flip Block из меню Format, после чего установите их параметры в соответствии с заданными передаточными функциями и соедините между собой;

в) введите в модельное окно блок Sum;

 

 

 

 

 

 

 

 

 

 

 

Рис. 24

 

г) из окна библиотеки Simulink Library Browsers или из окна библиотеки Library:simulink3  выберите категорию Sources (генераторы сигналов) и введите в модельное окно один из блоков, входящих в эту категорию, например  Constant (постоянный сигнал);

д) из окон тех же библиотек выберите категорию Sinks (регистраторы сигналов) и введите в модельное окно блок Scope (график);

е) соедините введённые в модельное окно блоки, как показано на рис.24.

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

Чтобы ввести отрицательную обратную связь, надо сменить знак + на знак – у петли связи сумматора, соединённого с блоком, имеющим название Transfer Fcn (q+1). Для этого дважды щелкните блок Sum, появляется окно настроек этого блока. В поле List оf Sings (список знаков) введите | + - и затем щелкните кнопкой ОК. Вертикальная черта обеспечивает удобное расположение входных портов этого блока: слева и внизу. Установите параметры блока Scope и параметры динамического моделирования из меню Simulation главного меню. Блок-схема системы управления готова к динамическому моделированию.

Пример. Пусть динамическая структурная схема исследуемой системы имеет вид, представленный на рис.25.

 

Рис. 25

 

Построенная в модельном окне с помощью этой структурной схемы блок-схема системы управления (рис.26) отличается от первой лишь двумя элементами: блоком Constant и блоком Scope.

 

Рис. 26

Упростим блок-схему. Выделим первые два звена с помощью рамки и создадим, используя команду Create subsystem (создать составной блок (подсистему)) из меню Edit модельного окна, составной блок. При этом получаем следующую блок-схему (рис. 27).

 

 

 

 

 

 

 

Рис. 27

Если теперь дважды щелкнуть на изображение составного блока (подсистемы), то появляется новое модельное окно untitled/Subsystem, раскрывающее содержимое этого блока (рис.28).

 

 

 

 

 

Рис. 28

 

Изменим названия входного In1 и выходного Out1 портов, щелкнув последовательно на ярлыки In1 и Out1  и введя в появляющиеся текстовые поля (рамки) соответственно буквы e и u. Используя такой же способ применительно к ярлыку Subsystem,  изменим затем название составного блока  на Compensator и в результате получим следующую блок-схему системы управления (рис.29). Чтобы "оттенить" составной блок, отразить его специфику

 

 

Рис. 29

 

по сравнению с обычными блоками, здесь использована команда Show Drop Shadow (показать тень блока), входящая в подменю Format контекстно-зависимого меню правой  клавиши мыши.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 30