Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Уч. пособие. ПТ.Сахаров, Андрианов.docx
Скачиваний:
13
Добавлен:
01.04.2025
Размер:
3.31 Mб
Скачать

Библиографический список

  1. Андрианов В.Е., Сахаров В.В. Оптимизация параметров ползунково-кривошипного механизма погрузочной машины. СПб.: СПГУВК, Межвузовский сборник научных трудов, вып.3, 2002, с.139-144.

  2. Андрианов В.Е., Иванов Е.Н., Севрюков А.С. Применение сплайнов для управления двухзвенным манипулятором. – СПб.: Сборник научных трудов "Автоматизированные информационные системы управления на водном транспорте". Вып. 11, 2003. – 23-30 с.

  3. Андрианов В.Е., Куликов Н.А., Ставинский А.Е. О позициони-ровании робота-манипулятора. СПб.: СПГУВК, Труды международной научно-практической конференции "Безопасность водного транспорта", том 4, 2003, с.234-237.

  4. Андрианов В.Е., Ставинский А.Г. Алгоритм оптимального расписания обработки судна в порту. "Методы прикладной математики в транспортных системах". СПб.: СПГУВК, Сборник научных трудов, вып. 7, 2002, с.3-6.

  5. Дьяконов В.П. MATLAB: Учебный курс. – СПб.: Питер, 2001. – 560 с.

  6. Глущенко В.В., Сахаров В.В., Сумеркин Ю.В. Моделирование электрических и динамических систем в среде MATLAB: Учеб.пособие. СПГУВК. СПб., 1998. – 293 с.

  7. Кетков Ю.Л., Кетков А.Ю., Шульц М.М. MATLAB 6.х.: Программирование численных методов. – СПб.: БХВ – Петербург, 2004. – 672 с.

  8. Потемкин В.Г. Система MATLAB. Справочное пособие. – М.: ДИАЛОГ – МИФИ, 1997. – 350 с.

Содержание

ВВЕДЕНИЕ 3

1.Общие правила работы в среде программирования MATLAB

Примеры вычислений. Построение графиков 4

1.1.Oбщие правила работы в среде MATLAB 4

1.2.Вычисление математических выражений 7

1.2.1.Примеры расчета математических выражений

в режиме прямых вычислений 7

1.3. Построение графиков функций 16

2. Компьютерное моделирование траекторий движения

двухзвенного робота – манипулятора 31

Лабораторная работа № 1. Расчет элементов манипулятора

и построение траекторий движения при перемещении груза

параллельно оси абсцисс 35

Лабораторная работа № 2. Компьютерное моделирование расчета положений двухзвенного робота - манипулятора по любой заданной траектории движения выходных координат 40

3. Оптимизация параметров звеньев робота - манипулятора с помощью метода наименьших квадратов 46

Лабораторная работа 3. Линейный метод оптимизации

параметров звеньев робота - манипулятора с помощью метода

наименьших квадратов 49

Лабораторная работа №3а. Нелинейный метод оптимизации

параметров звеньев робота - манипулятора с помощью метода

наименьших квадратов 54

4. Построение траекторий звеньев робота - манипулятора с

использованием кубических полиномов (сплайнов) 57

Лабораторная работа №4. Построение траекторий звеньев

манипулятора с формированием линейного массива узлов

для заданного закона изменения выходных координат 61

Лабораторная работа №5. Построение траекторий движения

звеньев манипулятора с использованием сплайнов 65

5. Построение траектории перемещения двухзвенного робота -

манипулятора с помощью элементов символьной математики 70

5.1. Решение уравнений в символьной форме 70

5.2. Позиционирование двухзвенного робота – манипулятора 72

Лабораторная работа №6. Определение и построение предельных

значений углов поворота звеньев робота - манипулятора с помощью элементов символьной математики 77

Лабораторная работа №7. Построение графиков изменения

углов поворота звеньев робота – манипулятора при постоянной

координате ''х'' и изменяющейся координате ''y'' захвата груза 79

6. Параметрическая оптимизацияконструкциимеханизмас

подвижнымцилиндром 80

Лабораторная работа №8. Параметрическая оптимизация

конструкции ползунково - кривошипного механизма 84

7. Параметрическая оптимизация сопряжения деталей при

их сборке с заданным допуском узла 88

Лабораторная работа №9. Параметрическая оптимизация

сопряжения деталей узлового соединения 90

8.Оптимизация процесса грузовой обработки судна в порту 93

Лабораторная работа № 10. Оптимизация процесса грузовой

обработки судна в порту 97

9.Оптимальное распределение ресурсов между объектами

порта по критерию максимального дохода 102

