Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос итерационного перебора - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос итерационного перебора (Макросы/Sub)
Макрос итерационного перебора
Dluga Дата: Вторник, 02.06.2015, 15:41 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Добрый день,
прошу вашей помощи в решении проблемы:
Необходимо написать макрос для подбора оптимального значения путем итерационного счисления.
Для примера первые 24 значения сделал итерациями, условное форматирование (столбец Р) определяет завершился ли подбор значения или нет - соответственно зеленый - все хорошо, красный надо продолжать.
Как мне видится - макрос должен работать в столбце "2 итерация" по условию столбца Y.
Вложение больше 100 кБ, выложил в onedrive
Удалено. Нарушение Правил форума


Сообщение отредактировал Pelena - Вторник, 02.06.2015, 22:18
 
Ответить
СообщениеДобрый день,
прошу вашей помощи в решении проблемы:
Необходимо написать макрос для подбора оптимального значения путем итерационного счисления.
Для примера первые 24 значения сделал итерациями, условное форматирование (столбец Р) определяет завершился ли подбор значения или нет - соответственно зеленый - все хорошо, красный надо продолжать.
Как мне видится - макрос должен работать в столбце "2 итерация" по условию столбца Y.
Вложение больше 100 кБ, выложил в onedrive
Удалено. Нарушение Правил форума

Автор - Dluga
Дата добавления - 02.06.2015 в 15:41
Skif-F Дата: Вторник, 02.06.2015, 21:59 | Сообщение № 2
Группа: Проверенные
Ранг: Участник
Сообщений: 73
Репутация: 14 ±
Замечаний: 0% ±

Excel 2007, 2010, 2013, 2016
для подбора оптимального значения

"оптимального значения" чего?

Dluga, Ваше вложение совершенно не нужно. Было бы значительно лучше, если бы Вы дали начальные данные (от которых отталкиваться) и конечную форму (что Вы хотите получить).
На данный момент я понял, что исходные данные - это столбцы A-H, но я не понимаю, чего Вы пытаетесь сделать, в каком виде и куда помещать данные, а также, что является критерием окончания итераций.
 
Ответить
Сообщение
для подбора оптимального значения

"оптимального значения" чего?

Dluga, Ваше вложение совершенно не нужно. Было бы значительно лучше, если бы Вы дали начальные данные (от которых отталкиваться) и конечную форму (что Вы хотите получить).
На данный момент я понял, что исходные данные - это столбцы A-H, но я не понимаю, чего Вы пытаетесь сделать, в каком виде и куда помещать данные, а также, что является критерием окончания итераций.

Автор - Skif-F
Дата добавления - 02.06.2015 в 21:59
Dluga Дата: Среда, 03.06.2015, 08:59 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Начальные данные:
значения в столбцах А-Р. Получается уравнение с двумя неизвестными, которое решаем методом подбора.
Условие: столбец Р "Баланс" должен быть равен столбцу F "Потребление", если значение баланса больше, то необходимо вычитать значение столбца Y "Профицит ВИЭ" и снова вести расчет.
К сообщению приложен файл: _22.05-.xlsx (96.0 Kb)


Сообщение отредактировал Dluga - Среда, 03.06.2015, 09:02
 
Ответить
СообщениеНачальные данные:
значения в столбцах А-Р. Получается уравнение с двумя неизвестными, которое решаем методом подбора.
Условие: столбец Р "Баланс" должен быть равен столбцу F "Потребление", если значение баланса больше, то необходимо вычитать значение столбца Y "Профицит ВИЭ" и снова вести расчет.

Автор - Dluga
Дата добавления - 03.06.2015 в 08:59
Skif-F Дата: Четверг, 04.06.2015, 23:29 | Сообщение № 4
Группа: Проверенные
Ранг: Участник
Сообщений: 73
Репутация: 14 ±
Замечаний: 0% ±

