Пояснювальна записка 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
звернутися до адміністрації

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