Экспертная система расчета выбросов загрязняющих веществ при пересыпке пылящих материалов (растворный узел)

Автор: Пользователь скрыл имя, 12 Декабря 2011 в 21:29, курсовая работа

Описание работы

Цель работы - разработать экспертную систему расчета выбросов загрязняющих веществ при пересыпке пылящих материалов (растворный узел).

Исходя из поставленной цели, формируются следующие задачи:
Исследование предметной области;
Выбор и изучение инструментального средства разработки ЭС;
Обоснование выбора методов представления и обработки знаний;
Разработка структур данных и знаний ЭС;
Разработка алгоритмов работы системы;
Кодирование, тестирование и отладка ЭС;
Оформление отчета по проведенной работе

Содержание

Введение 3

1.1 Анализ предметной области 5

1.2 Система пользовательского интерфейса 6

1.3 Структура базы знаний экспертной системы 9

1.4 Иерархическое дерево решений 11

1.5 Описание и реализация экспертной системы 12

Заключение 14

Список литературы 15

Приложение 1 16

Работа содержит 1 файл

курсовая-экспертная система.docx

— 141.51 Кб (Скачать)

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

    1. Иерархическое дерево решений

 

    1. Описание  и реализация экспертной системы
 

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

     После этого необходимо произвести отбор, удовлетворяющий заданному условию  и переход к следующему этапу  программы. В среде C++Builder это можно реализовать с помощью конструкции множественного выбора:

     Switch (i)

     {

     n1: k1=1; k2=2; break;

     n2: k1=2; k2=3; break;

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

     ni: k1=j; k2=j;

     }

     Также в ЭС предусмотрено отслеживание ввода ошибочных данных. Это реализуется  с помощью следующей конструкции:

     try

        {

           Проверяемое поле;

           }

             catch(EConvertError&)

        {

        Сообщение об ошибке;

              }

     Таким образом, в ходе работы ЭС собираются все отловленные ошибки и сохраняются  в отдельный файл. На основании  полученных ответов экспертной системой будут рассчитаны значения удельных и валовых выбросов загрязняющих веществ в атмосферу.

     Все расчеты производились с помощью  следующих формул.

      Для процессов перегрузки пылящих  материалов следует применять следующую  формулу (г/с):  
 

а для  валовых выбросов формулу (т/год):

Для процессов  хранения пылящих материалов следует  применять следующую формулу (г/с):

       

а для  валовых выбросов формулу (т/год):

 

     Все формулы для расчетов взяты из следующего источника: "Методические указания по расчетов выбросов загрязняющих веществ (пыли) в атмосферу) при складировании и перегрузке сыпучих материалов на различных строительных предприятиях" .  
 
 
 
 
 
 

 

Заключение

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

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

    1. разработка нескольких стратегий вывода (например,  в виде столбчатой диаграммы);
    2. реализация функции проверки на непротиворечивость знаний в модуле накопления;
    3. разработка и реализация модуля объяснения;
    4. расширение возможностей интерфейса с пользователем;
    5. использование дополнительных форм представления знаний и др.
 
 

 

Список  литературы

  1. Лобова  О. Е. Лекции по дисциплине «Экспертные  системы и системы искусственного интеллекта».
  2. Информационная управляющая система МГТУ им. Н.Э. Баумана «Электронный университет»: концепция и реализация / Т.И. Агеева, А.В. Балдин, В.А. Барышников и др.; [под ред. И.Б. Фёдорова, В.М. Черненького]. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2009. – 376 с.
  3. Информационные технологии в инженерном образовании / под ред.С.В. Коршунова, В.Н. Гузненкова. – М.: Изд-во  МГТУ им. Н.Э. Баумана, 2007. – 432 с.
  4. Андрейчиков А.В., Андрейчикова О.Н. Интеллектуальные информационные системы. – М.: Финансы и статистика, 2004. – 424 с.
  5. Искусственный интеллект. – В 3-х кн. Кн. 2. Модели и методы: Справочник/ Под ред. Д.А. Поспелова – М.: Радио и связь, 1990. – 304 с.
  6. Братко И. Программирование на языке Пролог для искусственного интеллекта: Пер. с англ. – М.: Мир, 1990. – 560 с.
  7. Нильсон Н. Принципы искусственного интеллекта: Пер. с англ. – М.: Радио и связь, 1985. – 376 с
    1. Квашнин И.М., Промышленные выбросы в атмосферу. Инженерные расчеты и инвентаризация, 2005г.  

 

Приложение 1

Код программы, который реализует алгоритм работы фрагмента экспертной системы на языке C++.

//---------------------------------------------------------------------------

#include <vcl.h>

#include <math.h>

#pragma hdrstop 

#include "UExpert.h"

#include "PReport.h"

#include "About.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

      : TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N2Click(TObject *Sender)