Excel 2007, 2010, 2013, 2016
Dluga, тема энергетики для меня близка и мне интересно помочь, но я себя чувствую глупым, разбираясь в Вашем файле.
И так, несколько уточняющих и наводящих вопросов:
1. исходными данными могут быть только столбцы B:F;
2. столбцы, начиная с G - это уже расчёты, и первая итерация - это уже G:P, а не I:P;
3. может быть в примере некорректные данные, но, как я понимаю, аккумуляторы применяются для сглаживания пиковых нагрузок не более 1 часа (а как правило менее). Тогда, как у Вас, аккумуляторы работают пол-суток, каждый час полностью разряжаясь и заряжаясь, но при этом необходимость заряда никак не отражена в балансе;
4. несоответствие данных: исходные данные представлены в виде мощности, а расчётные - в виде энергии;
5. попробуйте описать с помощью формул и своих слов, что Вы хотите. Например, энергию потребитель получает от X, Y и Z, когда потребление такое-то, то начинает происходить то и то, но поскольку вот это, то происходит следующее. На основании того-то и того-то нам необходимо найти вон то-то, которое достигается тем-то...;
6. полученные в результате расчётов данные необходимо куда-то разместить. Рисовать программно для Вас такие же 24 итерации смысла нет, наверняка Вам нужна какая-то более короткая запись - предложите её.
 
Ответить
СообщениеDluga, тема энергетики для меня близка и мне интересно помочь, но я себя чувствую глупым, разбираясь в Вашем файле.
И так, несколько уточняющих и наводящих вопросов:
1. исходными данными могут быть только столбцы B:F;
2. столбцы, начиная с G - это уже расчёты, и первая итерация - это уже G:P, а не I:P;
3. может быть в примере некорректные данные, но, как я понимаю, аккумуляторы применяются для сглаживания пиковых нагрузок не более 1 часа (а как правило менее). Тогда, как у Вас, аккумуляторы работают пол-суток, каждый час полностью разряжаясь и заряжаясь, но при этом необходимость заряда никак не отражена в балансе;
4. несоответствие данных: исходные данные представлены в виде мощности, а расчётные - в виде энергии;
5. попробуйте описать с помощью формул и своих слов, что Вы хотите. Например, энергию потребитель получает от X, Y и Z, когда потребление такое-то, то начинает происходить то и то, но поскольку вот это, то происходит следующее. На основании того-то и того-то нам необходимо найти вон то-то, которое достигается тем-то...;
6. полученные в результате расчётов данные необходимо куда-то разместить. Рисовать программно для Вас такие же 24 итерации смысла нет, наверняка Вам нужна какая-то более короткая запись - предложите её.

Автор - Skif-F
Дата добавления - 04.06.2015 в 23:29
Dluga Дата: Пятница, 05.06.2015, 10:55 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Ну раз вам интересна тема энергетики - могу поподробнее )

данный пример представляет собой модель часовых балансов использования аккумуляторов.
Условие - АК заряжается только от генерации нетрадиционных источников (столбец E)
Энергия - есть мощность * время, в данном случае МВт*часы, а единица принятого для расчета времени - 1 час (в файле получается годовой баланс из 8760 значений). таким образом, принято допущение соответствия значения энергии - мощности.
Столбцы A-h - это неизменные исходные данные, I-P расчетные исходные данные. В принципе если столбец Y перенести в первую итерацию думаю результат не изменится, в данном примере он нуден был больше для описания/понимания процесса другими людьми.
АК применяется для сглаживания и вытеснения установленной мощности, но проблема в том, что одновременно могут идти два процесса - зарядка и разрядка. Принимается допущение, что в первый момент времени АК заряжен, в связи с чем первый процесс - разрядка. Затем - зарядка. В случае если столбец Y имеет значение больше нуля, надо это значение вычесть из столбца Q (вторая итерация, можно перенести в первую вероятно отдельным столбиком) и провести расчет заново до тех пор, пока Потребление не будет равно Генерации. Условие работы аккумулятора прописано в зависимости от исх. данных в табличке C-G в самом верху. Если Значение Потребления больше заданной в этой таблице - разрядка аккума. Если есть генерация ВИЭ - зарядка аккума до его номинальной емкости. Опасения "ненужного" заряд-разряда АК и его ускоренного износа опускаем ввиду того, что это контролируется доп оборудованием управления АК.

