Моделирование сварочных процессов «источник питания – дуга» в среде защитного газа

Автор работы: Пользователь скрыл имя, 30 Ноября 2012 в 13:15, лабораторная работа

Описание работы

Задание
Разработать программу для виртуальной лабораторной работы по дисциплине “Теория сварочных процессов” раздел “Сварка в среде защитного газа”.

Содержание работы

1. Постановка задачи………………………………………………………………………………….…..4
2. Физическо-математическая модель……………………...…………………..................4
3. Метод и алгоритм численного решения…………………….………………………….....5
4. Постановка лабораторной работы……………………………………………………………..8

Файлы: 1 файл

ККР информат.docx

— 161.34 Кб (Скачать файл)

        if (t>time/2) then Pow_vap_mid:=Pow_vap_mid+ Pow_vap*dt;

//        TemKap:=(Temkip+Tpl)/2;

        end else Pow_vap:=0;

   if (Ldn>lv) then

      Ldn:=lv;

   Ld:=Ldn;//полная длина дуги

   if Ld<=0 then

     begin  //Короткое замыкание

     Ldn:=0;

     PizDug:=True;

   if i>4*iter div 5 then

       Pot_El:=(TemKap-Te[1])*2/(dx+Dkap)*Lamb*fe;

 

(*     if (Vkap<Fe*de/4) {or (Dkap<de)} {or (TemKap<Tpl){ and (t>time/2)} then

        begin

        if (t>time/2) then

                  KZ_pri:=8;

        Vkap:=0;//Fe*de/32;

        kap:=0;

      //  Ldn:=0;

     //   Dkap:=0;

        end else //Признак приварки электрода

  *)      begin

               if (t>time/2) then

                     KZ_pri:=0;

        KzamDug:=True;

        Z1:=Dkap/6/1.41;  Z2:=Dkap/6*(1-de/Dkap); Z3:=Dkap/6*(1+de/Dkap);

        FsigKap:=3.14*Sigma/2*de{Dkap}*(1-Zkap/(z3-z2));//{(zkap+Z2);//sqrt(Vkap/(Dkap+de))*;

//        if Zkap>Z1 then

        FtokKap:=10*k0*sqr(Dkap/de)*Tok*Tok*(1-(Z3-Zkap)/(Z3-Z1));

//       FtokKap:=0;

        MasKap:=Vkap*plot;//g

        UskKap:=(FtokKap + FsigKap)/MasKap*1e+5 + 981;//cm/s^2

        SkorKap:=SkorKap+UskKap*dt;  //cm/s

        Zkap:=Zkap+SkorKap*dt; //cm

        if Zkap<0 then Zkap:=0;

        if (abs(Zkap)>Dkap) then Zkap:=Dkap;

        t_kz:=t_kz+dt;

        R_Kap_Pr:=R_Kap;

        R_Kap:=ro[0]*Dkap/(de*sqrt((Zkap+0.002)*abs(z3-Zkap+0.002)));

 

        if {(Dkap>de) AND} (Zkap>z3{(Dkap+de*0.7)/12}) then

            begin //отрыв капли при кз

            if (t>time/2) then

                begin TkzMid:=TkzMid+t_kz; N_kz:=N_kz+1;Per_kz:=Per_kz+1; end;

            Zkap:=0; SkorKap:=Vp;  t_kz:=0;

            KzamDug:=False;

            stad_proc:=1;

            Kap:=1;

            FsigKap:=0; FtokKap:=0;

            end;

            //Конец короткое замыкание

        end;

      end Else

          if (Dkap>de) and ((3.14*sigma*de)<(k0/4*Tok*Tok*(Dkap/de-1)))

                     { or ((Vkap*plot*0.0981)>(3.14*sigma*de)) }then

                     begin   //Электромагнитной силой

                     Kap:=1;

                     if (t>time/2) then

                     Per_kap:=Per_kap+1;//количество капель

                   end else

          if (Pow_vap>0) and (Dkap>1.5*De) and (Pow_vap>DE*500) //Кипение капли

                 or ((Vkap*plot*0.0981)>(2*3.14*sigma*de)) then  //тяжесть

                begin

                if (t>time/2) then

                Per_Vap:=Per_Vap+1;//количество капель

                Kap:=1;

                end;

   if Kap=1 then

      begin //при отрыве капли

      if (t>time/2) then

          begin

          N_kap:= N_kap+1;

          DkapMid:=DkapMid+Dkap;

          TemKapMid:=TemKapMid+TemKap;

          end;

      t_imp:=0;  //Сброс капли

      Vkap:=Fe*de/3;

      TemKap:=Tpl;//+C1G/C2g;

      Qkap:=(Tpl*C2g+c1g)*Vkap;

 

      end;

      Ld:=Ldn;

 

 

 

 

   if (Ld<=0{de/8}){ or (kz_pri=8)} then

             Ud:=(R_kap+Rvyl)*Tok

             else if Tok>10 then  //Вольтамперная характеристика дуги

                            Ud:=U0+Ld*Q +Tok*0.002*sqr(40/Tok-1)+Rvyl*Tok

                            else Ud:= Uxx;

 

 

IF (t<time/4)  THEN  t_imp:=Time_Zad;

   //Ток дуги////////////////////////////////

if (Ld<=0.0) and {(t_kz>0.001) and (R_kap<0.025) and }(R_kap>=R_Kap_Pr)  and (stad_proc=2) then

                begin time_fin_kz:=1; Stad_Proc:=3; Tim_Imp_kz:=0; end; //включить импульс кз

if ((R_kap>0.025) or (Ud>U0) {or (stad_proc=4)}) and (time_fin_kz=1) and (stad_proc=3) then

                begin time_fin_kz:=0; stad_proc:=4;

                if (t>4*time/5)  THEN

                    Tim_Imp_kz:= Tim_Imp_kz;

 

                end;   //выкл. импульс кз

if STT=0 then

   begin

      Tok:=Tok+dt*(Uxx-Ud-Tok*R)/L;

   if (Tok>TokKZ) and (Ld<=0) then//Ограничение тока короткого замыкания

       Tok:=TokKZ;

   if (Tok<=10) and (ld>0.01) then

      begin

      IF (t>time/2) THEN

        if (PizDug=True) then

         Per_obr:=Per_obr+1;

      PizDug:=False;

      Tok:=0;

      end;//обрыв дуги

   end else

       If STT<3 then

       begin //STT

 

       t_imp:=t_imp+dt;  //Время с момента сброса капли

       IF (t>time/4)  THEN

          begin

 

         Tok_Kl:=Tok_Kl+dt*(Uxx-Ud-Tok_Kl*Rist)/L;

         If Stt=1 then

           begin

           if (t_imp<Time_imp) then

                 Tok:=Tok_kl

           else Tok:=Tok_0;

           end else

           if (t_imp<Time_imp) and (t_imp>Time_Zad) or (t_kz>Time_Zad) and (R_kap>R_Kap_Pr){ and (time_fin_kz=1){(R_kap<10e-3)} then

                Tok:=Tok_kl

           else Tok:=Tok_0;

 

         end else

             begin

             Tok:=Tok+dt*(Uxx-Ud-Tok*R)/L;

             Tok_kl:=Tok;

             end;

       if Tok<Tok_0 then Tok:=Tok_0;

 

   end else begin //Stt=3,4

            t_imp:=t_imp+dt;//Время с момента сброса капли

            IF (t>time/4) THEN

               begin

               Tok:=Tok_0;

               if (t_imp<Time_imp) and (t_imp>Time_Zad) then begin Tok:=Tok_Kap; stad_proc:=2; end;

               if  (STT=4 ) and (Stad_proc=3) and (time_fin_kz=1) then

                  begin Tok:=Tok_kz; Tim_Imp_kz:=Tim_Imp_kz+dt; end;

               end else Tok:=Tok+dt*(Uxx-Ud-Tok*R)/L;

            end;

   //изменение удельного  сопротивления от температуры//////////////////////////

   for k:=0 to kvyl do

     if Te[k]<=723 then ro[k]:=ro0+ro0*alfa1*Te[k]

       else ro[k]:=ro0+ro0*723*alfa1+ro0*alfa2*(Te[k]-723);

   //расчет полного сопротивления цепи во времени

 

   Rvyl:=0;

   for k:=0 to kvyl do Rvyl:=Rvyl+ro[k]/Fe*dx;

   R:=Rvyl+Rist;

//    for k:=kvyl to 100 do Te[k]:=20;

   //расчет изменения температуры вылета электрода

    Te[kVyl]:=20; Te[0]:=TemKap;

  if ld>0 then

    for k:=1 to kvyl do

       Te[k]:=Te[k]+(Lamb/Cg*dt/dx/dx*(Te[k+1]-Te[k]))-(Vp*dt/dx*(Te[k]-Te[k+1]))+(ro[k]*sqr(Tok/Fe)/Cg*dt)

    else

    begin

    for k:=1 to kvyl do

       Te[k]:=Te[k]+(Lamb/Cg*dt/dx/dx*(Te[k+1]-Te[k]))+(ro[k]*sqr(Tok/Fe)/Cg*dt);

   //Выгорание части вылета при перегреве

    k:=1;

    while (Te[k]>Tpl) and (Te[k]>Te[k-1]) and (k<5) do k:=k+1;

    if k>1 then

      begin

      Ldn:=Ldn+(k-1)*dx;

      Ld:=Ldn;

      Vkap:=fe*de/3;

      Qkap:=(Tpl*C2g+c1g)*Vkap;

      for j:=1 to kvyl do Te[j]:=Te[k+j-1];

            if (t>time/2) then

                begin TkzMid:=TkzMid+t_kz; N_kz:=N_kz+1;Per_kz:=Per_kz+1; end;

            Zkap:=0; SkorKap:=0;  t_kz:=0;

            KzamDug:=False;

            Kap:=1;

 

      end;

    end;

{

   if ((PizDug=True) and (temKap<Tpl+C1G/Cg)) and (t>time/2) then

      begin

      MessageDlg('Процесс  не существует. Введите другие  параметры', mtInformation, [mbOk], 0);

      Calc:=False;

      exit;

      end;

      }

{

   ff:=(2*k0*sqr(Tok)*Ln(B/de)-4*ntr*w/H-6.28*sigma*LS)/MasW; //Ускорение ванны, м/с^2

   w:=w+dt*ff; //Скорость поверхности  ванны, m/s

   Ls:=Ls+w*dt;//Глубина кратера, m

   If Ls>H/2 then Ls:=H/2;

   if Ls<0 then Ls:=0;  }

   if (t>time/2) then

      begin

      if LdMin>Ldn then LdMin:=Ldn;

      if LdMax<Ldn then LdMax:=Ldn;

      LdMid:=LdMid+Ld*dt;

      POwVyl:=POwVyl+Tok*Tok*Rvyl*dt;

      if Ld>0 then POwDuEl:=POwDuEl+Tok*Uel*dt;

      POwSw:=POwSw+Tok*Ud*dt;

      PowObh:=PowObh+Tok*Uxx*dt;

      TokMid:=TokMid+Tok*dt;

      NapMid:=NapMid+Ud*dt;

//      TemKapMid:=TemKapMid+TemKap*dt;

      TemVyl:=TemVyl+Te[1]*dt;

//      DkapMid:=DkapMid+Dkap*dt;

{     if (KZ_pri=1) then

        begin

        MessageDlg('Процесс  не существует. Примерзание электрода', mtInformation, [mbOk], 0);

        Calc:=False;

        exit;

        end;

}

      end;

if iii=0 then

   begin

   with PostF.Chart1 do PostF.Series1.AddXY(i*dt,Tok,'',clBlue);

   with PostF.Chart2 do PostF.LineSeries1.AddXY(i*dt,Ud,'',clRed);

   with PostF.Chart3 do PostF.LineSeries2.AddXY(i*dt,{Vkap*1000{}Ldn*10,'',clGreen);

   with PostF.Chart4 do PostF.LineSeries3.AddXY(i*dt,Te[1],{FsigKap*1000,{Te[1],R_Kap*1000,Tok_Kl,}'',clBlue);

   end;

 

end;//Конец имитации процесса

 

if (Per_Vap+Per_kap+Per_kz)>1 then

   begin

   Dol_El:=Per_kap/(Per_Vap+Per_kap+Per_kz);//Долевое соотношение сил в переносе капель

   Dol_Kz:=Per_kz/(Per_Vap+Per_kap+Per_kz);

   Dol_Vap:=Per_Vap/(Per_Vap+Per_kap+Per_kz);

   Per_kap:=time/2/(Per_Vap+Per_kap+Per_kz)*1000

   end else Per_kap:=0;

if Per_kz>1 then Per_kz:=time/2/Per_kz*1000 else Per_kz:=0;

LdMid:=2*LdMid/time*10;//mm

LdMin:=LdMin*10;

LdMax:=LdMax*10;

Pow_vap:=2*Pow_vap_mid/Time;

PowSw:=2*PowSw/time;

POwVyl:=2*POwVyl/time;

POwDuEl:=2*POwDuEl/time;              // (DkapMid /N_kap)

POwObh:=2*POwObh/time;

TokMid:=2*TokMid/time;              //         (time/2/N_kap)

NapMid:=2*NapMid/time;

//TemKapMid:=TemKapMid-C1G/Cg;

                              //   (exp(ln(Vkap)/3))

TemVyl:=2*TemVyl/time;

If Per_kap>0 then Dkap:= 10*(exp(ln(Vp*Per_kap/1000*fe)/3));

if N_kap>0 then TemKapMid:=TemKapMid/N_kap Else TemKapMid:=TemKap;

if N_kz>1 then tkzMid:=tkzMid*1000/N_kz else tkzMid:=0;

//if Vkap>0 then Dkap:=(exp(ln(vkap)/3)*10*2*3.14/3);//4/3*10*DkapMid;

if Per_obr>1 then Per_obr:=time/2/Per_obr*1000;//Период обрывов дуги, мс

Ls:=Ls*10;

KZ_pri:=KZ_pri;

qn:=NapMid*TokMid*nd/Vcv;    //мощность  дуги

Lvan:=qn/2/3.14/lamb/(Tpl+C1g/C2g-T0); //длина  ванны, см

B:=2*sqrt(2*qn/3.14/Cg/e/(Tpl+C1g/C2g-T0));//ширина  ванны, см

H:=sqrt(qn/(6.28*cg*(Tpl+C1g/C2g-T0)));//глубина  ванны, см

MasW:=3.14*plot*H*B*Lvan/6; //Масса ванны,  г

//LS:=(2*k0*sqr(Tok)*Ln(B/de))/(6.28*sigma);//Глубина  кратера,см

Lvan:=Lvan*10; B:=B*10; H:=H*10; Ls:=Ls*10;

Res[0,iii]:=round(Uxx);

Res[1,iii]:=round(TokMid);

Res[2,iii]:=round(NapMid);

Res[3,iii]:=round(TemVyl);

Res[4,iii]:=round(TemKapMid); // (((TemKapMid-TemVyl)*Cg+C1G)*Fe*Vp)

Res[5,iii]:=round(LdMax*10);

Res[6,iii]:=round(Dkap*10);

Res[7,iii]:=round(Per_kap*10);

Res[8,iii]:=round(Per_kz*10);

Res[9,iii]:=round(tkzMid*100)/10;

if LdMax/10>de/2 then Res[10,iii]:=round(Dol_Kz*100)

   else Res[10,iii]:=-KZ_pri;

Tim_Imp_kz:=Tim_Imp_kz;

end;//цикл параметрического исследования

 N_kz:=N_kz;

      if (LdMax<de/8) then

        begin

        MessageDlg('Примерзание электрода. Введите другие параметры', mtInformation, [mbOk], 0);

        Calc:=False;

        exit;

        end;

 

//Rvyl:=Rvyl*1000;

//Результаты имитации - вывести  в протокол

 

//PowObh - Потребляемая мощность

//PowSw - Мощность процесса

//PowDuEl - мощность дуги на  электроде

//POwVyl - мощность тепловыделения  в вылете электрода

//Pow_Vap - затраты мощности  на испарение электродного металла,  Вт

 

//TokMid, NapMid - ток и напряжение  дуги

//LdMax, LLdMid, dMin - максимальная, средняя и минимальная длина  дуги

//Ls - Глубина кратера под  дугой, мм

 

//Te[10] - температура подогрева  вылета током

//Rvyl - сопротивление вылета, миллиОм (mOm)

 

//TemKapMid - температура капель

//Dkap - диаметр капель

//Per_kap - период переноса  капель

 

//tkzMid - длительность короткого  замыкания, msec

//Per_kz - период следования  коротких замыканий, msec

//Per_obr - период следования  обрывов дуги, мсек

//T_obrDug - длительность обрыва  дуги, мсек

 

 

end;

 

 

Литература

  1. И.К. Походня, И.И. Заруба, В.Е. Пономарёв и др. Критерии оценки стабильности процесса дуговой сварки на постоянном токе. Автоматическая сварка, 1989, №8, с.1-4.
  2. Сараев Ю.Н., Шпигунова О.И. Математическая модель плавления и переноса электродного металла с систематическими короткими замыканиями дугового промежутка. Сварочное производство, 1992, №6, с. 28-32.
  3. Ищенко Ю.С., Тушева Н.В. Модель расчёта перехода капли в ванну при коротком замыкании. Вопросы атомной науки и техники. Серия: Ядерная техника и технология. 1990. Вып.5. С. 8-14.
  4. Львов Н.С., Гладков Э.А. Автоматика и автоматизация сварочных процессов. М: Машиностроение, 1982, 302 с.
  5. В.А. Букаров, С.С. Ермаков, Т. А. Дорина. Оценка стабильности дуговой сварки по осциллограммам процесса с использованием статистических методов. Сварочное производство, 1990, №12,  с. 30-32.

 


Информация о работе Моделирование сварочных процессов «источник питания – дуга» в среде защитного газа