Обсуждаются вопросы технического дайвинга, многосмесевых и декомпрессионных погружений, погружений в надголовные среды, использование ребризеров, вопросы безопасности и любые другие технически сложные вопросы.
Модераторы: трофи, Максим Васильев, KWAK, DukeSS
-
Листригон
- Активный участник
- Сообщения: 1002
- Зарегистрирован: 31-08-2005 19:18
- Откуда: Moscow
#541
Сообщение
Добавлено: 25-10-2005 13:06 Заголовок сообщения:
Ну так получилось-то то же самое! Число в скобках не изменилось ("1" переставили), а Tht*log по основанию 2 = log по основанию корень степени Tht из 2 ( log по основанию корень степени Tht из 2 = log по основанию 2 в степени 1/tht = tht * log по осн.2). Запись упростилась, только и всего
Можно, конечно, прогу переписать и упростить, но результат, по-моему, не поменяется.
Видимо так и есть, я честно говоря не силен в математических преобразованиях-давно это было. Просто моя запись мне показалась понятней и проще- во всяком случае для меня.
Кстати, вопрос о том, какой НДЛ брать остается открытым
Минимальный в каждом цикле расчета, причем часть тканей при подъеме
может выбывать из расчета, по отрицательному условию
-
Листригон
- Активный участник
- Сообщения: 1002
- Зарегистрирован: 31-08-2005 19:18
- Откуда: Moscow
#542
Сообщение
Добавлено: 25-10-2005 13:10 Заголовок сообщения:
То есть все заработало?
Нужно еще время в 0 ставить, чтобы минусов не было.
-
Листригон
- Активный участник
- Сообщения: 1002
- Зарегистрирован: 31-08-2005 19:18
- Откуда: Moscow
#543
Сообщение
Добавлено: 25-10-2005 13:29 Заголовок сообщения:
Что бы уж убедится в правильности, хорошо бы это вставить в прогу для воздушных смесей и сравнить с таблицами. В этом варианте поставил уставку 0,8 и глубину 30 метров, как бы симитировал воздух, вроде похоже с таблицей (немного отличается, но это видимо из-за того что, рО2 не 0,84, а 0,8 ).
Последний раз редактировалось
Листригон 25-10-2005 13:35, всего редактировалось 1 раз.
-
Lt_Flash
- Активный участник
- Сообщения: 1516
- Зарегистрирован: 14-02-2005 13:24
-
Контактная информация:
#544
Сообщение
Добавлено: 25-10-2005 13:29 Заголовок сообщения:
Да вроде заработало, только не пойму, который НДЛ брать? А так получается например для 5й ткани 14.3 на 30 метрах (поставь воздух и сразу паузу, а потом уже глубину двигай), действительно, можно 14.3 отсидеть и для этой ткани безопасная глубина станет равна нулю. А если по 9й или 10й брать - то еще сидеть хз сколько...У меня там справа сверху две цифры - это среднее по НДЛ и общая сумма...Но по ним тоже не возьмешь - очень отличаются...
PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
-
Lt_Flash
- Активный участник
- Сообщения: 1516
- Зарегистрирован: 14-02-2005 13:24
-
Контактная информация:
#545
Сообщение
Добавлено: 25-10-2005 13:30 Заголовок сообщения:
Листригон писал(а):Что бы уж убедится в правильности, хорошо бы это вставить в прогу для воздушных смесей и сравнить с таблицами. В этом варианте поставил уставку 0,8 и глубину 30 метров, как бы симитировал воздух, вроде похоже с таблицей (немного отличается, но это видимо из-за того что, рО2 не 0,84, а 0,8).
Тут вообще-то воздух 0.21 О2...Для него я и тестирую. У меня таблицы под рукой нету - сколько для 30 метрах на воздухе НДЛ?
PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
-
Листригон
- Активный участник
- Сообщения: 1002
- Зарегистрирован: 31-08-2005 19:18
- Откуда: Moscow
#546
Сообщение
Добавлено: 25-10-2005 13:40 Заголовок сообщения:
Брать однозначно минимальный NDL.
В этом варианте проги нам нельзя брать 0,21 и считать это за воздух, потому что в ребризере это 0,21 и на 30-ке будет 0,21. Я брал уставку 0,8 , это будет приблизительно соответствовать воздуху (0,84) на 30 и я проверил по таблице похоже (20 минут)
-
Lt_Flash
- Активный участник
- Сообщения: 1516
- Зарегистрирован: 14-02-2005 13:24
-
Контактная информация:
#547
Сообщение
Добавлено: 25-10-2005 13:42 Заголовок сообщения:
Листригон писал(а):Минимальный в каждом цикле расчета, причем часть тканей при подъеме может выбывать из расчета, по отрицательному условию
Неверно, на 30 метрах минимальный для 1й ткани, а у нас должно быть порядка 18-22 минуты согласно таблицам и компам. Так, я уехал, буду вечером или завтра уже...
PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
-
Lt_Flash
- Активный участник
- Сообщения: 1516
- Зарегистрирован: 14-02-2005 13:24
-
Контактная информация:
#548
Сообщение
Добавлено: 25-10-2005 13:43 Заголовок сообщения:
Листригон писал(а):Брать однозначно минимальный NDL.
В этом варианте проги нам нельзя брать 0,21 и считать это за воздух, потому что в ребризере это 0,21 и на 30-ке будет 0,21. Я брал уставку 0,8 , это будет приблизительно соответствовать воздуху (0,84) на 30 и я проверил по таблице похоже (20 минут)
Это понял, сделаю вечером в версии для воздуха.
ЗЫ. Что-то мне кажется, что они 5ю ткань просто берут и показывают...Очень на это похоже. Плюс в примерах тоже 5ю ткань приводили - а это неспроста!
PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
-
Листригон
- Активный участник
- Сообщения: 1002
- Зарегистрирован: 31-08-2005 19:18
- Откуда: Moscow
#549
Сообщение
Добавлено: 25-10-2005 14:16 Заголовок сообщения:
ЗЫ. Что-то мне кажется, что они 5ю ткань просто берут и показывают...Очень на это похоже. Плюс в примерах тоже 5ю ткань приводили - а это неспроста!
Сейчас мы используем алгоритм версии С, отличие от А наличие доп. ткани (она у нас теперь N4), вот она нам и уменьшает время по отношению к таблицам, если бы ее не было (версия А), ограничивала бы время ткань N5. Так что очень все похоже получается.
зы: Обнаружил косяки в проге, разбираться или вечером или завтра будем.
-
Lt_Flash
- Активный участник
- Сообщения: 1516
- Зарегистрирован: 14-02-2005 13:24
-
Контактная информация:
#550
Сообщение
Добавлено: 25-10-2005 17:57 Заголовок сообщения:
Так, выложил Bullmann_Air.exe - включил туда НДЛ. ОТЛИЧНО работает, ВЕРНО считает и нету никакого геморроя! Надо было сразу на нем делать! Потому что в ребризерном с этими сетпоинтами мы че-то ТАК НАМУДРИЛИ, что у нас по всплытии пропадал НДЛ нахрен! А тут - все четко вроде, начинает пропадать там где надо...Смотри в общем, я готов сегодня поработать чуток, пиво закуплено

