Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Порядок выполнения лабораторной работы. Пример.Найти решение уравнения теплопроводности






 

Пример. Найти решение уравнения теплопроводности

на 100 временных шагов. Шаг по пространственной переменной h = 0, 05.

1. В обозначениях модели (3) для данной задачи имеем следующее:
f = 100 x, u0 (x) = 0, a0 = 1, a1 = 0, A = 20, b0 = 0, b1 = 1, B = 0

Решение задачи будем проводить в трех рабочих листах MS Excel. Метод прогонки для одного временного слоя будем проводить в рабочем листе Метод прогонки. Вид рабочего листа приведен на рисунке.

Вносим величины шагов разностной сетки h = 0, 05 и t = 0, 005. Шаг по временной координате будет уточняться при проведении тестовых расчетов. Рекомендуемое соотношение t = 0, 1h, таким образом: В3 = " 0, 005", В4=" 0, 05".

Программируем метод прогонки для одного временного слоя. Разностная схема приведена в формулах (7)-(10). Алгоритм метода прогонки изложен в инструкции к лабораторной работе № 17 " Решение краевой задачи для обыкновенного дифференциального уравнения второго порядка". Поэтому можно использовать копирование соответствующего диапазона из рабочего листа лабораторной работе № 17 с внесением необходимых изменений. Переносим алгоритм метода прогонки из рабочего листа л/р № 17 для n = 20: копируем диапазон А5: N33 из л/р № 17 в ячейку А5 рабочего листа Метод прогонки, очищаем диапазон H9: I9. Выделяем диапазон А12: N33 и перемещаем его в диапазон с левой верхней ячейкой С12 (т.е. на два столбца вправо). Очищаем диапазон O12: P33. Вносим начальные данные u0 (x) = 0: ячейка А13=" 0" и протягиваем в диапазон А13: А33. Во внутренних точках отрезка вычисляем правую часть уравнения f=100x: В14= " =100*D14" и протягиваем формулу в диапазон В14: В32. Удаляем диапазон E12: G33 со сдвигом влево. Задаем коэффициенты граничных условий: a0 = 1 – ячейка В6=" 1", a1 = 0 - ячейка В7=" 0", b0 = 0 - ячейка В8=" 0", b1 = 1 - ячейка В9=" 1", A = 20 - ячейка В10=" 20", B = 0 - ячейка В11=" 0".

Программируем коэффициенты разностного уравнения (8)-(9): - Е14=" =$B$3/2/$B$4^2" и протягиваем формулу в диапазон Е14: Е32, - F14=" =1+$B$3/$B$4^2" и протягиваем формулу в диапазон F14: F32, - G14=" =$B$3/2/$B$4^2" и протягиваем формулу в диапазон G14: G32, - Н14=" =(1-$B$3/$B$4^2)*A14+$B$3/2/$B$4^2*(A13+A15)+$B$3*B14" и протягиваем формулу в диапазон Н14: Н32. Остальные формулы остаются без изменения и алгоритм метода прогонки для одного временного шага реализован: в диапазоне К13: К33 получены результаты расчета температуры в стержне на следующем шаге.

Для расчета распределения температуры на следующих шагах необходимо переносить полученное в диапазоне К13: К33 текущее распределение в диапазон А13: А33. Реализовывать такую процедуру вручную нецелесообразно, поэтому автоматизируем ее с помощью макроса Visual Basic for Applications (VBA). Результаты расчета будем сохранять на листе Результаты для дальнейшей графической обработки. Для удобства сохранения результатов распределение температуры в стержне в каждый момент времени будем располагать не в столбце (как на листе Метод прогонки), а в строку. Предварительно введем заголовки строк и столбцов: ячейка А3=" xi", ячейка А4=" t = 0" и протягиваем выражение в диапазон А4: А104, ячейка В3=" 0", ячейка С3=" 0, 05" и протягиваем диапазон В3: С3 до ячейки V3. Запуск макроса будем осуществлять с помощью Элемента управления Кнопка. Для этого активируем соответствующую панель инструментов: Вид - Панели инструментов – Элементы управления. На панели Элементы управления активируем кнопку Режим конструктора. Разместим элемент управления Кнопка в требуемом месте рабочего листа. Можно изменить надпись на кнопке, для чего необходимо на панели Элементы управления активировать кнопку Свойства. В раскрывшемся окне Properties изменить свойство Caption (надпись на кнопке). После двойного щелчка по кнопке происходит переход в редактор VBA, в котором сформирована пустая функция обработки события Click (щелчок) по кнопке:

 

