Проектирование системы автоматизации установки висбрекинга ОАО "УНПЗ"

Описание технологической схемы процесса висбрекинга. Порядок действия схемы технологической сигнализации. Эргономическое обеспечение рабочего места оператора. Указания по монтажу электрических и трубных проводок. Описание схемы электро- и пневмопитания.

Рубрика Производство и технологии
Вид курсовая работа
Язык русский
Дата добавления 26.08.2017
Размер файла 371,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Рисунок 8 - Граф состояний n приборов с подключением резерва.

В состоянии 0 все приборы исправны.

В состоянии 1 отказал один прибор.

В состоянии 2 вместо отказавшего прибора поставлен единственный резервный.

Состояние 3 - отказовое для всей системы.

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

P0(t) = 1; Pi(0) = 0; i = 1,2,3

-1 = - (n+1) T0 + T2

0=T0 + yT0 - (n + )T2

a = n + y; b = exp (-a); e = + n ; N = n+1;

где Pi - вероятность нахождения системы в i-том состоянии.

Решая систему, находим вероятности безотказной работы в момент времени t.

Среднее время наработки на отказ определяется так же, как и в случае 2 с запасными элементами.

Исходные данные:

интенсивность отказов (1/ч): 1.4e-05

интенсивность восстановления (1/ч): 0.77

интенсивность перехода на резерв (1/ч): 10

допустимая длительность перехода на резерв (ч): 0.0833

число рабочих приборов: 2

Среднее время наработки на отказ: 82146.2 ч

Среднее время наработки на отказ при мгновенном переходе на резерв: 6.54821е+08 ч.

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

1. Технологический регламент установки висбрекинг, УНПЗ.

2. Казьмин П.М. Монтаж, наладка и эксплуатация автоматических устройств химических производств: М.: Химия, 1979.

3. Клюев А.С. и др. Проектирование систем автоматизации и технологических процессов: справочное пособие. Москва: Энергия, 1980. - 512 с.

4. Клюев А.С. и др. Техника чтения схем автоматического управления и технологического контроля. - М.: Энергоатомиздат, 1983. - 376 с., ил.

Смета затрат на приобретение средств автоматизации

Наименование

Стоимость единицы, тыс.руб.

Кол-во, шт.

Общая стоимость, тыс.руб.

Диафрагма камерная ДКС

180

5

900

Термопреобразователь ТХК

380

6

2280

Преобразователь «Сапфир-22-ДИ»

350

6

2100

Преобразователь «ABB Industry»

600

4

2400

Устройство отображения

6000

4

24000

ADVANT Controller System

22000

2

44000

Электропневмопреобразователь ЭП-1321

450

7

3150

Исполнительный механизм КР: 25С18НЖ

500

7

3500

Блок питания БП-36

1020

8

8160

Итого:

90490

Заказная спецификация на электроаппаратуру

№ по пор.

Наименование

Цена, руб.

Кол-во, шт.

Сумма, руб.

1

Электроконтактное реле напряжения РН 53/220

270

2

540

2

Кнопочный нажимной выключатель КУ 123-11У2

60

2

120

3

Пакетный выключатель ПВ2-10

60

24

1440

4

Пакетный переключатель ПП2-10/Н2

80

2

160

5

Пакетный выключатель ПВ2-10, один полюс закорочен

80

2

160

6

Сирена электрическая СС-1

250

1

250

7

Предохранитель с плавкой вставкой

ПК-30 0,5А

ПК-30 0,25А

ПТ

ПТ 0,1А

ПК-30 1А

ПТ 3А

25

25

15

20

15

30

1

10

1

6

4

4

25

250

15

120

60

120

8

Трансформатор 220/36 ТБС-016 220/36

600

1

600

9

Розетка штепсельная РШ-Ц-2-0-00

50

4

200

10

Резистор на 360 Ом МЛТ-0,5

15

1

15

11

Лампа сигнальная В 220-25

30

9

270

Итого:

4345

Заказная спецификация на кабели и провода

№ п/п

