Сообщество Engee

Пример решения олимпиадных задач по ПАХТ

Автор
avatar-zeroaipzeroaip
Notebook

Введение

В данном документе я привожу примеры использования языка программирования julia для решения задач по дисциплине ПАХТ на примере олимпиадных задач. Тут я не привожу деталей использования отдельных пакетов. Некоторые базовые приемы работы для расчетов лабораторных работ я записывал в видео подсказках для студентов:

Решение местами нарочито усложненное, например везде старался использовать пакет Unitful . Как показывает практика при решении задач не на бумаге, а с использованием программных пакетов ошибки кардинально отличаются. В случае решения на компьютере большинство ошибок являются «описками» (подставили неправильную переменную, переменную в неправильной размерности).

В случае решения на компьютере библиотека Unitful позволяет задавать величине размерность. И в данном случае контролировать ошибки можно не только по размерности самой величины (студенты зачастую получают скорости жидкости больше скорости света еще чаще больше скорости звука) но и по размерности. Однако использование данного пакета не всегда возможно (об этом я буду делать отдельные пометки).

Второй по важности и по частоте использования пакет — CoolProp. Данный пакет содержит уравнения состояния и уравнения для расчета теплофизических свойств (коэффициенты вязкости и теплопроводности) для множества чистых веществ. Очень часто используется вода, кроме воды много хладагент, растворителей, углеводородов. Данный пакет используется во множестве олимпиадных задач.

Также пакет CoolProp позволяет определять свойства влажного воздуха с использованием функции HAPropSI (Humid air properties).

Иногда в задачах используются физические константы (в данных примерах только ускорение свободного падения). Их можно задать вручную, но я использовал пакет Физических констант.

В некоторых задачах есть возможность использовать интегралы (что правильнее, но для инженерных задач можно их не использовать) и дифференциальные уравнения. Для всего этого есть пакеты и я показывают их использование.

Один из важных пакетов — Clapeyron . Данный пакет позволяет определять паро-жидкостное равновесие по различным моделям, в 9 задаче использовалось уравнение состояния Пенга-Робинсона.

Подробнее по задачам и сравнение с решением в примере:

  1. сошлось с примером
  2. сошлось с примером
  3. из трубы вылилось больше чем влилось
  4. сошлось с примером
  5. не делал, задание теоретическое
  6. альтернативный вариант решения, на основе дифференциальных уравнений
  7. сошлось с примером
  8. не делал, задание теоретическое
  9. альтернативное решение?
  10. сошлось с примером

Для каждого пользователя создается свое окружение (установленные пакеты, их версии и т.д.). Поэтому во введении сразу устанавливаем те пакеты, которые пригодятся для решения.

In [ ]:
using Pkg
Pkg.add("Unitful")  #размерности
Pkg.add("CoolProp") #термодинамичсекие свойтсва
Pkg.add("PhysicalConstants")    #физические контстанты
Pkg.add("Integrals")    #численное интегрирование
Pkg.add("Roots")    #решение уравнений
Pkg.add("DifferentialEquations")    #решение дифференциальных уравнений
Pkg.add("Clapeyron")     #расчет фазового равновесия
Pkg.add("NLsolve")        #решение систем уравнений
   Resolving package versions...
  No Changes to `~/.project/Project.toml`
  No Changes to `~/.project/Manifest.toml`
   Resolving package versions...
  No Changes to `~/.project/Project.toml`
  No Changes to `~/.project/Manifest.toml`
   Resolving package versions...
  No Changes to `~/.project/Project.toml`
  No Changes to `~/.project/Manifest.toml`
   Resolving package versions...
  No Changes to `~/.project/Project.toml`
  No Changes to `~/.project/Manifest.toml`
   Resolving package versions...
  No Changes to `~/.project/Project.toml`
  No Changes to `~/.project/Manifest.toml`
   Resolving package versions...
  No Changes to `~/.project/Project.toml`
  No Changes to `~/.project/Manifest.toml`
   Resolving package versions...
  No Changes to `~/.project/Project.toml`
  No Changes to `~/.project/Manifest.toml`
   Resolving package versions...
  No Changes to `~/.project/Project.toml`
  No Changes to `~/.project/Manifest.toml`