Пример оптимизации объёма бутылки

Предыдущая страницаВ началоСледующая страница

Данный пример иллюстрирует применение оптимизации для 3D модели. Файл примера находится в библиотеке Примеры 17\Сервисные инструменты\Оптимизация\Бутылка.grb.

Пример представляет собой решение задачи об объёме бутылки. В привёденном примере создана переменная Volume, равная ёмкости  бутылки, т.е. объёму налитой в неё жидкости. Переменная H определяет высоту бутылки, а HW – высоту жидкости в ней. Задача оптимизации состоит в том, чтобы при любом изменении высоты бутылки и высоты наливаемой в неё жидкости ёмкость бутылки была неизменной (0.5 л = 500000 мм3). Для достижения этой цели необходимо найти значение переменной D, отвечающей за максимальный диаметр бутылки (диаметр её средней части). В команде Оптимизация было создано задание на оптимизацию Volume.

Optimization7

Целевая функция: приравнять переменную Volume к 500000 с допуском 0.5. В качестве изменяемой переменной задана переменная D с интервалом от 70 до 90. На переменные модели не накладываются дополнительные условия, поэтому ограничений нет. Для наглядности процесса оптимизации включены флаги Показывать текущее решение и Пересчитывать 3D модель. В качестве алгоритма оптимизации выбран Метод дихотомии с максимальным числом итераций 100. Параметр Запускать установлен на значение Пользователь, т.е. оптимизация будет выполняться только по запросу пользователя. Создав задание на оптимизацию, изменим модель. Например, уменьшим высоту бутылки и, соответственно, уровень жидкости в ней, изменив значения переменных H и HW. Ёмкость бутылки при этом уменьшилась.

Optimization8

Optimization9

Для подбора необходимого диаметра бутылки достаточно вызвать команду Оптимизация, выбрать в появившемся окне задание Volume и нажать графическую кнопку Выполнить. В процессе подбора решения на экране будет отображаться вид модели при текущих значениях изменяемой переменной.

Optimization10        

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