http://sergeykin. *****/

 
НАЛОЖЕНИЕ ВЗАИМОСВЯЗЕЙ НА ПАРАМЕТРЫ ПРИ ОПТИМИЗАЦИИ КОНСТРУКЦИЙ

МГТУ им. , кафедра МТ-1 (“Металлорежущие станки”)

http://sergeykin. *****

*****@***ru

28 октября 2001 г.

Рассматриваются различные способы наложения взаимосвязей типа «A < B» между переменными проекта при оптимизации конструкций в программе ANSYS. Указан способ наложения таких ограничений без введения дополнительных переменных состояния.

Введение

При назначении какого-либо параметра в программе ANSYS в качестве переменной проекта (design variable) задание максимального и минимального значений параметра не представляет собой особой проблемы. Для того чтобы задать такие ограничения для какого-либо параметра A, нужно ввести соответствующие значения (Amin и Amax) при назначении параметра A в качестве переменной проекта:

Подпись:OPVAR, A,DV, AMIN, AMAX

Однако в некоторых случаях введение ограничений такого рода оказывается недостаточным. Например, рассмотрим конструкцию, показанную на рис. 1. Предположим, что параметры M, N и R являются переменными проекта. Очевидно, что в данном случае для сохранения топологии конструкции в процессе оптимизации (окружность не должна пересекаться с отрезками) нужно наложить условия R < M и R < N, т. е. недостаточно задать максимальные и минимальные значения параметров.

В данной статье рассмотрены два способа наложения таких ограничений: первый – рекомендованный в документации к программе ANSYS и второй – альтернативный, кажущийся автору более удобным, чем первый.

Способ, рекомендованный в документации к программе ANSYS

Данный способ наложения зависимостей типа «A < B» между параметрами рекомендован в ANSYS Theory Reference (Chapter 20 – Design Optimization, p. 20-3), он предусматривает введение для этой цели дополнительной переменной состояния (state variable). Ниже приведено его описание.

1.  Определяем параметр A (в analysis file)

2.  Определяем параметр B (в analysis file)

3.  Определяем параметр C = B - A (в analysis file)

4.  Назначаем параметр A в качестве переменной проекта

5.  Назначаем параметр B в качестве переменной проекта

6.  Назначаем параметр C в качестве переменной состояния и накладываем на нее ограничение C > 0

Команды ANSYS, соответствующие данному способу, выглядят следующим образом:

A=A0

B=B0

C=B-A

...

OPVAR, A,DV, AMIN, AMAX

OPVAR, B,DV, BMIN, BMAX

OPVAR, C,SV,0,,

Однако, данный способ имеет недостатки, заключающиеся в следующем:

1.  На начальных итерациях вполне возможно нарушение условия A < B, даже если в исходной конструкции оно было соблюдено. Его выполнение наступит только при приближении к сходимости. Это может вызвать проблемы со сходимостью. Кроме того, если A и B являются какими-либо геометрическими параметрами и условие A < B вызвано геометрической конфигурацией модели, то процесс оптимизации вообще может остановиться с сообщением о невозможности построить геометрический примитив №...

2.  Введение дополнительной переменной состояния вызывает наложение дополнительной штрафной функции на целевую функцию, что также вызывает дополнительные трудности со сходимостью.

3.  Возникает вопрос о том, какой допуск нужно наложить на ограничение C > 0. Если допуск уменьшить, то ухудшиться сходимость, а если увеличить, то ограничение C > 0 будет выполняться неточно.

Альтернативный способ

Т. к. недостатки приведенного выше способа ограничивают его применение, то хотелось бы найти другой способ наложения условия A < B, свободный от данных недостатков. В качестве такого способа можно использовать следующий:

1.  Определяем параметр B (в analysis file)

2.  Определяем параметр D (в analysis file)

3.  Определяем параметр A = D*(B-Amin)+Amin (в analysis file), где Amin - минимальное значение параметра A

4.  Назначаем параметр B в качестве переменной проекта

5.  Назначаем параметр D в качестве переменной проекта, имеющей минимальное значение Dmin = 0 и максимальное значение Dmax = 1

Параметр A напрямую не участвует в оптимизации ни в качестве переменной проекта, ни в качестве переменной состояния, однако условие A < B будет соблюдаться.

Т. к. при использовании данного способа не вводятся дополнительные переменные состояния, то отсутствуют и проблемы, описанные выше.

Команды ANSYS, соответствующие данному способу:

B=B0

D=D0

A = D*(B-AMIN)+AMIN

...

OPVAR, B,DV, BMIN, BMAX

OPVAR, D,DV,0,1

Следует отметить, что данный способ напрямую невозможно применить для наложения на параметр A двух или более условий такого типа. Т. е. если, например, поочередно наложить на параметр A два условия A < B и A < C, то при оптимизации будет учтено только то из этих условий, которое было наложено последним.

Для того чтобы при оптимизации были учтены оба этих условия (A < B и A < C), нужно поступить следующим образом:

1.  Определяем параметр B (в analysis file)

2.  Определяем параметр C (в analysis file)

3.  Определяем параметр D (в analysis file)

4.  Определяем параметр A = D*[min(B, C)-Amin]+Amin (в analysis file), где Amin - минимальное значение параметра A

5.  Назначаем параметр B в качестве переменной проекта

6.  Назначаем параметр C в качестве переменной проекта

7.  Назначаем параметр D в качестве переменной проекта, имеющей минимальное значение Dmin = 0 и максимальное значение Dmax = 1

Использование данной процедуры при любых значениях параметров будет обеспечивать наложение на параметр A верхнего ограничения исходя из наименьшего значения параметров B и C.

Соответствующая данной процедуре последовательность команд ANSYS приведена ниже. Выражение [(B+C)-|B-C|]/2 эквивалентно выражению min(B, C) (в программе ANSYS отсутствует операция нахождения минимума для двух чисел). Аналогичным способом можно накладывать любое количество ограничений на параметр.

B=B0

C=C0

D=D0

A = D*(((B+C)-ABS(B-C))/2-AMIN)+AMIN

...

OPVAR, B,DV, BMIN, BMAX

OPVAR, C,DV, CMIN, CMAX

OPVAR, D,DV,0,1

Заключение

Таким образом, указан способ наложения взаимосвязей типа «A < B» между переменными проекта в программе ANSYS, не требующий введения дополнительных переменных состояния. Применение данного способа кажется автору наиболее целесообразным по сравнению со способом, описанным в документации к программе ANSYS, поскольку введение дополнительных переменных состояния затрудняет процесс оптимизации.