Лабораторная работа №11. Оптимальное распределение

шести ресурсов 107

ЗАКЛЮЧЕНИЕ 117

БИБЛИОГРАФИЧЕСКИЙ СПИСОК 119

СОДЕРЖАНИЕ 120

Хххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххх

% File 'sah438.m'

% Квадратичное программирование.

% Оптимальное управление режимами работы судовых

% генераторных агрегатов.

% Оптимальное распределение нагрузки между

% тремя генераторами.

L=190;

%L=190;

%L=200;

LB=[0 0 0]'

UB=[50 70 80]'

%UB=[50 70 0]';

H=[0.06 0 0;0 0.03 0;0 0 0.02]

f=[2 1.45 0.95]';

Aeq=[1 1 1]

Beq=L

[x,J]=quadprog(H,f,[],[],Aeq,Beq,LB,UB);

x

J=J+300

Fopt=0.03*x(1).^2+0.015*x(2).^2+0.010*x(3).^2+...

2*x(1)+1.45*x(2)+0.95*x(3)+300

хххххххххххххххххххххххххххххххххххххххххххххххххххххххххх

% File 'sah459.m'.

% Примеры простых задач линейного программирования.

% В танспортном процессе участвуют:

% два потребителя (строительные организации,склады)

% и два грузовых района порта, из которых производится

% доставка строительных материалов транспортными

% средствами порта (продукция предприятия).

% А-(2х2)-технологическая матрица. На причале первого

% грузового района 15 тыс.тонн грузов,

% на причале второго - 7 тыс.тонн.Необходимо в течение

% оговоренных договорами сроков доставить первой строи-

% тельной организации 9тыс. тонн, а второй 13 тыс. тонн.

% Стоимость перевозок 1 тыс. тонн с площадки i потреби-

% телю j равна A(i,j)тыс.долларов. Для определенности

% примем: A(1,1)=1.8, A(1,2)=2.7, A(2,1)=6, A(2,2)=2.6.

% Необходимо минимизировать затраты на перевозки.

% ===================================================

% РЕШЕНИЕ

% Предположим,что первой строительной организации с первой

% площадки порта доставлено X тыс. тонн груза. Тогда на второе

% предприятие с первой площадки необходимо доставить (15-X) тыс. тонн.

% Кроме того, со второй площадки на первое предприятие необходимо

% доставить (9-X) тыс. тонн, а со второй площадки во вторую

% строительную организацию (13-(15-X)) тыс. тонн.

% Ограничения на переменную состояния X устанавливаютс следующим

% образом. Предположим, что все зарасы груза, имеющиеся на второй

% площадке, доставлены на первое предприятие. Тогда для обеспечения

% объема, равного (по условиям перевозок) 9тыс.т., на первое предприятие

% с первого грузового района следует доставить Х=2 тыс. т. Таким образом,

% минимальное значение Xmin=2 тыс. т. С дргой стороны, первый грузовой

% район может полностью удовлетворить потребности первого предприятия,

% если на него поставит 9 тыс. т. В этом случае со второго грузового

% района нет необходимости доставлять груз на первое предприятие,

% и поэтому Xmax=9.

% Таким образом, вариация Х при значениях Xmin=9-7=2 и Xmax=9 должна

% осуществляться в пределах Xmin<=X<=Xmax.

% Расходы на перевозки 1 тыс.т. груза равны (тыс.долл./тыс.т.):

%%%a11=1.8;a12=2.7;a21=6;a22=2.6;

%-----------------------------------------------------------

% Встроенная матрица случайных чисел:

B=rand(2,2);

a11=B(1,1); a12=B(1,2); a21=B(2,1); a22=B(2,2);

%-----------------------------------------------------------

% Задание на самостоятельную работу:

% вариируя A(i,j) в пределах от 1.5 до 6 , не изменяя другие

% коэффициенты, получить оптимальные решения, т.е. минимум затрат

% на перевозки, осуществляемые транспортными % %средствами грузовыхрайоновпорта.

%------------------------------------------------------------

X=2:0.5:9;

Z=a11*X+a12*(15-X)+a21*(9-X)+a22*(13-(15-X));

[Y,I]=min(Z)

%=================================

%%plot(X,Z,(I+3)*0.5,Y,'O'),grid

%%axis([1 10 40 85])

%=================================

plot(X,Z,(I+3)*0.5,Y,'o'),grid

xlabel(' X'), ylabel('Z')

%==================================

pause

x11=2+0.5*(I-1)

x12=15-x11

x21=9-x11

x22=13-(15-x11)

J0=min(Z)

% Проверка граничных условий:

x11+x12

x21+x22

x11+x21

x12+x22

%Решение с помощью функции linprog:

c=[a11 a12 a21 a22];

A=[];b=[];

Aeq=[1 1 0 0;0 0 1 1;1 0 1 0;0 1 0 1];

beq=[15 7 9 13]';

lvb=[0 0 0 0]';uvb=[];

u=linprog(c,A,b,Aeq,beq,lvb,uvb)

c

% Проверка выполнения условий ограничений

J=c*u

[Aeq*u beq]

ххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххх

% Файл sah462.m

% Задача о раскрое материала II.

% Стоимость заготовки ai,стоимость оставшейся части

% заготовки bi,стоимость одного среза ci:

a1=100; a2=60; a3=40;

b1=5; b2=10; b3=15; b4=8;

c=20;

f=[(a1+c) (a1+2*c-b2) (a1+3*c-b1) (a2+c-b3) (a2+2*c-b4) ...

(a3+c-b1)];

A=[1 1 1 0 0 0 ;0 0 0 1 1 0;0 0 0 0 0 1];

%b=[50 100 50]';

b=[100 200 50]';

Aeq=[2 1 0 1 0 0;0 1 3 0 2 1]; beq=[200 250]';

lvb=[0 0 2 0 0 0]'; ulb=[20 56 inf 110 95 inf]';

[x,J]=linprog(f,A,b,Aeq,beq,lvb,ulb);

x1=round(x);

J1=f*x1;

[x x1]

[J J1]

beq_corr=Aeq*x1

%ПРИМЕЧАНИЕ. Для решения задачи целочисленного програм-

% мирования рекомендуется применять операцию

% x=round(linprog(.........)),

% после чего корректировать вектор beq:

% beq_corr=Aeq*round(x).

% Затем внести откорректированное значение в

% соответствующую строку программы.

% РЕШЕНИЕ

% >> sah462

% Optimization terminated.

% ans =

% 20.0000 20.0000

% 50.0000 50.0000

% 6.6667 7.0000

% 110.0000 110.0000

% 90.0000 90.0000

% 0.0000 0

% [J J1]=

% 1.0e+004 *

% 2.5363 2.5415

%beq_corr =

% 200

% 251

% >>

хххххххххххххххххххххххххххххххххххххххххххххххххххххххххххх

% Файл sah462а.m

% Нелинейнаязадачаораскроематериала.

% Применение алгоритма открытого поиска (генетического алгоритма)для

% решения задачи о раскрое материала.

%=================================================================

% Стоимость заготовки ai,стоимость оставшейся части

% заготовки bi,стоимость одного среза ci:

global a1 a2 a3 b1 b2 b3 b4 c

a1=100; a2=60; a3=40;

b1=5; b2=10; b3=15; b4=8;

c=20;

f=[(a1+c) (a1+2*c-b2) (a1+3*c-b1) (a2+c-b3) (a2+2*c-b4) ...

(a3+c-b1)];

A=[1 1 1 0 0 0 ;0 0 0 1 1 0;0 0 0 0 0 1];

%b=[50 100 50]';

b=[100 200 50]';

Aeq=[2 1 0 1 0 0;0 1 3 0 2 1]; beq=[200 250]';

lvb=[0 0 2 0 0 0]'; ulb=[20 56 inf 110 95 inf]';

[x,J]=linprog(f,A,b,Aeq,beq,lvb,ulb);

x1=round(x);

J1=f*x1;

[x x1]

[J J1]

beq_corr=Aeq*x1

%ПРИМЕЧАНИЕ. Для решения задачи целочисленного програм-

% мирования рекомендуется применять операцию

% x=round(linprog(.........)),

% после чего корректировать вектор beq:

% beq_corr=Aeq*round(x).

% Затем внести откорректированное значение в

% соответствующую строку программы.

% РЕШЕНИЕ

% >> sah462

% Optimization terminated.

% ans =

% 20.0000 20.0000

% 50.0000 50.0000

% 6.6667 7.0000

% 110.0000 110.0000

% 90.0000 90.0000

% 0.0000 0

% [J J1]=

% 1.0e+004 *

% 2.5363 2.5415

%beq_corr =

% 200

% 251

%===================================================

%Задачаквадратичногопрограммирования.

H=[1.6 0 0 0 0 0;0 1.4 0 0 0 0;0 0 1.2 0 0 0;0 0 0 1.0 0 0;0 0 0 0 0.7 0;0 0 0 0 0 3];

[x2,J2]=quadprog(H,f,A,b,Aeq,beq,lvb,ulb)

%==================================================

% ГЕНЕТИЧЕСКИЙ АЛГОРИТМ