Наименование

Цена за 1м, руб.

Кол-во,

м

Сумма, руб.

1

КРВГ 4х1,5

45

75

3375

2

КРВГ 4х1,0

40

38

1520

3

КРВГ 10х1,5

80

24

1920

4

2ПРТО 1х1,5

30

110

3300

5

ПРТО 2х2,5

60

63

3780

Всего:

13895

Заказная спецификация на основные монтажные материалы

№ п/п

Наименование

Цена, руб.

Кол-во

Сумма, руб.

1

Зажим коммутационный ЗК-И

85

7

595

2

Колодки маркировочные КМ 40ИЧ250

30

3

90

3

Рейка зажимная РЗ

20

2

40

4

Оконцеватель маркировочный ОКМ-МИ21Т3-64

20

4

80

5

Бирка маркировочная БМА-20

15

20

300

6

Коробка соединительная КСК 8

50

7

350

7

Протяжная коробка КТО 20

120

1

120

Итого:

1575

Заказная спецификация на трубопроводную арматуру

№ п/п

Наименование

Цена, руб.

Кол-во

Сумма, руб.

1

Кран трехходовой КТК

220

3

660

2

Вентиль запорный муфтовый Ру=1 Мпа, Ду=32 мм 15БЗК

230

12

2760

3

Вентиль запорный муфтовый Ру=1 Мпа, Ду=25 мм 15БЗК

200

1

200

4

Вентиль запорный муфтовый Ру=1 Мпа, Ду=15 мм 15БЗК

210

10

2100

5

Фильтр воздуха Ру=0,2…1 Мпа ФВ-2М

260

7

1820

6

Фильтр воздуха ФРБ1

350

2

700

7

Редуктор давления РДВ-1М

330

7

2310

8

Манометр показывающий МТ-1 со шкалой (0…1,0) МПа

180

3

540

Итого:

11090

Приложение 1

Текст программы PSA 1

#include <stdio.h>

#include <cstring.h>

#include <iostream.h>

#include <math.h>

#include <fstream.h>

template<class T> class TLink

{public:

TLink* next;

T* data;

TLink(T* Data,TLink* Next):data(Data),next(Next){}

~TLink(){ if(next) delete next; if(data) delete data; }

void Output(){ if(next) next->Output(); data->Output(); }

void Output(ofstream& out){ if(next) next->Output(out); data->Output(out);}

};

template<class T> class TList

{public:

TLink<T>* first;

TList():first(0){}

~TList(){ delete first; }

void Add(T* Data){ first=new TLink<T>(Data,first); }

int IsEmpty(){ return first?0:1; }

void DeleteFirst(){ TLink<T>* current=first; first=first->next;

current->next=0; delete current; }

void Output(){ if(first) first->Output(); }

void Output(ofstream& out){ if(first) first->Output(out); }

int SwitchInput(string& S){ char c[80]; cin.getline(c,80);

switch(c[0]){ case 0 : return 0;

case '=': return 2;

default: S=c; return 1; } }

double NumberInput(string S){ cout << " " << S << ": ";

char c[20]; cin >> c;

for(int i=0;i<strlen(c);i++)

if(c[i]==',') c[i]='.';

return atof(c); }

};

class TType

{public:

string denomination,designation;

double l,m;

TType(string Denomination,string Designation,double L,double M)

:denomination(Denomination),designation(Designation),l(L),m(M){}

void Output(){ cout << designation << ":\t" << l << "\t" << m << "\t"

<< denomination << endl; }

void Output(ofstream& out){ out << designation << ":\t" << l << "\t" << m

<< "\t" << denomination << endl; }

};

class TTypeList:public TList<TType>

