Пояснювальна записка 3 ст., 29 рис., 28 табл., додатків


Додатки Розрахунок етанової колони в MathCAD



Сторінка18/18
Дата конвертації30.11.2018
Розмір1.12 Mb.
Назва файлуЗаписка_Диплом_4_курс_2018.docx
ТипПояснювальна записка
1   ...   10   11   12   13   14   15   16   17   18
Додатки

Розрахунок етанової колони в MathCAD

Додаток А




Блок-схема обчислювального модуля

Додаток Б
Програмний код обчислювального модуля

Додаток В

#pragma endregion

double xc1, xc2, xc3, xc4i, xc4h, xc5i, xc5h, sum1, Gc, Mc, F, F1, sumRi, sumDi, r,N;

array^ ci = gcnew array(7);

array^ Fi = gcnew array(7);

array^ Ri = gcnew array(7);

array^ Di = gcnew array(7);

array^ Rij = gcnew array(7);

array^ Dij = gcnew array(7);

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {

Close();}

private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {

tabControl1->SelectedIndex = 1;}

private: System::Void button11_Click(System::Object^ sender, System::EventArgs^ e) {

MessageBox::Show("Для розрахунку необхідно ввести мольні долі, якщо наявні є лиш масові долі, то використайте вбудований калькулятор ");}

private: System::Void button12_Click(System::Object^ sender, System::EventArgs^ e) {

tabControl1->SelectedIndex = 8;}

private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {

DataTable^ Table = gcnew DataTable();

DataSet^ ds = gcnew DataSet();

array^ fii = { 0,0.015,0.9,1,1,1,1 }; array^ text = { "CH4","C2H6","C3H8","i - C4H10","i - C4H10","i - C5H12","i - C5H12" };

xc1 = double::Parse(textBox1->Text); xc2 = double::Parse(textBox2->Text);

xc3 = double::Parse(textBox3->Text); xc4i = double::Parse(textBox4->Text);

xc4h = double::Parse(textBox8->Text); xc5i = double::Parse(textBox7->Text); xc5h = double::Parse(textBox6->Text); Gc = double::Parse(textBox9->Text);

ci[0] = xc1; ci[1] = xc2; ci[2] = xc3; ci[3] = xc4i; ci[4] = xc4h; ci[5] = xc5i;

ci[6] = xc5h; sum1 = xc1 + xc2 + xc3 + xc4i + xc4h + xc5i + xc5h;

textBox5->Text = sum1.ToString("F"); sumRi = 0; sumDi = 0;

Table->Columns->Add("Вуглеводень", String::typeid);

Table->Columns->Add("Мольні долі", double::typeid);

Table->Columns->Add("Кількість Fi кмоль/годину", double::typeid);

Table->Columns->Add("Степінь витягу мольн. долі", double::typeid);

Table->Columns->Add("Кількість в залишку кмоль/год", double::typeid);

Table->Columns->Add("Кількість в залишку мольних доль", double::typeid);

Table->Columns->Add("Кількість в дистиляті кмоль/год", double::typeid);

Table->Columns->Add("Кількість в дистиляті мольних доль", double::typeid);

if (sum1 < 0.95 || sum1 > 1.05) {

MessageBox::Show("Сума масових долей повинна дорівнювати 1 !!!");

}

if (Gc <= 0) {MessageBox::Show("Подача сировини на вхід системи не може бути меншою чи рівною нулю !!!");}



else

{ Mc = 16 * xc1 + 30 * xc2 + 44 * xc3 + 58 * (xc4i + xc4h) + 72 * (xc5i + xc5h);

F = Gc / Mc;

F1 = 0.68*F;

textBox31->Text = F1.ToString("F");

for (size_t i = 0; i < 7; i++)

{ Fi[i] = F1*ci[i];

Ri[i] = Fi[i] * fii[i];

Di[i] = Fi[i] - Ri[i];

sumRi = sumRi + Ri[i];

sumDi = sumDi + Di[i]; }

for (size_t i = 0; i < 7; i++)

{ Rij[i] = Ri[i]/ sumRi; Dij[i] = Di[i] / sumDi; }

textBox10->Text = sumDi.ToString("F"); textBox11->Text = sumRi.ToString("F"); }

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

{

DataRow^ row = Table->NewRow();



row["Вуглеводень"] =text[i];

row["Мольні долі"] = (round(ci[i]*100))/100;

row["Кількість Fi кмоль/годину"] = (round(Fi[i] * 100)) / 100;

row["Степінь витягу мольн. долі"] = (round(fii[i] * 100)) / 100;

row["Кількість в залишку кмоль/год"] = (round(Ri[i] * 100)) / 100;

row["Кількість в залишку мольних доль"] = (round(Rij[i] * 100)) / 100;

row["Кількість в дистиляті кмоль/год"] = (round(Di[i] * 100)) / 100;

row["Кількість в дистиляті мольних доль"] = (round(Dij[i] * 100)) / 100;

Table->Rows->Add(row); }

dataGridView1->DataSource = Table;

ds->Tables->Add(Table);

ds->WriteXml("table.xml");


richTextBox1->AppendText("На вхід було подано газ зі швидкістю F = " + F1.ToString("F2") + " моль/годину" + "\r\n");

richTextBox1->AppendText("На вихід до дистиляту було відділено D = " + sumDi.ToString("F2") + " моль/годину" + "\r\n");

richTextBox1->AppendText("На вихід до залишку було відділено R = " + sumRi.ToString("F2") + " моль/годину" + "\r\n");

richTextBox1->AppendText("Матеріальний баланс занесено до таблиці покомпонентно" + "\r\n");}

