Введение


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



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



В ракетном двигателе сопло Лаваля впервые было использовано генералом М. М. Поморцевым в 1915 году. В ноябре 1915 года в Аэродинамический институт обратился генерал М. М. Поморцев с проектом боевой пневматической ракеты.

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

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



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

Теоретические основы


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



где: S – площадь сечения сопла; v – скорость газа; M – число Маха (отношение скорости газа в какой-либо точке потока к скорости звука в этой же точке).

Анализируя это соотношение, получаем, что в сопле Лаваля могут осуществляться следующие режимы течения:

1) M <1 – поток на входе дозвуковой: [1]
а) <0, тогда >0 (из уравнения). Дозвуковой поток в сужающемся канале ускоряется.
б) >0, тогда <0. Дозвуковой поток в расширяющемся канале тормозится.
2) M>1 – поток на входе сверхзвуковой:
а) <0, тогда <0. Сверхзвуковой поток в сужающемся канале тормозится.
б) >0, тогда >0. Сверхзвуковой поток в расширяющемся канале ускоряется.
3) = 0 – самое узкое место сопла, минимальное сечение.
Тогда возможно либо М = 1 (поток переходит через скорость звука), либо = 0 (экстремум скорости).

Какой из режимов реализуется на практике, зависит от перепада давлений между входом в сопло и окружающей средой.

Если давление, достигаемое в критическом сечении, превышает наружное давление, то поток на выходе из сопла будет сверхзвуковым. В противном случае он остается дозвуковым. [2]

— условие сверхзвукового истечения.

где: p* – давление торможения (давление в камере); pкр – давление в критическом сечении сопла; pнар – давление в окружающей среде; k – показатель адиабаты.

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

давление:

или ;

температуру:

или ;

плотность:

или ;

скорость:

или .

В этих формулах – ? – приведенная скорость, отношение скорости газа в данном сечении сопла к скорости звука в критическом сечении, R – удельная газовая постоянная. Индексом «*» обозначены параметры торможения (в данном случае – параметры в камере сгорания).

Постановка задачи


1. Рассчитать параметры течения потока газов в сопле Лаваля: для этого профиль сопла Лаваля разбивается на 150 контрольных точек – . Разбиение осуществляем таким образом, чтобы минимальное сечение располагалось в точке . Определяются значения газодинамических функций давления, плотности и температуры в каждом сечении.

2. Расчёты выполнить средствами высокоуровневого свободно распространяемого языка программирования Python по следующей расчётной схеме и исходным данным:



Рисунок 1-Профиль сопла Лаваля

Таблица 1-Исходные данные



Приведенные исходные данные носят демонстрационный характер.

Расчёт сопла Лаваля средствами Python



Листинг для построения профиля и площади проходного сечения сопла Лаваля
#!/usr/bin/env python
#coding=utf8
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.family'] = 'fantasy'
mpl.rcParams['font.fantasy'] = 'Comic Sans MS, Arial'
import numpy as np
from math import *
alfa=21.0#Угол сужения
beta=11.5#Угол расширения
rkr=1.1#Радиус критического сечения
R0=2*rkr
r1=0.5*rkr# Радиус округления сужающейся части сопла
r2=0.8*rkr# Радиус округления расширяющейся части сопла
ye=rkr+r2
L=1.2*R0#Длина прямого участка сопла Лаваля
x0=0
y0=R0
xa=L
ya=y0
xc1=xa
yc1=ya-r1
xc=xa+r1*cos(radians(90-alfa))
yc=yc1+r1*sin(radians(90-alfa))
yd=ye-r2*sin(radians(90-alfa))
xd=xc+(yc-yd)/tan(radians(alfa))
xc2=xd+r2*sin(radians(alfa))
xe=xc2
xf=xe+r2*cos(radians(90-beta))
yf=ye-r2*sin(radians(90-beta))
def R(x):     
        if x0<=x<=xa:
               return ya*1e-4
        if xa<=x<=xc:
               return (yc1+sqrt(r1**2-(x-xc1)**2))*1e-4
        if xc<=x<=xd:
               return (-tan(radians(alfa))*(x-xc)+yc)*1e-4
        if xd<=x<=xf:
                return (ye-sqrt(r2**2-(x-xe)**2))*1e-4
        if xf<=x:
                return (yf+tan(radians(beta))*(x-xf))*1e-4     
