Содержание лабораторная работа №1


Скачать 201.83 Kb.
НазваниеСодержание лабораторная работа №1
страница1/2
Дата публикации23.04.2013
Размер201.83 Kb.
ТипЛабораторная работа
userdocs.ru > Информатика > Лабораторная работа
  1   2


Міністерство освіти та науки, Молоді та спорту України

Одеський національний політехнічний університет


Інститут енергетики та комп’ютерно-інтегрованих систем управління

Кафедра АТП



комп’ютерна техніка та організація обчислювальних робіт



МЕТОДИЧНІ ВКАЗІВКИ
до виконання лабораторних робіт (4 семестр)

для студентів напряму 6.050202 «Автоматизація і комп`ютерно-інтегровані технології»






СХВАЛЕНО

на засіданні кафедри автоматизацiї теплоенергетичних процесів,

протокол № 8 від 07.12.2011

^

Одеса ОНПУ 2011


Комп’ютерна техніка і організація обчислювальних робіт: Метод. вказівки до викон. лаб. робіт для студ. напряму 6.050202 «Автоматизація і комп’ютерно-інтегровані технології» ден. та заоч. форм навч./ Уклад.: В.О. Давидов, Добровольська Т.С. — Одеса: ОНПУ, 2011. — 26 с.

Укладачі:

^ В.О. Давидов, канд. техн. наук




Т.С. Добровольська, аспирант




















СОДЕРЖАНИЕ

Лабораторная работа №1

4

Лабораторная работа №2

13

Лабораторная работа №3

18

Лабораторная работа №4

22

Лабораторная работа №5

26


Лабораторная работа №1

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

1. Информационная модель. Что собой представляет информационная модель? Пример

2. Модель состояний и таблица переходов. Что собой представляют эти понятия? Пример

3. Как перейти от модели состояний к программному коду?

4. Спецификация классов и функций. Их отличия.

Задачи:

1. Разработать информационную модель и модель состояний для объекта и системы управления.

2. Создать проект

3. Разработать пользовательский интерфейс (согласно варианту).

4. Идентифицировать объекты, события, состояния, а также ошибки.

5. Создать хранилище датчиков

6. Подключить интерфейсный класс, используя файлы предыдущих работ

7. Создать базовый класс и библиотеку базовых функций. Создать классы–потомки объекта и системы управления.

8. Разработать возможность протоколирования сообщений в файл с расширением txt, а также чтения из файла с расширением txt.

9. Представить графически зависимость изменения регулируемой величины от регулирующего воздействия.

Общие сведения

Модель стенда представляет собой емкость полусферической формы, наполненную водой, к которой подводиться газ (рис. 1.1). В емкость поступает вода с заданной температурой и откачивается вода. Задача управления поддерживать в емкости заданный уровень и темературу воды на выходе.



Рисунок 1.1. – Схема наполнения емкости водой

Примем, что радиус емкости R = 0.5 м.

Через трубу снабженную задвижкой А в емкость поступает вода при температуре ТА = 20 0С. Управляя положением задвижки А можно изменять расход воды. Примем, что расход входного потока жидкости GA изменяется от 0 до 10 кг/с.

За счет сжигания газа к сосуду подводиться некоторое количество теплоты, в результате чего вода превращается в пар. Управляя расходом газа GГ можно регулировать количество теплоты, которая подводиться к сосуду. Примем, что расход газа GГ изменяется от 0 до 10 кг/с.

Через трубу ^ В из сосуда откачивается вода, полученная в результате нагрева воды до температуры ТВ. Управляя положением задвижки В можно изменять расход воды. Примем, что расход выходного потока жидкости GВ изменяется от 0 до 10 кг/с.

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

Примем, что заданное значение уровня будет поддерживать с помощью расхода GA, а заданное значение температуры воды – с помощью расхода GГ.

Итак, технологический процесс, подлежащий программной реализации, нам известен. Теперь можно перейти к проектированию модели стенда.

^ Математическая модель

Пусть в емкости масса воды составит Мv, а температура – ТВ.

Для простоты разбиваем расчет на пункты.

1) в емкость поступает холодная вода, расходом GA [кг/с] за время τ [с]. Масса, поступившей воды составит [кг]

Температура воды Т'В[0С] в емкости по закону сохранения количества теплоты составит:



Текущая масса жидкости М'v, находящаяся в ёмкости составит:



2) к ёмкости подвели газ, расходом Ggas[ кг/с]. Количество теплоты Q[Дж], выделяемое при сжигании газа составит

,

где R – удельная теплота сгорания топлива (40 МДж/кг)

Определим текущее значение температуры воды Т''В[0С] с учетом подводимого тепла, выделенного при сжигании газа

,

где ^ Ср – теплоемкость воды (Ср=4200 Дж/кг)

3) из емкости через отверстие В откачивается вода, расходом GВ [кг/с] за время τ [с], с заданной температурой. Масса, поступившей воды составит [кг]



Рассмотрим, на сколько изменится уровень воды h в емкости, если измениться масса воды, а, следовательно, и объем V. В данном случае плотностью пара можно пренебречь, при этом плотность воды в емкости составит 1000 кг/м3.

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

(1.1)

где (по теореме Пифагора)

или же:

(1.2)

Определить величину в формуле (1.2) можно следующим образом.

Запишем (2) в виде интеграла:

(1.3)

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

(1.4)

Очевидно, что чем меньше величина , тем точнее расчеты. В дальнейшем мы вернемся к вопросу выбора данной величины, а пока примем, что = 1 мм.

Задача управления для регулирования в первом контуре будет сводиться к текущему расчету входного расхода воды GA в зависимости от отклонения заданного значения уровня от текущего.

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



Новое значение расхода газа будет зависить от трёх составляющих:

– пропорциональной составляющей

– интегральной сотавляющей, которая может определяться двумя способами (подробно будет рассмотрена в лабораторной работе №2)

– дифференциальной составляющей,

а также от значения расхода воды на предыдущей итерации



Задача управления для регулирования в первом контуре будет сводиться к текущему расчету расхода газа Ggas в зависимости от отклонения заданного значения температуры воды от текущего.

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



Для простоты модель состояния можно оставить неизменной (лабораторная работа №7 II курс I семестр ).

Реализация программного кода

Шаг 1. Создать проект «ExternalInit»

Шаг 2. Разработка пользовательского интерфейса

!Напоминаем. Чтобы интерфейс поддерживал русский язык, необходимо, перед изменениями в диалоговом окне, указать в свойствах окна русский язык.



Рисунок 1.2. – Пример пользовательского интерфейса

На рис. 1.2 показан внешний вид интерфейса, на котором представлены следующие элементы:

– ползунки (SliderBar): IDC_SLIDER_IN, IDC_SLIDER_OUT, IDC_ASSIGN_H, IDC_ASSIGN_TEMPERATURE, IDC_FLOW_GAS;

– кнопки (Button): IDC_BTN_START, IDC_BTN_PAUSE, IDC_BTN_RESET, IDC_BTN_EXIT;

– лист (ListControl): IDC_SENSOR_LIST;

– элементы (CheckBox): IDC_CHECK_AUTO.

Полям Static text по умолчанию присваивается идентификатор IDC_STATIC, а также IDC_IN_VALUE, IDC_OUT_VALUE, IDC_GAS_FLOW, IDC_ASSIGN_LEVEL, IDC_ASSIGN_T. В свойствах двух последних идентификаторов указать Group. Поля для рисования (Picture) присваивается значение IDC_DRAW.

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

Идентификатор

Тип

^ Имя переменной

IDC_CHECK_AUTO

CButton

m_Auto

IDC_SLIDER_IN

CSliderCtrl

m_slIn

IDC_SLIDER_OUT

CSliderCtrl

m_slOut

IDC_FLOW_GAS

CSliderCtrl

m_FlowGas

IDC_ASSIGN_H

CSliderCtrl

m_AssignH

^ IDC_ASSIGN_ TEMPERATURE

CSliderCtrl

m_AssignT

IDC_SENSOR_LIST

CListCtrl

m_SensorList

Создать обработчики кнопок OnBtnStart(), OnBtnPause(), OnBtnReset(), OnBtnExit(), OnCheckAuto() дважды щелкнув на кнопке мышкой. Также создать обработчики OnInitDialog(), OnTimer(), OnVScroll(), OnНScroll(), DestroyWindow() следующим образом: Выбираем в Messages WM_INITDIALOG, нажать AddFunction. Такие же операции проделать для двух других функций.

Реализация обработчиков кнопок и функций рассмотрена в лабораторной работе № 10 I семестра 2-го курса.

Шаг 3. Создать файл MsgCode.h, в котором идентифиципуются состояния, события, команды и ошибки, а также файл Defines.h, в котором идентифицируются объекты и реализована структура передачи сообщенияи и структура ошибок.

Шаг 4. Создать файл SensorData.h, который будет включать в себе структуру датчиков системы и объекта управления. В качестве объекта управления выступает ёмкость, к которой подводится газ и вода, а также откачивается вода с определенной температурой. Задачей управления является поддержания заданного уровня и температуры воды на выходе.

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

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

Наименование датчиков остаётся свободным.

Расчет пропорциональной составляющей был подробно описан в лабораторной работе №7 I семестра 2-го курса.

Рассмотрим, подробно расчет интегральной составляющей, её можно рассчитывать двумя способами.

1 способ. Нахождения интеграла с использованием кольцевого массива

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

double m_dEps[10];// Массив, в котором будет храниться 10 последних значений отклонения регулируемой величины

int m_nPos;// Положение значения отклонения рег. величины

после

m_nPos = 0;

for (int i = 0; i <10; i++)

{

m_dEps[i]=0;

}

В обработчике состояния расчета присвоить элементу массива разность заданного положения регулируемой величины от текущего.Объявить и обнулить переменную, которая будет считать интеграл. Рассчитать интеграл так, как это было сделано в лабораторной работе №1 I семестра 2-го курса.

В конце расчета увеличить положение регулируемой величины на единицу. После чего проверить условие, при положении регулируемой величины равной единице, присвоить ей значение ноль.

int i;

double dInt1 = 0;

m_dEps[m_nPos] = *m_pAssignLevel - *m_pH;
for (i=0;i<10; i++)

{

dInt1 += m_dEps[i] * 0.1;

}

double dNewValue1 = *m_pInFlowRate + *m_pK1 * m_dEps[m_nPos] + *m_pKi1 * dInt1 + *m_pTd1 * (m_dEps[m_nPos]- m_dEpsPrev)/ 0.1;



m_nPos++;

if ( m_nPos == 10 ) m_nPos = 0;

2 способ. Нахождения полного интеграла

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

double dInt1;// значение интегралла

обнулить значение переменной в конструкторе

dInt1 = 0;

В обработчике состояния расчета объявить переменную вещественного типа и присвоить ей разность заданного положения регулируемой величины от текущего. Рассчитать интеграл.

double m_dEps = *m_pAssignLevel - *m_pH;

dInt += m_dEps * 0.1;

double dNewValue1 = *m_pInFlowRate + *m_pK1 * m_dEps + *m_pKi1 * dInt + *m_pTd1 * (m_dEps- m_dEpsPrev)/ 0.1;

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

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

double m_dEpsPrev; // значение отклонения рег. величины на предыдущей итерации

обнулить значение переменной в конструкторе класса

m_dEpsPrev = 0;

В обработчике состояния расчета найти дифференциальную составляющую как это было сделано в лабораторной работе №2 I семестра 2-го курса. После расчета нового значения управляющего воздействия присвоить этой переменной текущее значение значение регулируемой величины.

В случае, если используется первый способ

m_dEpsPrev = m_dEps[m_nPos];

если второй способ:

m_dEpsPrev = m_dEps;

Шаг 5. Присоединить файлы интерфейсного класса IMsgReceive.h, MsgManager.h, MsgManager.cpp (изменить название класса диалога).

Шаг 6. Присоединить файлы базового класса baseobject.h, baseobject.cpp, а также библиотеку базовых функций с небольшими модификациями (BaseFunction.h, BaseFunction.cpp – изменить наименование датчиков согласно варианту).

В файлах ControlObject.h, ControlObject.cpp и ControlSystem.h, ControlSystem.cpp реализовать модели состояний объекта и системы управления, соответственно. Подробно реализация модели состояний описана в лабораторных работах №№5,6,7 I семестра 2-го курса.

Шаг 7. Присоединить файлы Proto.h и Init.h и модифицировать их согласно Вашего варианта.

Лабораторная работа №2

Данная лабораторная работа позволяет написать информационное, алгоритмическое и математическое обеспечение технического проекта.

Цель работы – написать программное обеспечение, позволяющее рассчитывать текущее значение температуры пластинки согласно заданного варианта.

Задачи:

1. Разработать информационную модель

2. Разработать модель состояний и таблицу переходов, а также спецификацию классов и функций

3. Разработать математическую модель расчета.

4. Разработать алгоритм расчета объекта управления и системы управления.

5. Построить график зависимости температуры и сигнала рассогласования от времени.

Общие сведения

Объектом управления (ОУ) является металлическая пластинка, нагреваемая с одной стороны напряжением либо током и охлаждаемая с другой стороны потоком воздуха (рис. 2.1).

  1   2

Похожие:

Содержание лабораторная работа №1 iconЛабораторная работа №3
Цель занятия: Работа в программе Проводник. Работа в системе окон Мой компьютер; быстрый поиск объектов; настройки пользовательского...
Содержание лабораторная работа №1 iconЛабораторная работа №1
Работа в интегрированной среде borland pascal на примере программ линейной структуры
Содержание лабораторная работа №1 iconЛабораторная работа № Работа с массивами и записями
Получить представление о том, что такое массив и научиться разрабатывать алгоритмы решения задач с использованием массивов в среде...
Содержание лабораторная работа №1 iconЛабораторная работа Работа с почтовым клиентом
Майкрософт. Office Outlook 2010 помогает пользователям лучше распоряжаться временем и информацией, устанавливать любые контакты,...
Содержание лабораторная работа №1 iconЛабораторная работа №6 Работа с отчетами
Получить практические навыки работы с отчетами в бд microsoft Office Access 2003, научиться создавать отчеты и задавать параметры...
Содержание лабораторная работа №1 iconЛабораторная работа

Содержание лабораторная работа №1 iconЛабораторная работа №3 Работа с данными в таблицах
Получить практические навыки работы с данными в бд microsoft Office Access 2003, научиться применять фильтры для отбора необходимых...
Содержание лабораторная работа №1 iconЛабораторная работа №1 по рцб: «Практические основы Интернет-трейдинга»

Содержание лабораторная работа №1 iconЛабораторная работа №1 «Анализ полной стоимости в логистике» По дисциплине: «Логистика»

Содержание лабораторная работа №1 iconЛабораторная работа №74
Технология получения отверстия в заготовке электроэрозионной (электроискровой) обработкой
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2020
контакты
userdocs.ru
Главная страница