• Nenhum resultado encontrado

2.6 Hardware Reconfigurável

2.6.1 FPGAs Field-Programmable Gate Arrays

Os FPGAs são circuitos integrados compostos por um arranjo de células lógicas que podem ser programadas para executar funções lógicas, armazenar dados e efetuar roteamento de sinais para outras células lógicas. Esta característica torna possível a criação de praticamente qualquer ar- quitetura desejada, limitada basicamente pela quantidade de elementos presentes em cada FPGA. Além disso, o fato de ser possível criar várias cópias de um módulo ou mesmo vários módulos diferentes torna o FPGA uma ótima arquitetura para paralelização. Sua programação é realizada através de linguagens de descrição de hardware HDL (Hardware Description Language) sendo as mais comuns o VHDL (VHSIC Hardware Description Language) e o Verilog [25].

Além dos elementos lógicos, multiplicadores e memórias internas, FPGAs modernos são co- mercializados com uma arquitetura de SoC, possuindo dentro do chip, além da área reprogramá- vel, um processador dedicado.

Atualmente estão presentes no mercado diversos fabricantes de FPGA incluindo Achronix Semiconductor, Actel, Altera, AMI Semiconductor, Atmel, Cypress Semiconductor, Lattice Se- miconductor, QuickLogic, e Xilinx. Cada fabricante oferece dispositivos com diversos tamanhos em termos do número total de portas lógicas, memórias embarcadas e elementos de processa- mento DSP embutidos.

Em termos de configuração de processadores embarcados internamente no FPGA observam- se exemplos dos dois maiores fabricantes a Altera e a Xilinx. A Altera oferece em seus FPGAs a possibilidade de configurar o processador Nios II que é um Soft Core Processor ou softcore (processador reconfigurável que utiliza os elementos lógicos do FPGA) e a Xilinx oferece o Soft

Processor MicroBlaze. Também estão disponíveis processadores hardcore (SoC) como o ARM

na família Cyclone V da Intel/Altera [108] e na família Zynq da Xilinx [109], o que torna soluções de coprojeto mais eficientes [110].

Apesar de historicamente os FPGAs oferecerem um número limitado de células lógicas, baixa frequência e maior consumo de energia comparado às soluções em hardware dedicado (ASIC), lançamentos recentes de ambos os fabricantes que utilizam tecnologia de fabricação com tran- sistores de 16 e 14 nm fornecem soluções com um número alto de células lógicas, na casa dos milhões e altas frequências, na faixa de 1 GHz. Dois exemplos práticos são os FPGAs da família Virtex-7 da Xilinx [111] com até 2.000.000 elementos lógicos e o FPGA da família Stratix 10 da Intel/Altera [112] com até 5.510.000 elementos lógicos. Ambas estas características aliadas com as tecnologias de fabricação são capazes de fornecer uma redução no consumo de energia de até 70% em comparação com a geração anterior, tornando estes dispositivos cada vez mais atrativos para uso em larga escala.

3 CONTROLADOR NMPC UTILIZANDO RNA/SVM

A primeira abordagem para acelerar o cálculo da solução do NMPC foi a de utilizar Redes Neurais Artificiais (RNAs) e de Máquinas de Vetor de Suporte (SVMs), mais especificamente SVRs (Support Vector Regressor) que são uma versão de SVM para problemas de regressão, com o intuito de substituir o papel do controlador e obter arquiteturas para altas frequências de amostragem. Esta abordagem é inspirada no trabalho de Ortega e Camacho [27] onde uma RNA foi utilizada em um controlador preditivo aplicado ao sistema de navegação de um robô móvel.

A metodologia aplicada é representada na Figura 3.1 e consiste em:

(i) Cálculo da solução NMPC offline e Treinametno da RNA/SVR: nesta etapa, a solução do controlador NMPC é calculada a partir de simulações numéricas no Matlab. O sistema é descrito com auxílio da ferramenta Simulink que é responsável por calcular as predições, dada uma entrada. Como solver, utilizou-se a função fmincon do Matlab, que é capaz de resolver problemas de otimização não-lineares com restrições. As soluções obtidas em cada período de amostragem são armazenadas e utilizadas para o treinamento da RNA ou SVR. (iii) Utilização da RNA/SVR como controlador do sistema: a solução aproximada obtida

no passo anterior é implementada em hardware a partir de uma descrição VHDL (VHSIC Hardware Description Language), gerada automaticamente a partir de um gerador automá- tico desenvolvido neste trabalho. Em seguida é utilizada no lugar do controlador NMPC.