К сожалению, в модели дб показана почасовая запись 8760 значений, в связи с чем я очень надеялся на возможность автоматизации данного процесса :)
Итоговое представление пока не совсем ясно, это может быть или точечный график, или только условие "район сбалансирован: да/нет"
А следующий шаг - графическое построение зависимости числа АК от стоимости, замещаемой мощности и энергии.

Надеюсь на Вашу помощь.


Сообщение отредактировал Dluga - Пятница, 05.06.2015, 11:00
 
Ответить
СообщениеНу раз вам интересна тема энергетики - могу поподробнее )

данный пример представляет собой модель часовых балансов использования аккумуляторов.
Условие - АК заряжается только от генерации нетрадиционных источников (столбец E)
Энергия - есть мощность * время, в данном случае МВт*часы, а единица принятого для расчета времени - 1 час (в файле получается годовой баланс из 8760 значений). таким образом, принято допущение соответствия значения энергии - мощности.
Столбцы A-h - это неизменные исходные данные, I-P расчетные исходные данные. В принципе если столбец Y перенести в первую итерацию думаю результат не изменится, в данном примере он нуден был больше для описания/понимания процесса другими людьми.
АК применяется для сглаживания и вытеснения установленной мощности, но проблема в том, что одновременно могут идти два процесса - зарядка и разрядка. Принимается допущение, что в первый момент времени АК заряжен, в связи с чем первый процесс - разрядка. Затем - зарядка. В случае если столбец Y имеет значение больше нуля, надо это значение вычесть из столбца Q (вторая итерация, можно перенести в первую вероятно отдельным столбиком) и провести расчет заново до тех пор, пока Потребление не будет равно Генерации. Условие работы аккумулятора прописано в зависимости от исх. данных в табличке C-G в самом верху. Если Значение Потребления больше заданной в этой таблице - разрядка аккума. Если есть генерация ВИЭ - зарядка аккума до его номинальной емкости. Опасения "ненужного" заряд-разряда АК и его ускоренного износа опускаем ввиду того, что это контролируется доп оборудованием управления АК.

К сожалению, в модели дб показана почасовая запись 8760 значений, в связи с чем я очень надеялся на возможность автоматизации данного процесса :)
Итоговое представление пока не совсем ясно, это может быть или точечный график, или только условие "район сбалансирован: да/нет"
А следующий шаг - графическое построение зависимости числа АК от стоимости, замещаемой мощности и энергии.

Надеюсь на Вашу помощь.

Автор - Dluga
Дата добавления - 05.06.2015 в 10:55
Skif-F Дата: Пятница, 05.06.2015, 14:05 | Сообщение № 6
Группа: Проверенные
Ранг: Участник
Сообщений: 73
Репутация: 14 ±
Замечаний: 0% ±

Excel 2007, 2010, 2013, 2016
Повторюсь, однако:
для подбора "оптимального значения" чего?

Для "Генерация ГРЭС":
Код
Генерация ГРЭС = Баланс - Сумма НВИЭ + Суммарная емкость - Баланс начала + Разрядка

Вставьте дополнительный столбец перед столбцом Q, внесите в ячейку Q14 формулу
Код
=P14-E14+$F$4-I14+J14

и растяните её на нужный диапазон...


Сообщение отредактировал Skif-F - Пятница, 05.06.2015, 14:05
 
Ответить
СообщениеПовторюсь, однако:
для подбора "оптимального значения" чего?

Для "Генерация ГРЭС":
Код
Генерация ГРЭС = Баланс - Сумма НВИЭ + Суммарная емкость - Баланс начала + Разрядка

Вставьте дополнительный столбец перед столбцом Q, внесите в ячейку Q14 формулу
Код
=P14-E14+$F$4-I14+J14

и растяните её на нужный диапазон...

