Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация

Форум самогонщиков, пивоваров, виноделов Оборудование Автоматика
1 ... 7 8 9 10 11 10
Newocelot Профессор Питер 5160 1253
Отв.180  29 Марта 19, 00:20
простите если не в тему
а где-нибудь есть таблицы зависимости давления насыщенного пара водно-спиртовой смеси от температуры для различных концентраций ?
(особо интересуют давления от 15 до 100 PSI)
а то считать лень (да и не так просто как на первый взгляд)
m16 Модератор Тамбов 1804 967
Отв.181  29 Марта 19, 22:47
вот тут посмотри
Newocelot Профессор Питер 5160 1253
Отв.182  31 Марта 19, 00:59
вот тутm16, 29 Марта 19, 22:47
Спасибо, но интересуют (как я и писал) гораздо более высокие давления....
(от 1500 mm.hg)
m16 Модератор Тамбов 1804 967
Отв.183  31 Марта 19, 15:48
Newocelot, открываешь VLE-calc , выбираешь водноспиртовую смесь, меняя давление с выбранным шагом в выбранном диапазоне  расчитанные данные заносишь в таблицу через copy-paste. именно так я и делал, да, геморно но готовую таблицу ты вряд ли найдёшь. в таблице ты можешь  выбрать вид выходных данных mol/mol, mass%, vol%
Kotische Академик Саратов 7104 2106
Отв.184  07 Апр. 19, 00:32
открываешь VLE-calcm16, 31 Марта 19, 15:48
Решил чисто по приколу проанализировать табличку пересчета спиритуозности, массовых процентов в объемныые,
и конкретно так... удивился.  :o

Данные из Стабникова:
мас%об%разница
5259,917,91
5360,917,91

Данные из VLE-calc:
мас%об%разница
52,289158,14225,8531

2% раазницы!
Да это вообще ни в какие ворота не лезет!!!
Шо за нах?! Непонимающий

Возможно с этим связаны нестыковки данных эксперимента и данных полученных с нового калькулятора Руди.
игорь223 Академик таганрог 24158 15655
Отв.185  07 Апр. 19, 08:17
Kotische, температура кипения воды полностью бьется со СТАРЫМ калькулятором Руди.
Я потратил почти неделю на новый. в смысле на его проверку и поиски ответа на вопрос - какого хера не бьется теория с практикой.
 Блядь.
Пока  OldBean крайне корректно и ненавязчиво отказался переделывать свою программу на новый лад, очень тактично мотивируя свое решение тем, что таблицы Стабникова проверены прошлыми поколениями, и составлены корифеями науки задолго даже до его рождения.
После этого, доверяя его авторитету и мнению, я и забил таблицу в память контроллера...через пару часов все стало на свои места.

Собственно, где-то на форуме я про это подробно и отписался в этот же день, день "прозрения")))

 

Добавлено через 1мин.:

[сообщение #13502131]
Kotische Академик Саратов 7104 2106
Отв.186  07 Апр. 19, 10:34
я и забил таблицу в память контроллера...игорь223, 07 Апр. 19, 08:17
Оказалось для точности 0.01% достаточно забить полином 4 степени.
Или полином 3 степени для точности 0.05%.
игорь223 Академик таганрог 24158 15655
Отв.187  07 Апр. 19, 10:37, через 3 мин
Ты бы лучше сделал полином для перевода из молярных долей спиртосодержания в обьемные для пара и спирта.
Вот это было бы круто!
Kotische Академик Саратов 7104 2106
Отв.188  07 Апр. 19, 10:40, через 4 мин
С молярными долями я ещё до конца не разобрался.
В Стабникове есть формула, я по ней влоб считаю спиритуозность и получаю какую то херню.
Значит что то ещё не до конца понимаю.
Как разберусь - сделаю тебе полином. )
Kotische Академик Саратов 7104 2106
Отв.189  08 Апр. 19, 21:56
После того как сам формулу вывел, и получил ту же самую формулу как в Стабникове, понял как его формулой пользоваться Улыбающийся

Далее по тексту концентрации Аххх меряются в долях, а спиритуозности Sxxx в процентах!
Пересчет концентраций в проценты спиритуозности:
1 доля = 100%,
1% = 0,01 доли


