Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1804

.pdf
Скачиваний:
9
Добавлен:
30.04.2022
Размер:
2.24 Mб
Скачать

Рис. 2.33 Связь между параметрами маскированной подсистемы и параметрами

блоков, входящих в ее состав, реализуется через упоминавшуюся уже рабочую область подсистемы (Mask Workspace). Таким образом, чтобы увязать параметр Порог с параметром настройки блока Hit Crossing, необходимо ввести в поле параметра Hit Crossing offset имя переменной porog.

Чтобы изменить значение параметра блока, входящего в маскированную подсистему, требуется «заглянуть ей под маску» (т. е. открыть окно блокдиаграммы подсистемы). Это можно сделать с помощью команды Look Under Mask из раздела Edit меню пользователя.

Несколько слов о том, что собой представляет рабочая область маскированной подсистемы.

Mask Workspace это локальная рабочая область исполняемой подсистемы. Она создается SIMULINK в следующих случаях:

если маска подсистемы содержит команды инициализации;

если при описании маски заданы параметры настройки подсистемы (как в нашем примере).

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

Продолжим создание маски для подсистемы «Умножитель» и опишем второй параметр, выполнив следующие действия:

«нажать» кнопку Add для добавления второй строки в список параметров;

в поле Prompt ввести Коэффициент;

в поле Variable указать имя переменной, например k.

Значения полей Control type и Assignment следует оставить без изменения. После «нажатия» кнопки Apply можно открыть скорректированное окно

настройки параметров подсистемы «Умножитель».

Чтобы изменить взаимное расположение полей «Коэффициент» и «Порог», следует поменять местами соответствующие строки в списке параметров окна Редактора Маски (с помощью кнопок Up или Down).

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

Вкладка Icon содержит средства создания индивидуальной иконки для маскируемой подсистемы:

1.Строка редактирования Mask type, дублирующая одноименную строку на закладке Initialization.

2.Поле ввода Drawing commands (Команды рисования), предназначенное для ввода команд, создающих графическое изображение на иконке.

3.Выпадающее меню Icon frame, которое позволяет устанавливать способ вывода прямоугольной рамки иконки:

Visible рамка выводится,

Invisible рамка не выводится (Невидима).

4. Выпадающее меню Icon transparance, устанавливающее «прозрачность» нового образа иконки:

Opaque изображение, выводимое на иконке, скрывает стандартный

«образ»;

Transparent новая иконка является «прозрачной», т. е. и новое, и стандартное изображения выводятся одновременно; например, если маскируемая подсистема имеет входной и выходной порты, то их названия (In и Out) будут «просвечивать» через новое изображение.

5. Выпадающее меню Icon rotation определяет, будет ли поворачиваться изображение на иконке при повороте блока подсистемы:

Rotates изображение выводится с учетом поворота блока;

Fixed изображение не корректируется.

6. Выпадающее меню Drawing coordinates позволяет выбрать систему координат для вывода изображения на иконке:

Autoscale автоматическая установка масштаба осей; при использовании данной опции размер иконки изменяется пропорционально изменению размеров контура блока;

Normalized для вывода иконки устанавливается постоянный масштаб; при этом нижний левый угол рамки иконки (контура блока) имеет

координаты (0, 0), а правый верхний угол координаты (1, 1); соответственно при выводе графика на иконке значения координат х и у должны находиться в пределах [0,1]; при изменении размеров блока размер иконки изменяется автоматически;

Pixel значения координат х и у для выводимого графика должны быть указаны в пикселах; при изменении размеров блока иконка не масштабируется; чтобы обеспечить ее автоматическое масштабирование, необходимо в командах «рисования» указывать дополнительные параметры: текущую высоту и ширину блока (height и width).

Теперь подробнее о том, какие именно Команды рисования могут быть введены в поле Drawing Commands.

Для вывода текста на иконке может использоваться одна из трех команд:

disp( 'текст') вывод указанного текста в центре иконки;

text(x,y, 'текст') вывод текста, начиная с позиции, задаваемой координатами x и y;

fprintf ( 'текст') вывод форматированного текста по центру иконки. Во всех трех командах выводимый текст может быть указан не

