Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3127

.pdf
Скачиваний:
0
Добавлен:
15.11.2022
Размер:
3.06 Mб
Скачать

Из выражений (6.12), (6.13) следует система линейных алгебраических уравнений с трехдиагональной матрицей:

2

j0

0.....

 

0

0

0

M j 0

 

d j0

 

j1

2

j1 ....

 

0

0

0

M j1

 

d j1

 

..... ..... ......... .....

..... .....

.....

 

.....

. (6.14)

0

0

0.....

 

j , m 1

2

j, m 1

M j, m 1

 

d j, m

1

0

0

0.....

 

0

j m

2

M j m

 

d j m

 

где j 0 =

j m =1,

j s =hj s / (hj s +hj , s + 1 ),

j s =1 - j s ,

dj 0 =6(qj 1 -qj 0 )/hj 1

2 , dj m =6(qj , m - 1 -qj m )/hj m

2 ,

 

(6.15)

dj s =6[(qj , s + 1 -qj s )/hj , s + 1 -(qj s -qj , s - 1 )/hj s ]/(hj s +hj , s + 1 ).

Для решения системы уравнений (6.14) может быть использован метод прогонки /1/. Согласно этому методу сначала по реккурентным формулам находятся значения вспомогательных коэффициентов ej s , bj s :

ej s =- j s /( j s ej , s -

1 +2),

bj s =(dj s - j s bj , s - 1 )/( j s ej s - 1 +2),

 

 

(6.16)

e j,-1 = bj, -1

= 0,

s = 0, 1, ... , m .

231

Затем по найденным ej s , bj s последовательно определяются значения параметров Mj m ,

Mj , m - 1 , ... , Mj 0 :

Mj m = bj m , Mj s = ej s M j , s + 1 +bj s , s = m-1, ... , 0. (6.17)

Для расчета параметров Mj s в среде DELPHI 3.0 разработана программа 2. Ее алгоритм приведен на рис. 6.9.

 

Ввод максимальных

Да

 

 

значений скоростей

s < m

1

7

W1m,W2m,W3m и числа

 

 

 

 

 

 

опорных точек m

 

Нет

 

 

 

 

 

Ввод массивов угло-

8

s= m+1

 

 

 

2

вых координат q10,

 

 

q20, q30

в опорных

9

s = s-1

 

точках

 

 

 

 

 

 

 

Определение пара-

3

s = -1

10 метров Мjs на текущем

 

 

 

 

 

 

участке траектории

 

 

 

4

s = s +1

 

 

Да

 

 

 

 

 

 

Определение продол-

 

11

S >0

 

 

 

232

5

жительности hjs управ-

 

 

35.

 

ления на данном

 

 

 

 

участке траектории

12

Вывод параметров

 

 

 

сплайнов Мj s

Рис. 6.9. Алгоритм расчета параметров Mj s сплайнов

После определения всех параметров Mj s из системы уравнений (6.14) сплайн Pj , s 3 (t) может быть вычислен в любой точке траектории. Практически выдача задающих воздействий на исполнительные приводы происходит через определенные моменты времени, называемые периодами дискретности Тд . Учитывая то, что собственная частота колебаний степеней подвижности манипулятора обычно лежит в диапазоне от 1 до 10 Гц, для исключения резонансных явлений период дискретности принимается обычно не более 15-30 мс.

Программа 2

implementation

LABEL 1,2,3;

{раздел объявления меток}

const W1m=0.25;

{раздел объявления констант}

 

233

W2m=0.15; W3m=0.6; {Максимальные значения скоростей}

m=10;

{Число опорных точек}

type arr=array[0..m] of real;

{раздел объявления типов массивов}

var q1,q2,q3:arr;

{раздел объявления переменных}

b1,b2,b3,d1,d2,d3,M1,M2,M3,t:ARRAY[0..m] of REAL; e1,e2,e3,R1,R2,R3:ARRAY[0..m-1] of REAL; MU1,MU2,MU3,h:ARRAY[1..m] of REAL;

s:BYTE;

t1,t2,t3,cs,cs1,cs11:REAL;

{массив угловых координат:} const

q1:arr=(-0.4,-0.2,-0.3,-0.1,0.1,0.3,0.5,0.4,0.5,0.7,0.8); q2:arr=(0.9,1.1,1.0,0.8,0.9,1.2,1.6,2.0,2.2,1.9,2.3); q3:arr=(-1.5,-1.0,-0.8,-0.9,-0.6,-0.1,0.6,1.1,0.9,1.2,1.5);}