Формула перевода из масовых долей в молярные:
Aмол = (18,01528 * Амас) / (46,07 - 28,05472*Амас)

Формула перевода из молярных долей в массовые:
Aмас = (46,07 * Амол) / (18,01528 + 28,05472*Амол)

Формула перевода из массовых долей в объемные:
Аоб = Амас + (B0 + B1*Амас + B2*Амас2 + B3*Амас3)
где Bx - коэфициенты полинома:
B0 = -0,000759886
B1 = 0,27494
B2 = -0,19104
B3 = -0,08202

Пример расчета:
Имеем молярную спиритуозность:
Sмол = 45% (мол)
Aмол = 45%/100% = 0.45

Aмас = (46,07 * 0,45) / (18,01528 + 28,05472*0,45) = 0,676617655
Sмас = Aмас*100% = 67,6617655% (масс)

Аоб = 0,6766 + -0,000759886 + 0,27494*0,6766 + -0,19104*0,6766*0,6766 + -0,08202*0,6766*0,6766*0,6766 = 0,74900
Sоб = Аоб*100% = 74,900% (об)

По оценке интерполятора погрешность должна получиться не более 0.05%

Проверимся по калькулятору Руди:
Sмол = 45.00% (мол)
Sмас = 67.65% (масс)
Sоб = 74.84% (об)
Error.png
815x617 27Кб
Stabnikov.png
439x105 12Кб
игорь223 Академик таганрог 24158 15655
Отв.190  09 Апр. 19, 14:04
Проверил.
Все бьется, и по кубовому остатку, и по пару.

Как соберу макет (многострочный индикатор щас прикручиваем))) так и покажу в работе твой полином!
Kotische Академик Саратов 7104 2106
Отв.191  16 Мая 19, 00:44
игорь223, по поводу твоего вопроса

Первая страница - исходные данные, про которые были сомнения.
они взяты из Стабникова.
Там есть столбец проверочный, который показывает что погрешность формулы 0,05%
имхо вполне достаточно для практики.
А уж верить данным из Стабникова или не - сам решай.

Вторая страница - проверка данных с сайта LVE.
Видно что там погрешность около 2%.

ЗЫ: макросы и вижуал бейсик в экселе разреши чтоб формула считалась.

Данные по Нетбиновскому алгоритму немного отличаются от данных Стабникова и от калькулятора Руди (в обоих режимах).
Переделать Нетбиновский алгоритм что бы он по паре температура-давление считал спиритуозность - не вижу особой проблемы, но расстыыковка значений между разными источниками данных никуда не денется.
mas2vol.xls (178Кб - загружено 7 раз)
Kotische Академик Саратов 7104 2106
Отв.192  24 Мая 19, 21:38
Развлекаюсь между делом формулами, построить точную формулу A(P,T) пока не получается,
за то родил сильтно точную формулу P(T) для чистой воды.
В диапазоне температур (0...350°C) точность интерполяции (относительная) 0,03%.
Чтоб не потерялась выкладываю здесь.
Давление в барах (1 бар = 100 кПа)
Температура, используется подстановка:
 x = 1000/T°K = 1000/(T°C+273,15)

Для диапазона температур (0...350°C)
P = 10^( 0,0111650677918078*x6 - 0,1888273384771980*x5 + 1,3274383167192000*x4 - 4,9598226655712100*x3 + 10,2661000165064000*x2 - 13,0773103655954000*x + 10,2787430184731000)