непосредственно, а через имя переменной, в которой хранятся символьные данные. Например, команда disp может быть использована для вывода в иконке слова 'Подсистема' двумя способами:

disp('Подсистема'),

disp(variable), где variable имя переменной, в которую предварительно был записан выводимый текст; эта переменная должна храниться в Mask Workspace, a ее значение может быть задано в поле

Initialization commands (на закладке Initialization), например так: variable =

'Подсистема'.

Если выводимый в иконке текст должен быть размещен в виде нескольких строк, то конец каждой строки обозначается символом табуляции (\п). Например, чтобы вывести надпись «Маскированная подсистема» на двух строках, команда disp должна выглядеть следующим образом: disp('Маскированная\nподсистема').

Для вывода графиков на иконке могут быть использованы стандартные средства MATLAB, т. е. библиотечные функции рисования графиков. Наиболее универсальной из них является функция plot, которая в простейшем случае

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

Initialization Commands, например так:

x = [0 1 2 3]; y = [1 4 1 4].

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

SIMULINK позволяет также создавать иконки с изображениями, нарисованными «вручную». Такая иконка создается с помощью специального графического редактора. Для его запуска необходимо в командном окне MATLAB ввести команду iconedit.

Если данная команда вводится без параметров, то MATLAB запрашивает дополнительную информацию: название окна блок-диаграммы, в котором находится редактируемый блок (Name of block window) и имя блока, под которым он используется в диаграмме (Name of block).

Замечание. Для корректной работы редактора iconedit редактируемый *.mdl-файл обязательно должен находиться в активной директории;

соответствующая настройка производится с помощью опции Set Path из командного окна MATLAB.

При запуске редактора iconedit открывается окно, содержащее координатную сетку и визир, перемещаемый с помощью «мыши». Нажатие ЛКМ приводит к появлению точки в выбранной позиции. Очередная точка соединяется с предыдущей прямой линией.

При работе с редактором iconedit используются следующие команды, вводимые с клавиатуры:

d удаление последней точки;

п создание новой точки, не связанной с предыдущей;

q выход из редактора с автоматическим обновлением иконки блока. После закрытия окна iconedit в поле Drawing Commands выводится команда plot

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

Вкладка Documentation Редактора Маски содержит три области ввода:

Mask type, дублирующее одноименные поля двух других закладок редактора;

Block description, предназначенное для ввода пояснения к маскируемой подсистеме (это пояснение будет отображаться в окне настройки параметров подсистемы); форматирование текста в этом поле выполняется автоматически;

Block help, обеспечивающее ввод информации, которая впоследствии будет доступна при «нажатии» кнопки Help в окне настройки параметров подсистемы; эта информация сохраняется в формате html, включается SIMULINK в состав его справочной системы и может быть просмотрена,

например, с помощью Internet Explorer.

Созданная маска может быть впоследствии изменена с помощью того же Редактора Маски. Его вызов в этом случае производится по команде Edit Mask, заменяющей для маскированной подсистемы команду Mask Subsystem.

Наличие в составе SIMULINK механизма маскирования делает его, как сейчас принято говорить, «открытой системой», т. е. доступной для доработки и расширения самими пользователями в соответствии с их потребностями. Именно этот механизм лежит в основе создания пользователями SIMULINK собственных библиотек блоков.

3. РАБОТА С ПАКЕТОМ

CONTROL SYSTEM TOOLBOX

3.1. Линейные стационарные объекты (lti-объекты)

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

описания элементов в виде передаточных функций (tf-форму). При реализации такой математической модели на ЭВМ передаточная функция записывается в виде отношения многочленов, которые задаются в виде векторов-строк, составленных из их коэффициентов:

 

N sm

N

sm 1

...

N

m

s

N

m 1

 

H s

1

2

 

 

 

 

 

, m n .

D sn

D sn 1

...

D s

D

 

 

 

 

 

1

2

 

 

n

 

n 1

 

Вместе с тем известны другие формы представления математических моделей: представление модели нулями, полюсами и обобщенным коэффициентом передачи (zpk-форма)