y=[R(x+xe) for x in np.arange(-5,5,0.01)]
x=np.arange(-5,5,0.01)
plt.figure()
plt.title('Профиль сопла ')
plt.axis([-5.0, 5.0, 0.0, 3.0*10**-4])
plt.plot(x,y,'r')
plt.grid(True)
plt.figure()
plt.title('Изменение площади проходного \n сечения сопла  вдоль его продольной  оси ')
yy=[pi*R(x+xe)**2 for x in np.arange(-5,5,0.01)]
plt.plot(x,yy,'r')
plt.grid(True)
plt.show()






Для продолжения решения задачи на Python, нужно связать ? – приведенную скорость газа с координатой x вдоль продольной оси. Для этого я воспользовался функцией fsolve из библиотеки SciPy со следующей инструкцией:

fsolve(<функция>,<стартовая точка>,xtol=1.5 · 10^8)

Привожу фрагмент программы для управления решателем с одной стартовой точкой:

def lamda(z):
         m=round(Q(z),2)
         if z>= 0:                 
                  x=fsolve(lambda x:x*( (1-(1/6)*x**2)**2.5)/((1-(1/6))**2.5)-m,1.5)
                  return x[0]
         if z<0:
                  x=fsolve(lambda x:x*( (1-(1/6)*x**2)**2.5)/((1-(1/6))**2.5)-m,0.5)
                  return x[0]

Это единственно возможное на Python решение сложного алгебраического уравнения со степенной функцией от показателя адиабаты k. Например, даже для упрощённого уравнения с использованием библиотеки SymPy, получим недопустимое время расчёта только одной точки:

from sympy import *
import time
x = symbols('x',real=True)
start = time.time()
start = time.time()
d=solve( 1.5774409656148784068*x *(1.0-0.16666666666666666667*x**2)**2.5-0.25,x)
stop = time.time()
print ("Время работы решателя:",round(stop-start,3))
print(round(d[0],3))
print(round(d[1],3))

Время работы решателя: 195.675
0.16
1.95

Листинг для вычисления газодинамической функции относительной скорости
#!/usr/bin/env python
#coding=utf8
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.family'] = 'fantasy'
mpl.rcParams['font.fantasy'] = 'Comic Sans MS, Arial'
import numpy as np
from math import *
from scipy.optimize import *
import time
start = time.time()
alfa=21.0#Угол сужения
beta=11.5#Угол расширения
rkr=1.1#Радиус критического сечения
R0=2*rkr
r1=0.5*rkr#Радиус округления сужающейся части сопла
r2=0.8*rkr#Радиус округления расширяющейся части сопла
ye=rkr+r2
L=1.2*R0#Длина прямого участка сопла Лаваля
x0=0
y0=R0
xa=L
ya=y0
xc1=xa
yc1=ya-r1
xc=xa+r1*cos(radians(90-alfa))
yc=yc1+r1*sin(radians(90-alfa))
yd=ye-r2*sin(radians(90-alfa))
xd=xc+(yc-yd)/tan(radians(alfa))
xc2=xd+r2*sin(radians(alfa))
xe=xc2
xf=xe+r2*cos(radians(90-beta))
yf=ye-r2*sin(radians(90-beta))
def R(x):     
        if x0<=x<=xa:
               return ya*1e-4
        if xa<=x<=xc:
               return (yc1+sqrt(r1**2-(x-xc1)**2))*1e-4
        if xc<=x<=xd:
               return (-tan(radians(alfa))*(x-xc)+yc)*1e-4
        if xd<=x<=xf:
                return (ye-sqrt(r2**2-(x-xe)**2))*1e-4
        if xf<=x:
                return (yf+tan(radians(beta))*(x-xf))*1e-4
def S(x):
         return pi*R(x+xe)**2
xg=2*xe
n=150
RG=287 #Газовая постоянная  
Tt=611 #Температура торможения
k=1.4
def tau(x):      
        return 1-(1/6)*x**2
def eps(x):       
        return (1-(1/6)*x**2)**2.5
def pip(x):             
        return 1-(1/6)*x**2
def Q(z):
         return S(0)/S(z)