Для диапазона температур (0...100°C) и ниже
P = 10^( -2,2595528139333400*x + 6,0757114036191900 )
water2.xls (387Кб - загружено 3 раз)
Newocelot Профессор Питер 5160 1253
Отв.193  24 Мая 19, 22:37, через 59 мин
P = 10^( 0,0111650677918078*x6 - 0,1888273384771980*x5 + 1,3274383167192000*x4 - 4,9598226655712100*x3 + 10,2661000165064000*x2 - 13,0773103655954000*x + 10,2787430184731000)Kotische, 24 Мая 19, 21:38
лет 30 назад легко прокатило-бы за кандидатскую по численным методам
Kotische Академик Саратов 7104 2106
Отв.194  26 Мая 19, 23:36
Продолжаю развлекаться...
Немного разобрался как получается температура кипения жидкости через молекулярно кинетическую теорию и прочую термодинамику...
Узнал, что её можно получить через энтропию и энтальпию вещества, которые в свою очередь можно получить через удельную теплоемкость и удельную энергию фазового перехода жидкость-пар...  Строит глазки
Выяснилось, что нихрена нам это полезного не дает, так как и теплоемкость, и энтропия, и энтальпия вещества к сожалению сами зависят от температуры и давления, и зависимости эти существенно не линейные  Грустный
Так что получить одну красивую формулу с минимальным количеством коэффициентов и которая покрывала бы весь диапазон температур к сожалению не получилось.
За то разбив график зависимости давления от температуры на несколько участков удалось получить просто охренительную точность интерполяции и всего 4 коэфициента на каждом участке:

Вот получавшаяся формула:
Скрытый текст


uT = 273,15/(T°C+273,15)
P[бар] = 220,55 * ( 2,71828182845905 ^ MyFun )

Function MyFun(uT As Double) As Double

    If 0.907023 <= uT Then ' 28°C
        MyFun = 1.4476096556 * uT ^ 3 - 6.8275038291 * uT ^ 2 - 10.5318832847 * uT + 5.4183028571
        Exit Function
    End If


    If 0.730054790859281 < uT Then ' 101°C
        MyFun = 1.3761569154 * uT ^ 3 - 6.6879672463 * uT ^ 2 - 10.6092000437 * uT + 5.4269362651
        Exit Function
    End If

    If 0.578523774224293 < uT Then ' 199 °C
        MyFun = -1.7005273703 * uT ^ 3 - 0.106626187 * uT ^ 2 - 15.30987446 * uT + 6.5481027204
        Exit Function
    End If
    
    If 0.48 < uT Then ' 297 °C
        MyFun = -13.9064839161 * uT ^ 3 + 20.7846329626 * uT ^ 2 - 27.2542981851 * uT + 8.8295139109
        Exit Function
    End If


    If 0.455895852457648 < uT Then ' 326 °C
        MyFun = -66.5139298365 * uT ^ 3 + 96.9340131979 * uT ^ 2 - 64.0194626707 * uT + 14.7499974396
        Exit Function
    End If


    If 0.43346822185194 < uT Then ' 357 °C
        MyFun = -163.1654273905 * uT ^ 3 + 228.1688731527 * uT ^ 2 - 123.4170027793 * uT + 23.7112235716
        Exit Function
    End If

    MyFun = -1130.8011952937 * uT ^ 3 + 1484.4484161774 * uT ^ 2 - 667.107006002 * uT + 102.145747311
End Function

Как видно из кода, для самогоноварительных нужд достаточно всего два участка [0 - 28°C] и [28°C - 101°C] получившейся формулы.
water2.xls (763Кб - загружено 7 раз)
Kotische Академик Саратов 7104 2106
Отв.195  28 Мая 19, 01:10
Очередной подход к снаряду...
Диапазон [0...374°C] разбит на большее число мелких поддиапазончиков,
но зато точность интерполяции возросла неимоверно, и теперь
относительная погрешность составляет менее 0,003%
Экстраполяция для отрицательных температур тоже должна работать,
но точность там ни кто не гарантирует.

Формула:
Скрытый текст