{public:

TTypeList():TList<TType>()

{ for(;;){ string denomination,designation;

double l,m;

cout << endl << " наименование: ";

if(!SwitchInput(denomination)) return;

for(;;){ cout << " обозначение(тип): ";

cin >> designation;

if(designation=="=")

cout << " зарезервированный тип\n";

else if(TypeExist(designation))

cout << " такой тип уже существует\n";

else break; }

l=NumberInput("интенсивность отказов (1/ч)");

m=NumberInput("интенсивность восстановления (1/ч)");

Add(new TType(denomination,designation,l,m));

cin.ignore(); } }

void Output(){ cout << "Типы Инт.отк.Инт.восст.\n";

TList<TType>::Output(); }

void Output(ofstream& out){ out << "Типы Инт.отк.Инт.восст.\n";

TList<TType>::Output(out); }

TType* TypeExist(string Designation)

{ if(!first) return 0;

TLink<TType>* current=first;

do{ if(current->data->designation==Designation) return current->data;

current=current->next;

}while(current);

return 0;

}

};

class TElement

{public:

TType* type;

string poz;

TElement(TType* Type,string Poz=""):type(Type),poz(Poz){}

virtual int IsEmpty(){ return 0; }

virtual void Output(){ cout << " " << poz << type->denomination << endl; }

virtual void Output(ofstream& out)

{ out << " " << poz << type->denomination << endl; }

virtual double P(double t){ return exp(-t*type->l); }

};

class TSeria:public TList<TElement>

{public:

TTypeList* tl;

string poz;

int i;

TSeria(TTypeList* TL,string Poz=""):TList<TElement>(),tl(TL),poz(Poz),i(1)

{ for(;;){ string designation;

cout << poz << i << " тип элемента: ";

switch(SwitchInput(designation))

{ case 0: return;

case 2: AddPar(tl); continue; }

TType* type=tl->TypeExist(designation);

if(!type) cout << " такой тип не существует\n";

else{ char c[10]; sprintf(c,"%d ",i);

Add(new TElement(type,poz+c)); i++; } } }

void AddPar(TTypeList* TL);

double P(double t){ TLink<TElement>* current=first;

double p=1;

do{ p*=current->data->P(t); current=current->next;

}while(current);

return p; }

};

class TParallel:public TElement,TList<TSeria>

{public:

string poz;

TParallel(TTypeList* TL,string Poz=""):TElement(0),TList<TSeria>(),poz(Poz)

{ for(int i=1;;i++)

{ char c[10]; sprintf(c,"%d.",i);

Add(new TSeria(TL,poz+c));

if(first->data->IsEmpty()){ DeleteFirst(); return; } } }

int IsEmpty(){ return TList<TSeria>::IsEmpty(); }

void Output(){ TList<TSeria>::Output(); }

void Output(ofstream& out){ TList<TSeria>::Output(out); }

double P(double t){ TLink<TSeria>* current=first;

double q=1;

do{ q*=1-current->data->P(t); current=current->next;

}while(current);

return 1-q; }

};

void TSeria::AddPar(TTypeList* TL)

{ char c[10]; sprintf(c,"%d:",i);

Add(new TParallel(TL,poz+c));

if(first->data->IsEmpty()) DeleteFirst(); else i++;

}

#include <conio.h>

int question(char* string)

{ cout << string << " (ENTER/ESC)";

for(;;){ int c=getch();

if(c==13){ cout<<"\n"; return 1; }

if(c==27){ cout<<"\n"; return 0; } }

}

void main()