x=[x0-xe+(i/n)*(xg-x0) for i in np.arange(0,n,1)]
def lamda(z):
         m=round(Q(z),2)
         if z>= 0:                 
                  x=fsolve(lambda x:x*( (1-(1/6)*x**2)**2.5)/((1-(1/6))**2.5)-m,1.5)
                  return x[0]
         if z<0:
                  x=fsolve(lambda x:x*( (1-(1/6)*x**2)**2.5)/((1-(1/6))**2.5)-m,0.5)
                  return x[0]
plt.title('Газодинамическая функция приведенной скорости')
y=[lamda(z) for z in x]
stop = time.time()
print ("Время работы программы:",round(stop-start,3))
plt.ylabel('?(xi)-отношение скорости газа к скорости звука' )
plt.plot(0, 1, color='b', linestyle=' ', marker='o', label='Сужение сопла')
plt.xlabel('xi -координата вдоль оси сопла')  
plt.plot(x,y,'r')
plt.legend(loc='best')
plt.grid(True)
plt.show()


Время работы программы: 0.222



Вывод:

Полученная эпюра распределения скоростей газового потока полностью соответствует изложенной выше теории. При этом, по предложенному алгоритму и библиотеке, время расчёта в 150 точках в 1000 раз меньше, чем для одной точки с использованием solve sympy.

Листинг для вычисления газодинамической функции температуры
#!/usr/bin/env python
#coding=utf8
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.family'] = 'fantasy'
mpl.rcParams['font.fantasy'] = 'Comic Sans MS, Arial'
import numpy as np
from math import *
from scipy.optimize import *
import time
start = time.time()
alfa=21.0#Угол сужения
beta=11.5#Угол расширения
rkr=1.1#Радиус критического сечения
R0=2*rkr
r1=0.5*rkr#Радиус округления сужающейся части сопла
r2=0.8*rkr#Радиус округления расширяющейся части сопла
ye=rkr+r2
L=1.2*R0#Длина прямого участка сопла Лаваля
x0=0
y0=R0
xa=L
ya=y0
xc1=xa
yc1=ya-r1
xc=xa+r1*cos(radians(90-alfa))
yc=yc1+r1*sin(radians(90-alfa))
yd=ye-r2*sin(radians(90-alfa))
xd=xc+(yc-yd)/tan(radians(alfa))
xc2=xd+r2*sin(radians(alfa))
xe=xc2
xf=xe+r2*cos(radians(90-beta))
yf=ye-r2*sin(radians(90-beta))
def R(x):     
        if x0<=x<=xa:
               return ya*1e-4
        if xa<=x<=xc:
               return (yc1+sqrt(r1**2-(x-xc1)**2))*1e-4
        if xc<=x<=xd:
               return (-tan(radians(alfa))*(x-xc)+yc)*1e-4
        if xd<=x<=xf:
                return (ye-sqrt(r2**2-(x-xe)**2))*1e-4
        if xf<=x:
                return (yf+tan(radians(beta))*(x-xf))*1e-4
def S(x):
         return pi*R(x+xe)**2
xg=2*xe
n=150
RG=287 #Газовая постоянная  
Tt=611 #Температура торможения
k=1.4
def tau(x):      
        return 1-(1/6)*x**2
def eps(x):       
        return (1-(1/6)*x**2)**2.5
def pip(x):             
        return 1-(1/6)*x**2
def Q(z):
         return S(0)/S(z)
x=[x0-xe+(i/n)*(xg-x0) for i in np.arange(0,n,1)]
def lamda(z):
         m=round(Q(z),2)
         if z>= 0:                 
                  x=fsolve(lambda x:x*( (1-(1/6)*x**2)**2.5)/((1-(1/6))**2.5)-m,1.5)
                  return x[0]
         if z<0:
                  x=fsolve(lambda x:x*( (1-(1/6)*x**2)**2.5)/((1-(1/6))**2.5)-m,0.5)
                  return x[0]
plt.title('Газодинамическая функция температуры')
t0=293
y=[ t0*tau(lamda(z)) for z in x]
stop = time.time()
print (" Время работы программы:",round(stop-start,3))
plt.ylabel('T(xi)-температура газового потока град. С' )
plt.xlabel('xi -координата вдоль оси сопла')  
plt.plot(x,y,'r')
plt.grid(True)
plt.show()     


Время работы программы: 0.203



Вывод


Температура на выходе из сопла уменьшается по приведенному в листинге уравнению газодинамики. Время выполнения программы приемлемое -0.203.

Испытательная установка:



Листинг для вычисления газодинамической функции давления
#!/usr/bin/env python
#coding=utf8
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.family'] = 'fantasy'
mpl.rcParams['font.fantasy'] = 'Comic Sans MS, Arial'
import numpy as np
from math import *
from scipy.optimize import *
import time
start = time.time()
alfa=21.0#Угол сужения
beta=11.5#Угол расширения
rkr=1.1#Радиус критического сечения
R0=2*rkr
r1=0.5*rkr#Радиус округления сужающейся части сопла
r2=0.8*rkr#Радиус округления расширяющейся части сопла
ye=rkr+r2
L=1.2*R0#Длина прямого участка сопла Лаваля
x0=0
y0=R0
xa=L
ya=y0
xc1=xa
yc1=ya-r1
xc=xa+r1*cos(radians(90-alfa))
yc=yc1+r1*sin(radians(90-alfa))
yd=ye-r2*sin(radians(90-alfa))
xd=xc+(yc-yd)/tan(radians(alfa))
xc2=xd+r2*sin(radians(alfa))
xe=xc2
xf=xe+r2*cos(radians(90-beta))
yf=ye-r2*sin(radians(90-beta))
def R(x):     
        if x0<=x<=xa:
               return ya*1e-4
        if xa<=x<=xc:
               return (yc1+sqrt(r1**2-(x-xc1)**2))*1e-4
        if xc<=x<=xd:
               return (-tan(radians(alfa))*(x-xc)+yc)*1e-4
        if xd<=x<=xf:
                return (ye-sqrt(r2**2-(x-xe)**2))*1e-4
        if xf<=x:
                return (yf+tan(radians(beta))*(x-xf))*1e-4
def S(x):
         return pi*R(x+xe)**2
xg=2*xe
n=150
RG=287 #Газовая постоянная  
Tt=611 #Температура торможения
k=1.4
def tau(x):      
        return 1-(1/6)*x**2
def eps(x):       
        return (1-(1/6)*x**2)**2.5
def pip(x):             
        return 1-(1/6)*x**2
def Q(z):
         return S(0)/S(z)
x=[x0-xe+(i/n)*(xg-x0) for i in np.arange(0,n,1)]
def lamda(z):
         m=round(Q(z),2)
         if z>= 0:                 
                  x=fsolve(lambda x:x*( (1-(1/6)*x**2)**2.5)/((1-(1/6))**2.5)-m,1.5)
                  return x[0]
         if z<0:
                  x=fsolve(lambda x:x*( (1-(1/6)*x**2)**2.5)/((1-(1/6))**2.5)-m,0.5)
                  return x[0]
plt.title('Газодинамическая функция давления')
p0=3.6
y=[ 3.6*pip(lamda(z)) for z in x]
stop = time.time()
print ("Время работы программы:",round(stop-start,3))
plt.ylabel('P(xi)-давление газового потока в МПа' )
plt.xlabel('xi -координата вдоль оси сопла')  
plt.plot(x,y,'r')
plt.grid(True)
plt.show()  


Время работы программы: 0.203



Вывод


Давление на выходе из сопла уменьшается по приведенному в листинге уравнению газодинамики. Время выполнения программы приемлемое -0.203.

Возникновение силы тяги от действия давления газа схематично показано на рисунке:



Листинг для вычисления газодинамической функции относительной плотности газа
#!/usr/bin/env python
#coding=utf8
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.family'] = 'fantasy'
mpl.rcParams['font.fantasy'] = 'Comic Sans MS, Arial'
import numpy as np
from math import *
from scipy.optimize import *
import time
start = time.time()
alfa=21.0#Угол сужения
beta=11.5#Угол расширения
rkr=1.1#Радиус критического сечения
R0=2*rkr
r1=0.5*rkr#Радиус округления сужающейся части сопла
r2=0.8*rkr#Радиус округления расширяющейся части сопла
ye=rkr+r2
L=1.2*R0#Длина прямого участка сопла Лаваля
x0=0
y0=R0
xa=L
ya=y0
xc1=xa
yc1=ya-r1
xc=xa+r1*cos(radians(90-alfa))
yc=yc1+r1*sin(radians(90-alfa))
yd=ye-r2*sin(radians(90-alfa))
xd=xc+(yc-yd)/tan(radians(alfa))
xc2=xd+r2*sin(radians(alfa))
xe=xc2
xf=xe+r2*cos(radians(90-beta))
yf=ye-r2*sin(radians(90-beta))
def R(x):     
        if x0<=x<=xa:
               return ya*1e-4
        if xa<=x<=xc:
               return (yc1+sqrt(r1**2-(x-xc1)**2))*1e-4
        if xc<=x<=xd:
               return (-tan(radians(alfa))*(x-xc)+yc)*1e-4
        if xd<=x<=xf:
                return (ye-sqrt(r2**2-(x-xe)**2))*1e-4
        if xf<=x:
                return (yf+tan(radians(beta))*(x-xf))*1e-4
