Основы компьютерного моделирования физических и технических систем. Математическую модель указанной физической системы

Страницы работы

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

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

ГОМЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ П. О. СУХОГО

Факультет автоматизированных и информационных систем

Кафедра «Информационные технологии»

ОТЧЕТ   ПО   ЛАБОРАТОРНОЙ   РАБОТЕ   № 1

по дисциплине «Компьютерные системы конечноэлементных расчётов»

на тему:     «Основы компьютерного моделирования физических и технических систем»

Выполнил:      студент гр. ИТ-31

Принял:       преподаватель                                                                    

Дата сдачи отчета:         _____________________

Дата допуска к защите: _____________________

Дата защиты:                  _____________________

Гомель 2012

Цель: Изучить основы моделирования физических и технических систем

Задание:

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

- обеспечить ввод исходных данных с помощью GUI;

- отобразить в виде графиков (двумерного или трёхмерного) результаты решения;

- все результаты решения сохранять в файлы специальных форматов (для всех остальных).

Рассматривается  задача  моделирования  распределения  температуры  в  тонком стержне  заданной  длины  и  сечения,  изготовленного  из  различных материалов. На одном  конце  стержня (левом,  согласно  рисунка 1)  происходит  конвективный теплообмен  с  внешней  средой,  а  на  противоположном  подводится  тепловой  поток заданной интенсивности.

Необходимо:

-  провести  верификацию,  разработанного  программного  обеспечения  на примере решения задачи для однородного стержня;

-  cсравнить  численные методы  по  скорости  нахождения  решения  при  заданной точности;

-  cсравнить численные методы по значениям найденных решений; 

-  найти максимальное отклонение найденных решений;

- провести указанное в задании исследование математической модели (таблица 1).

7

 

Решение задачи методом конечных разностей:

Для врерификации сравним решение задачи для однородного стержня в САПР Comsol Multiphysics, который позволяет решить одномерную задачу теплопроводности методом конечных элементов:

Исходные значения при расчёте:

Время решения задачи методом конечных разностей

Результат решения:

В таблице приведены значения температуры в каждом узле (каждая строка следующий момент времени)

Результат решения в мометн в ремени 5с в Comsol

Расхождение результатов от Comsol составило в среднем 3,2%

Графики в момет времени 0,5 с

Графики в момет времени 0,5 с при решении в Comsol

Графики в момет времени 5 с

Графики в момет времени 0,5 с при решении в Comsol

Графики температуры всех временных слоёв

Графики темпнратуры всех временных слоёв в Comsol

Решение задачи методом конечных элементов

левая половина результатов

Правая половина

Решение в Comsol на последнем слое

Средняя погрешность составляет менее 1%

График в момент времени 0,5 с

График в момент времени 0,5 с  в Comsol

График в момент времени 2,5 с

График в момент времени 2,5 с  в Comsol

График в момент времени 5 с

График в момент времени 5 с  в Comsol

Листинг программы метод конечных разностей

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

namespace thermalTask

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

double a1,a2;

double L;

double t;

double dt;

double h;

double gam1, gam2;

double bet1, bet2;

double[,] u;

double[]  b;

//double A [ n ][ n ];

double[,] Lm;

double[,] D ;

double[] vX;

int nx;

int nt;

double[,] mL, mD, mU;

private void BT_vitchislit_Click(object sender, EventArgs e)

{

//получение праметра а

if (radioButton1.Checked)

{

a1 = double.Parse(TB_lam.Text) / (double.Parse(TB_C.Text) * double.Parse(TB_RO.Text));

a2 = double.Parse(TB_lam2.Text) / (double.Parse(TB_C2.Text) * double.Parse(TB_RO2.Text));

}

else

{

a1 = double.Parse(TB_A.Text);

a2 = double.Parse(TB_A2.Text);

}

nx = int.Parse(TB_d0L.Text);

nt = int.Parse(TB_d0T.Text);

u = new double[(nx + 1) * (nt + 1), (nx + 1) * (nt + 1)];

b = new double[(nx + 1) * (nt + 1)];

L = double.Parse(TB_L1.Text) + double.Parse(TB_L2.Text) + double.Parse(TB_L3.Text) + double.Parse(TB_L4.Text);

t = double.Parse(TB_T.Text);

h = L / nx;

dt = t / nt;

double nu = double.Parse(TB_NT.Text);

double lu = double.Parse(TB_LT.Text);

Похожие материалы

Информация о работе