{ cout << "Расчёт надёжности системы с произвольными структурой\n"

<< "и числом элементов при условии её невосстанавления\n";

TTypeList* t; for(;;)

{ cout << "\nВведите типы элементов\n";

t=new TTypeList();

cout << "\nТаблица типов элементов\n";

if(t->IsEmpty()) cout << " пуста\n";

else{ t->Output();

if(question("\nПравильно введены типы?")) break;

else delete t; }

}

ofstream out("psa1.txt",ios::out);

out << "Результаты расчёта программы psa1.exe\n\n"

<< "Расчёт надёжности системы с произвольными структурой\n"

<< "и числом элементов при условии её невосстанавления\n"

<< "\nТаблица типов элементов\n";

t->Output(out);

TSeria* s; for(;;)

{ cout << "\nВведите структуру отказа\n";

s=new TSeria(t);

cout << "\nСтруктура отказа\n";

if(s->IsEmpty()) cout << " пуста\n";

else{ s->Output();

if(question("\nПравильно введена структура отказа?")) break;

else delete s; }

}

out << "\nСтруктура отказа\n";

s->Output(out);

double P[100],time,dt; int n; for(;;)

{ cout << "\nРасчёт вероятности безотказной работы\n"

<< " временной интервал (ч): ";

cin >> time;

cout << " число точек (до 100): ";

cin >> n;

if(n>100) continue;

dt=time/n;

cout << "Время Вероятность безотказной работы\n";

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

{ P[i]=s->P(i*dt); cout << i*dt << " " << P[i] << "\n "; }

if(!question("\nПовторить расчёт вероятности?")) break;

}

out << "\nВремя Вероятность безотказной работы\n";

for(int i=0;i<=n;i++) out << i*dt << " " << P[i] << "\n ";

double T; for(;;)

{ cout << "\nРасчёт среднего времени наработки на отказ\n"

<< " временной интервал (ч): ";

cin >> time;

cout << " число точек (до 10000): ";

cin >> n;

if(n>10000) continue;

dt=time/n; T=0;

for(i=1;i<=n;i++) T+=s->P(i*dt)*dt;

cout << "\nСреднее время наработки на отказ: " << T << " ч\n";

if(!question("\nПовторить расчёт наработки?")) break;

}

out << "\nСреднее время наработки на отказ: " << T << " ч";

cout << "\nРезульты расчёта находятся в файле psa1.txt"

<< "\nРабота приложения закончена. Закройте окно.";

}

Приложение 2

Текст программы PSA 12

#include <stdio.h>

#include <cstring.h>

#include <iostream.h>

#include <math.h>

#include <fstream.h>

template<class T> class TLink

{ ... // подробно см. файл psa1.cpp

};

template<class T> class TList

{ ... // подробно см. файл psa1.cpp

};

class TType

{ ... // подробно см. файл psa1.cpp

};

class TTypeList:public TList<TType>

{ ... // подробно см. файл psa1.cpp

};

class TElement

{ ... // подробно см. файл psa1.cpp

};

class TSeria:public TList<TElement>

{ ... // подробно см. файл psa1.cpp

double Kg(double T,int N)

{ TLink<TElement>* current=first;

int n=0; do{ n++; current=current->next; }while(current);

double* l,* m,* p,Sl=0,kg,dt=T/N;

l=new double[n]; m=new double[n]; p=new double[n+1];

current=first;

for(int i=0;i<n;i++){ l[i]=current->data->type->l; Sl+=l[i];

m[i]=current->data->type->m; p[i]=0;

current=current->next; }

p[0]=1; double t=0;

for(i=0;i<=N;i++){ double SmP=0,Po=p[0];

for(int j=1;j<=n;j++) SmP+=m[j-1]*p[j];

p[0]+=dt*(SmP-Sl*Po);

for(j=1;j<=n;j++) p[j]+=dt*(l[j-1]*Po-m[j-1]*p[j]);

t+=dt; }

kg=p[0]; delete[] l,m,p; return kg;

}

};

#include <conio.h>

int question(char* string)

{ ... // подробно см. файл psa1.cpp

}

void main()