{$R *.DFM}

{Процедура определения максимального элемента массива} function MAX(t1,t2,t3:REAL):real;

var h:REAL; begin

h:=t1;

if h<t2 then h:=t2; if h<t3 then h:=t3;

234

MAX:=h;

end;

{Процедура расчета параметров сплайнов} procedure TForm1.Button1Click(Sender: TObject); label 1,2,3,4;

begin {начало основной части программы}

for s:=0 to m do {определение продолжительности управления} if s<>m then {на каждом из участков траектории}

begin t1:=Abs(q1[s+1]-q1[s])/W1m; t2:=Abs(q2[s+1]-q2[s])/W2m; t3:=Abs(q3[s+1]-q3[s])/W3m; h[s+1]:=max(t1,t2,t3);

if h[s+1]=0 then h[s+1]:=0.1; t[s+1]:=t[s]+h[s+1];

end;

{Определение коэффициентов es,bs на текущем участке траектории} for s:=0 to m do {вычисление коэффициентов при s=0}

if s=0 then begin

e1[s]:=-0.5; e2[s]:=-0.5; e3[s]:=-0.5; cs:=Sqr(h[s+1]);

235

d1[s]:=6*(q1[s+1]-q1[s])/cs; d2[s]:=6*(q2[s+1]-q2[s])/cs; d3[s]:=6*(q3[s+1]-q3[s])/cs; b1[s]:=d1[s]/2; b2[s]:=d2[s]/2; b3[s]:=d3[s]/2;

end;

for s:=1 to m-1 do {вычисление коэффициентов при s=1...m-1} begin

cs1:=h[s+1]+h[s];

MU1[s]:=h[s]/cs1;

MU2[s]:=MU1[s];

MU3[s]:=MU1[s];

R1[s]:=1-MU1[s]; R2[s]:=R1[s]; R3[s]:=R1[s];

e1[s]:=-R1[s]/(MU1[s]*e1[s-1]+2); e2[s]:=-R2[s]/(MU2[s]*e2[s-1]+2); e3[s]:=-R3[s]/(MU3[s]*e3[s-1]+2); d1[s]:=6*((q1[s+1]-q1[s])/h[s+1]-(q1[s]-q1[s-1])/h[s])/cs1; d2[s]:=6*((q2[s+1]-q2[s])/h[s+1]-(q2[s]-q2[s-1])/h[s])/cs1; d3[s]:=6*((q3[s+1]-q3[s])/h[s+1]-(q3[s]-q3[s-1])/h[s])/cs1;

236

{вычисление коэффициентов при s=m}

b1[s]:=(d1[s]-MU1[s]*b1[s-1])/(MU1[s]*e1[s-1]+2); b2[s]:=(d2[s]-MU2[s]*b2[s-1])/(MU2[s]*e2[s-1]+2); b3[s]:=(d3[s]-MU3[s]*b3[s-1])/(MU3[s]*e3[s-1]+2); end;

for s:=0 to m do if s=m then begin

MU1[s]:=1; MU2[s]:=1; MU3[s]:=1; cs11:=Sqr(h[s]); d1[s]:=6*(q1[s-1]-q1[s])/cs11; d2[s]:=6*(q2[s-1]-q2[s])/cs11; d3[s]:=6*(q3[s-1]-q3[s])/cs11;

b1[s]:=(d1[s]-MU1[s]*b1[s-1])/(MU1[s]*e1[s-1]+2); b2[s]:=(d2[s]-MU2[s]*b2[s-1])/(MU2[s]*e2[s-1]+2); b3[s]:=(d3[s]-MU3[s]*b3[s-1])/(MU3[s]*e3[s-1]+2); M1[s]:=b1[s]; {определение параметров кубического сплайна}

M2[s]:=b2[s];

M3[s]:=b3[s];

end;

for s:=m-1 downto 0 do begin

M1[s]:=e1[s]*M1[s+1]+b1[s];

237

M2[s]:=e2[s]*M2[s+1]+b2[s];

M3[s]:=e3[s]*M3[s+1]+b3[s];

end;

begin {Вывод параметров сплайнов}