NMPC

RNA/SVR

Sistema

z

-1 uk+1 xk + -

(i) Solução NMPC offline e treinamento da RNA/SVR

RNA/SVR

uk+1

z

-1

Sistema

xk

(ii) Utilização da RNA/SVR x_refk

x_refk+N x_refk x_refk+N

Figura 3.1: Método de treinamento da RNA/SVR.

Três abordagens foram utilizadas seguindo esta metodologia e geraram três publicações [113, 33, 94]. No primeiro trabalho [113], RNAs do tipo RBF foram utilizadas para aproximar o com- portamento do controlador NMPC. Já no segundo trabalho uma ferramenta desenvolvida por San- tos [33] foi utilizada para treinar SVRs utilizando além do kernel RBF um kernel polinomial mais simples que diminui o tempo de cálculo da solução bem como a utilização de recursos de hard-

ware. Um resumo da aplicação e dos resultados dos dois primeiros trabalhos é apresentado a seguir.

3.1 UTILIZAÇÃO DE RNA E SVM COMO CONTROLADOR NMPC DE UM BRAÇO

ROBÓTICO

Nestes dois trabalhos, o caso de estudo selecionado foi o de controle de um braço robótico com uma junta de revolução elástica e um grau de liberdade como benchmark. Em muitas aplicações de robótica industrial a elasticidade de juntas advindas de folgas e elasticidade de engrenagens, correias de transmissão ou redutores do tipo harmônico são consideradas [114]. A junta elástica de revolução é modelada como uma mola com torção conectando a junta com o braço. O robô, pode ser visto na Figura 3.2 onde se observa que o mesmo está livre para girar no plano vertical.

a" u k qm ql h Jl, m Jm

Figura 3.2: Robô manipulador com junta elástica.

A equação apresentada a seguir, descreve seu modelo e foi desenvolvida por Zhang, Polycarou e Parsini [115]:

Jlq¨l+ K(ql− qm) + mgh sin ql = 0 (3.1a)

Jmq¨m+ Fmq˙m− K(ql− qm) = Kτu, (3.1b)

onde ql e qm são as posições angulares do braço e do motor, respectivamente. As inércias do

braço e do motor são representadas por Jle Jm. Para modelar o comportamento elástico da junta,

uma mola de torção é utilizada, sua constante é definida como K. A massa e o comprimento do braço são definidos com o m e 2h, e a aceleração de gravidade por g. O ganho de amplificação é

definido como Kτ, e a viscosidade nominal do motor tem seu coeficiente representado por Fm. A

entrada do sistema, u, é o torque do motor.

Este sistema (3.1) é relatado na literatura como um modelo de ensaio para métodos de de- tecção de falhas e isolamento (FDI - Fault Detection and Isolation) [115] e procedimentos de estimação não-linear [116]. Segundo [116, 115], valores adequados para cada um dos parâmetros

são 9.3 × 10−3 kg m2e 3.7 × 10−3 kg m2para a inércia do braço e do motor , 1.8 × 10−1 Nm/rad

para a constante de torção da mola, 2.1 × 10−1 kg para a massa do braço, 1.5 × 10−1 m para o

o coeficiente de viscosidade e 9.8 m/s2 para a aceleração da gravidade.

A descrição do sistema em espaço de estados discreto é apresentada na Equação (3.1).

x(k + 1) = f (x(k), u(k)), y(k) = x(k), (3.2)

onde x(k), u(k) e y(k) representam o vetor de estados, o vetor de entradas e o vetor de saídas do sistema, respectivamente. É importante observar que todos os estados são assumidos como mensuráveis, ou seja, não há o emprego de um estimador de estados.

O vetor de estados é definido por: x = [ql q˙lqm q˙m]T. As restrições para a saída do controlador (torque de entrada do sistema) são definidas pelo conjunto Ω = [−4, 4].

O problema de controle é expresso pela Equação (3.1).

minu(k,k+N −1)J (x(k), u(k, k + N − 1)) ,

PN

k=1kxref(k) − x(k)k2,

s.a. ui ∈ Ω, ∀i ∈ [k, k + N − 1], (3.3)

onde xref(k) é a referência a ser seguida pelo estado x(k) em um dado instante k, N é o tamanho

do horizonte de predição e o conjunto Ω define as restrições para as variáveis de controle. Utiliza-

se ainda a notação uoptk para representar a sequência ótima de controle dentro do horizonte de

predição.

Documentos relacionados