(2 курс, Стр.)
НЕКОТОРЫЕ ЗАДАЧИ ОПТИМИЗАЦИИ КОНСТРУКЦИЙ И ТЕХНОЛОГИЙ
Требования к проектируемым зданиям и сооружениям, к организации и технологиям их возведения постоянно повышаются. Если раньше, например, к конструкциям предъявлялись лишь требования прочности, жёсткости и устойчивости, то теперь необходимо, чтобы они были предельно лёгкими и, в то же время, экономичными. В связи с этим возникают задачи оптимального проектирования конструкций и программирования производственных процессов. Однако практическое применение даже давно разработанных методов математического программирования сдерживается их сложностью, громоздкостью, большими объёмами вычислений, требованиями высокой программистской квалификации к отраслевым специалистам.
Цель данного доклада состоит в иллюстрации того, что упомянутые затруднения легко преодолеваются с помощью популярного вычислительного комплекса MATLAB. Рассматривается класс задач проектирования, организации, технологий, управления производством, квалифицируемых как задачи линейного программирования.
В среде MATLAB задачи линейного программирования решаются с помощью функции linprog. Функция linprog решает задачу линейного программирования в форме
![]()
(min),
![]()
![]()
[x, fval] = linprog (c, A, b, Aeq, beq, lb, ub) - основной вид.
Основными входными данными linprog являются: вектор коэффициентов целевой функции с, матрица ограничений-неравенств A, вектор правых частей ограничений-неравенств b, матрица ограничений-равенств Aeq, вектор правых частей ограничений-равенств beq, вектор lb, ограничивающий план x снизу, вектор ub, ограничивающий план x сверху. На выходе функция linprog даёт оптимальный план x задачи (1) и экстремальное значение целевой функции fval.
Если какой-то из входных параметров отсутствует, на его место следует поставить квадратные скобки [], за исключением случая, когда это последний параметр в списке. Например, если нужно решить задачу без ограничений равенств, в которой не задано начальное приближение, то оператор вызова функции linprog будет выглядеть так:
[x, fval] = linprog(с, A, b, [], [], lb, ub).
I. Проектирование конструкций
1.Неразрезные балки


Пример 1. Заданы схема (рис. 1) и две нагрузки для двухпролётной жёстко-пластической неразрезной балки из двух элементов постоянного прямоугольного сечения, определяемых пластическими моментами![]()
и ![]()
. Требуется подобрать их значения, соответствующие минимуму массы конструкции в условиях упруго-пластической работы. Показана ориентировочная эпюра изгибающих моментов. Характерные сечения обозначены цифрами.
Решение
Массу конструкции можно принять пропорциональной предельным пластическим моментам и длинам стержней. Тогда целевая функция примет вид
![]()
, (1)
где
![]()
, (2)
Здесь b, h – размеры прямоугольного поперечного сечения.

Данная балка один раз статически неопределимая. Эквивалентная система метода сил имеет вид по рис.2, где ![]()
лишняя неизвестная метода сил. Выразим через неё максимальные пролётные моменты
![]()
, ![]()
. (3)
Условия прочности (пластичности) в опасных сечениях 1, 2, 3 имеют вид:
![]()
, ![]()
, ![]()
, ![]()
. (4)
Здесь условия прочности для сечения 3 выписаны дважды: для сечений слева и справа.
Для приведения к каноническому виду в среде Matlab двойные неравенства (4) перепишем в виде
![]()
, ![]()
, ![]()
, ![]()
, (5)
![]()
, ![]()
, ![]()
, ![]()
(6)
![]()
и ![]()
в неравенствах (5) заменим выражениями из (3) и получим
![]()
,
![]()
. (7)
В компьютерной программе на языке Matlab каноническую математическую модель данной задачи можно представлять в 2-х вариантах:
Целевая функция (1), равенства (3), неравенства (5), (6). Целевая функция (1), неравенства (6), (7).Перепишем (3) в виде, совпадающем с каноническим
![]()
(8)
% balka1_var1 Задача линейного программирования
% Статически неопределимая двухпролётная балка
% c шарнирными опорами, загруженная силами Р1, Р2.
% Решение задачи линейного программирования
% Целевая функция F=c*x --> minimum (1)
% Система ограничений: Ax<=b, lb<=x<=ub
% где c, x, b, lb, ub - векторы, A - матрица.
% x=(x1, x2,...x5)=(M10 M20 M1 M2 M3)- аргументы,
% c - коэффициенты в (1)
% Найти такой х, который доставляет
% минимум F при условии Ax<=b, lb<=x<=ub
% F(x)=l1*M10+l2*M20+0*M1+0*M2+0*M3 --> inf
clear;
disp('Начало___________________________________');
P1=20; P2=40; a=1; bb=3; d=4; e=2; l1=a+bb; l2=e+d;
l=[l1 l2];
% M10 M20 M1 M2 M3
c=[l1 l2 0 0 0 ];
% Система равенств (уравнения равновесия):
% M10 M20 M1 M2 M3
Aeq=[0 0 l1 0 - a;
0 0 0 l2 - d];
beq=[P1*a*bb; P2*e*d];
% Система неравенств(прочности, пластичности):
% M10 M20 M1 M2 M3
A=[-1 0 -1 0 0;
-1 0 1 0 0;
0 -1 0 -1 0;
0 -1 0 1 0;
-1 0 0 0 -1;
-1 0 0 0 1;
0 -1 0 0 -1;
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