Private Sub CommandButton1_Click()

 

End Sub

 

Ниже приведен текст макроса:

 

Private Sub CommandButton1_Click()

Dim y0 As Object

Dim y1 As Object

Dim R As Object

Set y0 = Worksheets(" Метод прогонки").Range(" A13: A33")

Set y1 = Worksheets(" Метод прогонки").Range(" K13: K33")

Set R = Worksheets(" Результаты").Range(" B4: V104")

For i = 1 To 21

R(1, i) = y0(i, 1)

R(2, i) = y1(i, 1)

Next i

For k = 3 To 101

For i = 1 To 21

y0(i, 1) = y1(i, 1)

Next i

Worksheets(" Метод прогонки").Calculate

For i = 1 To 21

R(k, i) = y1(i, 1)

Next i

Next k

End Sub

 

Операторы Dim объявляют объектовые переменные y0, y1, R. Операторы Setсвязывают эти переменные с диапазонами рабочих листов: y0 – с диапазоном A13: A33 рабочего листа Метод прогонки, содержащим распределение температуры в стержне на предыдущем слое; у1 - с диапазоном K13: K33 рабочего листа Метод прогонки, содержащим распределение температуры в стержне на текущем слое; R - с диапазоном B4: V104 рабочего листа Результаты, предназначенного для запоминания результатов расчета на всех временных слоях.

В первом цикле запоминаются на листе Результаты начальное распределение температуры и распределение на первом временном шаге, которые вычислены на листе Метод прогонки до отработки макроса. Цикл с переменной цикла k предназначен для реализации метода прогонки на других временных слоях. В первом внутреннем цикле по переменной i текущее приближение из диапазона K13: K33 (объектовая переменная у1) переносится в диапазон A13: A33 предшествующего распределения (объектовая переменная у0). Инструкция

Worksheets(" Метод прогонки").Calculate

передает управление в рабочий лист Метод прогонки для перечета формул, в результате чего реализуется метод прогонки для очередного временного слоя. Во втором внутреннем цикле по переменной i на лист Результаты заносится распределение температуры в стержне, соответствующее текущему временному слою. После отработки макроса на листе Результаты расположены распределения температуры в стержне на всех временных слоях. Используя эти данные можно построить графики распределения температуры в стержне на разных временных слоях, которые при решении другой задачи автоматически построят новые распределения. Вид рабочих листов Метод прогонки и Результаты приведены на рисунках.

Результаты расчета позволяют рассмотреть динамику изменения распределения температуры в стержне, используя макрос VBA. Реализуем эту процедуру в рабочем листе Динамика. Копируем на лист Динамика (например, в строки 35: 36) строки 3: 4 рабочего листа Результаты. Строим по этим данным график с соответствующим форматированием. Для автоматической замена исходных данных создадим элемент управления Кнопка, с которым свяжем макрос следующего содержания:

 

Private Sub CommandButton1_Click()

Dim R1 As Object

Dim D As Object

Set R1 = Worksheets(" Результаты").Range(" A5: V104")

Set D = Worksheets(" Динамика").Range(" A36: V36")

For i = 1 To 100

For j = 1 To 22

D(1, j) = R1(i, j)

Next j

Start = Timer

Do While Timer < Start + 0.2

Loop

Worksheets(" Динамика ").Calculate

Next i

End Sub

 

Операторы Setсвязывают объявленные объектовые переменные с диапазонами рабочих листов: R1 – с диапазоном A5: V104 рабочего листа Результаты, содержащим распределения температуры в стержне на всех временных слоях; D - с диапазоном A36: V36 рабочего листа Динамика, в котором расположен массив ординат графика. Внешний цикл по переменной i предназначен для отражения на графике распределения температуры в стержне на всех временных слоях. Внутренний цикл по переменной j копирует очередной временной слой из рабочего листа Результаты в диапазон A36: V36 рабочего листа Динамика (исходные данные для графика). Переменная Start запоминает текущее время. Цикл

Do While Timer < Start + 0.2

Loop

обеспечивает задержку 0, 2 с при отработке очередного графика. Инструкция

Worksheets(" Динамика ").Calculate

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

Отчет по лабораторной работе должен содержать распечатку рабочего листа Метод прогонки и диаграмму с рабочего листа Результаты.

 

Варианты

 

Найти решение уравнения теплопроводности на 100 временных шагов для стержня длиной l = 1. Шаг по пространственной переменной h = 0, 05.

 

 







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.