{

Form1->Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

double M,P;

double M1,P1;

double k1,k2,k3,k4,k5,k6,k7,B,q;

double GH,GY;

double Fmax,Fpl,Frab,Tc,koeff;

int i;

AnsiString str,str1,str2,str3,str4,str5;

i=ComboBox1->ItemIndex;

k1=0; k2=0; 

switch (i) {

      case  0: k1=0.05; k2=0.03; break;

      case  1: k1=0.03; k2=0.02; break;

      case  2: k1=0.03; k2=0.04; break;

      case  3: k1=0.04; k2=0.02; break;

      case  4: k1=0.01; k2=0.03; break; 

      case  5: k1=0.04; k2=0.03; break;

      case  6: k1=0.04; k2=0.02; break;

      case  7: k1=0.05; k2=0.02; break;

      case  8: k1=0.02; k2=0.04; break;

      case  9: k1=0.04; k2=0.06; break; 

            default: str="Вы невыбрали тип материала"; k1=0.02; k2=0.02;

}

//Label1->Caption="k1= "+FloatToStr(k1);

//Label2->Caption="k2= "+FloatToStr(k2);

Memo1->Lines->Add(str);

i=ComboBox2->ItemIndex;

k3=0;

switch (i) {

      case  0: k3=1;   q=0.000016; break;

      case  1: k3=1.2; q=0.00075;  break;

      case  2: k3=1.4; q=0.00301; break;

      case  3: k3=1.7; q=0.01376; break;

      case  4: k3=2;   q=0.0296; break;

      case  5: k3=2.3; q=0.0565; break;

      case  6: k3=2.6; q=0.0755; break;

      case  7: k3=2.8; q=0.0955; break;

      case  8: k3=3;   q=0.0975; break; 

            default: str1="Вы не  указали скорость ветра"; k3=1;

}

//Label3->Caption="k3= "+FloatToStr(k3);

Memo1->Lines->Add(str1);

/////////////////////////////////////

i=ComboBox3->ItemIndex;

k4=0;

switch (i) {

      case  0: k4=1; break;

      case  1: k4=0.5; break;

      case  2: k4=0.3; break;

      case  3: k4=0.2; break;

      case  4: k4=0.1; break; 

            default: str2="Вы не  указали тип склад"; k4=1;

}

//Label6->Caption="k4= "+FloatToStr(k4);

Memo1->Lines->Add(str2);

//////////////////////////////////////////

i=ComboBox4->ItemIndex;

k5=0;

switch (i) {

      case  0: k5=1; break;

      case  1: k5=0.9; break;

      case  2: k5=0.8; break;

      case  3: k5=0.7; break;

      case  4: k5=0.6; break;

      case  5: k5=0.4; break;

      case  6: k5=0.2; break;

      case  7: k5=0.1; break;

      case  8: k5=0.01; break; 

            default: str3="Вы не  указали влажность материала"; k5=1;

}

//Label11->Caption="k5= "+FloatToStr(k5);

Memo1->Lines->Add(str3);

/////////////////////////////////////

i=ComboBox5->ItemIndex;

k7=0;

switch (i) {

      case  0: k7=0.1; break;

      case  1: k7=0.2; break;

      case  2: k7=0.4; break;

      case  3: k7=0.5; break;

      case  4: k7=0.6; break;

      case  5: k7=0.7; break;

      case  6: k7=0.8; break;

      case  7: k7=1; break; 

            default: str4="Вы не  указали размер материала"; k7=0,5375;

}

//Label14->Caption="k7= "+FloatToStr(k7);

Memo1->Lines->Add(str4);

////////////////////////////////////////

i=ComboBox6->ItemIndex;

B=0;

switch (i) {

      case  0: B=0.4; break;

      case  1: B=0.5; break;

      case  2: B=0.6; break;

      case  3: B=0.7; break;

      case  4: B=1; break;

      case  5: B=1.5; break;

      case  6: B=2; break;

      case  7: B=2.5; break; 

            default: str5="Вы не  указали высоту падения материала"; B=0,4;

}

//Label17->Caption="B= "+FloatToStr(B);

Memo1->Lines->Add(str5);

try

   {

      GH=StrToFloat(Edit1->Text);

      }

        catch(EConvertError&)

   {

   Memo1->Lines->Add("Кол-во перерабатываемого материала в час (т/час)");

         Edit1->SetFocus();

         Edit1->Clear();

         }

try

   {

      GY=StrToFloat(Edit2->Text);

      }

        catch(EConvertError&)

   {

   Memo1->Lines->Add("Кол-во материала перерабатываемое в течение года (т/год)");

         Edit2->SetFocus();

         Edit2->Clear();

         }

try

   {

      Fmax=StrToFloat(Edit7->Text);

      }

        catch(EConvertError&)

   {

   Memo1->Lines->Add("Площадь поверхности склада при максимальном заполнении, м2");

Информация о работе Экспертная система расчета выбросов загрязняющих веществ при пересыпке пылящих материалов (растворный узел)