Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ
ГОМЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ П. О. СУХОГО
Факультет автоматизированных и информационных систем
Кафедра «Информационные технологии»
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ № 1
по дисциплине «Компьютерные системы конечноэлементных расчётов»
на тему: «Основы компьютерного моделирования физических и технических систем»
Выполнил: студент гр. ИТ-31
Принял: преподаватель
Дата сдачи отчета: _____________________
Дата допуска к защите: _____________________
Дата защиты: _____________________
Гомель 2012
Цель: Изучить основы моделирования физических и технических систем
Задание:
Согласно варианта задания необходимо построить математическую модель казанной физической системы и провести её исследование следующими численными методами: методом конечных разностей и методом конечных элементов. Для решения данной задачи необходимо разработать соответствующее программное обеспечение, которое должно удовлетворять следующим требованиям:
- обеспечить ввод исходных данных с помощью GUI;
- отобразить в виде графиков (двумерного или трёхмерного) результаты решения;
- все результаты решения сохранять в файлы специальных форматов (для всех остальных).
Рассматривается задача моделирования распределения температуры в тонком стержне заданной длины и сечения, изготовленного из различных материалов. На одном конце стержня (левом, согласно рисунка 1) происходит конвективный теплообмен с внешней средой, а на противоположном подводится тепловой поток заданной интенсивности.
Необходимо:
- провести верификацию, разработанного программного обеспечения на примере решения задачи для однородного стержня;
- cсравнить численные методы по скорости нахождения решения при заданной точности;
- cсравнить численные методы по значениям найденных решений;
- найти максимальное отклонение найденных решений;
- провести указанное в задании исследование математической модели (таблица 1).
|
Решение задачи методом конечных разностей:
Для врерификации сравним решение задачи для однородного стержня в САПР 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);
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.