Автор - Skif-F
Дата добавления - 05.06.2015 в 14:05
Dluga Дата: Пятница, 05.06.2015, 14:29 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Не совсем верно. Например, если привести вашу формулу, то для перового часа значение будет 281 вместо 265.5.
Подбор оптимального значения: значение в столбце Y=0/
Формула представляет собой Баланс= Рпотребления - Ргенерации=0
Потребление=известное значение
Генерация=Генерация ГРЭС+Емкость АК+Генерация ВИЭ. При этом величина емкости АК в каждый момент времени разная.


Сообщение отредактировал Dluga - Пятница, 05.06.2015, 14:32
 
Ответить
СообщениеНе совсем верно. Например, если привести вашу формулу, то для перового часа значение будет 281 вместо 265.5.
Подбор оптимального значения: значение в столбце Y=0/
Формула представляет собой Баланс= Рпотребления - Ргенерации=0
Потребление=известное значение
Генерация=Генерация ГРЭС+Емкость АК+Генерация ВИЭ. При этом величина емкости АК в каждый момент времени разная.

Автор - Dluga
Дата добавления - 05.06.2015 в 14:29
Skif-F Дата: Пятница, 05.06.2015, 14:33 | Сообщение № 8
Группа: Проверенные
Ранг: Участник
Сообщений: 73
Репутация: 14 ±
Замечаний: 0% ±

Excel 2007, 2010, 2013, 2016
Просто надо ввести условие, что если профицит=0, то коррекция Генерации не требуется. Ну, а в остальном правильно?
 
Ответить
СообщениеПросто надо ввести условие, что если профицит=0, то коррекция Генерации не требуется. Ну, а в остальном правильно?

Автор - Skif-F
Дата добавления - 05.06.2015 в 14:33
Dluga Дата: Пятница, 05.06.2015, 14:48 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Просто надо ввести условие, что если профицит=0, то коррекция Генерации не требуется. Ну, а в остальном правильно?

Не совсем осознал... если профицит ноль, то без всяких условий будет вычитаться ноль и ничего не изменится.
И по этой формуле немного тяжеловато оценить смысл:
Генерация ГРЭС = Баланс - Сумма НВИЭ + Суммарная емкость - Баланс начала + Разрядка

Гененарция, как и емкость и сумма нвиэ ипр. должны быть по одну сторону равенства. С другой стороны - Потребление.
 
Ответить
Сообщение
Просто надо ввести условие, что если профицит=0, то коррекция Генерации не требуется. Ну, а в остальном правильно?

Не совсем осознал... если профицит ноль, то без всяких условий будет вычитаться ноль и ничего не изменится.
И по этой формуле немного тяжеловато оценить смысл:
Генерация ГРЭС = Баланс - Сумма НВИЭ + Суммарная емкость - Баланс начала + Разрядка

Гененарция, как и емкость и сумма нвиэ ипр. должны быть по одну сторону равенства. С другой стороны - Потребление.

Автор - Dluga
Дата добавления - 05.06.2015 в 14:48
Dluga Дата: Пятница, 05.06.2015, 14:54 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Попробую еще раз другими словами описать алгоритм:
1. дано: генерация ВИЭ, полностью заряжен АК, величина потребления. В первом приближении Генерация ГРЭС=Потреблению.
2. Надо вытеснить ГРЭС из графика нагрузки, включается АК, он разряжается.
3. Если Генерация ВИЭ больше нуля, то она заряжает АК. Если баланс самого АК на максимуме, то остаток ВИЭ вытесняет ГРЭС.
4. В АК идет два одновременных процесса - зарядка и разрядка, представленные в столбцах I-M.
5. Если мы имеем излишек ВИЭ, он вычитается из генерации ГРЭС путем итераций.
6. Приходим к условию, что Потрбление=сумме ГРЭС+ВИЭ+АК, конец расчета.

Изменяемым параметром является величина генерации ГРЭС, которую мы должны максимально сократить путем использования ВИЭ )


Сообщение отредактировал Dluga - Пятница, 05.06.2015, 14:56
 
