Проектирование системы автоматизации установки висбрекинга ОАО "УНПЗ"
Описание технологической схемы процесса висбрекинга. Порядок действия схемы технологической сигнализации. Эргономическое обеспечение рабочего места оператора. Указания по монтажу электрических и трубных проводок. Описание схемы электро- и пневмопитания.
Рубрика | Производство и технологии |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 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