Единственно, щас сравнил со своей Суунтой - она на 30 метрах дала 17-18 минут, может стоит по 4й ткани брать - будет более консервативно, но безопасней? По 4й - 20.26 минут, по 3й - 17.19, даже по 3й может?
Да, по 3й ткани очень даже хорошо получается - и глубины и НДЛ и безопасная глубина...Лучше наверное по ней. Но учти - это вариант А Бульмана, С пока тут не делал.
Интересно что в ребризерном варианте 3я ткань воздушного примерно соответствует 6й ребризерного.
PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
-
Листригон
- Активный участник
- Сообщения: 1002
- Зарегистрирован: 31-08-2005 19:18
- Откуда: Moscow
#551
Сообщение
Добавлено: 25-10-2005 19:12 Заголовок сообщения:
Сейчас скачаю, буду смотреть.
Вроде как все считает, правда от падишной таблицы отличается, причем на меньших глубинах дает больше времени, а на больших меньше. И еще когда через 0 переваливает дает минусы, пока не понял почему буду разбираться.
Так понял - выражение в логарифме становится меньше 1, т.е Pcompsafe< Pcomp(i) . Но при подъеме должно опять уходить к 0 (отрицательное значение времени), т.к начинается рассыщение, но тут начинает путаться член с Pgas-Pcomp(i), который тоже начинает давать (-), т.к Pgas становиться < Pcomp(i), полная чехарда, как обойти это надо подумать.
-
Lt_Flash
- Активный участник
- Сообщения: 1516
- Зарегистрирован: 14-02-2005 13:24
-
Контактная информация:
#552
Сообщение
Добавлено: 25-10-2005 20:27 Заголовок сообщения:
Залил версию на ZHL-16C - проверяй...Завтра продолжим.
PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
-
Листригон
- Активный участник
- Сообщения: 1002
- Зарегистрирован: 31-08-2005 19:18
- Откуда: Moscow
#553
Сообщение
Добавлено: 25-10-2005 20:55 Заголовок сообщения:
Сейчас проверю. И до завтра, что-то сегодня ничего в голову не идет, кроме как прекратить счет по достижению 0 NDL по любому из компонетов при насыщении ( а иначе легко можно получить деление на 0 при всплытии), а далее показывать только безопасную глубину .
-
Lt_Flash
- Активный участник
- Сообщения: 1516
- Зарегистрирован: 14-02-2005 13:24
-
Контактная информация:
#554
Сообщение
Добавлено: 25-10-2005 20:59 Заголовок сообщения:
Листригон писал(а):Сейчас проверю. И до завтра, что-то сегодня ничего в голову не идет, кроме как прекратить счет по достижению 0 NDL по любому из компонетов при насыщении ( а иначе легко можно получить деление на 0 при всплытии), а далее показывать только безопасную глубину .
Деление на 0 я уже давно убрал, у меня если у меня B меньше 0, то весь НДЛ = 0, вроде бы, сейчас не помню конкретно, все на работе...Но значения появляются только когда нормально считается LogN(2,ThT*B)...
PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
-
Листригон
- Активный участник
- Сообщения: 1002
- Зарегистрирован: 31-08-2005 19:18
- Откуда: Moscow
#555
Сообщение
Добавлено: 25-10-2005 21:11 Заголовок сообщения:
Там другая тайная засада есть, вот формула:
B:=1/(1-(Pcmpsafe-Compartment)/(Pgas-Compartment));
Теперь обрати внимание на член (Pgas-Compartment), и представим что на 40 метрах на допустим 1 компоненте насытились до 3,24, получили 0 по NDL, начинаем всплывать не очень медленно и примерно на 30 метрах получаем 0 разницу - все деление на 0, B посчитать вообще нельзя и кажется я этого добился, прога ошибку выкинула.
зы: пытаюсь повторить - не получается, может глюк был.
-
Листригон
- Активный участник
- Сообщения: 1002
- Зарегистрирован: 31-08-2005 19:18
- Откуда: Moscow
#556
Сообщение
Добавлено: 26-10-2005 09:56 Заголовок сообщения:
Думаю делать надо так , и попробую объяснить - алгоритм не очень простой получается:
1. здесь
Код:
B:=1/(1-(Pcmpsafe-Compartment)/(Pgas-Compartment));
if B>0 then C:=ThtA*LogN(2,(B)) else C:=0;
надо после else С присвоить не 0, а какое-нибудь большое значение, типа 100000 ( а на вывод отправить что-то вроде "undefined"), что бы не мешалось потом при оценке общего NDL;
2. Просто оценивать В на положительность нельзя, поскольку при насыщении выше Pcmpsafe и при всплытии член (Pgas-Compartment) то же может стать отрицательным ( а то и 0 дать), что в итоге даст +, и посчитает полную ерунду.
Поэтому придется оценивать каждый член отдельно:
1 условие: Pcmpsafe<=Compartment С=0 в противном проверяем условие 2;
2 условие : Pgas<Compartment то модифицируем формулу
Bm:=1/(1-(Pcmpsafe-Compartment[i])/(Compartment[i]-Pgas)); ( почему попытаюсь объяснить ниже.) в противном случае прежнее выражение:
B:=1/(1-(Pcmpsafe[i]-Compartment[i])/(Pgas-Compartment[i]));
Т.е в моем видении код должен выглядеть так:
if Pgas<Pcmpsafe[i] С:=100000 else goto 0 ; // undefine
return ;
0: if Pcmpsafe[i]<=Compartment[i] С:=0 else goto 1;
return;
1: if Pgas=Compartment[i] С:=0 else goto 2;
return;
2: Bm:=1/(1-(Pcmpsafe[i]-Compartment[i])/(Compartment[i]-Pgas));
B:=1/(1-(Pcmpsafe[i]-Compartment[i])/(Pgas-Compartment[i])) ;
if Pgas<Compartment[i] C:=ThtA[i]*LogN(2,(Bm)) else C:=ThtA[i]*LogN(2,(B));
return;
Синтаксис понятно приблизительный
Теперь почему надо модифицировать формулу:
начальная - Рcmpsafe=Pcomp(i)+(Pgas-Pcomp(i))(1-2^-te/Tht);
из нее понятно, что при Рcmpsafe>Pcomp(i), и при Pgas<Pcomp(i)- множитель (1-2^-te/Tht) должен быть отрицательным, т.е teпойдет с минусом, что бы этого не было, нужно поменять Pgas и (Compartment[i]) местами, что по моему физике процесса не противоречит, т.е мы разность концентрационных потенциалов делаем положительной.
Вот так думаю надо. Что скажешь?
-
Lt_Flash
- Активный участник
- Сообщения: 1516
- Зарегистрирован: 14-02-2005 13:24
-
Контактная информация:
#557
Сообщение
Добавлено: 26-10-2005 10:58 Заголовок сообщения:
А не проще взять внутри скобок модуль? Тогда не надо менять местами компоненты...
PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
-
Листригон
- Активный участник
- Сообщения: 1002
- Зарегистрирован: 31-08-2005 19:18
- Откуда: Moscow
#558
Сообщение
Добавлено: 26-10-2005 11:07 Заголовок сообщения:
При расчете С (NDL), думаю можно.
-
Lt_Flash
- Активный участник
- Сообщения: 1516
- Зарегистрирован: 14-02-2005 13:24
-
Контактная информация:
#559
Сообщение
Добавлено: 26-10-2005 11:26 Заголовок сообщения:
Листригон писал(а):При расчете С (NDL), думаю можно.
Да нет, при расчете Б взять прям модуль - внутри скобок. Смотри |Compartment
-Pgas| ведь у нас и будет тогда положительным и не надо будет городить все эти хитрые вычисления.
PADI Advanced Open Water Diver
IANTD EANx Nitrox Diver
-
Листригон
- Активный участник
- Сообщения: 1002
- Зарегистрирован: 31-08-2005 19:18
- Откуда: Moscow
#560
Сообщение
Добавлено: 26-10-2005 11:41 Заголовок сообщения:
Да здесь так, а при расчете Compartment этого делать не стоит.