Лаб 2 / ЛАБ 2
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,
СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА» (СПбГУТ)
Кафедра информационно-управляющих систем
Лабораторная работа № 2
«Исследование автоматизированной системы управления котлоагрегатом»
по дисциплине «Технологии распределённых информационно-управляющих систем»
Студент гр. ИСТ-112_____________________________ Медведева С.Г.
(подпись)
Приняла ___________________________ Козлова О.А.
(оценка и подпись)
Цель работы: по имеющейся схеме разобраться в работе автоматизированной системы.
Введение:
Назначение системы управления и ее особенности
Автоматизированная система управления предназначена для обеспечения эффективного контроля, управления и противоаварийной автоматической защиты технологического процесса котельного агрегата.
Автоматизированная система управления котлоагрегатом осуществляет
• Измерение и регистрация параметров работы котла;
• Ведение журнала событий;
• Автоматическое управление технологическим оборудованием в соответствие с регламентом;
• Реализацию противоаварийной защиты;
Структура системы управления
Система включает в себя два уровня аппаратных средств - нижний, выполняющий функции сбора, обработки информации и локального управления, и верхний, предназначенный для задач дистанционного управления, наблюдения за ходом процесса, а также архивирования и протоколирования.
Результаты внедрения системы АСУ котлоагрегата позволяет:
• Исключить частые остановы котлов в связи с отказом аппаратных средств.
• Упростить работу операторов.
• Улучшить качество работы регулятора питания.
• Осуществлять автоматический контроль хозрасчетных параметров.
Блок-схема работы системы приведена на рис.1:
Рис.1 – Блок-схема работы системы.
На основе данной блок-схемы был смоделирован один из подпроцессов работы котлоагрегата, а именно, управление параметром объема. Моделирование выполнялось на языке Java. Ниже приведён код, выполняющий моделирование, а также вывод информации о этапах работы.
package org.example;
import java.util.Random;
public class BoilerSystemSimulation {
public double currentVolume;
private final double maxVolume;
private final double minVolume;
private boolean pumpOn;
private boolean valveOpen;
public BoilerSystemSimulation(double maxVolume, double minVolume) {
this.maxVolume = maxVolume;
this.minVolume = minVolume;
this.currentVolume = (minVolume - 10) + (maxVolume - minVolume + 20) * new Random().nextDouble(); // начальный объе
this.pumpOn = false;
this.valveOpen = false;
}
public void checkAndAdjustWaterLevel() {
System.out.println("Сбор данных с датчика V");
currentVolume = (minVolume - 10) + (maxVolume - minVolume + 20) * new Random().nextDouble();
System.out.println("Объем воды: " + currentVolume);
if (currentVolume > maxVolume) {
System.out.print("Сбор данных о состоянии насоса для откачки воды НОВ: ");
checkAndTurnOnPump();
waitForWaterLevel(maxVolume);
checkAndTurnOffPump();
} else if (currentVolume < minVolume) {
System.out.print("Сбор данных о состоянии клапана для подачи воды КПВ: ");
checkAndOpenValve();
waitForWaterLevel(minVolume);
checkAndCloseValve();
}
}
public void SecondCheck(){
System.out.println("Сбор данных с датчика V");
System.out.println("Объем воды " + currentVolume);
if (currentVolume > maxVolume) {
System.out.print("Сбор данных о состоянии насоса для откачки воды НОВ: ");
checkAndTurnOnPump();
} else if (currentVolume < minVolume) {
System.out.print("Сбор данных о состоянии клапана для подачи воды КПВ: ");
checkAndOpenValve();
}
}
private void checkAndTurnOnPump() {
if (!pumpOn) {
System.out.println("НОВ отключен");
System.out.println("Включение НОВ");
pumpOn = true;
return;
}
System.out.println("НОВ включен");
}
private void checkAndTurnOffPump() {
if (pumpOn) {
System.out.println("Выключение НОВ");
pumpOn = false;
return;
}
System.out.println("НОВ отключен");
}
private void checkAndOpenValve() {
if (!valveOpen) {
System.out.println("КПВ закрыт");
System.out.println("Открытие КПВ");
valveOpen = true;
}
System.out.println("КПВ открыт");
}
private void checkAndCloseValve() {
if (valveOpen) {
System.out.println("Закрытие КПВ");
valveOpen = false;
}
}
private void waitForWaterLevel(double targetVolume) {
while (!((currentVolume >= (targetVolume - 1)) && (currentVolume <= targetVolume + 1))) {
if (currentVolume < targetVolume) {
System.out.println("Подача воды");
currentVolume += 1; // увеличиваем объем воды (можно настроить)
} else {
System.out.println("Откачка воды");
currentVolume -= 1; // уменьшаем объем воды (можно настроить)
}
SecondCheck();
}
}
}
double maxVolume = 100.0; // настройте максимальное количество воды
double minVolume = 90.0; // настройте минимальное количество воды
BoilerSystemSimulation simulation = new BoilerSystemSimulation(maxVolume, minVolume);
simulation.checkAndAdjustWaterLevel();
Рис. 2 – Пример работы алгоритма.
ВЫВОД
Была изучена модель автоматизированной системы управления для обеспечения эффективного контроля, управления и противоаварийной автоматической защиты технологического процесса котельного агрегата.
На основе данной модели была построена блок-схема работы системы, смоделирован один из этапов процесса.
Санкт-Петербург
2023 г.