H s K

s

z1

s

z2

... s

zm

,

m

n,

 

 

 

 

 

 

 

s

p1

s

p2

... s

pn

 

 

а также в форме пространства состояний в виде системы дифференциальных или разностных (в случае построения модели дискретной системы) уравнений

dx dt

Ax Bu, .

y Cx

Du

Все вышеназванные формы представления моделей реализованы в пакете прикладных программ Control System Toolbox, входящим в состав системы инженерных расчетов MATLAB. В пакете реализованы:

полный набор средств для анализа MIMO и SISO линейных систем;

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

частотные характеристики: диаграммы Боде, Николса, Найквиста и

др.;

разработка обратных связей;

проектирование LQR и LQE регуляторов;

характеристики объекта: управляемость, наблюдаемость, понижение порядка моделей;

поддержка систем с запаздыванием.

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

В пакете Control System Toolbox введен новый класс объектов ltiобъекты линейные системы с постоянными параметрами, которые могут быть заданы в одной из вышеназванных форм. Команда P = tf([1 2], [1 1 10]) создает объект Р подкласса tf с передаточной функцией

P s

s 2 / s 2 s 10 ,

который содержит коэффициенты числителя и знаменателя передаточной функции. Аналогичным образом могут быть получены объекты подклассов zpk и ss. При совместном использовании объектов различных подклассов в одной операции результат будет:

объектом подкласса ss, если по крайней мере один операнд принадлежит подклассу ss;

объектом подкласса zpk, если отсутствуют операнды подкласса ss и по крайней мере один из операндов принадлежит подклассу zpk;

объектом подкласса tf, если все операнды относятся к подклассу tf. Исходя их вышеизложенного следует, что операторы tf, zpk и ss могут

быть использованы как для получения соответствующей формы представления lti-объекта, так и для преобразования объекта из одной формы в другую. Например, оператор sys = zpk(sys) преобразует объект sys в подкласс zpk независимо от его предыдущей формы.

Следует иметь ввиду, что преобразование моделей является неоднозначной операцией и может привести к неверному результату моделирования.

3.2. Извлечение информации об lti-объектах

Для извлечения параметров объекта из его представления используются следующие операторы:

num, den, Ts

tfdata sys ;

z, p, k, Ts zpkdata sys ;

a, b, c, d, d, Ts

ssdata sys .

Выходные аргументы num и den оператора tfdata и z, р оператора zpkdata всегда являются массивами ячеек. Они имеют число строк, равное числу выходов, и число столбцов, равное числу входов, а их элементы hij определяют передаточную функцию от j-го входа к i-му выходу.

Например, оператор

» H=[tf([1 -1],[1 2 10]), tf(1, [1 0])]

формирует передаточную функцию многомерной системы с одним выходом и двумя входами:

Transfer function from input 1 to output:

s - 1

--------------

s^2 + 2 s + 10

Transfer function from input 2 to output:

1

-

s

»

Чтобы получить (извлечь) данные о числителе и знаменателе системы sys следует применить оператор

» [num,den,Ts]=tfdata(H)

num =

 

[1x3 double]

[1x2 double]

den =

 

[1x3 double]

[1x2 double]

Ts =

 

0.

 

Для непосредственного получения цифровых значений следует прменить форму

»H.den{1} ans =

12 10

»H.den{2} ans =

1 0.

Аналогично работают операторы zpkdata и ssdata.

В процессе работы с lti-объектом может понадобиться изменить его структуру или некоторые цифровые параметры. Это можно выполнить либо создав объект заново командами tf, zpk или ss, либо присвоением отдельным элементам структуры объекта других значений. Следующий пример показывает, как можно изменить знаменатель передаточной функции системы H от входа 1 к выходу:

» H.den{1}(2)=5

Transfer function from input 1 to output:

s - 1

--------------

s^2 + 5 s + 10

Transfer function from input 2 to output:

1

-

s

».

3.3. Родовые свойства lti-объекта

Рассмотрим свойства, которые являются общими для всех трех подклассов lti-объектов.

Свойство

Описание

Тип данных

 

 

 

 

 

InputName

