Связь параметров модели с элементами интерфейса
Федеральное бюджетное государственное общеобразовательное учреждение высшего образовательно
Уфимский государственный нефтяной технический университет
Кафедра автоматизации технологических процессов и производств
Учебно-методическое пособие
по лабораторной работе № 6
« Разработка имитационной модели
Технологического объекта »
Уфа 2017
Лабораторная работа № 6. Разработка имитационной модели
Технологического объекта
Цель работы: Освоение принципов разработки имитационных моделей технологических объектов и их программной реализации.
В ходе работы требуется создать приложение, имеющее графический интерфейс с мнемосхемой, трендами и вспомогательными окнами и реализующее имитационную модель технологического объекта.
Программная реализация имитационной модели может включать несколько этапов:
1) проектирование главной формы программы (разработка мнемосхемы, элементов меню, размещение основных элементов интерфейса и т.д.);
2) реализация математической модели;
3) связь параметров модели с элементами интерфейса;
4) программирование трендов;
5) реализация процедур работы с файлами и проч.
Проектирование главной формы программы
Пусть на главной форме программы будет располагаться главное меню, мнемосхема и тренды. При этом мнемосхема будет отображать технологическую схему и содержать поля вывода текущих значений технологических параметров.
|
|
Главное меню содержит пункты: «Файл» (с подпунктами «Сохранить» и «Выйти»), «Расчет» (с пунктами «Пуск» и «Стоп») и «Справка» (подпункт «О программе»).
Для расположения мнемосхемы на форме используется объект типа «Image» (см. группу объектов «Additional») на панели инструментов Delphi. После размещения объекта на нужном месте в него загружается заранее сохраненная в виде графического файла картинка с мнемосхемой (свойство «Picture»). На главной форме также можно расположить еще один объект «Image» для отображении трендов (например, ниже). В результате главная форма примет вид, аналогичный изображенному на рисунке 1. В качестве примера взята мнемосхема резервуара с гудроном (резервуар Р-1), подогреваемым теплоносителем. Регулируемым параметром является температура в Р-1 (выводится в поле TRCA5100). Управляющее воздействие подается на клапан TV5100.
На мнемосхеме серым прямоугольником обозначено поле для вывода текущего значения температуры в резервуаре Р-1 (TRCA5100). Вывод осуществляется с помощью объекта типа «Label», который следует разместить в этом прямоугольнике (сразу можно дать ему какое-либо начальное значение, например, нулевое, подкорректировать расположение, цвет и размер шрифта).
|
|
Внимание! Не забывайте сохранять проект!
Рисунок 1 - Вид главной формы
Реализация математической модели
Разрабатываемая имитационная модель включает в себя математические модели объекта управления (ОУ) и регулятора (Р), соединенные по схеме АСР по отклонению (см. рисунок 2).
Рисунок 2
На рисунке обозначены: х - заданное значение регулируемого параметра (температуры Т5100), у - его текущее значение, е - ошибка регулирования, равная отклонению у от х (вычисляется в сумматоре как е = х ‑ у), u - управляющее воздействие на клапан TV5100, f - возмущающее воздействие со стороны окружающей среды.
Допустим, математическая модель ОУ задана в виде передаточной функции вида
,
где К = 0,72 - коэффициент усиления;
b0 = 1, b1 = 3,2 - коэффициенты числителя;
a0 = 1, a1 = 9,3, a2 = 25,3 - коэффициенты знаменателя.
Тогда взаимосвязь параметров у и u описывается операторным уравнением
Y(s) = WОУ(s)*U(s),
где U(s) и Y(s) - изображения соответственно у и u.
Для реализации этих соотношений в программе удобнее представить их в виде разностного уравнения. Для этого запишем по операторному уравнению дифференциальное:
|
|
.
Если учесть, что программа будет рассчитывать математическую модель дискретно через равные интервалы времени ΔТ, то от дифференциалов можно перейти к разностям:
,
,
где yi, yi-1, yi-2 - значения у на текущем (i-ом) шаге функционирования модели, на предыдущем (i-1)-ом и (i-2)-ом. Для параметра u аналогично.
Тогда, если подставить выражения в дифференциальное уравнение, можно получить выражение для yi:
или, если подставить числовые значения (интервал времени можно взять равным ΔТ = 1 сек), можно упростить до выражения
yi = K3.yi-2 + K4. yi-1 + K5. ui + K6. ui-1,
где K3 … K6 - коэффициенты модели ОУ, вычисляемые по формулам
.
В качестве регулятора используется ПИД-регулятор с передаточной функцией вида
,
где К0 …К2 - настоечные коэффициенты регулятора.
Операторное уравнение
U(s) = Wp(s).E(s).
Дифференциальное уравнение:
.
Уравнение в приращениях:
.
Отсюда
или
ui = ui-1 + K7 ei + K8 ei-1 + K9 ei-2,
где K7…K9 - коэффициенты модели регулятора, вычисляемые по формулам
. (*)
Для реализации данных моделей в программе создается процедура, которая должна постоянно просчитываться с заданным интервалом ΔТ. Чтобы создать такую процедуру используется объект типа «Timer» (см. группу объектов «System» на панели инструментов), в котором создается обработчик события «onTimer»:
|
|
procedure TForm1.Timer1Timer(Sender: TObject);
Begin
e:=x-y; {вычисление ошибки}
u:=u1+k7*e+k8*e1+k9*e2; {модель регулятора}
y:=k3*y2+k4*y1+k5*u+k6*u1; {модель ОУ}
u1:=u; e2:=e1; e1:=e; y2:=y1; y1:=y; {сдвиг значений на 1 такт по времени}
end;
Здесь приняты обозначения переменных: y2 = yi-2, y1 = yi-1 и т.д.
Все переменные должны быть объявлены как глобальные.
Переменным также необходимо присвоить начальные значения. Это можно сделать непосредственно при создании главной формы (в процедуре-обработчике события «onCreate» главной формы).
Предусмотрим два режима работы регулятора: ручной и автоматический. Для этого заведем глобальную переменную avt (типа boolean), которая будет служить программным переключателем режимов (avt = true - автоматический режим, avt = false - ручной). Процедура таймера с учетом режима работы будет выглядеть следующим образом:
procedure TForm1.Timer1Timer(Sender: TObject);
Begin
if avt then
Begin
e:=x-y; {вычисление ошибки}
u:=u1+k7*e+k8*e1+k9*e2; {модель регулятора}
end;
y:=k3*y2+k4*y1+k5*u+k6*u1; {модель ОУ}
u1:=u; e2:=e1; e1:=e; y2:=y1; y1:=y; {сдвиг значений
на 1 такт по времени}
end;
То есть управляющее воздействие u и ошибка е будут вычисляться только в автоматическом режиме. В ручном режиме u задается оператором.
Связь параметров модели с элементами интерфейса
Значение переменной у выводится в поле вывода на главной форме.
Для ввода таких параметров, как настройки регулятора К0, К1 и К2, значения u (в ручном режиме), задания х (в автоматическом), переключения режимов можно создать отдельное окно (см. рисунок 3), которое вызывается при щелчке по полю ввода TRCA5100.
Рисунок 3 - Окно параметров регулятора
Если регулятор работает в автоматическом режиме, то управляющее воздействие u должно вычисляться по модели регулятора (см. процедуру Timer1Timer). Если режим не автоматический (т.е. ручной), то управляющее воздействие должно быть постоянным и равным указанному на этой форме.
Чтобы окно параметров всегда оставалось на виду поверх всех окон установите параметр окна FormStyle на fsStayOnTop.
При нажатии на кнопку «Применить» окна значения К7, К8 и К9 должны пересчитываться по формулам (*), исходя из заданных оператором значений К0, К1 и К2. При нажатии на кнопку «Закрыть» - только закрытие данного окна (параметр окна visible:=false).
procedure TForm2.BitBtn1Click(Sender: TObject);
Begin
k0:=strtofloat(Edit1.Text);
k1:=strtofloat(Edit2.Text);
k2:=strtofloat(Edit3.Text);
x:=strtofloat(Edit4.Text);
if CheckBox1.Checked then avt:=true else avt:=false;
if not avt then u:=strtofloat(Edit5.Text);
{Пересчет коэффициентов для модели:}
k7:=k1+k0*dt+k2/dt;
k8:=-k1-2*k2/dt;
k9:=k2/dt;
end;
procedure TForm2.BitBtn2Click(Sender: TObject);
Begin
visible:=false
end;
Чтобы в модуле unit2, где содержится описание формы параметров регулятора, можно было изменять параметры, описанные в unit1, добавьие после служебного слова «implementation» указание
uses unit1;
Теперь можно запустить программу на исполнение и проверить ее работу (предварительно сохранив все).
Программирование трендов
Для вывода графиков изменения контролируемых параметров удобно воспользоваться готовыми компонентами, подключаемыми к программе как модули. Примером является модуль wd3.
Для подключения модуля к проекту его имя «WD3» нужно указать в разделе uses (сам модуль wd3.dcu должен быть загружен в папку Delphi в имеющуюся папку библиотек Lib).
Для формирования графиков в разделе var объявляется объект типа TMGraph, например:
Var
MGraph : TMGraph;
Инициализация графиков происходит при создании главной формы:
MGraph.InitAsDynamic(Image2.Canvas,true,1,3,50,1);
MGraph.SetCaptions(‘’, ‘Время’,’Параметры’,' ');
MGraph.DrawGrid;
В первой строке происходит инициализация графика MGraph как динамически обновляемого тренда и задание его начальных параметров:
Image2.Canvas - указывается где рисовать график,
true - если кривые на графике нужно выводить разными цветами,
1 - количество осей по Y,
3 - количество кривых на графике (для х, у и u),
50 - количество интервалов по оси времени,
1 - шаг по времени (1 сек.).
Во второй строке задаются заголовки осей.
Команда в третьей строке рисует сетку для графиков.
Рисунок 4 - Результат работы программы
Для вывода графиков значения точек должны быть помещены на график командами AddPoint(y), где у - очередная точка графика. Если выводятся одновременно три кривые (как в данном случае), следует дать последовательно три команды (это можно сделать в процедуре таймера):
MGraph.AddPoint(y); {точка для у}
MGraph.AddPoint(u); {точка для u}
MGraph.AddPoint(x); {точка для х}
Результат работы программы с графиками-трендами изображен на рисунке 4.
Индивидуальные задания
Общее задание: разработать и скомпилировать программу (получить готовый exe-файл), реализующую имитационную модель заданного технологического объекта.
Адекватность модели проверить в пакете имитационного моделирования VisSim, ТАУ2 или любом другом. Графики, полученные в программе и в пакете моделирования, должны быть одинаковы.
В программе предусмотреть пункты меню:
- «Пуск/Стоп» - для запуска/останова модели;
- «Сохранить» - для сохранения результатов расчета в виде текстового файла (таблица значений х, у и u), при этом программа должна запрашивать имя файла;
- «Результаты» - для отображения таблицы результатов в отдельном окне;
- «О программе» - для вывода по центру экрана модального окна с информацией об авторе и учебной группе.
Количество используемых полей для ввода, кнопок, вспомогательных форм, трендов и т.д. выбирается на усмотрение автора программы.
В окне параметров регулятора предусмотреть:
- при выборе автоматического режима поле для ввода u должно становиться недоступно (используется свойство Enabled), так как u будет расчетным,
- при выборе ручного режима должны становится недоступны поля для ввода К0, К1, К2 и х.
Окна с трендами должны иметь возможность масштабирования во весь экран.
Вариант задания выбирается по указанию преподавателя или по списку группы. Исходные данные и имена файлов с мнемосхемами указаны в таблице. Мнемосхемы представлены на рисунках 5 – 10.
Параметры а0 = b0 = 1.
Таблица - Исходные данные
Вар. | Мнемосхема | Параметры модели | Расположение трендов |
1 | 1.bmp - резервуар | К = 1,6; b1 = 0,48; а2 = 4,16; а1 = 3,64 | рядом с мнемосхемой |
2 | 2.bmp - давление PRC6225 в емкости Е-1 | К = 1,2; b1 = -0,16; а2 = 0,36; а1 = 1,04 | в отдельном окне |
3 | 4.bmp - температура TIRC6142 в емкости ЕПП-4 | К = 0,86; b1 = 0,42; а2 = 4,02; а1 = 3,8 | каждый в своем окне |
4 | 5.bmp - давление PIRC6268 | К = 1,2; b1 = 0,56; а2 = 5,26; а1 = 4,2 | рядом с мнемосхемой |
5 | 1.bmp - резервуар | К = 1,0; b1 = -0,30; а2 = 4,2; а1 = 3,7 | в отдельном окне |
6 | 3.bmp - давление PRC6224 в емкости Е-1 | К = 1,8; b1 = 0,8; а2 = 8,1; а1 = 3,4 | рядом с мнемосхемой |
7 | 4.bmp - температура TIRC6142 в емкости ЕПП-4 | К = 1,4; b1 = 1,5; а2 = 9,1; а1 = 2,6 | в отдельном окне |
8 | 6.bmp - давление PIRC4104 в емкости ЕПП-3 | К = 2,5; b1 = 0,4; а2 = 7,2; а1 = 3,6 | каждый в своем окне |
9 | 1.bmp - резервуар | К = 0,6; b1 = -0,2; а2 = 10,5; а1 = 2,2 | каждый в своем окне |
10 | 2.bmp - температура ТRC6155 | К = 1,8; b1 = 5,4; а2 = 4,5; а1 = 4,8 | рядом с мнемосхемой |
11 | 4.bmp - температура TIRC6142 в емкости ЕПП-4 | К = 1,6; b1 = 0,4; а2 = 2,1; а1 = 4,2 | у – рядом с мнемосхемой, х и u – в отдельном |
12 | 5.bmp - давление PIRC6268 | К = 0,6; b1 = 0,5; а2 = 4,7; а1 = 2,9 | каждый в своем окне |
13 | 6.bmp - давление PIRC4104 в емкости ЕПП-3 | К = 1,8; b1 = 0,2; а2 = 8,1; а1 = 3,6 | в отдельном окне |
14 | 3.bmp - температура PRC6154 в емкости Е-1 | К = 3,6; b1 = -0,5; а2 = 7,5; а1 = 3,7 | в отдельном окне |
15 | 4.bmp - температура TIRC6142 в емкости ЕПП-4 | К = 1,5; b1 = 0,9; а2 = 1,2; а1 = 10,5 | рядом с мнемосхемой |
16 | 5.bmp - давление PIRC6268 | К = 3,6; b1 = -0,5; а2 = 1,6; а1 = 1,4 | каждый в своем окне |
17 | 6.bmp - давление PIRC4104 в емкости ЕПП-3 | К = 1,2; b1 = 8,4; а2 = 4,5; а1 = 3,5 | у – рядом с мнемосхемой, х и u – в отдельном |
18 | 1.bmp - резервуар | К = 1,8; b1 = 0,4; а2 = 4,6; а1 = 3,6 | у – рядом с мнемосхемой, х и u – в отдельном |
19 | 5.bmp - давление PIRC6268 | К = 4,6; b1 = 0,8; а2 = 12,1; а1 = 4,7 | у – рядом с мнемосхемой, х и u – в отдельном |
20 | 6.bmp - давление PIRC4104 в емкости ЕПП-3 | К = 2,5; b1 = -0,5; а2 = 4,4; а1 = 3,9 | рядом с мнемосхемой |
21 | 1.bmp - резервуар | К = 1,2; b1 = 0,4; а2 = 10,5; а1 = 2,2 | в отдельном окне |
22 | 2.bmp - температура ТRC6155 | К = 2,8; b1 = 5,4; а2 = 4,5; а1 = 4,8 | каждый в своем окне |
23 | 4.bmp - температура TIRC6142 в емкости ЕПП-4 | К = 4,6; b1 = 0,5; а2 = 1; а1 = 4,2 | рядом с мнемосхемой |
24 | 5.bmp - давление PIRC6268 | К = 2,6; b1 = 1,5; а2 = 6,7; а1 = 1,7 | в отдельном окне |
Рисунок 5 – Резервуар (1.bmp)
Рисунок 6 – Емкость Е-1, теплообменник Т-1, фильтры Ф-1 и Ф-2 (2.bmp)
Рисунок 7 – Емкость Е-1, теплообменник Т-1, фильтры Ф-1 и Ф-2 (3.bmp)
Рисунок 8 – Емкость ЕПП-4 (4.bmp)
Рисунок 9 – Емкость Е-6 (5.bmp)
Рисунок 10 – Емкость ЕПП-3 (6.bmp)
Дата добавления: 2018-11-24; просмотров: 437; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!