{ cout << "Расчёт надёжности системы с произвольными структурой\n"

<< "и числом элементов при условии её невосстанавления\n";

TTypeList* ty; for(;;)

{ cout << "\nВведите типы элементов\n";

ty=new TTypeList();

cout << "\nТаблица типов элементов\n";

if(ty->IsEmpty()) cout << " пуста\n";

else{ ty->Output();

if(question("\nПравильно введены типы?")) break;

else delete ty; }

}

ofstream out("psa12.txt",ios::out);

out << "Результаты расчёта программы psa12.exe\n\n"

<< "Расчёт надёжности системы с линейной структурой и произвольным\n"

<< "числом элементов при условии её восстановления\n"

<< "\nТаблица типов элементов\n";

ty->Output(out);

TSeria* s; for(;;)

{ cout << "\nВведите структуру отказа\n";

s=new TSeria(ty);

cout << "\nСтруктура отказа\n";

if(s->IsEmpty()) cout << " пуста\n";

else{ s->Output();

if(question("\nПравильно введена структура отказа?")) break;

else delete s; }

out << "\nСтруктура отказа\n";

s->Output(out);

double kg,t; int n; for(;;)

{ cout << "\nРасчёт коэффициента готовности\n"

<< " временной интервал (ч): "; cin >> t;

cout << " число точек расчёта (до 100000): "; cin >> n;

if(n>100000) continue;

kg=s->Kg(t,n);

cout << "Коэффициент готовности Кг=" << kg;

if(!question("\nПовторить расчёт Kг?")) break;

out << "\nКоэффициент готовности Кг=" << kg;

cout << "\nРезульты расчёта находятся в файле psa12.txt"

<< "\nРабота приложения закончена. Закройте окно.";

}

Размещено на Allbest.ru


Подобные документы

  • Проектирование схема установки висбрекинга и ее аппаратурное оформление на примере ОАО "ПКОП". Необходимые обоснования и расчеты по материальному балансу, подобор технологического оборудования с целью увеличения его устойчивой работы и эффективности.

    курсовая работа [344,8 K], добавлен 25.12.2014

  • Методика разработки технологической схемы производства силикатного кирпича и общее описание технологического процесса. Содержание материального баланса завода. Порядок формирования технологической карты производственного процесса на исследуемом заводе.

    контрольная работа [35,6 K], добавлен 10.01.2013

  • Описание технологической схемы производства исследуемой продукции. Выбор и обоснование параметров контроля, сигнализации и регулирования. Технические средства автоматизации. Описание функциональной схемы автоматизации, анализ и оценка ее эффективности.

    контрольная работа [37,1 K], добавлен 12.08.2013

  • Выбор, разработка технологической схемы процесса улавливания этилового спирта. Описание технологической схемы улавливания. Технологический расчет вертикального кольцевого адсорбера. Схема общего вида, устройство и принцип действия адсорбционной установки.

    курсовая работа [131,9 K], добавлен 15.11.2009

  • Характеристика сырья и готовой продукции завода. Описание технологической схемы размольного отделения мельзавода. Формирование сортов муки. Описание технологической схемы цеха бестарного хранения после реконструкции. Расчет и подбор оборудования.

    курсовая работа [71,6 K], добавлен 28.09.2014

  • Описание действия установки для разделения бинарной смеси этанол - вода. Составление и описание технологической схемы ректификационной установки, расчет основного аппарата (колонны), подбор вспомогательного оборудования (трубопроводов и обогревателя).

    курсовая работа [480,7 K], добавлен 08.06.2015

  • Анализ технологического процесса производства краски как объекта управления. Особенности системы фасовки краски и дозирования жидкостного сырья. Химический состав краски. Выбор приборов и средств автоматизации. Описание технологической схемы установки.

    курсовая работа [2,1 M], добавлен 27.09.2014

  • Описание технологической схемы установки утилизации теплоты отходящих газов технологической печи. Расчет процесса горения, состав топлива и средние удельные теплоемкости газов. Расчет теплового баланса печи и ее КПД. Оборудование котла-утилизатора.

    курсовая работа [160,1 K], добавлен 07.10.2010

  • Темой курсового проекта является проектирование технологического процесса сборки и проверки редуктора. Построение технологической схемы сборки редуктора. С использованием технологической схемы сборки проводится подробный анализ процесса сборки редуктора.

    курсовая работа [3,9 M], добавлен 16.07.2008

  • Анализ технологического процесса. Уровень автоматизации работы смесительной установки. Алгоритм производственного процесса. Описание функциональной схемы автоматизации дозаторного отделения, принципиальной электрической схемы надбункерного отделения.

    контрольная работа [14,2 K], добавлен 04.04.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.