% Файл-функция sah462b.m.

% Применение функции patternsearch:

x0=[10 20 20 30 30 50]';

[x3,J3]=patternsearch(@sah462b,x0,A,b,Aeq,beq,lvb,ulb)

J3c=0.5*x3'*[1.6 0 0 0 0 0;0 1.4 0 0 0 0;0 0 1.2 0 0 0;0 0 0 1.0 0 0;0 0 0 0 0.7 0;0 0 0 0 0 3]*x3+...

[(a1+c) (a1+2*c-b2) (a1+3*c-b1) (a2+c-b3) (a2+2*c-b4) (a3+c-b1)]*x3

%===================================================

% Проверка условий равенств и неравенств. Сравнение квадратичного алгоритма

% с генетическим алгоритмом:

[A*x2 A*x3 b]

[Aeq*x2 Aeq*x3 beq]

[J2 J3]

%Ошибка в %:

100*(J3-J2)/J3

%ans =0.1998

% File 'sah427.m'

% V.I.Vasendin,V.A.Shoshmin 'Electrical Economy for River

% Transprt Undertaking',1985.-pp.157-160.

% Function LINPROG.

%===================================================

% Data for optimization:L-(m*n)-matrix with technological

% coefficients; St-(1*m)-vector(substaitions power);

% Sp-(1*n)-vector (consumers power); m < n;

% sum(St)>sum(Sp); x-((m*n)*1)-dimention unknown state vector.

%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

L=[0.3 0.9 0.2 0.3;0.4 0.5 1.0 0.1;0.6 0.8 0.6 0.4];

%%%L=rand(23,35)

St=[630 1000 400]; Sp=[800 200 600 300];

%%%St=rand(1,23).*700; Sp=rand(1,35).*150;

%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

% Lower and upper constraints:

k=size(L);

LB=zeros(k(1)*k(2),1);

%UB=ones(k(1)*k(2),1).*3000;

UB=[150 3000 400 3000 300 3000 3000 100 3000 3000 3000 3000]';

%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

% Data for optimization checking:

%k=size(L);

v1=size(St);v2=size(Sp);

if (sum(Sp)>sum(St))|((k(1)*k(2))~=(v1(2)*v2(2)))

stop

end

%===================================================

% Matrices A, b,Aeq, beq forming:

k=size(L);

a1=ones(1,k(2));

a2=zeros(1,k(2));

% For matrices A,b and f:

A=[]; f1=[];

for i=1:k(1)

ff1=L(i,:);

f1=[f1 ff1];

WW=[]; ff=[];

for j=1:k(1)

if j==i

w=a1;

WW=[WW w];

else

w=a2;

WW=[WW w];

end

WW;

end

WW;

A=[A;WW];

end

A;

f1;

f=f1;

% For matrices Aeq and beq:

b=St';

D=diag(ones(1,k(2)));

k=size(L);

Aeq=repmat(D,1,k(1));

beq=Sp';

%++++++++++++++++++++++++++++++++++++++++++++++++++++

% Computing:

%x0=ones(12,1).*0.1;

%[x,J]=linprog(f,A,b,Aeq,beq,LB,UB,x0);

[x,J]=linprog(f,A,b,Aeq,beq,LB,UB);

x'

J

%>> sah427

%Optimization terminated.

%ans =

% Columns 1 through 6

% 230.0000 0.0000 400.0000 0.0000 400.0000 200.0000

% Columns 7 through 12

% 0.0000 300.0000 170.0000 0.0000 200.0000 0.0000

% J = 661.0000

% Решение 2.

% >> [LB';UB']

%ans =

% Columns 1 through 5

% 0 0 0 0 0

% 150 3000 400 3000 300

% Columns 6 through 10

% 0 0 0 0 0

% 3000 3000 100 3000 3000

% Columns 11 through 12

% 0 0

% 3000 3000

%>> sah427

%Optimization terminated.

% ans =

% Columns 1 through 6

% 150.0000 0.0000 330.0000 150.0000 300.0000 200.0000

% Columns 7 through 12

% 270.0000 100.0000 350.0000 0.0000 0.0000 50.0000

%J = 886.0000

% Проверка условий в форме ограничений-равенств и неравенств:

% >> [A*x b]

% ans =

% 1.0e+003 *

% 0.6300 0.6300

% 0.8700 1.0000

% 0.4000 0.4000

% >> [Aeq*x beq]

% ans =

% 800.0000 800.0000

% 200.0000 200.0000

% 600.0000 600.0000

% 300.0000 300.0000

хххххххххххххххххххххххххххххххххххххххххххххххх