Professional Documents
Culture Documents
Слика 1: Приказивање роботске руке са два зглоба и два угла, theta1 и theta2
Која је сврха коришћења Фази Логике?
За једноставне структуре као што је роботска рука са два зглоба, могуће је
математички одредити углове на местима везе што даје жељену локацију
врха роботске руке. У случају сложеније структуре(на пример: роботске руке
са n-зглобова роботска руке која оперише у 3-димензионом улазном
простору) добијање математичког решења може бити веома захтевно.
Коришћењем фази логике може се конструисати Фази Интерферентни
Систем, који одређује инверзну кинематику ако је познат директни
кинематски проблем. Исто тако фази решење је лако разумљиво и не захтева
неко посебно предзнање за разумевање и оцењивање.
Уводна излагања
Пошто је формула за кинематику роботске руке са два зглоба позната, x и y
координате за врх руке се одређују из целе области углова ротације два
зглоба. Координате и углови се чувају да би се користили као подаци за
обуку и обучавање ANFIS мреже- Адаптивно Неуро-Фази Систем
Интерференције.
За време обуке ANFIS мрежа учи да мапира координате (x,y) према угловима
(theta1, theta2). Обучена ANFIS мрежа се онда користи као део већег
управљачког система за управљање роботском руком. Познавајући жељену
локацију роботске руке, управљачки систем користи обучену ANFIS мрежу да
би одредио угаони положај зглобова и применио силу на зглобове роботске
руке у складу са кретањем ка жељеној позицији.
Шта је то ANFIS?
ANFIS се односи на Адаптивно Неуро-Фази Систем Интерференције. То
представља хибридну неуро фази технику која способност учења коју има
неуронска мрежа доноси фази систему интерференције.
У овом случају, улазно-излазни подаци се односе на скуп података који се
назива "координате-углови". Координате се понашају као улазне
информације у ANFIS систему а углови се понашају као излазне информације.
Алгоритам учења "учи" ANFIS да би се мапирале координате угловима кроз
процес који се зове обука. На крају обуке, обучена ANFIS мрежа ће научити
улазно-излазно мапирање и бити спремна да то примени у решењима
везаним за веће управљачке системе.
Стварање података
Нека је угао theta1 између првог дела руке и подлоге. Нека је угао theta2 угао
између другог дела руке и првог дела руке (У складу са сликом1). Означимо
дужину првог дела руке са l1 а другог дела руке l2.
Претпоставимо да први зглоб има ограничену слободу да ротира и да може
да ротира између 0 и 90 степени. Слично томе, претпоставимо да други зглоб
има ограничену слободу да ротира између 0 и 180 степени. У складу са тим
може се написати, 0<=theta1<=pi/2 и 0<=theta2<=pi.
Слика 2: Слика приказује све могућности за вредности углова theta1 и theta2.
Сада за сваку комбинацију углова theta1 и theta2 вредности x и y координата
се добијају коришћењем формуле из кинематике.
Следећи код приказује како се стварају подаци за све комбинације углова
theta1 и theta2 а затим се чува у матричном облику да би се искористио у
сврху обуке мреже.
l1 = 10; % дужина првог дела руке
l2 = 7; % дужина другог дела руке
k1 = l1 + l2.*c2;
k2 = l2*s2;
THETA1D = atan2(Y, X) - atan2(k2, k1); % theta1 se odredjuje
THETA1D и THETA2D су променљиве које складиште вредности за углове
theta1 и theta2 који се добијају коришћењем инверзне кинематске формуле.
theta1 и theta2 вредности су претпостављене захваљујући обученим anfis
мрежама коришћењем команде evalfis која оцењује FIS за задате улазе.
Овде се, функција evalfis користи да би се одредили FIS излази за исте x-y
вредности које су раније коришћене у инверзној кинематској формули.
XY = [X(:) Y(:)];
THETA1P = evalfis(XY, anfis1); % ugao theta1 pretpostavljen funkcijom anfis1
THETA2P = evalfis(XY, anfis2); % ugao theta2 pretpostavljen funkcijom anfis2
Сада се може видети како су блиски FIS излази у односу на одређене
вредности углова.
theta1diff = THETA1D(:) - THETA1P;
theta2diff = THETA2D(:) - THETA2P;
subplot(2,1,1);
plot(theta1diff);
ylabel('THETA1D - THETA1P','fontsize',10)
title('Odredjen ugao theta1 - Pretpostavljen ugao theta1','fontsize',10)
subplot(2,1,2);
plot(theta2diff);
ylabel('THETA2D - THETA2P','fontsize',10)
title(' Odredjen ugao theta2 - Pretpostavljen ugao theta2','fontsize',10)
Грешке су 1e-3 опсега што је веома добро за апликацију која се користи. Овај
резултат може бити неприхватљив за другу апликацију, и у том случају се
врши подешавање параметара ка anfis дункцији све док се не дође до
прихватљивог решења.
ОДРЕЂИВАЊЕ РЕШЕЊА КОРИШЕЊЕМ ОБУЧЕНИХ ANFIS
МРЕЖА
[X, Y] = meshgrid(x,y);
k1 = l1 + l2.*c2;
k2 = l2*s2;
XY = [X(:) Y(:)];
subplot(2,1,1);
plot(theta1diff);
ylabel('THETA1D - THETA1P','fontsize',10)
title('Dobijeni ugao theta1 - Pretpostavljeni ugao
theta1','fontsize',10)
subplot(2,1,2);
plot(theta2diff);
ylabel('THETA2D - THETA2P','fontsize',10)
title(' Dobijeni ugao theta2 - Pretpostavljeni ugao
theta2','fontsize',10)
%% Речник
% *ANFIS* - Адаптивно Неуро Фази Систем
Закључивања заснован на техници за
% аутоматско подешавање Sugeno-типа система
закључивања скупа
% података.
%
% *membership functions* - функција која
одређује степен у ком
% дати улаз припада скупу или се односи на
концепт.
%
% *input space* - то је термин који се
користи да дефинише опсег свих могућих
% вредности
%
% *FIS* - Фази Систем Закључивања (Fuzzy
Inference System). Уопштено име за систем
који користи
% фази резоновање за мапирање улазног
простора излазним простором.
%
% *epochs* - 1 epoch обуке представља једну
потпуну презентацију
% свих примера/тачака података/редова
обучених скупова података ка FIS.
% приказани су улази за сваки пример и
израчунати FIS излази
% који се упоређују са жељеним излазима да
би се израчунала грешка између
% њих. Параметри функције припадања се онда
подешавају
% да би смањили грешку између жељеног
излаза и текућег FIS излаза.