private: System::Void button20_Click(System::Object^ sender, System::EventArgs^ e) {

array^ ci = gcnew array(7);

textBox1->Text = "0,250"; textBox2->Text = "0,178";

textBox3->Text = "0,268"; textBox4->Text = "0,069";

textBox8->Text = "0,135"; textBox7->Text = "0,037";

textBox6->Text = "0,063"; textBox9->Text = "30000";

xc1 = double::Parse(textBox1->Text); xc2 = double::Parse(textBox2->Text);

xc3 = double::Parse(textBox3->Text); xc4i = double::Parse(textBox4->Text);

xc4h = double::Parse(textBox8->Text); xc5i = double::Parse(textBox7->Text);

xc5h = double::Parse(textBox6->Text); Gc = double::Parse(textBox9->Text);

ci[0] = xc1; ci[1] = xc2; ci[2] = xc3; ci[3] = xc4i; ci[4] = xc4h;

ci[5] = xc5i; ci[6] = xc5h; sum1 = xc1 + xc2 + xc3 + xc4i + xc4h + xc5i + xc5h;

textBox5->Text = sum1.ToString("F"); textBox12->Text = "1,6"; textBox19->Text = "1,23"; textBox24->Text = "2,24"; textBox27->Text = "0,83";}

private: System::Void button19_Click(System::Object^ sender, System::EventArgs^ e) {

panel3->Visible = true;}

private: System::Void button22_Click(System::Object^ sender, System::EventArgs^ e) {

panel3->Visible = false;}

private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) {

tabControl1->SelectedIndex = 2;

double l, n,k; array^ Ki = { 5.3,1.52,0.6 }; array^ ai = { 8.8,2.55,1 };

xc1 = double::Parse(textBox1->Text); xc2 = double::Parse(textBox2->Text); xc3 = double::Parse(textBox3->Text); l = xc2 / xc3; n = ai[1] / ai[2]; textBox13->Text = l.ToString("F");

textBox14->Text = n.ToString("F");

k = log10((Dij[1] / Dij[2])*(Rij[1] / Rij[2])*pow(l, (0.55*ai[1])));

textBox18->Text = k.ToString("F"); textBox17->Text = n.ToString("F");}

