Napisanie i uruchomienie programu do modelowania za pomocą MRS nagrzewania wsadu przed plastyczną przeróbką na gorąco

 

Równanie Fouriera dla procesu niestacjonarnego (nieustalonego) ma postać:

                 (1)

 

Dla przypadku jednowymiarowego:

                                                              (2)

Na rys. 1 pokazano schemat obliczeniowy modelu nagrzewania wsadu.

Rys. 1. Schemat obliczeniowy modelu nagrzewania wsadu a – ogólny schemat, b – ze schematem numeracji węzłów.

 

Warunki brzegowe

                                   (3)

 

                                                                   (4)

 

Jeżeli k=const, c=const oraz przyjmujemy, że

,                                                                                (5)

 

                                                                               (6)

 

Dla węzłów wewnętrznych:

                                                         (7)

N – numer warstwy czasowej.

                                                        (8)

Pod warunkiem, że:

                                                                      (9)

 

Dla węzła B na rys. 1.b formuła dla ti jest wyznaczona za pomocą warunku brzegowego (4)

                                                       (10)

                                               (11)

 

Natomiast dla węza A

, czyli

                                                                            (12)

 

Zadanie:

1.    Napisać program do symulacji rozkładu temperatury we wlewku podczas nagrzewania.

2.    Wykonać modelowanie procesu nagrzewania przy zadanych warunkach brzegowych.

3.    Zbadać zależność rozwiązania od gęstości siatki oraz kroku czasowego.

 

Sprawozdanie powinno zawierać:

1.    Sformułowanie problemu technicznego;

2.    Teoretyczne podstawy rozwiązania;

3.    Metodą rozwiązania numerycznego;

4.    Tekst własnego programu;

5.    Wyniki obliczeni;

6.    Analizę wpływu kroku czasowego i kroku po X.

 

Uwzględnienie krystalizacji:

1.    Wykorzystać metodę efektywnej pojemności cieplnej.

2.    Przykładowa zależność efektywnej pojemności cieplnej od temperatury jest pokazana na rys. 2.

Rys. 2. Przykładowa zależność efektywnej pojemności cieplnej od temperatury dla stali węglowej.

 

3.    Przykładowy kod programu jest podany niżej :

 

// CCM_FDM.cpp : Defines the entry point for the console application.

 

#include "stdafx.h"

#include <math.h>

#include <string.h>

#include <iostream.h>

 

int main(int argc, char* argv[])

{

                double k,c,ro,dx,a,Tliq,Tsol,Csol;

                double Tau,dTau;

                double t[10],t0[10];

                double TauMax,Tbegin,Alfa,Tsr,H,TauKrist;

                int i,nh,nTau,iTau;

                char st;

               

                k = 30;

                Csol = 500;

                ro = 7800;

                Tliq = 1450; // C

                Tsol = 1350; // C

 

                Tbegin = 1450;    // C

                Tsr  = 20;                              // C

                Alfa = 200;

                H = 0.250;      // AB, m

                TauMax = 4800;  // s

 

                nh = 10;

                dx = H/(nh-1);  // m

 

                a = k/(Csol*ro);

                dTau = dx*dx/(2*a);

                nTau = int(TauMax/dTau);

 

                for (i=0; i<nh; i++)

                {

                               t0[i] = Tbegin;

                               t[i]  = Tbegin;

                }

 

                printf( "Tau,s       tc,C        tpov,C \n " );

 

                Tau = 0;

                TauKrist = 0;

                for (iTau=0; iTau<nTau; iTau++)

                {

                               for (i=1; i<nh-1; i++)

                               {

                                               c = Csol;

                                               if (t0[i]>=Tsol && t0[i]<=Tliq)

                                               {

                                                               c = 2000;

                                               }

                                               a = k/(c*ro);

 

                                               t[i] = (1-2*a*dTau/(dx*dx))*t0[i] + a*dTau* (t0[i-1] + t0[i+1]) / (dx*dx);

                               }

                               t[nh-1] = t[nh-2] - Alfa*dx*(t[nh-2]-Tsr)/k;

                               t[0] = t[1];

 

                               for (i=0; i<nh; i++)

                               {

                                               t0[i] = t[i];

                               }

 

                               printf( "%f %f %f \n ", Tau, t[0], t[nh-1] );

                               if (t[0]>=Tsol)

                               {

                                               TauKrist = Tau;

                               }

                               Tau = Tau + dTau;

                }

 

                printf( "TauKrist= %f \n ", TauKrist );

 

                cin >> st;

                return 0;

}