// T - температура в [°С]
// P - давление в [бар],  где 1[бар] = 100[кПа]
Function Fun_T2P(T As Variant) As Variant
    Dim x As Variant
    x = 273.15 / (T + 273.15)
    
    Dim y As Variant
    
    If T <= 0 Then y = -19.7541753265 * x + 9.2611847264: GoTo lExit
    If T <= 10 Then y = -2.6258109568 * x ^ 2 - 14.5955091231 * x + 6.7278343483: GoTo lExit
    If T <= 20 Then y = -2.7503492712 * x ^ 2 - 14.358968763 * x + 6.6155486684: GoTo lExit
    If T <= 30 Then y = -2.8659351314 * x ^ 2 - 14.1445726474 * x + 6.5161425234: GoTo lExit
    If T <= 40 Then y = -2.9930983972 * x ^ 2 - 13.9150854365 * x + 6.4126116471: GoTo lExit
    If T <= 50 Then y = -3.2013161054 * x ^ 2 - 13.5527182367 * x + 6.2549462522: GoTo lExit
    If T <= 60 Then y = -3.4086821424 * x ^ 2 - 13.2087995338 * x + 6.1123887561: GoTo lExit
    If T <= 70 Then y = -3.371451435 * x ^ 2 - 13.2727652401 * x + 6.1398116795: GoTo lExit
    If T <= 80 Then y = -3.4430028268 * x ^ 2 - 13.1589470274 * x + 6.0945544294: GoTo lExit
    If T <= 90 Then y = -3.5259288492 * x ^ 2 - 13.0307945077 * x + 6.0450466975: GoTo lExit
    If T <= 100 Then y = -3.6181451945 * x ^ 2 - 12.8927447614 * x + 5.9933811568: GoTo lExit
    If T <= 110 Then y = -3.8403997818 * x ^ 2 - 12.574162605 * x + 5.8792583274: GoTo lExit
    If T <= 120 Then y = -3.7885046471 * x ^ 2 - 12.6548382555 * x + 5.9103880854: GoTo lExit
    If T <= 130 Then y = -3.5537596366 * x ^ 2 - 12.9838084675 * x + 6.0256296725: GoTo lExit
    If T <= 140 Then y = -3.6122629857 * x ^ 2 - 12.9037208934 * x + 5.9982271545: GoTo lExit
    If T <= 150 Then y = -3.4625219083 * x ^ 2 - 13.1027067253 * x + 6.0643318111: GoTo lExit
    If T <= 160 Then y = -3.3400375359 * x ^ 2 - 13.2583326295 * x + 6.1137625622: GoTo lExit
    If T <= 170 Then y = -3.3435574363 * x ^ 2 - 13.2549054791 * x + 6.1130010531: GoTo lExit
    If T <= 180 Then y = -3.4191689949 * x ^ 2 - 13.1652764347 * x + 6.086477925: GoTo lExit
    If T <= 190 Then y = -3.0521267771 * x ^ 2 - 13.6131183259 * x + 6.2230860949: GoTo lExit
    If T <= 200 Then y = -2.6385058338 * x ^ 2 - 14.0972000461 * x + 6.3647298404: GoTo lExit
    If T <= 210 Then y = -2.9294993661 * x ^ 2 - 13.768665841 * x + 6.2720463128: GoTo lExit
    If T <= 220 Then y = -2.631450202 * x ^ 2 - 14.109384635 * x + 6.3694162025: GoTo lExit
    If T <= 230 Then y = -2.3379132325 * x ^ 2 - 14.4447564036 * x + 6.4651162717: GoTo lExit
    If T <= 240 Then y = -1.5948167044 * x ^ 2 - 15.2523168071 * x + 6.6845309724: GoTo lExit
    If T <= 250 Then y = -1.4454624088 * x ^ 2 - 15.4107143136 * x + 6.7265279842: GoTo lExit
    If T <= 260 Then y = -1.1296317105 * x ^ 2 - 15.7440526371 * x + 6.8144651328: GoTo lExit
    If T <= 270 Then y = -0.3925956019 * x ^ 2 - 16.5012595029 * x + 7.0089524269: GoTo lExit
    If T <= 280 Then y = 0.2438293443 * x ^ 2 - 17.1415984348 * x + 7.1700246955: GoTo lExit
    If T <= 290 Then y = 0.904904303 * x ^ 2 - 17.7918550369 * x + 7.3299233359: GoTo lExit
    If T <= 300 Then y = 1.7228910966 * x ^ 2 - 18.5864683502 * x + 7.5229035329: GoTo lExit
    If T <= 310 Then y = 2.8807996653 * x ^ 2 - 19.6892414091 * x + 7.785471031: GoTo lExit
    If T <= 320 Then y = 4.5013403143 * x ^ 2 - 21.2034420341 * x + 8.1391885471: GoTo lExit
    If T <= 330 Then y = 3.496903246 * x ^ 2 - 20.2999171901 * x + 7.9360679874: GoTo lExit
    If T <= 340 Then y = 7.3188442086 * x ^ 2 - 23.7813598251 * x + 8.7288637786: GoTo lExit
    If T <= 350 Then y = 11.1719752112 * x ^ 2 - 27.2229765412 * x + 9.4973704541: GoTo lExit
    If T <= 360 Then y = 17.0001930891 * x ^ 2 - 32.3340023094 * x + 10.6178948214: GoTo lExit
    If T <= 370 Then y = 30.160006187 * x ^ 2 - 43.6796102356 * x + 13.0632720194: GoTo lExit
    y = 35.5050007665 * x ^ 2 - 48.2912104733 * x + 14.0577601631 ' 370°C >= T
    
