Слиток в печи

Автор работы: Пользователь скрыл имя, 02 Апреля 2014 в 22:05, контрольная работа

Краткое описание

Далее выведем формулу характеризующую значение температуры Т в определенный промежуток времени.
Для этого введем новую переменную: h-шаг замеров, с. На которой мы будем принимать значение изменения температуры слитка Т’ постоянной. Естественно это ведет к погрешности, но если мы возьмем шаг h достаточно малым, то мы сведем погрешности к минимуму.

Вложенные файлы: 1 файл

OTS.doc

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

Оглавление

 

1. Задание

Изменение температуры слитка в нагревательной печи описывается дифференциальным уравнением:

        (1)

Где Т- текущая температура слитка, град;

 k-постоянный коэффициент, град/кал;

Qн- тепловая мощность нагрева(управление), кал/с;

Qп- мощность теплопотери, кал/с, причем мощность теплопотери пропорциональна квадрату текущей температуры слитка ;

А- постоянный коэффициент, кал/(град²с).

Управление Qн постоянно по времени

В начальный момент времени, t0=0, температура Т0-мала, пойдет энергичный нагрев.

Рассмотреть возможности как аналитического, так и численного решения задачи.

 

Разработать: алгоритмы расчета фазовой траектории управляемого процесса (изменения температуры слитка при нагреве)

 

2. Постановка задачи и описание методов решения:

Для решения данной задачи нам необходимо выразить зависимость температуры слитка от времени, что бы впоследствии по полеченным формулам построить графики и наглядно показать как меняется температура.

2.1. Описание разработанных алгоритмов

Воспользуемся методом численного решения задачи.

Рассмотрим систему уравнений (1). Подставим второе уравнение этой системы в первое:

                             (2)

Из уравнения (2) становится видно, что изменение температуры зависит от самой температуры, а именно чем выше температура по модулю, тем меньше её изменение.

Далее выведем формулу характеризующую значение температуры Т в определенный промежуток времени.

Для этого введем новую переменную: h-шаг замеров, с. На которой мы будем принимать значение  изменения температуры слитка Т’ постоянной. Естественно это ведет к погрешности, но если мы возьмем шаг h достаточно малым, то мы сведем погрешности к минимуму.

Так как Т’ изменение температуры слитка то можно вывести что текущая температура это составляющая из предыдущей температуры и её изменения то мы можем составить уравнения:

i=0 t=0*h нач                   

i=1 t=h            

i=2 t=2*h         

i=n t=n*h   

 число замеров

 

Из предыдущих уравнений построим зависимость, которая позволит найти температуру в любой момент времени, зная количество замеров на интервале времени, шаг замеров и начальную температуру с её изменениями:

 

              (3) 

 

Сделаем проверку по размерностям:

 

Т’

град/с=град/кал*(кал/с-кал/( град²с)* град²)

 

Т

град=град+с*град/с

 

Теперь воспользуемся аналитическим методом решения задачи

Так как Т’ это изменение температуры то:

   (4)

Подставим формулу (4) в формулу (2)

 

Помножим левую и правую часть на dt и поделим на в итоге получим:

Проинтегрируем правую и левую часть:

(5)

Выведем из формулы (5) величину Т:

              (6)

Тогда следует совершенно справедливый вопрос, до каких пор будет идти нагрев?

Из формул (2), (3) и (6) видно, что величина Т- изменяемая во времени, тогда когда Qн постоянна по условию следовательно величина Qп будет догонять и обгонять величину Qн тогда значение Т’ будет либо равным 0 либо отрицательным.

Рассмотрим случай когда Т’ равно 0 тогда:

                             (7)

Обозначим полученную температуру как Tкр. При этой температуре изменение Т’ равно 0 следовательно температура слитка никогда не поднимется выше Tкр.

По полученным формулам простроим графики.

Примем:

Т0=1 град

h=0,5 с

n=40

A=0.1 кал/(град²с).

k=0.1 град/кал

Qн=100 кал/с

Рис.1. График изменения температуры слитка со временем.

 