Названия входов

Массив ячеек

OutputName

Названия выходов

Массив ячеек

Ts

Период дискретности

Скаляр

Td

Запаздывание на входе

Вектор

Userdata

Дополнительные данные

Произвольные

Свойства InputName и OutputName предназначены для того, чтобы описать назначение входов и выходов системы; для их представления используются массивы ячеек, содержащих строки символов вида: 'мощность', 'скорость'; 'угол атаки' и т. п.

Свойство объекта Ts хранит информацию о периоде дискретности модели, измеряемом в секундах; значения 0 и -1 используются соответственно для непрерывных моделей и дискретных моделей с неспецифицированным периодом дискретности.

Свойство запаздывания на входе Td доступно только для непрерывных систем, его представление - вектор запаздываний для каждого входного канала, измеренных в секундах; по умолчанию используется нулевое значение (отсутствие запаздывания).

Свойство Userdata может содержать числовые данные о модели, описываемые произвольными типами данных. По умолчанию это поле является пустым.

Отметим некоторые особенности используемых свойств lti-объектов. Свойство Variable для объектов подклассов tf и zpk задает способ отображения переменной при выводе передаточных функций на экран. По умолчанию такими переменными являются 's' (переменная преобразования Лапласа) для непрерывных систем и 'z' (переменная Z-преобразования) для дискретных систем. Альтернативными значениями переменной могут быть 'р' для 's' и 'q' или 'z -1 для z. Отметим, что команда tf дает тот же результат, что и команда flit, когда свойство Variable имеет значение 'z -1' или 'q'. Матрица при производных Е по умолчанию равна пустой матрице [ ]. Свойство StateName позволяет присвоить имена переменным состояния.

При работе с ППП Control System Toolbox перечень свойств lti-объекта может быть просмотрен с помощью команд set(ss), set(tf), set(zpk).

3.4. Чтение и установка значений

Каждое свойство lti-объекта задается парой аргументов {свойство

(PropertyName), значение (Property Value)}:

PropertyName - строка, определяющая название свойства; она может быть собственно именем свойства или его сокращением, достаточным для

идентификации имени. Например, сокращение 'user' достаточно для определения свойства Userdata;

PropertyValue - значение, приписываемое свойству; этот формат также поддерживается функциями tf, zpk и ss.

Поэтому значения свойств системы можно определить с помощью команды get:

PropertyValue = get(sys, PropertyName),

где строка PropertyName - либо полное название свойства, либо некоторое сокращение с числом символов, достаточным для однозначной идентификации этого свойства.

Пример:

Последовательность операторов

» H=tf(100,[1 5 100],'input','Напряжение','notes','Электрическая цепь')

set(h,'output','Toк')

get(h, 'notes')

выводит на экран следующую информацию

Transfer function from input "Напряжение" to output:

100

---------------

s^2 + 5 s + 100

ans = 'Электрическая цепь'

Для вывода на экран всех свойств, следует использовать команду

get(h)

num = {[0 0 100]}

den = {[1 5 100]}

Variable = 's'

Ts = 0

Td = 0

InputName = {'Напряжение'}

OutputName = {'Ток'}

Notes = {'Электрическая цепь'}

UserData = []

Существует три способа для установки значений свойств lti-объекта:

при создании lti-объектов с помощью команд tf, zpk или ss;

изменение значений свойств существующей lti-модели с помощью команды set;

присваивание значений элементам структуры.

Первый способ установки значений заключается в том, чтобы расширить список входных переменных этих функций парами {свойство, значение}.

Пример:

Сформировать одномерную стационарную систему в tf-форме с входной переменной 'тяга', выходной переменной 'скорость' и с использованием в качестве символа переменной передаточной функции 'р'.

» sys=tf(1,[1 10],'input','Тяга','output','Скорость','variable','p')

Transfer function from input "Тяга" to output "Скорость":

1

------

p + 10

Второй способ состоит в том, чтобы сначала сформировать модель, а затем изменять отдельные ее свойства.

Пример:

Сформировать одномерную стационарную систему в tf-форме. » h=tf(1,[1 10])

Transfer function:

1

------