Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ошибка при итерационных вычислениях в Excel
Диалог специалистов АВОК > ФАЙЛОТЕКА СПЕЦИАЛИСТА > Программы, расчеты > Excel for HVAC
shadow
Сделал для себя небольшой теплотехнический расчет футеровки. Хотел чтобы коэффициент теплоотдачи ап (от наружной поверхности к окружающему воздуху) рассчитывался методом итерации. Но при изменении материала слоя или изменении толщины слоя появляется какая-то ошибка в вычислениях. Ошибка происходит не всегда, могу несколько раз поменять толщины слоев, материалы и всё работает. Можно конечно задавать коэффициент ап вручную и методом подбора за несколько проходов получить результат, но хотелось бы автоматизировать это процесс.
Нажмите для просмотра прикрепленного файла

Самостоятельно не могу разобраться с этим вопросом, не хватает знания Excel.

Нажмите для просмотра прикрепленного файла
borm
У вас там замкнутый круг какой-то?
Ак, Ал, зависят от Тн(G17), а в свою очередь Тн(G17) зависит от R0(С23), в свою очередь R0(С23) зависит от Q22(который должен считаться) но он зависит от Р21, который равен Альфа(С26), которая равна Ак+Ал.
Круг замкнулся.
shadow
Цитата(borm @ 19.4.2016, 13:04) *
У вас там замкнутый круг какой-то?
Ак, Ал, зависят от Тн(G17), а в свою очередь Тн(G17) зависит от R0(С23), в свою очередь R0(С23) зависит от Q22(который должен считаться) но он зависит от Р21, который равен Альфа(С26), которая равна Ак+Ал.
Круг замкнулся.


Да понятно, что замкнутый круг. Если я вручную альфа в ячейке Р21 указываю, то за несколько проходов(подстановок) подбираю его равным альфа в ячейке С26. А если ставлю Р21=С26, то по началу вроде бы всё считается, но в какой-то момент при изменении толщины или материала происходит сбой. По этапам вычислений непонятно, что происходит.
shadow
По какой-то причине в результате итерационных вычислений ячейке Р21 не присваивается конечно значение альфа из ячейки С26
borm
При обновлении получается вот что:
Нажмите для просмотра прикрепленного файла
Composter
а зачем вручную итерировать? я обычно для этого вбиваю число приблизитетльное, потом столбец расчетов , следующий столбец ссылается на предыдущий, копирую второй столбец раз 20 , а конечную цифру уже вставляю расчет для оформления , столбцы для итерации выношу за область печати/скрываю/выношу на другой лист.
tiptop
Цитата(Composter @ 19.4.2016, 14:56) *
я обычно для этого вбиваю число приблизитетльное, потом столбец расчетов , следующий столбец ссылается на предыдущий,


А я чтобы уйти от "ошибки" вставляю что-нибудь подобное:
=ЕСЛИ(D15>1;1;B30)
=ТИП(B30)
v-david
Функцию "подбор параметра" использовал?
shadow
Цитата(v-david @ 19.4.2016, 22:01) *
Функцию "подбор параметра" использовал?


Если вопрос ко мне, то нет. Я вообще профан :-)
v-david
итерации реализованы в эксель вот здесь
tiptop
Цитата(v-david @ 20.4.2016, 1:25) *
итерации реализованы в эксель вот здесь

Кажется, это называется "подбор". smile.gif
tiptop
(полуручная операция)
shadow
Цитата(v-david @ 20.4.2016, 4:25) *
итерации реализованы в эксель вот здесь


Понятно, но не то что я хочу добиться
shadow
Цитата(tiptop @ 19.4.2016, 18:41) *
А я чтобы уйти от "ошибки" вставляю что-нибудь подобное:
=ЕСЛИ(D15>1;1;B30)
=ТИП(B30)


Экхе... не понял.
Valiko
в 2003 экселе в меню сервис-параметры -вычисления можно установить (изменить) число иттераций и погрешность.
Я уже выкладывал маленький макрос с использованием функции "Подбор параметра"
shadow
Цитата(Valiko @ 20.4.2016, 15:01) *
в 2003 экселе в меню сервис-параметры -вычисления можно установить (изменить) число иттераций и погрешность.
Я уже выкладывал маленький макрос с использованием функции "Подбор параметра"


Я пробовал менять и количество итераций и точность
Ernestas
Вроде все работает smile.gif


shadow
Цитата(Ernestas @ 20.4.2016, 18:06) *
Вроде все работает smile.gif


Что это?
Нажмите для просмотра прикрепленного файла
Ernestas
Цитата(shadow @ 20.4.2016, 20:58) *

Сумневаетесь?

Файлик то ваш. Я с ним ничего не делал, почти. )
Насколько я понял, экселька во время итераций пробует подставить ноль в знаменатель. После этого выдает на горА ошибку.
Лечил так: стер "закольцовку", написал в ячейку(P21) значение больше нуля (0,5), экселька всё посчитала, потом в эту же ячейку вбиваем формулу (=C26) и все работает.
shadow
Цитата(Ernestas @ 21.4.2016, 0:38) *
Сумневаетесь?

Файлик то ваш. Я с ним ничего не делал, почти. )
Насколько я понял, экселька во время итераций пробует подставить ноль в знаменатель. После этого выдает на горА ошибку.
Лечил так: стер "закольцовку", написал в ячейку(P21) значение больше нуля (0,5), экселька всё посчитала, потом в эту же ячейку вбиваем формулу (=C26) и все работает.



Ну я в принципе так и делал
Ernestas
Цитата(shadow @ 21.4.2016, 6:29) *
Ну я в принципе так и делал

Проблемка.
Тогда предлагаю так

А макрос напишите сами. Ибо не даёт загрузить на форум такие файлы. )

Sub Restartik()
'
' Restartik Макрос
'
' Сочетание клавиш: Ctrl+r
'
Range("P21").Select
ActiveCell.FormulaR1C1 = "1"
Range("P21").Select
ActiveCell.FormulaR1C1 = "=R[5]C[-13]"
Range("P22").Select
End Sub


shadow
Цитата(Ernestas @ 21.4.2016, 9:39) *
Проблемка.
Тогда предлагаю так

А макрос напишите сами. Ибо не даёт загрузить на форум такие файлы. )

Sub Restartik()
'
' Restartik Макрос
'
' Сочетание клавиш: Ctrl+r
'
Range("P21").Select
ActiveCell.FormulaR1C1 = "1"
Range("P21").Select
ActiveCell.FormulaR1C1 = "=R[5]C[-13]"
Range("P22").Select
End Sub


Спасибо. С этим всё получилось.
shadow
Если меняю значение температуры в печи на к конкретном листе расчета для цил. обечайки, свода, и т.д., то всё работает нормально, но если пытаюсь задать эту же температуру на листе "Данные" (ячйка связана с каждым листом) происходит сбой.
v-david
старт лучше сделать не по Ctrl+r, а по событию изменения содержимого ячейки...Почитайте, например здесь
shadow
Цитата(v-david @ 5.5.2016, 15:38) *
старт лучше сделать не по Ctrl+r, а по событию изменения содержимого ячейки...Почитайте, например здесь


Круто! Спасибо, не придется тыкать кнопки :-)!

Дело в том, что макрос не помогает, но мне вроде удалось победить это проблему
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.