Из полученного графика видно, что вначале температура изменялась быстро, но далее все медленнее и медленнее что подтверждает, что когда Т увеличивается Т’ уменьшается.

Так же мы видим что Т не переходит уровень в 31,6278. Что говорит о подтверждении выдвинутой нами гипотезы о том что Т влияет на Т’ и что нагрев не пойдет выше Ткр.

 

Рассмотрим задачу нахождения соотношения коэффициентов A и k необходимых для реализации требуемого уровня нагрева Тз.

Воспользуемся формулой (7)

Отсюда

                 (8)

Так как это критический уровень нагрева (как писалось, ранее температура нашего слитка не может быть выше неё) то необходимый нам уровень нагрева Тз должен отвечать условию:

Подставив в это условие формулу (7)

Подставим формулу (8)

 

Приняв Ткр=Тз

Следовательно требуемый уровень нагрева Tз может быть реализован при любом значении коэффициента k и значении коэффициента .

 

 

2.2. Блок схема моделируемой программы

Составим блок схему моделируемой программы:


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2. Блок схема программы 
3. Результаты моделирования

Главное окно программы представлено на рис.3. тест разработанной программы представлен в приложении 1:

Рис.3. Главное окно программы Delphi.

 

Созданная программа выдает нам значения в определенных точках и строит график фазовой траектории управляемого процесса

Рис.4. Окно ввода данных и выбора задачи

 

               Т,°С


 

 

                  30



                 5             10             15              20                               t


                                            

Рис.5. График фазовой траектории управляемого процесса

Рис.6. Окно вывода значений

На рис.6. видно, что в начальный период времени [0, 2,5] идет энергичный нагрев это объясняется тем что в начальный момент времени температура мала и как следствие коэффициент Qп который негативно сказывается на нагрев тоже мал. Однако мы можем заметить, что наши замеры идут до определенного уровня и не пересекают его, то есть наш процесс доходит до своей критической отметки Ткр так же видно, что она достигается за достаточно быстрый период времени [0, 7]. Следовательно, в этот период времени идет энергичный нагрев чего нельзя сказать о дальнейшем т.к. при Ткр изменение температуры становится равным 0 и естественно чем ближе температура приближается к Ткр тем меньше изменение температуры что и видно из рис.5. что подтверждает наши гипотезы.

Рис.7. Диалоговое окно.

На рис.7. мы видим решение 2-ой задачи здесь можно заметить, что коэффициент k не влияет на уровень нагрева т.к. при выводе формулы (7) мы четко можем видеть, что коэффициент k сокращается, следовательно, на нагрев влияют только 2 коэффициента:

A и Qн чем и обусловлена данное решение.

Список литературы:

  1. Математика. Математический анализ. Специальные разделы: учебное пособие /В.А Табуева. Екатеринбург УГТУ-УПИ, 2002 495с.
  2. Интернет ресурсы http://www.delphi-manual.ru уроки Delphi.

 

Приложение 1

Код программы

Данная программа спроектирована на языке Delphi с помощью программы Borland Delphi 7

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, ExtCtrls;

 

type

  TForm1 = class(TForm)                            //ввод объектов находящихся в рабочей области программы

    Edit1: TEdit;                                          //поле ввода времени нагрева для задачи 1

    Edit2: TEdit;                                          //поле ввода шага замеров для задачи 1

    Edit3: TEdit;  //поле ввода коэф. k для задачи 1

    Edit4: TEdit; //поле ввода коэф. A для задачи 1

    Edit5: TEdit; //поле ввода Tнач для задачи 1

    Button1: TButton; //кнопка расчета задачи 1

    Label1: TLabel; //поясняющий текст

    Label2: TLabel; 

    Edit6: TEdit; //поле ввода Qн для задачи 1

    Edit7: TEdit; //поле ввода Tз для задачи 2

    Button2: TButton; // кнопка расчета задачи 2

    ListBox1: TListBox; //поле вывода информации

    Edit8: TEdit; // поле ввода Qн для задачи 2

    PaintBox1: TPaintBox; //графическое поле для построения графиков

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Label7: TLabel;

    Label8: TLabel;

    Label9: TLabel;

    Label10: TLabel;

    procedure Edit1Click(Sender: TObject); //ввод событий после которых выполняется та

    procedure Edit2Click(Sender: TObject);  //или иная операция

    procedure Edit3Click(Sender: TObject);  //Click- событие понажанию на тот или иной

    procedure Edit4Click(Sender: TObject);  // объект

    procedure Edit5Click(Sender: TObject);

    procedure Edit6Click(Sender: TObject);

    procedure Edit7Click(Sender: TObject);

    procedure Edit8Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

  tn, x, Tz, h, k,a,Qn, T, dT, tt: real;  //итендитификация переменных

  i: integer;                                         // real-с плавающей запятой

  s: string;                                          // string- текстовые

