Buscar

Relatorio finaldo trabalho 2 de metodos

Prévia do material em texto

UNIVERSIDADE FEDERAL DO CEARÁ - CAMPUS SOBRAL
CURSO DE ENGENHARIA ELÉTRICA
DISCIPLINA: MÉTODOS NUMÉRICOS
PROFESSOR: SAMELIUS SILVA
APLICAÇÃO DO MÉTODO DE NEWTON-RAPHSON
PARA ENCONTRAR ÂNGULOS DE JUNTA EM BRAÇOS ROBÓTICOS
Eduardo Paixão de Carvalho Neto -402911
Webley Generique Alves - 403247
Augusto Angelo Silva Mesquita - 493611
Francisco Anderson Felismino Da Silva - 394828
Antonio Mateus Sousa Alves - 428952
Sobral - CE
Sumário
INTRODUÇÃO	3
METODOLOGIA	5
DESCRIÇÃO DAS TÉCNICAS EMPREGADAS	5
CÓDIGO COMENTADO	9
RESULTADOS	10
CONCLUSÃO	12
REFERÊNCIAS	13
INTRODUÇÃO
Apesar do desenvolvimento da primeira unidade de controle supervisionada em 1924 por Roy J. Wensley, engenheiro elétrico da We e do primeiro protótipo de um robô industrial pelo engenheiro britânico Bill Griffith P. Taylor em 1938, foi somente na década de 1970 que uma feroz competição tecnológica se desenvolveu. Realizada entre empresas japonesas e norte-americanas para mudar completamente e comercializar a qualidade industrial por meio da produção robótica. Hoje, KUKA na Alemanha e ABB na Suíça são alguns dos fabricantes mais famosos no desenvolvimento desses dispositivos.
Atualmente vivemos a quarta revolução industrial, também conhecida como Indústria 4.0, este conceito envolve tecnologia e novos equipamentos de automação que surgem no processo de fabricação de empreendimentos industriais de diversos setores e escalas de mercado, exigindo equipamentos como braços robóticos industriais.
O braço robótico é um tipo de braço mecânico controlado por computador, tornando-se um dispositivo programável. Por sua vez, um braço mecânico é uma máquina que imita a ação de um braço humano, em outras palavras, um mecanismo que pode agarrar, segurar e transferir um objeto. Este possui uma extremidade fixa, ligada através de feixes possuidores de juntas, a um manipulador que pode assumir a forma de pinça, ventosa ou garra, dependendo da função que deve desempenhar, as juntas permitem a toda a estrutura a realização de movimentos de rotação e translação.
Os graus de liberdade (GL) determinam os movimentos do braço robótico no espaço
bidimensional ou tridimensional. Cada junta define um ou dois graus de liberdade, e, assim, o número de graus de liberdade do robô é igual à somatória dos graus de liberdade de suas juntas. Observa-se que quanto maior a quantidade de graus de liberdade, mais complicadas são a cinemática, a dinâmica e o controle do manipulador. O número de graus de liberdade de um manipulador está associado ao número de variáveis posicionais independentes que permitem definir a posição de todas as partes de forma unívoca.
A posição do órgão terminal de um manipulador depende, a cada instante, dos valores dos deslocamentos angulares das juntas rotativas e deslocamentos lineares das juntas prismáticas. Em outras palavras, se for possível conhecer a posição de cada junta, pode-se saber a posição do órgão terminal e, inversamente, caso se conheça a posição da extremidade do robô pode-se calcular qual deve ser a configuração das juntas para atingir tal posição.
Constata-se, portanto, que é perfeitamente possível calcular a posição cartesiana no espaço, bem como a orientação do punho, com base no conhecimento dos ângulos das juntas. Este equacionamento é conhecido como cinemática direta. O cálculo das posições angulares a partir da posição no espaço consiste, portanto, na cinemática inversa. Uma vez que a determinação das posições das juntas pode tanto ser feita em ângulos, nas juntas rotativas, quanto em deslocamentos, nas juntas lineares, denominando-se genericamente estes de variáveis de junta. A posição no espaço é realizada num sistema de eixos retangulares e é conhecida como coordenada cartesiana.
Uma vez que não há uma regra geral para equacionar a cinemática em braços mecânicos, deve-se analisar caso a caso, assim estes conceitos serão utilizados neste relatório para a solução do problema proposto.
METODOLOGIA
DESCRIÇÃO DAS TÉCNICAS EMPREGADAS
Através do problema proposto, a resolução do mesmo é fazer um arranjo entre os elos utilizando os diferentes ângulos e graus de liberdade que as juntas proporcionam. Dado isso, infere-se que temos um braço robótico que atua em um plano de duas dimensões, usaremos nesse caso uma aproximação para os ângulos das juntas com o intuito de obter uma posição aproximada para o terminal do braço, que se encontra em coordenadas cartesianas. O equacionamento proposto é a cinemática direta, que usa conhecimentos da área do cálculo, pois a partir de variáveis cartesianas (x,y,) iremos obter coordenadas de junta (θ,a) que se relacionam com o que conhecemos como coordenadas polares, descrevendo um ponto no espaço a partir do ângulo “θ” de rotação ao redor da origem e um raio “a” a partir dela.
Para estudarmos as junções, usaremos a letra 𝐽 para as junções, a letra 𝑎 para o comprimento dos braços e a letra grega θ para identificar o ângulo de rotação das juntas. elas estão enumeradas de forma crescente em ordem de proximidade à origem.
Figura 1-Esquema do braço robótico no plano cartesiano
Para encontrarmos as funções dos ângulos iremos usar a trigonometria nos triângulos formados pelas juntas e braços. Se observa que, para as posições cartesianas da segunda junta temos um triângulo formado considerando 𝑎1 uma hipotenusa e as distâncias x e y os catetos. Podemos, a partir do uso de seno e cosseno com a aproximação do nosso ângulo verificar se chegamos as coordenadas desejadas no terminal. Então, definiremos nossas equações como:
Essas equações foram retiradas do gráfico dessas relações, como mostra a figura 2 a seguir:
Figura 2:Geometria dos braços e elos.
Substituindo os valores de a1 e a2 por L1 e L2 encontramos as funções que usaremos no nosso cálculo.
𝑥 = 1𝑐𝑜𝑠θ1+2𝑐𝑜𝑠(θ1+θ2) (01)
𝑦 = 1𝑠𝑒𝑛θ1 +2𝑐𝑜𝑠(θ1 +θ2 ) (02)
A partir dessas equações, usaremos aproximações para θ1 e θ2 para adquirirmos aproximações razoáveis para as coordenadas cartesianas de x e y.
O método numérico utilizado foi o de Newton-Raphson, esse método é baseado na derivada das funções e se existir uma raiz do sistema próxima ao valor inicial, o método irá convergir para o desejado. A solução do sistema de equações lineares pode ser utilizada na solução do sistema de equações não lineares empregando o seguinte esquema iterativo:
A solução é encontrada quando o critério de convergência for satisfeito:
Primeiro temos que escrever o sistema de equações na forma padrão, para identificar o cálculo das raízes:
Fx(θ1,θ2)= 1𝑐𝑜𝑠θ1+2𝑐𝑜𝑠(θ1+θ2)-x. (03)
Fy(θ1,θ2)= 1𝑠𝑒𝑛θ1 +2𝑐𝑜𝑠(θ1 +θ2 )-y. (04)
Para obtermos os incrementos Δxi e Δyi vamos calcular as expressões das derivadas parciais de primeira ordem:
= -1sen 1-2sen( δ𝐹𝑥(θ1,θ2)
δθ1 θ θ1 + θ2)
= -2sen δ𝐹𝑥(θ1,θ2)
δθ2 (θ1 + θ2)
= cos +2cos( δ𝐹𝑦(θ1,θ2)
δθ1 θ1 θ1 + θ2)
= 2cos( δ𝐹𝑦(θ1,θ2)
δθ2 θ1 + θ2)
A partir dessas funções encontradas, é feito o algoritmo computacional com a mesma lógica do método de Newton-Raphson para uma variável. Porém, como se trata de um sistema de equações, usaremos vetores para calcular em forma de matrizes. Logo, com a aproximação inserida iremos conseguir a próxima. Vale ressaltar também a utilização de álgebra linear na inversa da matriz de derivadas parciais, que torna o cálculo numérico mais simples.
Utilizando-se do ambiente SciNotes desenvolveu-se o código completo. A ferramenta se trata de um editor de algoritmos bastante versátil e intuitivo presente no Scilab, onde o usuário pode desenvolver programas que são executados pelo console principal dentro da própria plataforma, com uma linguagem de programação própria que deriva da junção de algumas outras como C++, C, FORTRAN e JAVA. No algoritmo desenvolvido, além da realização de operações matemáticas básicas e utilização das funções matemáticas “inv” (inversa da matriz) e “sene cos” (Seno e cosseno). Também foi utilizada uma estrutura com laço de repetição através das funções “while” e “if” para a aplicação do método de Newton.
CÓDIGO COMENTADO
clear; // Comando do scilab que limpa o histórico de variáveis.
clc; //Comando do scilab que limpa o console de programação.
//Entrada das estimativas iniciais para os ângulos.
θ1 = input ("Digite a estimativa inicial para θ1:");
θ2 = input ("Digite a estimativa inicial para θ2:");
//Entrada de variáveis.
θ = [θ1;θ2]; //Matriz contendo as estimativas iniciais.
laco = 0; //Variável que desarma o laço de repetição "while" quando a angulação pedida é encontrada.
i=0; //Indice contador de interações.
veterro1 = (20); //vetor que armazena o numero de θ1 em cada interação para a plotagem do gráfico.
veterro2 = (20); //vetor que armazena o numero de θ2 em cada interação para a plotagem do gráfico.
vetint = (20); //vetor que armazena o numero de interações para a plotagem do gráfico.
//Valores constantes padrão.
L1 = 1;
L2 = 2;
x=2.5;
y=1.4;
while (laco ~= 1 ) // Laço de repetição que fará as interações ate que o erro seja satisfeito e os angulos encontrados.
//Variaveis que apresentam o comprimento dos braços mecanicos em cada interação.
a = L1*cos(θ(1)) + L2*cos(θ(1)+θ(2)); // Comprimento do braço mecânico em relação ao eixo X.
b = L1*sin(θ(1)) + L2*sin(θ(1)+θ(2)); // Comprimento do braço mecânico em relação ao eixo Y.
//Aplicação do mét. de newton-raphson para mais de uma variavel.
function w=F(θ) //Definição das funções.
w(1) = L1*cos(θ(1)) + L2*cos(θ(1)+θ(2))-x; //Função trajetoria em x.
w(2) = L1*sin(θ(1)) + L2*sin(θ(1)+θ(2))-y; //Função trajetoria em y.
endfunction
 //Função para o calculo da Jacobiana