Edit1.text:=FloatToStr(M1[1]);

Edit2.text:=FloatToStr(M2[1]);

Edit3.text:=FloatToStr(M3[1]);

Edit4.text:=FloatToStr(M1[2]);

Edit5.text:=FloatToStr(M2[2]);

Edit6.text:=FloatToStr(M3[2]);

Edit7.text:=FloatToStr(M1[3]);

Edit8.text:=FloatToStr(M2[3]);

Edit9.text:=FloatToStr(M3[3]);

end;

end;

6.6. Программная реализация алгоритмов адаптации

Проектирование новых моделей роботов и модернизация существующего парка с точки зрения повышения их динамической точности средствами адаптации связаны с моделированием самонастраивающейся системы управления /19/.

В качестве примера рассмотрим систему адаптивного управления двухкоординатным манипулятором, изображенным на рис. 5.4. Движение исполнительной системы робота описыва-

238

ется выражениями (5.42). Из системы уравнений (5.43) получаются следующие формулы

для расчета ускорений эталонной модели:

 

 

q1m = bm1(q

- q1m) - am1 q1m ,

 

 

 

q2m = bm2(q

(6.18)

- q2m) - am2 q2m

,

 

 

 

где am1 = i kс1/J, am2 = i kс2 /J, bm1 = i kп1/J,

bm2 = i kп2/J.

 

Таким образом, динамика эталонной модели определяется значениями параметров am1, am2, bm1, bm2, которые, в свою очередь, определяются только настройками подчиненных контуров. Задачами адаптивного управления являются развязывание динамики подсистем отдельных координат реального манипулятора, т.е. компенсация их взаимного влияния, и согласование собственного (локального) движения подсистем с эталонным движением (6.18), возбуждаемым программным управлением.

Решение поставленных задач достигается введением адаптивных управлений Uа1, Uа2, определяемых из выражений (5.44) (5.48).

Разработанная в среде DELPHI 3.0 программа 3 решает систему уравнений (5.42) (5.48) в численном виде. Рассмотрим ее алгоритм, приведенный на рис. 6.10.

В начале программы осуществляется ввод инерционных параметров J, J, J20, J3 манипулятора, параметров am1, am2, bm1, bm2 эталонной модели, коэффициентов передачи kп1, kп2, kс1, kс2 приводов; определяются типы массивов и переменных.

239

Далее с клавиатуры вводятся начальные значения самонастраивающихся коэффициентов

ki1(t), ki2(t), ki3(t), ki4(t), k16(t), k17(t), k18(t), k19(t), k110(t), k26(t), k27(t), k28(t), k29(t), k210(t), постоянные

коэффициенты Gi1, Ai1, Gi2, Ai2, Gi3, Ai3, Gi4, Ai4, pi1, pi2, G16, A16, G17, A17, G18, A18, G19, A19, G110, A

110, G26, A26, G27, A27, G28, A28, G29, A29, G210, A210 адаптивного регулятора, заданные перемещения q, q, начальные значения перемещений q1, q2 и скоростей q1, q2 координат, временные пара-

метры: время начала перемещения t10, время конца перемещения t2, период дискретности Т. Исходя из начальных значений изменяющихся параметров ki1(t), ki2(t), ki3(t), ki4(t), k16(t),

k17(t), k18(t), k19(t), k110(t), k26(t), k27(t), k28(t), k29(t), k210(t), q1, q2, q1, q2 для первого шага квантова-

ния по времени определяются адаптивные управляющие воздействия Uа1, Uа2 и текущие значения ускорений координат манипулятора q1, q2 и эталонной модели q1m , q2m .

Для первого шага квантования рассчитываются конечные значения перемещений q1, q2 и скоростей q1, q2 координат манипулятора, перемещений q1m, q2m и скоростей q1m , q2m эталон-

ной модели исходя из их начальных значений, ускорений и периода Т квантования по времени. Определяются производные от самонастраивающихся коэффициентов ki1(t), ki2(t), ki3(t), ki4(t), k16(t), k17(t), k18(t), k19(t), k110(t), k26(t), k27(t), k28(t), k29(t), k210(t). Рассчитываются их конечные

значения.

Полученные результаты являются начальными значениями параметров для следующего шага квантования, который начинается в момент времени t10 + Т. Циклы расчетов заканчиваются в момент времени t = t2.

240

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]