lExit:
    Fun_T2P = 220.55 * Exp(y)
End Function

В аттаче картинка с абсолютной погрешностью.
Видно что табличка состоит из нескольких кусков, промеренных с разной точностью.
pogreshnost.png
1211x709 64Кб
Kotische Академик Саратов 7104 2106
Отв.196  28 Мая 19, 01:27, через 17 мин
223ий, специально для тебя сравнил с калькулятором Руди
Rudy1.png
202x210 6Кб
игорь223 Академик таганрог 24158 15655
Отв.197  28 Мая 19, 04:28
В следующий раз, когда термометр в кубе у меня покажет 373,2С я обязательно воспользуюсь твоей формулой, чтобы вычислить давление в кубе.
 С точностью до тысячной процента, это для меня будет очень важно!

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

Я к чему.
И калькулятор руди, и твоя формула страшно далеки от реальных нужд бытовых винокуров.
Но калькулятор работает, потому что в нем три переменных.

Хотя твоя формула небесполезна, на самом деле.
 Особенно если в ней оставить одну десятую после запятой — тогда даже на практике можно было бы ее в скетч вставить)))

Добавлено через 4мин.:

Особенно удобно пользоваться формулой потому, что в ней 1,0Бар у тебя равен 100,0кПа
Переводить, при необходимости, очень удобно в уме...
Kotische Академик Саратов 7104 2106
Отв.198  08 Июня 19, 01:09
Формула для воды.
Диапазон температур -10°С ... +374°С
Давление в бар, 1бар=100кПа
Очередное уточнение, чтоб не потерялось.
Ничем не лучше других, но записана немного по другому.

Сама формула очень простая:
P = Exp( 11.865588387 - 3943,639903203 / (T + 232.525533603) )
Но в таком виде точность получается не очень высока.

Полином шестой степени разбитый на 5 поддиапазонов дает поправки к основной формуле
обеспечивая в результате точность превосходящую шум исходных данных.

Скрытый текст
Function PT(T As Double) As Double

    Dim A6 As Double: A6 = 0
    Dim A5 As Double: A5 = 0
    Dim A4 As Double: A4 = 0
    Dim A3 As Double: A3 = 0
    Dim A2 As Double: A2 = 0
    Dim A1 As Double: A1 = 0
    Dim A0 As Double: A0 = 0.0027

If T > 312 Then
    A6 = -2756018.14306641
    A5 = 7930387.40726493
    A4 = -9507901.0540747
    A3 = 6079529.55482278
    A2 = -2186669.29596193
    A1 = 419480.276731174
    A0 = -33532.011335622
    GoTo lExit
End If

If T > 173 Then
    A6 = -620.430668398737
    A5 = 2322.05929111314
    A4 = -3632.76524966061
    A3 = 3044.51872007541
    A2 = -1443.3557816625
    A1 = 367.335226327043
    A0 = -39.2112927854782
    GoTo lExit
End If


If T > 55 Then
    A6 = 7.86542821675539
    A5 = -33.4143113679987
    A4 = 55.7009622186928
    A3 = -45.3833779620563
    A2 = 18.1722685936802
    A1 = -3.05413945092859
    A0 = 0.114346323162502
    GoTo lExit
End If

If T > 0 Then
    A6 = 6.82475701719522
    A5 = -41.0849139790453
    A4 = 102.945694607551
    A3 = -138.294823551731
    A2 = 105.581498616194
    A1 = -43.5298080667574
    A0 = 7.55858000771691
    GoTo lExit
End If