function w=JF(θ) //Definição das funções
 w(1,1)= -L1*sin(θ(1)) - L2*sin(θ(1)+θ(2))
 w(1,2)= -L2*sin(θ(1)+θ(2))
 w(2,1)= L1*cos(θ(1)) + L2*cos(θ(1)+θ(2))
 w(2,2)= L2*cos(θ(1)+θ(2)) 
endfunction
X1 = θ - inv(JF(θ))*F(θ); //Equação interativa do mét de newton-raphson para mais de uma variavel.
erro = ((θ - X1)*pinv(θ)); //Cálculo do erro.
i = i+1; //Acréscimo na contagem do índice de interações.
θ = X1; //Atribuição dos novos valores de ângulos encontrados.
veterro1(i)= erro(1:1); //atribuição do valor de θ1 ao vetor.
veterro2(i)= erro(2:2); //atribuição do valor de θ2 ao vetor.
vetint(i)=i; //atribuição do valor de interações ao vetor.
if erro == 0 // Teste que constata que os valores de erros atingiram a tolerância esperada.
 laco =1; // Alteração no valor do "laco", desfazendo o laço de repetição. 
 end //Encerramento do if.
mprintf ("\n O numero de interações: %f \n",i); //Saída do número de interações realizadas.
mprintf ("\n O x é %f e o y é %f \n",a,b); //Saída dos comprimentos dos braços mecânicos para cada ângulo.
mprintf ("\n O angulo θ para o ponto expecificado é %4.10f \n",X1); //Saída dos valores do ângulos dos braços mecânicos.
mprintf ("\n O numero de erro é é: %4.18f \n",erro); // Saída dos valores de erro para cada ângulo.
end //Encerramento do while.
plot2d (vetint , veterro1); //Função para plotar o gráfico de erro para θ1 em função das interrações.
plot2d (vetint , veterro2); //Função para plotar o gráfico de erro para θ2 em função das interrações.
RESULTADOS
Após a modelagem do problema e das devidas funções, foram escolhidos arbitrariamente e empregadas no código do SCILAB as estimativas iniciais de θ1= 0.3 e θ2= 0.2, estimativas estas que entregaram após a realização de 7 (sete) interações os respectivos valores de θ e os valores para o erro, convergindo para zero, indicados na Tabela 01 e nos Gráficos 01, 02 e 03.
CONCLUSÃO
Analisando os resultados obtidos por meio de métodos computacionais e desenvolvimentos matemáticos, se utilizando cálculos diferenciais, trigonometria e algoritmos foi possível compreender como o universo da robótica funciona por trás de seus movimentos. O desenvolvimento ao qual culminou os estudos do movimento do braço robótico nos faz idealizar os primeiros passos para empregar o movimento correto de acordo com o elemento robótico necessário, somado ao entendimento do seu objetivo funcional de acordo com suas características e formas diferenciadas. Existem diferentes tipos de braços e com diferentes formas que variam de acordo com sua funcionalidade e por conclusão os cálculos requeridos para cada situação.
O método de newton-Raphson nos mostra determinada eficiência um campo de possibilidades para encontrar os ângulos referidos no problema de acordo com os dados que foram disponibilizados, nos valores encontrados aproximados de θ1= 0,0809 rad e θ2=0,6393 rad. Tabelas e gráficos nos mostram as interações e convergências para que os valores desenvolvidos resultam nos números corretos.
Por fim a conclusão dos métodos utilizados se definem como um caminho não só para o autoconhecimento dos braços robóticos, mas também para a compreensão do seu funcionamento como um todo, podendo ser estendido para os mais variáveis tipos de formas e campos de aplicação tomando como base o incrível avanço tecnológico na área.
REFERÊNCIAS
SERENZA, Eduardo Nantes. ANÁLISE CINEMÁTICA DOS MOVIMENTOS DE UM
GUINDASTE FLORESTAL. Microsoft Word - TCC II - Eduardo Nantes Serenza Rev
08-12, 2015. Disponível em:<https://repositorio.ucs.br/xmlui/bitstream/handle/11338/2064/TCC%20Eduardo%20Nantes%20Serenza.pdf?sequence=1&isAllowed=y>. Acesso em: (02/12/2021).
Clube do Técnico. Robótica: Apostila de Robótica. Clube do Técnico,2006. Disponível
em: <https://clubedotecnico.com/area_vip/apostilas/robotica/rb-1813-robitica.pdf>.
Acesso em: (01/12/2021).
Bolton, W. Engenharia de controle. São Paulo, SP: Makron Books,1995.
Eng. Luis Cesar Emanuelli. Exemplo Método de Newton Raphson e algoritmo Scilab
(aula 02), jul. de 2018. Disponível em:<https://www.youtube.com/watch?v=GNz7V1ksfPw>

Continue navegando

Outros materiais