Thesis-1

2025-07-15Genre: reports

Введение

Университет даёт возможность для образования и реализации, а не гарантирует их. Чтобы эту возможность раскрыть, студенту необходимо не просто слепо выполнять то, что от него требуют планы и преподаватели, но и задумываться над тем, что же он собственно делает, и может ли он сделать что-либо более содержательное, чем ему предлагается.

Я считаю, что особенно это применимо к курсовой (и дипломной) работе. Когда нам, как студентам-турбинистам, предлагают провести выданные начальные данные через цепочку из методичек, написанных в седые годы, и программ, не раскрывающих того, что именно они делают с нашими числами, нам предлагают сделать совершенно несодержательную работу. Авторам методичек низкий поклон, но понимание чего человеку дадут их требования к попаданию в промежуток отношений и коэффициентов, едва ли имеющих физический смысл? Ansys и Solidworks, возможно, и проводят свои симуляции точнее, чем любые их аналоги, но какую ценность имеет результат их работы для того, кто как минимум хочет понимать, что он делает, а как максимум - сделать вычисления элегантными?

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

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

О языке Julia

В качестве языка для выполнения вычислений я выбрал julia. Это компилируемый язык, созданный специально для научных вычислений, можно воспринимать его как современную замену matlab. Преимущества у него следующие:

  • Обширная экосистема:
    • Пакеты для автоматического дифференцирования, конечноэлементных методов, etc.;
    • Для построения графиков можно использовать Makie.jl, более совершенный инструмент, чем тот же *matplotlib, для интерактивной работы есть Pluto.jl.
    • Стандартный пакетный менеджер прост в работе и редко "ошибается". В прочем, делает он это редко потому что сам компилирует все пакеты, а не использует бинарники, так что ±.
  • Элегантность языка:
    • Переменные могут быть названы всем набором символов юникода, чтобы $\phi_2^{opt}$ не превратилось в phi_2-opt. Читать и демонстрировать такой код гораздо проще!
    • Современный и достаточно краткий синтаксис, хорошая система типов и структур данных позволяют формулировать действия кратко и точно.
  • Быстродействие:
    • Компиляция позволяет сложной логике исполняться быстро;
    • Широкая поддержка параллельных вычислений заложена в дизайн языка и подразумевается как правило хорошего тона среди авторов пакетов.

fig1 Характеристика системы регулирования, изображённая Makie.jl

Экосистема julia очень свободная - несмотря на то, что язык компилируемый, он не предназначен для распространения бинарников - как и готовые программы, так и пакеты (библиотеки) в нём распространяются как исходный код.

Метод вычислений

Алгоритмы вычислений будут изображаться в виде блок-схем со следующими обозначениями:

  • $a$: параметр
    • Например, $G_{опт} = 250 {кг/с}$;
  • $[a]$: коллекция. Эквивалентно одному столбцу в таблице экселя
    • Например, входные данные или все рассчитанные параметры закрутки потока для одного сечения.
  • $[a].b$: параметр $b$ из коллекции $[a]$
    • Например, $[C].n$ - частота вращения турбины из исходных данных
  • $[a]^c.b$: параметр $b$ из c-той части коллекции $[a]$. Эквивалентно c-тому столбцу из таблицы экселя.
    • Например, $[R]^5.\alpha_2$ - угол $\alpha_2$ для периферийного (пятого) сечения в расчете закрутки потока

Схема вычислений по методике К. Л. Лапшина описана и показана ниже:

fig2 Блок-схема алгоритма вычислений по методике К. Л. Лапшина

Пояснение:

  1. Начальные данные $[C]$, полученные из задания и рассчета турбоагрегата — данных, полученных с предыдущего семестра;
  2. Задаём давление на выходе из каждой ступени турбины $[p_2]$ и характерные коэффициенты $[\varphi]$ и $[\psi]$. Задавать их следует случайно в рамках некоторого диапазона;
  3. Проводится первичный расчет, целью которого является получение параметров на выходе из турбины;
  4. Проводится расчет по ступеням;
  5. Проверяется совпадение расхода с расходом из исходных данных, проверяется совпадение сумм мощностей с мощностью из исхлдных данных. Если совпадения нет, возвращаемся к шагу 2;
  6. В некотором промежутке случайно выбираются $F$, $\rho_k$ и лопаточные углы последней ступени $\alpha$ и $\beta$;
  7. Выполняется расчет закрутки потока на последней ступени по обратному закону. Результатом этого этапа являются данные $[R]$, необходимые для построения профилей лопаток;
  8. Проверяется монотонный рост давлений $p_2$ на выходе из последней ступени по радиусу. Если монотонного роста нет, возвращаемся к шагу 7;
  9. Построение профилей лопаток, проверка их на конфузорность. Это заключительный этап, после него следует моделирование и расчет на прочность.

Как видно, эта схема императивна и содержит "плохие" шаги. Она предлагает два раза выбрать случайный набор параметров, к которому применит проверки типа "прошёл - не прошёл", не предполагая никакого анализа на то, насколько эти параметры хороши.

Я предлагаю дополнение, которое позволяет выбрать параметры на пунктах 2 и 6 осмысленно, на схеме это соответственно представлено красным и голубым блоками.

fig2 Блок-схема дополненного алгоритма вычислений

Рассмотрим красный блок.

В этом блоке происходит подбор таких параметров $\varphi$ и $\psi$, при которых угол выхода потока на среднем сечении оптимальный. Тралалело тралала. trrr

Итоги и планы

Помимо сделанного в этой работе, я хочу провести расчет на прочность и