lExit:
    Dim x As Double: x = 273 / (T + 232.525533603)
    Dim d As Double: d = A6 * x ^ 6 + A5 * x ^ 5 + A4 * x ^ 4 + A3 * x ^ 3 + A2 * x ^ 2 + A1 * x + A0
    PT = 11.865588387 - 14.445567411 * x - d
 
End Function

Добавлено через 3дн. 22ч. 59мин.:

Итак, докладываю состоянии дел на ниве поиска "абсолютно точной формулы"...
Надыбал данные для давления пара над поверхностью переохлажденной воды,
аж до -85°С и формулу имени немецких физиков моделирующую испарение жидкой и твердой воды до -100°С.
http://cires1.colorado.edu/~voemel/vp.html

Так же надыбал матерую буржуйскую статью про свойства воды: IAPWS_1995.pdf

Поизучав разные статьи пришел к выводу что очень сильно точно формулы в природе не существует,
есть алгоритм написанный на Fortran77 который моделируя термодинамические уравнения может получать нужные точки с довольно высокой точностью.
Есть несколько формул позволяющие в разных диапазонах получать точность апроксимации до 0.01%.

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

Для отрицательных температур данных мало, по этому было достаточно ограничится полиномом третьей степени.

Скрытый текст
' Tk - температура в °К
' P - давление а Bar (1bar=100kPa)
Function P0(Tk As Double) As Double

    ' Перводим °К в °С
    t = Tk - 273.15

    ' Первое привлижение
    E0 = 0.0061121
    A = 17.098428005
    B = 4044.885681855
    C = -36.25414429
    Y = E0 * Exp(A - B / (C + Tk))

    If t > 0 Then
        ' Уточнение для 0°C < T
        A0 = -0.02357643
        A1 = 0.0006044520316
        A2 = 0.000002658008544
        A3 = -7.713038132E-08
        A4 = 4.117188134E-10
        A5 = -9.237402453E-13
        A6 = 7.972080679E-16
    Else
        ' Уточнение для T < 0°C
        A0 = -0.028251223
        A1 = -0.00002687958817
        A2 = -0.00002541191143
        A3 = -6.171027571E-07
        A4 = 0
        A5 = 0
        A6 = 0
    End If
    dY1 = A0 + A1 * t + A2 * t ^ 2 + A3 * t ^ 3 + A4 * t ^ 4 + A5 * t ^ 5 + A6 * t ^ 6
    
    P0 = Y + dY1 * Y
End Function
BezKorrekcii.png
1024x689 48Кб
Error1.png
1024x690 49Кб
Function1.png
719x557 26Кб
Rashijdenie1.png
1099x798 46Кб
Rashijdenie2.png
1074x921 67Кб
Rashijdenie3.png
1073x918 52Кб
Rashijdenie4.png
1074x917 53Кб
Water2.png
1024x908 41Кб
IAPWS_1995.pdf (1.6Мб - загружено 1 раз)
WaterGraf1.xls (197Кб - загружено 1 раз)
Kotische Академик Саратов 7104 2106
Отв.199  12 Июня 19, 02:06
Аналогичные манипуляции проделал над данными по спирту.
Таблица с исходными значениями давлений насыщенных паров взята из Стабникова

Скрытый текст
' t - Температура °С
' P - давление а Bar (1bar=100kPa)
Function P00(t As Double) As Double

    ' Первое приближение
    A = 11.783131771
    B = 3559.413361371
    C = 223.96701108
    Y = Exp(A - B / (t + C))
    
    ' Уточнение
    A0 = -0.039459652
    A1 = 0.0004241361721
    A2 = 3.770521489E-07
    A3 = 3.896502924E-08
    A4 = 7.40028511E-11
    A5 = -6.478741574E-12
    A6 = 2.623470004E-14
    A7 = 8.003394648E-17
    A8 = -6.295206869E-19
    A9 = 9.578709646E-22
    
    dY = A0 + A1 * t + A2 * t ^ 2 + A3 * t ^ 3 + A4 * t ^ 4 + A5 * t ^ 5 + A6 * t ^ 6 + A7 * t ^ 7 + A8 * t ^ 8 + A9 * t ^ 9
    
    P00 = Y + dY * Y
End Function
RashijdenieSpirt.png
733x491 33Кб