Курсовая работа: Автоматизация методической печи
Пусть на j-том шаге
заданными являются параметры Ti,j-1 (i=1,..,n-1), T0j, Tnj,
l. Все неизвестные значения Tij можно разместить в
массиве xi (xi=Tij, i=0,..,n). Ищем связь xi-1
с xi в виде рекуррентного соотношения
xi-1=ci-1xi+ni-1, i=1,..,n.(10)
Подставляя (10) в (7),
получаем
lci-1xi-(1+2l)xi+lxi+1 = -Тi,j-1-lni-1.
Отсюда
(11)
Сравнивая (11) с (10),
находим рекуррентные соотношения
,
, (12)
c0= 0, n0 = T0j .
Таким образом, алгоритм
определения значений Tij по известным Ti,j-1 состоит из
двух этапов: прямого хода прогонки по формулам (12) при i=1,..,n-1 и обратного
хода прогонки.
10.
Инструкция по пользованию программой
Рисунок 10.1 – Рабочее
окно программы.
На рисунке 10.1 показано
рабочее окно программы. Программа выполнена на языке программирования Borland
C++ Builder, содержит информацию о различных прокатываемых профилях и марках
стали. Для изменения Всада заготовки необходимо выбрать требуемый из
выпадающего списка меню "Всад заготовки". Аналогично выбирается и
марка стали и требуемая заготовка (рисунок 10.2)
Рисунок 10.2 – Выбор
требуемых параметров.
Информация о выбранных
параметрах отображается на панелях слева, причем в нижней панели возможно
изменять параметры, выбрав для этого "Ввод данных". По умолчанию на
этой панели отображаются параметры текущей заготовки. По нажатии кнопки "Расчет"
в окне появятся графики изменения температур по сечению заготовки (рисунок 10.3).
Рисунок 10-3 – Работа
программы.
ВЫВОДЫ
На данный момент отделение
методических печей занимает важное место в цикле производства проката различных
сортов, видов и т. д. Для эффективной работы методической печи необходим
серьезный контроль и автоматизация всех ее узлов.
Рост производства
проката, повышение требований к его качеству, а также поточность
технологических процессов создали условия для широкого внедрения эффективных
средств автоматического контроля и управления и поставили задачу дальнейшего
повышения уровня автоматизации. Автоматическое управление внедряют практически
на всех участках отделения методических печей. Автоматизируются процессы
нагрева, расходов топлива и воздуха, получают развитие новые, более совершенные
способы контроля и управления процессами нагрева металла.
В рамках данного
курсового проекта мною были рассмотрены контуры контроля и регулирования. Так
же мною была разработана математическая модель процесса нагрева металла. Эта
модель разработана на основании метода конечных разностей.
СПИСОК ИСПОЛЬЗУЕМОЙ
ЛИТЕРАТУРЫ
1.
В.А.Шамис "Borland
C++ Builder 6. для профессионалов" СПб.:Питер,2003
2.
А.Я.Архангельский.
"C++ Builder 6. Справочное пособие." М.:Бином – Пресс, 2004г.
3.
Нагрев металла и
эксплуатация методических печей рельсобалочного цеха. Технологическая
инструкция ТИ 232-7-89.
4.
Матвеев А.Г. "Теплотехника".
М. "Высшая школа" 1981.
5.
А.С.Телегин "Теплотехнические
расчеты металлургических печей"
6.
И.Н.Сушкин "Теплотехника"
М. "Металлургия" 1973
7.
С.А.Малый "Автоматизация
методических печей" Москва 1962.
8.
Хоу Чэн Лян.
Современное состояние и перспективы развития высокопроизводительных
регенеративных печей в КНР // "Металлургическая теплотехника".
Сборник научных трудов Государственной металлургической академии Украины. В 2-х
томах. Т. 1 – Днепропетровск: ГМетАУ, 1999. – 214 с.
9.
Патент 61495А
Украина, С21D 9/70. Нагревательный колодец с шариковыми регенераторами /
Сокуренко А.В., Шеремет В.А., Кекух А.В. и другие. Опубл. 17.11.2003. Бюллетень
No 11.
10.
Губинский В.И.,
Лу Чжун-У. Теория пламенных печей. – М.: Машиностроение, 1995. – 256 с.
Приложение А
Листинг программы
void __fastcall
TForm1::Button1Click(TObject *Sender)
{float h,t,l;
float u[1000][100];
float ug[1000][100];
float k[1000];
float v[1000];
float x[1000], w[1000];
int n,m;
double as=0;
if (
CheckBox1->Checked==true)
{
T1=StrToFloat(Edit1->Text);
T2=StrToFloat(Edit2->Text);
Tv=StrToFloat(Edit4->Text);
tau=StrToFloat(Edit5->Text);
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="
";
StaticText3->Caption="
";
}
Edit1->Text=T1;
Edit2->Text=T2;
Edit4->Text=Tv;
Edit5->Text=tau;
Series13->Clear();
h=0.01;
n=1/h;
m=n;
Series9->Clear();
Series10->Clear();
for (int i=0; i<n;
i++)
{ k[i]=0;
v[i]=0;
x[i]=0;
w[i]=0;
}
for (int i=0; i<n;
i++)
{
for (int j=0; j<m;
j++)
{
u[i][j]=0;
}
}
for (int j=0; j<m;
j++)
{
u[0][j]=Tv;
}
for (int i=0; i<=n+1;
i++)
{
if (as<=0.234)
{
u[i][0]=300/0.234*as+T2-300;
Series13->AddXY(as,u[i][0]);
}
else
if (as>0.234
&& as<0.694)
{
u[i][0]=T2;
Series13->AddXY(as,T2);
}
else
if(as>=0.694)
{
u[i][0]=T1;
Series13->AddXY(as,u[i][0]);
}
as+=h;
}
l=(500*(1-0.1*tau))/(h*h*7200*0.6*n);
for (int j=1; j<=m;
j+=1)
{
k[0]=0;
v[0]=u[0][j-1];
for (int i=1; i<=n-1;
i+=1)
{
v[i]=(u[i][j-1]+l*v[i-1])/(1+2*l-l*k[i-1]);
k[i]=l/(1+2*l-l*k[i-1]);
}
for (int i=n; i>=1;
i--)
{
x[n]=u[n][j-1];
x[i-1]=x[i]*k[i-1]+v[i-1];
}
for (int i=1; i<=n;
i++)
{
u[i][j]=x[i];
}
for (int i=0; i<=n;
i++)
{
w[0]=0;
for (int j=1; j<=n+1;
j++)
{
float dw=h;
w[j]=w[j-1]+dw;
}
}
}
Series1->Clear();
Series2->Clear();
Series3->Clear();
Series4->Clear();
Series5->Clear();
Series6->Clear();
Series7->Clear();
Series8->Clear();
Series11->Clear();
Series12->Clear();
float asd;
if(T2<T1)
asd=T1;
else
asd=T2;
for(int
f=Tv;f<=asd+10;f+=10)
{
Series11->AddXY(0.234,f);
Series12->AddXY(0.694,f);
}
for (int i=0; i<n;
i++)
{
Series1->AddXY(w[i],u[i][5]);
Series2->AddXY(w[i],u[i][10]);
Series3->AddXY(w[i],u[i][20]);
Series4->AddXY(w[i],u[i][30]);
Series5->AddXY(w[i],u[i][40]);
Series6->AddXY(w[i],u[i][50]);
Series7->AddXY(w[i],u[i][60]);
Series8->AddXY(w[i],u[i][70]);
Series9->AddXY(w[i],u[i][80]);
Series10->AddXY(w[i],u[i][99]);
}
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N24241Click(TObject *Sender)
{
T1=1260;
if (vsad==1)
{
T2=1350;
tau=4;
}
else
if(vsad==2)
{
T2=1320;
tau=3.3;
}
else
if(vsad==3)
{
T2=1290;
tau=3;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ñò0
- Ñò5";
StaticText3->Caption="Øâåëëåð
¹ 24, 24Ò";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N271Click(TObject *Sender)
{
T1=1260;
if (vsad==1)
{
T2=1350;
tau=4;
}
else
if(vsad==2)
{
T2=1320;
tau=3.3;
}
else
if(vsad==3)
{
T2=1290;
tau=3;
}
StaticText2->Caption="Ñò0
- Ñò5";
StaticText3->Caption="Øâåëëåð
¹ 27";
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N302Click(TObject *Sender)
{
T1=1260;
if (vsad==1)
{
T2=1350;
tau=4;
}
else
if(vsad==2)
{
T2=1320;
tau=3.3;
}
else
if(vsad==3)
{
T2=1290;
tau=3;
}
StaticText2->Caption="Ñò0
- Ñò5";
StaticText3->Caption="Øâåëëåð
¹ 30,30Â";
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N3011Click(TObject *Sender)
{
T1=1260;
if (vsad==1)
{
T2=1360;
tau=4;
}
else
if(vsad==2)
{
T2=1330;
tau=3.3;
}
else
if(vsad==3)
{
T2=1300;
tau=3;
}
T3=T2-50;
StaticText2->Caption="Ñò0
- Ñò5";
StaticText3->Caption="Øâåëëåð
¹ 30Â-1";
StaticText4->Caption=T1;
StaticText5->Caption=T2;
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N3021Click(TObject *Sender)
{
T1=1260;
if (vsad==1)
{
T2=1370;
tau=4;
}
else
if(vsad==2)
{
T2=1340;
tau=3.3;
}
else
if(vsad==3)
{
T2=1310;
tau=3;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ñò0
- Ñò5";
StaticText3->Caption="Øâåëëåð
¹ 30Â-2";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N241Click(TObject *Sender)
{
T1=1260;
if (vsad==1)
{
T2=1350;
tau=4;
}
else
if(vsad==2)
{
T2=1320;
tau=3.3;
}
else
if(vsad==3)
{
T2=1290;
tau=3;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ñò0
- Ñò5";
StaticText3->Caption="Áàëêà
¹24";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N272Click(TObject *Sender)
{
T1=1260;
if (vsad==1)
{
T2=1350;
tau=4;
}
else
if(vsad==2)
{
T2=1320;
tau=3.3;
}
else
if(vsad==3)
{
T2=1290;
tau=3;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ñò0
- Ñò5";
StaticText3->Caption="Áàëêà
¹27";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N303Click(TObject *Sender)
{
T1=1260;
if (vsad==1)
{
T2=1360;
tau=4;
}
else
if(vsad==2)
{
T2=1330;
tau=3.3;
}
else
if(vsad==3)
{
T2=1300;
tau=3;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ñò0
- Ñò5";
StaticText3->Caption="Áàëêà
¹30";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N361Click(TObject *Sender)
{
T1=1260;
if (vsad==1)
{
T2=1370;
tau=4;
}
else
if(vsad==2)
{
T2=1340;
tau=3.3;
}
else
if(vsad==3)
{
T2=1310;
tau=3;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ñò0
- Ñò5";
StaticText3->Caption="Áàëêà
¹36Ñ";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N362Click(TObject *Sender)
{
T1=1260;
if (vsad==1)
{
T2=1370;
tau=4.3;
}
else
if(vsad==2)
{
T2=1340;
tau=4;
}
else
if(vsad==3)
{
T2=1310;
tau=3.3;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ñò0
- Ñò5";
StaticText3->Caption="Áàëêà
¹36";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N451Click(TObject *Sender)
{
T1=1300;
if (vsad==1)
{
T2=1380;
tau=4.3;
}
else
if(vsad==2)
{
T2=1350;
tau=4;
}
else
if(vsad==3)
{
T2=1320;
tau=3.3;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ñò0
- Ñò5";
StaticText3->Caption="Áàëêà
¹45";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N501Click(TObject *Sender)
{
T1=1300;
if (vsad==1)
{
T2=1380;
tau=4.3;
}
else
if(vsad==2)
{
T2=1350;
tau=4;
}
else
if(vsad==3)
{
T2=1320;
tau=3.3;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ñò0
- Ñò5";
StaticText3->Caption="Áàëêà
¹50";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N551Click(TObject *Sender)
{
T1=1300;
if (vsad==1)
{
T2=1380;
tau=4.3;
}
else
if(vsad==2)
{
T2=1350;
tau=4;
}
else
if(vsad==3)
{
T2=1320;
tau=3.3;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ñò0
- Ñò5";
StaticText3->Caption="Áàëêà
¹55";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N1001501Click(TObject *Sender)
{
T1=1240;
if (vsad==1)
{
T2=1370;
tau=3.3;
}
else
if(vsad==2)
{
T2=1340;
tau=2;
}
else
if(vsad==3)
{
T2=1310;
tau=2.3;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ñò0
- Ñò5";
StaticText3->Caption="Êâàäðàò
100-150";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N11Click(TObject *Sender)
{
T1=1270;
if (vsad==1)
{
T2=1370;
tau=5;
}
else
if(vsad==2)
{
T2=1340;
tau=4.3;
}
else
if(vsad==3)
{
T2=1310;
tau=3;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ñò0
- Ñò4";
StaticText3->Caption="Øïóíò
ØÏ-1";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N12Click(TObject *Sender)
{
T1=1270;
if (vsad==1)
{
T2=1370;
tau=5;
}
else
if(vsad==2)
{
T2=1340;
tau=4.3;
}
else
if(vsad==3)
{
T2=1310;
tau=3;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ñò0
- Ñò4";
StaticText3->Caption="Øïóíò
ØÊ-1";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N50655065651Click(TObject *Sender)
{
T1=1250;
if (vsad==1)
{
T2=1370;
tau=3.3;
}
else
if(vsad==2)
{
T2=1340;
tau=3;
}
else
if(vsad==3)
{
T2=1310;
tau=2.3;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ñò0
- Ñò4";
StaticText3->Caption="Ä50,ÊÁ50,ÁÏ65";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N1001201Click(TObject *Sender)
{
T1=1240;
if (vsad==1)
{
T2=1370;
tau=3.3;
}
else
if(vsad==2)
{
T2=1340;
tau=3;
}
else
if(vsad==3)
{
T2=1310;
tau=2.3;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ø1,Ø2,Ø3";
StaticText3->Caption="Êðóã
100 è 120";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N1001502Click(TObject *Sender)
{
T1=1240;
if (vsad==1)
{
T2=1340;
tau=3.4;
}
else
if(vsad==2)
{
T2=1310;
tau=3.1;
}
else
if(vsad==3)
{
T2=1280;
tau=2.4;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Íèçêîëåãèðîâ.";
StaticText3->Caption="Êâàäðàò
100-150";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N731Click(TObject *Sender)
{
T1=1250;
if (vsad==1)
{
T2=1370;
tau=5;
}
else
if(vsad==2)
{
T2=1340;
tau=4.3;
}
else
if(vsad==3)
{
T2=1310;
tau=4;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="30Ã";
StaticText3->Caption="ÑÏ-73";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N811Click(TObject *Sender)
{
T1=1250;
if (vsad==1)
{
T2=1370;
tau=5;
}
else
if(vsad==2)
{
T2=1340;
tau=4.3;
}
else
if(vsad==3)
{
T2=1310;
tau=4;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="30Ã";
StaticText3->Caption="ÑÏ-81";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N49501Click(TObject *Sender)
{
T1=1250;
if (vsad==1)
{
T2=1360;
tau=3.3;
}
else
if(vsad==2)
{
T2=1330;
tau=3;
}
else
if(vsad==3)
{
T2=1300;
tau=2.3;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ì75";
StaticText3->Caption="Ðåëüñû
Ñ49,Ð50";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N651Click(TObject *Sender)
{
T1=1250;
if (vsad==1)
{
T2=1370;
tau=3.4;
}
else
if(vsad==2)
{
T2=1340;
tau=3.1;
}
else
if(vsad==3)
{
T2=1310;
tau=2.4;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ì76";
StaticText3->Caption="Ðåëüñû
Ð65";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N752Click(TObject *Sender)
{
T1=1250;
if (vsad==1)
{
T2=1370;
tau=4.2;
}
else
if(vsad==2)
{
T2=1340;
tau=3.5;
}
else
if(vsad==3)
{
T2=1310;
tau=3.3;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ì76";
StaticText3->Caption="Ðåëüñû
Ð75";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::N652Click(TObject *Sender)
{
T1=1250;
if (vsad==1)
{
T2=1370;
tau=4.1;
}
else
if(vsad==2)
{
T2=1340;
tau=3.4;
}
else
if(vsad==3)
{
T2=1310;
tau=3.1;
}
T3=T2-50;
StaticText4->Caption=T1;
StaticText5->Caption=T2;
StaticText2->Caption="Ì69õð.";
StaticText3->Caption="Ðåëüñû
Ð65";
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::CheckBox1Click(TObject *Sender)
{
Edit1->Enabled=true;
Edit2->Enabled=true;
Edit4->Enabled=true;
Edit5->Enabled=true;
N1->Enabled=false;
N2->Enabled=false;
if(CheckBox1->Checked==false)
{
Edit1->Enabled=false;
Edit2->Enabled=false;
Edit4->Enabled=false;
Edit5->Enabled=false;
N1->Enabled=true;
N2->Enabled=true;
}
}
//---------------------------------------------------------------------------
|