private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) {

Double rmin1, rmin, tau,s,Rf,Gf; array^ ai = { 8.8,2.55,1 };

tau= double::Parse(textBox12->Text); s = double::Parse(textBox19->Text);

rmin1 = (ai[0] * Dij[0] / (ai[0] - tau))+ (ai[1] * Dij[1] / (ai[1] - tau))+ (ai[2] * Dij[2] / (ai[2] - tau)); rmin = rmin1 - 1; r = rmin*s; Rf = r*sumDi; Gf = Rf + sumDi;

textBox15->Text = rmin.ToString("F"); textBox16->Text = r.ToString("F");

textBox21->Text = Rf.ToString("F"); textBox20->Text = Gf.ToString("F");

richTextBox1->AppendText("Мінімальне флегмове число рівне Rmin = " + rmin.ToString("F2") + "\r\n");

richTextBox1->AppendText("Робоче флегмове число рівне R = " + r.ToString("F2") + "\r\n");

richTextBox1->AppendText("Витрата флегми Rf = " + Rf.ToString("F2") + "\r\n");

richTextBox1->AppendText("Витрата пари Gf = " + Gf.ToString("F2") + "\r\n");

}

private: System::Void button8_Click(System::Object^ sender, System::EventArgs^ e) {



tabControl1->SelectedIndex = 6;

}

private: System::Void button10_Click(System::Object^ sender, System::EventArgs^ e) {



tabControl1->SelectedIndex = 3;

double l, n, k,s; array^ ai = { 8.8,2.55,1 }; n = ai[1] / ai[2];

textBox22->Text = n.ToString("F"); textBox25->Text = n.ToString("F");

s = 0.83*Rij[2]; l = log10((Dij[1] / Dij[2])*( s/ Rij[1])); k = log10((Dij[1] / Dij[2])*(Rij[2] / Rij[1])); textBox23->Text = l.ToString("F"); textBox26->Text = k.ToString("F"); }

private: System::Void button17_Click(System::Object^ sender, System::EventArgs^ e) {

tabControl1->SelectedIndex = 7;}

private: System::Void button14_Click(System::Object^ sender, System::EventArgs^ e) {

double l, nmin, n, k, m; l = double::Parse(textBox27->Text); m = l + 1;

nmin = exp(m); k= double::Parse(textBox24->Text); n = nmin*k;

N = n / 0.67; textBox28->Text = nmin.ToString("F"); textBox29->Text = n.ToString("F"); textBox30->Text = N.ToString("F");

richTextBox1->AppendText("Кількість робочих тарілок N = " + N.ToString("F0") + "\r\n");}
private: System::Void button16_Click(System::Object^ sender, System::EventArgs^ e) {

tabControl1->SelectedIndex = 2;}