Ответить
СообщениеПопробую еще раз другими словами описать алгоритм:
1. дано: генерация ВИЭ, полностью заряжен АК, величина потребления. В первом приближении Генерация ГРЭС=Потреблению.
2. Надо вытеснить ГРЭС из графика нагрузки, включается АК, он разряжается.
3. Если Генерация ВИЭ больше нуля, то она заряжает АК. Если баланс самого АК на максимуме, то остаток ВИЭ вытесняет ГРЭС.
4. В АК идет два одновременных процесса - зарядка и разрядка, представленные в столбцах I-M.
5. Если мы имеем излишек ВИЭ, он вычитается из генерации ГРЭС путем итераций.
6. Приходим к условию, что Потрбление=сумме ГРЭС+ВИЭ+АК, конец расчета.

Изменяемым параметром является величина генерации ГРЭС, которую мы должны максимально сократить путем использования ВИЭ )

Автор - Dluga
Дата добавления - 05.06.2015 в 14:54
Skif-F Дата: Пятница, 05.06.2015, 23:34 | Сообщение № 11
Группа: Проверенные
Ранг: Участник
Сообщений: 73
Репутация: 14 ±
Замечаний: 0% ±

Excel 2007, 2010, 2013, 2016
Вы меня не поняли.
Формула
Код
Генерация ГРЭС = Баланс - Сумма НВИЭ + Суммарная емкость - Баланс начала + Разрядка

мной не придумана, а выведена из
Код
Баланс = Генерация ГРЭС + Сумма НВИЭ - Суммарная емкость + Баланс начала - Разрядка

которая находится в столбце P (я просто её развернул).
Этой формулой я хотел показать, что нет необходимости решать
уравнение с двумя неизвестными
, а можно просто пойти от обратного!
 
Ответить
СообщениеВы меня не поняли.
Формула
Код
Генерация ГРЭС = Баланс - Сумма НВИЭ + Суммарная емкость - Баланс начала + Разрядка

мной не придумана, а выведена из
Код
Баланс = Генерация ГРЭС + Сумма НВИЭ - Суммарная емкость + Баланс начала - Разрядка

которая находится в столбце P (я просто её развернул).
Этой формулой я хотел показать, что нет необходимости решать
уравнение с двумя неизвестными
, а можно просто пойти от обратного!

Автор - Skif-F
Дата добавления - 05.06.2015 в 23:34
Dluga Дата: Воскресенье, 07.06.2015, 14:22 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Не понимаю, что получится в итоге?
Какое будет итоговое неизвестное?
ЗЫ. может у вас естб другие контакты для продуктивного разовора?


Сообщение отредактировал Dluga - Воскресенье, 07.06.2015, 14:25
 
Ответить
СообщениеНе понимаю, что получится в итоге?
Какое будет итоговое неизвестное?
ЗЫ. может у вас естб другие контакты для продуктивного разовора?

Автор - Dluga
Дата добавления - 07.06.2015 в 14:22
Skif-F Дата: Воскресенье, 07.06.2015, 15:24 | Сообщение № 13
Группа: Проверенные
Ранг: Участник
Сообщений: 73
Репутация: 14 ±
Замечаний: 0% ±

Excel 2007, 2010, 2013, 2016
Когда доберусь до работы, я представлю Вам выкладку формул (у меня всё там осталось).
Скажите, Вы под моими постами такое видите: ?
К сообщению приложен файл: 3140957.png (3.4 Kb)


Сообщение отредактировал Skif-F - Воскресенье, 07.06.2015, 15:24
 
Ответить
СообщениеКогда доберусь до работы, я представлю Вам выкладку формул (у меня всё там осталось).
Скажите, Вы под моими постами такое видите: ?

Автор - Skif-F
Дата добавления - 07.06.2015 в 15:24
Dluga Дата: Воскресенье, 07.06.2015, 21:41 | Сообщение № 14
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Скажите, Вы под моими постами такое видите:

Вижу. В ЛС?
[admin]Сейчас и Вас забаню[/admin]


Сообщение отредактировал Serge_007 - Воскресенье, 07.06.2015, 21:51
 
Ответить
Сообщение
Скажите, Вы под моими постами такое видите:

Вижу. В ЛС?
[admin]Сейчас и Вас забаню[/admin]

Автор - Dluga
Дата добавления - 07.06.2015 в 21:41
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос итерационного перебора (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!