def S(x):
         return pi*R(x+xe)**2
xg=2*xe
n=150
RG=287 #Газовая постоянная  
Tt=611 #Температура торможения
k=1.4
def tau(x):      
        return 1-(1/6)*x**2
def eps(x):       
        return (1-(1/6)*x**2)**2.5
def pip(x):             
        return 1-(1/6)*x**2
def Q(z):
         return S(0)/S(z)
x=[x0-xe+(i/n)*(xg-x0) for i in np.arange(0,n,1)]
def lamda(z):
         m=round(Q(z),2)
         if z>= 0:                 
                  x=fsolve(lambda x:x*( (1-(1/6)*x**2)**2.5)/((1-(1/6))**2.5)-m,1.5)
                  return x[0]
         if z<0:
                  x=fsolve(lambda x:x*( (1-(1/6)*x**2)**2.5)/((1-(1/6))**2.5)-m,0.5)
                  return x[0]
plt.title('Газодинамическая функция относительной плотности газа')
y=[ eps(lamda(z)) for z in x]
stop = time.time()
print ("Время работы программы:",round(stop-start,3))
plt.ylabel('Относительная плотность' )
plt.xlabel('xi -координата вдоль оси сопла')  
plt.plot(x,y,'r')
plt.grid(True)
plt.show()



Время работы программы: 0.203



Вывод


Плотность газа на выходе из сопла уменьшается по приведенному в листинге уравнению газодинамики. Время выполнения программы приемлемое.

Выводы


  1. Разработан метод решения средствами Python вещественных корней нелинейных степенных уравнений с дробными показателями степени используемых для описания газодинамических процессов. Метод основан на применении решателя fsolve из модуля scipy. optimize.
  2. С помощью разработанного метода, решена демонстрационная задача расчёта сопла современных ракетных двигателей с определением следующих газодинамических функций: скорости; температуры; давления; плотности реактивных газов.

Ссылки


1. А. А. Дорофеев Основы теории тепловых ракетных двигателей (Общая теория ракетных двигателей) МГТУ им. Н. Э. Баумана Москва 1999 г.
2. Ландау Л. Д., Лифшиц Е. М. Глава X. Одномерное движение сжимаемого газа. § 97. Истечение газа через сопло // Теоретическая физика. — Т. 6. Гидродинамика.