private: System::Void button15_Click(System::Object^ sender, System::EventArgs^ e) {

tabControl1->SelectedIndex = 4; Double tv,tn,pv,pn,Vv,Vn,Cmax,Cv,Cn,wv,wn,Dv,Dn;

tv = 24; tn = 121; pv = 3.86; pn = 3.92; Vv = ((sumDi + r*sumDi)*22.4*(tv + 273)*0.1) / (3600 * 273 * pv); Vn = (810*22.4*(tn + 273)*0.1) / (3600 * 273 * pn);

Cmax = 2950 * 0.4 - 460; Cv = 455; Cn = 320; wv = 0.116; wn = 0.062;

Dv = pow(((4*Vv)/(3.14*wv)), (0.5)); Dn = pow(((4 * Vn) / (3.14*wn)), (0.5));

textBox32->Text = Vv.ToString("F"); textBox33->Text = wv.ToString("F");

textBox34->Text = Dv.ToString("F"); textBox37->Text = Vn.ToString("F");

textBox36->Text = wn.ToString("F"); textBox35->Text = Dn.ToString("F");

Double Hp, h1, h2, h3, h4;

h1 = 1; h2 = (N - 1)*0.4; h3 = 1.5; h4 = 2; Hp = h1 + h2 + h3 + h4 ;

textBox38->Text = h1.ToString("F"); textBox39->Text = h2.ToString("F");

textBox40->Text = h3.ToString("F"); textBox41->Text = h4.ToString("F");

textBox42->Text = Hp.ToString("F");

richTextBox1->AppendText("Діаметер колони для верху колони D = " + Dv.ToString("F2") + "\r\n");

richTextBox1->AppendText("Діаметер колони для низу колони D = " + Dn.ToString("F2") + "\r\n");

richTextBox1->AppendText("Висота колони H = " + Hp.ToString("F2") + "\r\n");

richTextBox1->AppendText("Дані розрахунки записані до файлу DP");

//File::WriteAllText("DP.txt", richTextBox1->Text);}

private: System::Void button13_Click(System::Object^ sender, System::EventArgs^ e) {

tabControl1->SelectedIndex = 5;}

private: System::Void button23_Click(System::Object^ sender, System::EventArgs^ e) {

tabControl1->SelectedIndex = 4;}

private: System::Void button7_Click(System::Object^ sender, System::EventArgs^ e) {

tabControl1->SelectedIndex = 7;}

private: System::Void button26_Click(System::Object^ sender, System::EventArgs^ e) {

array^ cmas = gcnew array(7);

array^ cmol = gcnew array(7);

array^ Ma = { 16,30,44,58,58,72,72 };

double Mb = 34;

cmas[0] = double::Parse(textBox50->Text)*100;

cmas[1] = double::Parse(textBox49->Text) * 100;

cmas[2] = double::Parse(textBox48->Text) * 100;

cmas[3] = double::Parse(textBox47->Text) * 100;

cmas[4] = double::Parse(textBox46->Text) * 100;

cmas[5] = double::Parse(textBox45->Text) * 100;

cmas[6] = double::Parse(textBox44->Text) * 100;

for (size_t i = 0; i < 7; i++)

{cmol[i] = (cmas[i] / Ma[i]) / ((cmas[i] / Ma[i]) + ((100 - cmas[i]) / Mb));}


textBox54->Text = cmol[0].ToString("F");

textBox55->Text = cmol[1].ToString("F");

textBox57->Text = cmol[2].ToString("F");

textBox58->Text = cmol[3].ToString("F");

textBox56->Text = cmol[4].ToString("F");

textBox52->Text = cmol[5].ToString("F");

textBox53->Text = cmol[6].ToString("F");

}

private: System::Void button29_Click(System::Object^ sender, System::EventArgs^ e) {



textBox1->Text = textBox54->Text;

textBox2->Text = textBox55->Text;

textBox3->Text = textBox57->Text;

textBox4->Text = textBox58->Text;

textBox8->Text = textBox56->Text;

textBox7->Text = textBox52->Text;

textBox6->Text = textBox53->Text;}

private: System::Void button28_Click(System::Object^ sender, System::EventArgs^ e) {

tabControl1->SelectedIndex = 1;}

private: System::Void button6_Click(System::Object^ sender, System::EventArgs^ e) {

tabControl1->SelectedIndex = 2;}

private: System::Void button27_Click(System::Object^ sender, System::EventArgs^ e) {



tabControl1->SelectedIndex = 3;}};}



Поділіться з Вашими друзьями:
1   ...   10   11   12   13   14   15   16   17   18


База даних захищена авторським правом ©refua.in.ua 2017
звернутися до адміністрації

    Головна сторінка
Контрольна робота
навчальної дисципліни
Методичні вказівки
Лабораторна робота
Методичні рекомендації
Загальна характеристика
курсової роботи
використаної літератури
охорони праці
Курсова робота
Список використаної
курсу групи
Зміст вступ
Виконав студент
Пояснювальна записка
Виконала студентка
Історія розвитку
Міністерство освіти
форми навчання
навчальних закладів
самостійної роботи
Теоретичні основи
навчальний заклад
Робоча програма
діяльності підприємства
Практичне заняття
молодших школярів
роботи студентів
Самостійна робота
вищої освіти
використаних джерел
студентка курсу
студент групи
загальноосвітніх навчальних
інтелектуальної власності
виконання курсової
студентів спеціальності
Курсовая работа
Загальні відомості
світової війни
охорони здоров
Історія виникнення
Конспект лекцій
студентка групи
Практична робота
навчального закладу
контрольної роботи
Теоретичні аспекти
Список літератури
напряму підготовки
внутрішніх справ