Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2017, 15:52   #1
diehard71
Новичок
Джуниор
 
Регистрация: 27.10.2017
Сообщений: 1
По умолчанию Расчёт плотности нефтепродуктов по ГОСТ Р 50.2.076-2010

Здравствуйте,

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

Итак, есть стандарт. В нём приведены чёткие уравнения и алгоритмы расчёта плотности нефтепродуктов, в зависимости от температуры/давления. Вот примерная схема расчётов: КАРТИНКА 1
С этим вроде как всё ясно и понятно. Изначальная задача: вывести р15 из замеров топлива, находящегося в произвольном состоянии. На основании вышепривёдённых данных, родился следующий текст в VBA:
Код:
Function P_to_15(dens, temp, Optional p)
k0 = 613.9723
k1 = 0
k2 = 0
If IsMissing(p) = True Then
    p = 0
End If
 
old_dens = 0
new_dens = dens
 
Do Until Abs(new_dens - old_dens) = 0
    b15 = ((k0 + k1 * new_dens) / new_dens ^ 2) + k2
    Yt = 10 ^ -3 * Exp(-1.6208 + 0.00021592 * temp + ((0.87096 * 10 ^ 6) / new_dens ^ 2) + ((4.2092 * temp * 10 ^ 3) / new_dens ^ 2))
    old_dens = new_dens
    new_dens = (dens * Exp(-b15 * (temp - 15) * (1 + 0.8 * b15 * (temp - 15)))) / (1 - Yt * p)
Loop
P_to_15 = Application.Round(new_dens, 2)
End Function
И вроде бы всё хорошо. Но, не всё хорошо. Считает не правильно. В том же стандарте приводится пример для расчёта. Следуя которому - мною написанное даёт иные результаты. Вот пример: КАРТИНКА 2

Грубо говоря, при пересчёте из более высокой температуры в более низкую - плотность должна возрастать (что, как минимум, логично), а она - уменьшается. Другими словами: если при температуре +27, плотность солярки 840, то при +15 она должна быть +845, а не - 835.

Если взять конкретный пример: при t=27,3 плотность = 836,15
в результате первого приближения, при приведении к t=15 - формула должна выдать - 843,62, а она выдаёт - 827.31.... в чём собственно и состоит затык...

Прицепил файлик, в котором играюсь. Буду крайне признателен, если ткнёте носом в ошибку!
Вложения
Тип файла: zip p15-test v2.zip (21.2 Кб, 8 просмотров)

Последний раз редактировалось diehard71; 29.10.2017 в 15:59.
diehard71 вне форума Ответить с цитированием
Старый 29.10.2017, 19:21   #2
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Кросс:
http://www.excel-vba.ru/forum/index.php?topic=5355.0
http://forum.msexcel.ru/index.php/topic,11785.0.html
http://www.planetaexcel.ru/forum/ind...nefteproduktov
http://www.excelworld.ru/forum/10-35879-1#235589
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С#, расчет плотности вероятности функции Krasi Общие вопросы .NET 3 29.01.2016 18:09
ГОСТ 34.10 prod Фриланс 8 16.01.2015 15:27
Word 2010 и ГОСТ (к вопросу о букве Ё и иже с ней) 0tshelnik Microsoft Office Word 1 25.06.2012 22:19
На воду опущен шар радиуса r, изготовленный из вещества плотности r Verushka Помощь студентам 2 20.04.2012 01:45
ГОСТ kiberbog Помощь студентам 0 22.03.2010 20:08