Методическое пособие 357
.pdffor i=1:n for j=1:n
er(3*i-2:3*i,j)=cross(E(:,i),R(3*i-2:3*i,j))*(1-z(i))+E(:,i)*z(i); end
end
%расчет А
A=zeros(n,n); for i=1:n for k=1:n
l=i; if k>l l=k; end
for j=l:n
Jj=[J(j,1) 0 0 ;0 J(j,2) 0 ; 0 0 J(j,3)]; Q=[Q1(:,i) Q2(:,i) Q3(:,i)]; Jj=Q'*Jj*Q;
A(i,k)=A(i,k)+m(j)*er(3*i-2:3*i,j)'*er(3*k-2:3*k,j)+E(:,i)'*Jj* E(:,k)*(1-z(i))*(1-z(k));
end end end
%расчет В
for i=1:n B=zeros(n,n); for l=1:n for k=l:n
if i>k max=i; else max=k; end
for j=max:n B(k,l)=B(k,l)-m(j)*er(3*i-2:3*i,j)'*cross(E(:,l),er(3*k-:3*k,j)); end
60
end end
for k=1:n-1 for l=k+1:n B(k,l)=B(l,k); end
end eval(['B',num2str(i),'=B;']) end
% Расчет С
C=zeros(n,1); for i=1:n for j=i:n
C(i)=C(i)+m(j)*er(3*i-2:3*i,j)'*[0; 0; -9.8]; end
end
for i=1:n B(i,i)=P1(i,I)*B(i,i)*P1(i,I); end
dinam11s; end
6. Определяются вектор требуемых значений обобщенных сил в сочленениях манипулятора, а также векторы управляющих токов и напряжений из уравнений (1.37)–(1.40) (программа 6).
Программа 6
% Расчет p,u,I A1(1,1)=Jr(1,1)*nred(1,1)*nred(1,1)+A(1,1); A1(2,2)=Jr(2,1)*nred(2,1)*nred(2,1)+A(2,2); A1(3,3)=Jr(3,1)*nred(3,1)*nred(3,1)+A(3,3);
for j=1:n
Pzad(j,I+1)=A1(j,j)*(P2(j,I))+B(j,j)+C(j) +K1(j,1)*(P1(j,I)- q1t(j,I))+K0(j,1)*(P(j,I)-qt(j,I))); mom(j,I)=Pzad(j,I+1)/kpreobr(j,1);
61
prqr(j,I)=qt(j,I)*kpreobr(j,1);
prqqr(j,I)=q1t(j,I)*kpreobr(j,1);
prqqqr(j,I)=q2t(j,I)*kpreobr(j,1);
x3n(j,I)=mom(j,I)/Km(j,1); un(j,I)=(-a32(j,1)*prqqr(j,I)-a33(j,1)*x3n(j,I))/b3(j,1); end
end
7. Определяется вектор ускорений координат на текущем дискретном интервале. Рассчитываются конечные значения перемещений и скоростей звеньев манипулятора, являющиеся их начальными значениями на следующем дискретном интервале (программа 7), в соответствии с формулами:
|
|
|
|
|
2 |
|
|
|
|
|
|
qi,s Tд |
|
|
|
|
|
|
; |
(3.2) |
|||
qi, s 1 qi,s qi,s Tд |
2 |
||||||
qi,s 1 |
|
|
|
|
|
(3.3) |
|
qi,s qi,s Tд , |
|
|
|||||
|
|
|
|
|
|
|
|
где i – номер обобщенной координаты; s – номер дискретного интервала;
qi,s+1, qi,s – значения обобщенной координаты в конце и начале интервала;
qj, s 1, qj, s – скорость звена манипулятора в конце и нача-
ле интервала; Тд – длительность дискретного интервала;
qj, s – ускорение звена на текущем интервале.
Программа 7
if I==1 q1t(j,I)=qzad1(j,1); qt(j,I)=qzad(j,1); else
q2t(j,I+1)=(Pzad(j,I+1)-B(j,j)-C(j))/A1(j,j); qt(j,I+1)=qt(j,I)+q1t(j,I)*td+(q2t(j,I+1)*(td^2))/2; q1t(j,I+1)=q1t(j,I)+q2t(j,I+1)*td;
end end
62
8. После окончания расчетов на всех дискретных интервалах выводятся временные диаграммы изменения перемещений, скоростей и ускорений обобщенных координат, а также управляющих усилий, токов и напряжений (программы 8–13).
Программа 8
% Перемещение subplot(kolokon,1,tekokno); xlabel('t,сек.');
if steppodw(tekokno)==n+1 eval(['funcz=',grafik(i,:),';']); plot(qt,funcz,'-');grid; ylabel([grafik(i,:)]);
else eval(['funcz=',grafik(i,:),'(',int2str(steppodw(tekokno)),',:);']); plot(qt(steppodw(tekokno),:),'-');grid; ylabel([grafik(i,:),int2str(steppodw(tekokno))]);
end
Программа 9
% Скорость subplot(kolokon,1,tekokno); xlabel('t,сек.');
if steppodw(tekokno)==n+1 eval(['funcz=',grafik(i,:),';']); plot(q1t,funcz,'-');grid; ylabel([grafik(i,:)]);
else eval(['funcz=',grafik(i,:),'(',int2str(steppodw(tekokno)),',:);']); plot(q1t(steppodw(tekokno),:),'-');grid; ylabel([grafik(i,:),int2str(steppodw(tekokno))]);
end
63
Программа 10
% Ускорение subplot(kolokon,1,tekokno); xlabel('t,сек.');
if steppodw(tekokno)==n+1 eval(['funcz=',grafik(i,:),';']); plot(q2t,funcz,'-');grid; ylabel([grafik(i,:)]);
else eval(['funcz=',grafik(i,:),'(',int2str(steppodw(tekokno)),',:);']); plot(q2t(steppodw(tekokno),:),'-');grid; ylabel([grafik(i,:),int2str(steppodw(tekokno))]);
end
Программа 11
% Усилие subplot(kolokon,1,tekokno); xlabel('t,сек.');
if steppodw(tekokno)==n+1 eval(['funcz=',grafik(i,:),';']); plot(Pzad,funcz,'-');grid; ylabel([grafik(i,:)]);
else eval(['funcz=',grafik(i,:),'(',int2str(steppodw(tekokno)),',:);']); plot(Pzad(steppodw(tekokno),:),'-');grid; ylabel([grafik(i,:),int2str(steppodw(tekokno))]);
end
Программа 12
% Напряжение subplot(kolokon,1,tekokno); xlabel('t,сек.');
if steppodw(tekokno)==n+1 eval(['funcz=',grafik(i,:),';']); plot(un,funcz,'-');grid; ylabel([grafik(i,:)]);
64
else eval(['funcz=',grafik(i,:),'(',int2str(steppodw(tekokno)),',:);']); plot(un(steppodw(tekokno),:),'-');grid; ylabel([grafik(i,:),int2str(steppodw(tekokno))]);
end
Программа 13
% Ток якоря subplot(kolokon,1,tekokno); xlabel('t,сек.');
if steppodw(tekokno)==n+1 eval(['funcz=',grafik(i,:),';']); plot(x3n,funcz,'-');grid; ylabel([grafik(i,:)]);
else eval(['funcz=',grafik(i,:),'(',int2str(steppodw(tekokno)),',:);']); plot(x3n(steppodw(tekokno),:),'-');grid; ylabel([grafik(i,:),int2str(steppodw(tekokno))]);
end
При решении задачи моделирования движения манипулятора в реальном времени необходимо применение современных быстродействующих персональных компьютеров и соответствующих программных средств, а также распараллеливания вычислительных операций с применением мультипроцессорной схемы системы управления.
3.3.Особенности моделирования движения роботов
иРТС в реальном масштабе времени
Использование робототехнических комплексов, станков с числовым программным управлением, средств вычислительной техники позволяет оперативно переходить на выпуск новых изделий. При этом необходимо обеспечить взаимодействие и координацию всех информационно-вычислительных ресурсов и проводить обработку информации за ограниченное
65
время. Управление манипулятором с учетом взаимовлияния звеньев связано с формированием его модели в реальном масштабе времени.
Особенностью моделирования в реальном масштабе времени является существенная ограниченность вычислительных ресурсов, так как машинные модели реализуются, как правило, на базе микроконтроллеров, в которых имеется ограничение по быстродействию и объ му памяти. Это требует тщательного подхода к минимизации затрат ресурсов по моделированию в реальном масштабе времени [6]. При моделировании робототехнических систем может отсутствовать информация об условиях их работы. В этом случае необходимо построение адаптивных систем управления.
Моделирование в реальном времени связано с выбором вычислительной машины, задачей которой является выполнение необходимых расчетов за ограниченное время. Способность конкретной вычислительной машины решать эту задачу определяется вычислительной сложностью моделирующего алгоритма и временем выполнения отдельных операций.
Математические выражения, составляющие модель, включают алгебраические операции над действительными числами. Вычислительная сложность алгоритма выражается числом операций умножения, деления, сложения и вычитания. Объем вычислительной работы (общее количество машинных операций) используется для получения таких нормативных показателей, как необходимые быстродействие и объем памяти, на основе которых осуществляется выбор цифровой вычислительной машины.
Наиболее точно объем вычислительной работы можно определить, используя машинную программу. Однако на этапе выбора вычислительной машины составлять такую программу нецелесообразно; оценку вычислительной работы осуществляют на основе опыта решения аналогичных задач или аналитически с использованием схемы алгоритма моделирующей программы.
66
Время отработки алгоритма на вычислительной машине можно определить как суммарное время выполнения всех операций. Для моделирования движения манипулятора в реальном времени необходимо, чтобы это время было меньше периода дискретности.
Объем памяти вычислительной машины должен превышать максимально возможный объем данных и программ, определяемый на основе анализа информационного графа алгоритма моделирующей программы.
При использовании модели объекта в контуре управления робототехнической системой в реальном масштабе времени возникает также проблема оперативного обновления информации о текущем состоянии системы и последовательности смены ее состояний. Поэтому построение детерминированных моделирующих алгоритмов приводит либо к увеличению времени моделирования при уменьшении периода дискретности Тд, либо к снижению достоверности получаемой информации при увеличении Тд. В этом случае необходимо использование стохастических алгоритмов.
Для ускорения процесса разработки программного обеспечения и повышения его качества рационально разрабатывать соответствующие пакеты прикладных программ, на основе которых с использованием ресурсов высокопроизводительных вычислительных машин генерируются рабочие программы моделирования.
Следует отметить, что микропроцессорная техника дает необходимую универсальность и гибкость при отработке моделирующих алгоритмов, наглядно отражает результаты расчетов и позволяет хранить их в файлах данных. Но микропроцессорная реализация имеет и существенный недостаток: ограниченную способность обмена данными в рамках мультипроцессорной структуры типа «общая шина». В том случае, если это ограничение приводит к существенному снижению производительности системы, целесообразно применение транспьютеров – микропроцессоров, специально спроектиро-
67
ванных как блоки для построения параллельных систем [8]. Мультипроцессорные структуры характерны для адаптивных систем управления.
Транспьютеры позволяют системным проектировщикам создавать сети процессоров, удовлетворяющие требованиям по производительности. Транспьютерная сеть технически реализуется в виде комплекта модулей, имеющих средства стыковки с другими ЭВМ через стандартные системные интерфейсы.
На рис. 3.1 показан один из возможных вариантов конфигурации транспьютерных средств. В состав структуры входят персональный компьютер типа IBM PC и мультикластер типа МС-3 с сетью транспьютеров Т0–Т7, соединенный с IBM РС посредством транспьютерного адаптера ВВК-РС.
|
|
|
|
|
|
|
Шина IBM PC |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
BBK- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
IBM PC |
|
||||||||||||||||
|
PC |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MC-3 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
T0 |
|
|
T1 |
|
|
T2 |
|
|
|
|
T3 |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
T4 |
|
|
T5 |
|
|
T6 |
|
|
|
|
T7 |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 3.1. Транспьютерный комплекс
68
Применение транспьютеров позволяет получить практически линейный рост производительности в зависимости от числа транспьютеров.
3.4. Математическое описание адаптивной системы управления робота
Рассмотрим особенности моделирования робота с взаимосвязанной адаптивной системой управления с эталонной моделью и параметрической настройкой.
Полная локальная адаптивная структура содержит следующие компоненты.
1. Совокупность локальных эталонных моделей
qim |
= bmi(qiз – qim) – ami |
qim , |
(3.4) |
|
|
|
|
где qim ,qim , qim – ускорение, скорость и перемещение коорди-
наты при эталонном движении;
ami = ikсi /Jiс, bmi = ikпi /Jiс.
2. Совокупность локальных адаптивных законов [8]
|
2 |
+ki4(t)qiз, |
i = 1, 2,..., n, (3.5) |
Uалi = ki1(t)qi+ki2(t) qi +ki3 |
(t) qi |
где ki1(t), ki2(t), ki3(t), ki4(t) – самонастраивающиеся коэффициенты.
|
3. |
Совокупность алгоритмов настройки параметров: |
|||||
|
(t) =–Gi1diqi –Ai1ki1(t); |
|
(t)=–Gi2di qi –Ai2ki2(t); |
||||
ki1 |
ki2 |
||||||
|
|
|
|
|
|
|
|
|
(t)= |
–Gi |
|
2 |
|
(t)=–Gi4diqiз–Ai4ki4(t); (3.6) |
|
ki3 |
3di qi –Ai3ki3(t); |
ki4 |
|||||
|
di=pi1 |
|
|
|
|
i = 1, 2, ..., n, |
|
|
(qi – qim) + pi2 (qi qim ) ; |
||||||
|
|
|
|
|
|
|
|
где Gi1, Ai1,Gi2, Ai2,Gi3, Ai3,Gi4, Ai4, pi1, pi2 – положительные коэффициенты усиления алгоритмов настройки.
Полная развязывающая адаптивная структура состоит из совокупности эталонных моделей (3.4) и развязывающих адаптивных законов управления вида [8]
69