Что это было?--
Сборка и испытания IDA-71S1 (этап 1). Проектирование этапа 2
Модераторы: трофи, Максим Васильев, KWAK, DukeSS
Так...Что-то я не то делаю или не понимаю...
Смотри, вот у нас кусок
Отсюда приравниваем глубину к нулю, а Pamb к 1, получается что Pcmp:=(1/ValB)+ValA; Далее, берем форумулу Ежика и туда подставляем...Я взял 0.60 потому что считал ради теста для 0.40 кислорода, 0.60 азота...Разложил на коэффициенты А, Б и С (где С уже конкретно НДЛ) и получил...полную фигню
Где я что делаю неверно?
Pcmp у меня - это максимальное Pcomp для Pamb = 1;
Смотри, вот у нас кусок
Код: Выделить всё
Compartment[i]:=PbeginA[i]+(Pgas-PbeginA[i])*(1-Power(2,(-(Temin/ThtA[i]))));
PambA[i]:=(Compartment[i]-ValA[i])*ValB[i];
SDepth[i]:=(10*PambA[i])-10;

Pcmp у меня - это максимальное Pcomp для Pamb = 1;
Код: Выделить всё
Pcmp:=(1/ValB[i])+ValA[i];
A:=Power(2,1/ThtA[i]);
B:=1/-((Pcmp-0.60)/(Pgas-0.60))+1;
C:=LogN(A,B);
PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
IANTD EANx Nitrox Diver
Разбираюсь
Ошибка по моему в том, что вычитать надо текущее значение Pcomp(накопленное на данный момент)
Куда вычитать и откуда???Листригон писал(а):Ошибка по моему в том, что вычитать надо текущее значение Pcomp(накопленное на данный момент)
У меня вообще вот такое получилось:
Код: Выделить всё
// PambA = 1 => 1 = (Compartment[i]-ValA[i])*ValB[i];
// => 1/ValB[i] = Compartment[i]-ValA[i];
// => (1/ValB[i])+ValA[i] = Compartment[i];
// Pcomp.max[i]=(1/ValB[i])+ValA[i];
PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
IANTD EANx Nitrox Diver
Кажется опять придеться лезть к М числам.
Зачем к ним лезть? Где изъяны в моей логике, явно же где-то я накосячил! Что-то не туда выразил или еще как-то...Листригон писал(а):Кажется опять придеться лезть к М числам.
PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
IANTD EANx Nitrox Diver
У нас какая-то принципиальная ошибка. Обрати внимание на то ,что в
Мы получим для одно и то же значение, вне зависимости от глубины, а это не верно - а М числа показывают, что зависит (там более понятно), я кажется понял что надо делать, но более стройно попробую объяснить позже-надо самому яснее осознать.
PambA = 1 => 1 = (Compartment-ValA)*ValB;
Мы получим для одно и то же значение, вне зависимости от глубины, а это не верно - а М числа показывают, что зависит (там более понятно), я кажется понял что надо делать, но более стройно попробую объяснить позже-надо самому яснее осознать.
Листригон писал(а):У нас какая-то принципиальная ошибка. Обрати внимание на то ,что вPambA = 1 => 1 = (Compartment-ValA)*ValB;
Мы получим для одно и то же значение, вне зависимости от глубины, а это не верно - а М числа показывают, что зависит (там более понятно), я кажется понял что надо делать, но более стройно попробую объяснить позже-надо самому яснее осознать.
Видимо дело в том, что в Compartment у нас ТЕКУЩЕЕ насыщение тканей...Только тогда как нам все это приравнять к нужной нам единице, которая соответствует глубине в 0 метров?
Думаю, может вместо Compartment надо подставить пересчитанное Pcomp для данной ткани для текущей глубины? Или как?
PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
IANTD EANx Nitrox Diver
Все понял.
Опять М числа помогли- формулу Рamb=(Pcomp-a)*b, можно переписать ввиде Рcomp=Pamb/b +a , где Pcomp максимальное давление в ткани при внешнем давлении Pamb, позволяющее подняться до поверхости без декомпрессии. Таким образом нам надо приравнивать не к 1 , а к текущему внешнему давлению, чтобы вычислить это максимальное значение. Далее подставляем в формулу Ежика вместо Рcomp, а в качестве Pbegin текущее значение Рсомр.
Вроде так.
Опять М числа помогли- формулу Рamb=(Pcomp-a)*b, можно переписать ввиде Рcomp=Pamb/b +a , где Pcomp максимальное давление в ткани при внешнем давлении Pamb, позволяющее подняться до поверхости без декомпрессии. Таким образом нам надо приравнивать не к 1 , а к текущему внешнему давлению, чтобы вычислить это максимальное значение. Далее подставляем в формулу Ежика вместо Рcomp, а в качестве Pbegin текущее значение Рсомр.
Вроде так.
Щас попробуем...Листригон писал(а):Все понял.
Опять М числа помогли- формулу Рamb=(Pcomp-a)*b, можно переписать ввиде Рcomp=Pamb/b +a , где Pcomp максимальное давление в ткани при внешнем давлении Pamb, позволяющее подняться до поверхости без декомпрессии. Таким образом нам надо приравнивать не к 1 , а к текущему внешнему давлению, чтобы вычислить это максимальное значение. Далее подставляем в формулу Ежика вместо Рcomp, а в качестве Pbegin текущее значение Рсомр.
Вроде так.
Че-то все равно не то...Можешь прямо здесь поправить, что я делаю не так?
Код: Выделить всё
Pcmp:=(((1+(StrToInt(DepthL.Text)*0.1)))/ValB[i])+ValA[i];
A:=Power(2,1/ThtA[i]);
B:=1/-((Pcmp-Compartment[i])/(Pgas-Compartment[i]))+1;
C:=LogN(A,B);
Получается такая задача...
У нас есть Pcomp, в котором есть Te - которое является временем нахождения на данной глубине. Далее, у нас есть Pamb - которое показывает давление, до которого мы можем всплыть без появления пузырей (грубо говоря). Из всего этого нам надо выразить Te причем такое, при котором Pamb = 1. Вот тут я и запутался


PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
IANTD EANx Nitrox Diver
Так и я на этом же попался.
В коде вроде не вижу ошибки пока.
А что при вычислениях получается?
В коде вроде не вижу ошибки пока.
А что при вычислениях получается?
Ну смотри на фтп bullmann.exe... Четвертая колонка - НДЛ который получился, пятая - это я просто проверял как он берет корень степени tht из 2х...Листригон писал(а):Так и на этом же попался.
В коде вроде не вижу ошибки пока.
А что при вычислениях получается.
PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
IANTD EANx Nitrox Diver
Очень интересно, все минусом .
Угу...Мне тоже интересно.Да даже если минус отбросить - тут прямая последовательность - от 1й до 16й ткани все больше и больше НДЛ. Короче, где-то что-то не так мы считаем. У Ежика вроде верная формула, подставляю тоже верно...Листригон писал(а):Очень интересно, все минусом .
PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
IANTD EANx Nitrox Diver
Попробую вечером поподробнее посмотреть, сейчас убегаю. Код скинь.
И еще, может попробовать всетаки подбором P comp для данной глубины известно, текущая тоже (Pbegin) и далее итерациями, скажем через 10 секунд ( 1/6 min) или даже менее точно по 0,5 min?.
И еще, может попробовать всетаки подбором P comp для данной глубины известно, текущая тоже (Pbegin) и далее итерациями, скажем через 10 секунд ( 1/6 min) или даже менее точно по 0,5 min?.
Последний раз редактировалось Листригон 20-10-2005 09:57, всего редактировалось 1 раз.
Думал про НДЛ. Если взять Pcomp макс для данной глубины и вычесть Pcomp текущий, то нихрена хорошего все равно не получается. Это то же самое что взять Te для заданной глубины (которое как бы должно быть НДЛ для нее). А Те у нас нихрена и не получается. Смотри, возьмем Pamb=1, формулу Ежика. Что подставляем в Pbegin? Что в Pgas? Я так думаю сначала надо вывести это самое Те, которое НДЛ для строго фиксированной глубины, иначе нифига не понятно...
PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
IANTD EANx Nitrox Diver
Думаю так надо делать.
Имеем выражение:
Pcomp = Pbegin + [ Pgas - Pbegin ] x [ 1 - 2 -te/tht ], где Pbegin=Pcomp(текущее), Рcomp получаем из выражнения
Pcomp.max=(Pamb(текущее) /b)+a; т.е Рcomp=Pcomp.max,
все члены известны, кроме te, которое в данном случае и есть NDL,
чтобы пока не связываться с формулами, просто подобрать te=NDL итерациями в цикле, допустим через 0,5min.
Имеем выражение:
Pcomp = Pbegin + [ Pgas - Pbegin ] x [ 1 - 2 -te/tht ], где Pbegin=Pcomp(текущее), Рcomp получаем из выражнения
Pcomp.max=(Pamb(текущее) /b)+a; т.е Рcomp=Pcomp.max,
все члены известны, кроме te, которое в данном случае и есть NDL,
чтобы пока не связываться с формулами, просто подобрать te=NDL итерациями в цикле, допустим через 0,5min.
Не понял, как это Pcomp=Pcomp(текущее) и одновременно Pcomp=Pcomp.max???Листригон писал(а):Думаю так надо делать.
Имеем выражение:
Pcomp = Pbegin + [ Pgas - Pbegin ] x [ 1 - 2 -te/tht ], где Pbegin=Pcomp(текущее), Рcomp получаем из выражнения
Pcomp.max=(Pamb(текущее) /b)+a; т.е Рcomp=Pcomp.max,
все члены известны, кроме te, которое в данном случае и есть NDL,
чтобы пока не связываться с формулами, просто подобрать te=NDL итерациями в цикле, допустим через 0,5min.
PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
IANTD EANx Nitrox Diver
Листригон, сегодня только начинаю заниматься НДЛ. Сейчас и приступаю. У тебя никакой новой инфы нету?
PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
IANTD EANx Nitrox Diver