implementation

 

{$R *.dfm}

 

procedure TForm1.Edit1Click(Sender: TObject); //программы выполняемые по событию

begin

Edit1.Clear                                                             //Clear-очищение поля Edit1

end;

procedure TForm1.Edit2Click(Sender: TObject);

begin

Edit2.Clear

end;

procedure TForm1.Edit3Click(Sender: TObject);

begin

Edit3.Clear

end;

procedure TForm1.Edit4Click(Sender: TObject);

begin

Edit4.Clear

end;

procedure TForm1.Edit5Click(Sender: TObject);

begin

Edit5.Clear

end;

procedure TForm1.Edit6Click(Sender: TObject);

begin

Edit6.Clear

end;

procedure TForm1.Edit7Click(Sender: TObject);

begin

Edit7.Clear

end;

procedure TForm1.Edit8Click(Sender: TObject);

begin

Edit8.Clear

end;

 

procedure TForm1.Button1Click(Sender: TObject); //событие кнопки расчета 1-й задачи

begin

ListBox1.Clear;                      //обнуление и очищение всех переменных и объектов

tn:=0;

h:=0;

k:=0;

a:=0;

x:=0;

Qn:=0;

T:=0;

tt:=0;

i:=0;

Tz:=0;

dT:=0;

tn:=StrToFloat(Edit1.Text);        //считывание введенных данных и преобразование их из

h:=StrToFloat(Edit2.Text);         // текстового формата в вещественный

k:=StrToFloat(Edit3.Text);

a:=StrToFloat(Edit4.Text);

x:=StrToFloat(Edit5.Text);

Qn:=StrToFloat(Edit6.Text);

T:=x;

tt:=0;

i:=1;

while tn>tt do                          //цикл с логическим условием Т нагрева>t текущего

 begin

s:='точка №'+inttostr(i)+' в момент времени t=' +FloatToStr(tt)+ ' температура T='+FloatToStr(T)+'.';

ListBox1.Items.Add(s); //заполнение поля ListBox1, вывод данных

dT:=k*(Qn-a*T*T);

T:=T+dT*h;

tt:=tt+h;

PaintBox1.Canvas.Pixels[Round(tt*10), 702-Round(T*10)]:=clblack; //построение графика

 i:=i+1;            // путем закрашивания пикселей в области PaintBox1

end;                 //где 10 цена деления шкалы

end;

 

procedure TForm1.Button2Click(Sender: TObject); //событие кнопки расчета 2-й задачи

begin

tn:=0;

h:=0;

k:=0;

a:=0;

x:=0;

Qn:=0;

T:=0;

tt:=0;

i:=0;

Tz:=0;

dT:=0;

Tz:=StrToFloat(Edit7.Text);

Qn:=StrToFloat(Edit8.Text);

a:=Qn/(Tz*Tz);

s:='требуемый уровень нагрева Tзад='+FloatToStr(Tz)+ ' может быть достигнут при a=<'+FloatToStr(a)+' при любом k';

ShowMessage(s);  //вывод сообщения, в котором содержится ответ на данный вопрос

end;

 

end.

 


 



Информация о работе Слиток в печи