Комментарии (19)


  1. lain8dono
    20.01.2018 17:35
    +1

    Зачем тогда другие три сопла? Чем остальные лучше/хуже?


    1. vesper-bot
      22.01.2018 12:43

      Скорее всего, они датированы тем временем, когда сопла считали без машин, и оптимальный профиль был неизвестен, и прикидывался вручную. Даже сопло Лаваля на картинке не очень-то соответствует «оптимальному профилю», выданному расчетной программой. А почему известным стало именно оно — надо покопаться в истории развития реактивных двигателей.


    1. propell-ant
      22.01.2018 12:48

      Другие два (сопло Лаваля посчитано, остальные только на картинках) «менее оптимальны». Именно Лаваль обосновал форму криволинейной сверхзвуковой части сопла минимальной длины.
      Однако случается, что плюсы простоты изготовления перевешивают минусы лишней длины, и применяют сопла с менее сложной формой.

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


  1. romixlab
    20.01.2018 19:43

    Очень интересное видео расчётов двигателей SpaceX — https://youtu.be/txk-VO1hzBY


  1. decomeron
    20.01.2018 22:46

    А от матерьяла сопел рассчеты зависят?


    1. sshikov
      21.01.2018 11:54
      +1

      Расчетов — их много разных. Скажем, тягу можно в первом приближении оценить как (давление в камере) * (площадь критического сечения), и совсем не сильно ошибетесь. То есть, не то что материал, а и само наличие сопла можно не учитывать — смотря что вы хотите получить.


      В целом — конечно материал учитывается, например, теплоотвод через стенки зависит от их материала.


  1. san-smith
    21.01.2018 09:16
    +2

    Небольшое замечание по оформлению графиков. В подписях к осям не очень красиво выглядит запись xi. Pyplot из Matplotlob умеет использовать синтаксис латеха для оформления текста на графиках. Для этого достаточно заключить такой текст в пару $ ваш текст $.
    Пример для подтверждения
    image

    Исходный код
    from matplotlib import pyplot as plt
    import numpy as np
    
    x = np.linspace(0, 10, 50)
    y = np.sin(x)
    
    plt.xlabel("$x_i$ - координата вдоль оси")
    plt.ylabel("$\lambda(x_i)$ - какая-то функция, $^\circ C$")
    
    plt.plot(x, y)
    


  1. sufferingluck
    21.01.2018 13:18
    +1

    Красиво. Изящно. У меня диплом в 80 году был, тогда на Фортране-Д и на БЭСМ-6 считалось что-то около 15 минут собственно для газодинамики «течения релаксирующей смеси газа в сверхзвуковом сопле». Правда, оно было криволинейно, но преобразование координат много времени не занимало и тогда уже)


  1. TimeCoder
    21.01.2018 17:00
    +1

    Смотрю на картинку в начале, симметричные две воронки, соединённые узким горлышком, входит поток на дозвуковой скорости, выходит на сверхзвуковой. Вспоминаю картинку с трубой, где сечение постоянно меняется, иллюстрация к закону Бернулли. И не стыкуется. Там как меняется сечение, так меняется скорость, изменилось сечение обратно — скорость тоже стала прежней. Почему в сопле не так? Я не про формулы, а "простыми словами" если суть?


    1. splav_asv
      21.01.2018 20:53

      Для дозвука — уменьшаем сечение -> увеличивается скорость (упомянутый вами закон). Для сверхзвука — при увеличении сечения скорость падает. Для разгона нужно сечение увеличивать.
      Итого сужаем канал пока скорость не станет равной скорости звука, после этого момента начинаем расширять.
      Сами эти факты выводятся из сжимаемого уравнения Эйлера и уравнения состояния идеального газа.


      1. TimeCoder
        22.01.2018 01:21

        А финальная цель ускорения струи какова? Ведь «толкающая сила» не может от этого поменяться. Как ни манипулируй со струями, их скоростями, закон сохранения же работает, дополнительной энергии просто неоткуда взяться, ракета летит ровно настолько, сколько энергии высвобождается при горении топлива за единицу времени.


        1. Deosis
          22.01.2018 08:02

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


        1. splav_asv
          22.01.2018 09:03

          Цель перевести тепловую энергию в кинетическую. Как было замечено, для тяги важен импульс газа. А сопле газ остывает, набирая скорость.


        1. Zenitchik
          22.01.2018 12:02

          А финальная цель ускорения струи какова?

          Увеличение удельного импульса. Ради него весь двигатель. Больше УИ — больше конечная скорость.
          А удельный импульс примерно равен скорости истечения (в идеальных условиях был бы тождественно равен, но мир не идеален).


          1. TimeCoder
            22.01.2018 22:51

            Спасибо, уже понял, да. Мне изначально показалось странным, как манипуляции со струёй могут придать ракете большую скорость, ведь энергии больше от этого не появится, и как выше отметили вся соль в переводе тепловой энергии в кинетическую (т.е. сумма та же, закон сохранения не нарушается). Очень не хватает вот этой простой и ключевой мысли в самом начале статьи, т.к. сразу «идем по дрова», без аннотации «зачем это».


  1. knstqq
    21.01.2018 20:53

    (ответ к комментарию выше, промахнулся)
    Закон Бернулли требует стационарного потока идеальной (без внутреннего трения) несжимаемой жидкости или ламинарный поток газа.
    Турбулентный поток в экстремальных условиях давления, а так же меняющейся температуры по мере движения по соплу и не должен стыковаться с Бернулли


    1. splav_asv
      22.01.2018 09:05

      Учета сжимаемости достаточно для понимания общей идеи сопла.


  1. psy06
    21.01.2018 22:33

    Народ свои курсачи что-ли публикует?


  1. teecat
    22.01.2018 13:14

    Ностальгия. Расчеты на МК-85 согласно методичкам МАИ…