• Nenhum resultado encontrado

Reconstrução do valor analógico no Simulink: O valor analógico pode ser reconstruido no Simulink através dos valores de cada bit obtido de forma paralela.

Em uma palavra de 8bits, como no exemplo adotado, o bit mais significativo corres-ponde a 28−1 = 128 vezes o valor dobit em questão. A palavra pode ser reconstruida, conhecendo-se o valor de cada bit e seu peso para reconstrução do valor analógico:

𝑉𝐴=

𝑖=𝑛−1

∑︁

𝑖=0

𝑏𝑖2𝑖

em que n corresponde ao número de bits do valor binário a ser convertido em ana-lógico e 𝑏𝑖 ao valor do i-ésimo bit.

A questão do pino de enable é muito importante nessa metodologia. Sem isso, toda vez que o valor da variável de comando muda, são lidos vários valores intermediários que são incorretos, devido à transição individual de cada bit. Isso gera um sinal bastante ruidoso, tornando necessário a utilização do enable no MATLAB, através do bloco de Enabled Subsystem, repesentado na figura 21. Esse bloco garante que a saída do bloco só será atualizada quando a variável deenablefor igual a 1. Enquanto a mesma for 0, a saída do sistema mantêm seu valor anterior.

Figura 21 – Bloco de Enabled Subsystem disponível no Simulink.

Com esses passos, é possível obter o valor analógico calculado pelo algoritmo de controle embarcado naBeagleBone Black, com o mínimo de atraso possível, requisito que as abordagens anteriores não conseguiram atender.

62 Capítulo 3. Projeto e Construção da Plataforma HIL

possível obter conhecimento sobre as condições de operação do sistema a ser con-trolado, como as faixas de variação das saídas e entradas do modelo, por exemplo.

Isso é crucial para o interfaciamento com o controlador e correto uso da plataforma.

Configuração das entradas e saídas usando a Data Acquisition Toolbox: Uma vez que o comportamento do sistema já é conhecido, pode-se escolher as faixas de operação que serão utilizadas nos sistemas de aquisição de dados, bem como as taxas de amostragem necessárias para a correta simulação do modelo proposto.

Elaboração das equações de conversão de faixas de operação: Implementar as conversões que serão utilizadas para condicionar os sinais que entram e saem tanto do modelo quanto do controlador. Essas conversões foram discutidas nas seções anteriores, e podem ser implementadas utilizando a equação 3.1.

Elaboração do algoritmo de controle em C: É possível desenvolver algorit-mos em diversas linguagens, mas para esse projeto foram priorizados os algoritalgorit-mos desenvolvidos em linguagem C. Isso se deve ao fato de ser uma linguagem de progra-mação amplamente conhecida, de fácil portabilidade de uma plataforma para outra e que possui boa performance computacional.

Embarcar algoritmos de controle em hardware: Uma vez que todas as con-versões foram implementadas, através de blocos no Simulink, é necessário embarcar o algoritmo de controle na BeagleBone Black. Isso envolve por exemplo, ler canais analógicos e enviar os dados através de saídas analógicas PWM da placa. Para isso, a bibliotecalibpruioé utilizada, permitindo que essas funcionalidades sejam acessadas com um única instrução, como Adc->Value para obter o valor de uma entrada ou pwm_ setValue para configurar uma saída analógica PWM com frequência e duty cycle desejados.

Realizar conexões entre os componentes da plataforma HIL: Conexões devem ser feitas entre o microprocessador e os sistemas de aquisição de dados. Não há conexão física propriamente dita entre o modelo e os sistemas de aquisição de dados, uma vez que essa interface já é feita automaticamente com os blocos da Data Acquisition Toolbox. Os canais de saída da PCI DAC-6703 são conectados nos pinos analógicos de entrada daBeagleBone Blacke os pinos de saída daBeagleBone Black são conectados aos canais de entrada da PCI DAS-6013. Os GPIOs, caso utilizados, podem ser conectados nos canais digitais de ambas as placas.

Realizar a simulação HIL:Por fim, com todos os itens anteriores implementados, pode-se realizar a simulação HIL e averiguar o comportamento do sistema.

Para facilitar a simulação HIL propriamente dita, foram feitos alguns templates, ou seja, arquivos padrões e pré-configurados para realizar essas etapas de maneira mais

simples. Foram desenvolvidos três arquivos: hil_ setup.m, model_ template.slx e control_

template.c. Tanto hil_ setup.m quanto control_ template.c encontram-se em anexo no final deste trabalho.

O primeiro arquivo (hil_ setup.m) é um script que deve ser executado antes de cada simulação HIL. Ele carrega todos os parâmetros do sistema, como limites em cada entrada e saída, número de bits a ser utilizado para representação do sinal de comando, variáveis utilizadas na representação matemática do sistema, tempo de amostragem, etc.

Todos esses dados são preenchidos pelo usuário, de forma que seja possível testar diferentes condições de operação para o modelo, sem ser necessário fazer modificações no modelo propriamente dito.

O arquivo model_ template.slx já contem um modelo pré-configurado para realizar a simulação HIL. Ele é separado em três subsistemas: entradas, modelo e saídas, como mostra a figura 22. O subsistema de entradas já possui uma entrada configurada para variável de comando através dos canais digitais dos sistemas de aquisição de dados e uma entrada analógica proveniente da PCI-DAS 6013. O subsistema modelo é onde encontra-se a repreencontra-sentação matemática do sistema físico a encontra-ser testado. Por fim, o subsistema de saídas possui quatro saídas analógicas da PCI-DAC 6703 pré-configuradas para funcionar com os limites estabelecidos no arquivo hil_setup.m.

Figura 22 –Template de modelo para simulação HIL.

O template control_ template.c é um exemplo de como o algoritmo de controle deve ser embarcado na BeagleBone Black. Ele já possui em seu cabeçalho as bibliote-cas necessárias para seu funcionamento, desde bibliotebibliote-cas padrões da linguagem C (como stdio.h e stdlib.h), como uma biblioteca desenvolvida para implementar funções que re-alizam as etapas descritas na seção 3.4, como converter um valor analógico em binário ou ler um canal analógico do microprocessador usando a biblioteca libpruio. Antes do programa principal são definidos os valores mínimos e máximos das entradas e saídas do controlador, de forma que qualquer mudança de condições de operação do sistema podem ser efetuadas diretamente nessa seção.

Há uma seção específica para o algoritmo de controle, que o usuário da plataforma deve editar para embarcar a estratégia de controle desejada. Após a seção do algoritmo,

64 Capítulo 3. Projeto e Construção da Plataforma HIL

há funções responsáveis por transmitir o valor da variável de comando para o sistema de aquisição de dados, e, posteriormente, ao modelo do sistema físico no MATLAB.

É importante salientar que para a simulação funcionar corretamente, os valores máximos e mínimos das entradas e saídas do modelo e do controlador devem ser iguais.

Todas essas informações podem ser editadas pelo usuário, de forma que o mesmo deve realizar modificações com muita atenção. Entradas e saídas podem ser adicionadas ou removidas, desde que o usuário siga os mesmos padrões descritos nesses três arquivos.

4 Validação experimental da plataforma HIL

Este capítulo descreve os testes realizados para validar experimentalmente a plta-forma desenvolvida neste trabalho. Em um primeiro momento, realizou-se a calibração da plataforma, para que fosse possível realizar simulações HIL de forma adequada.

Posteriormente, foram realizadas as simulações HIL de dois modelos distintos, com duas estratégias de controle diferentes. Primeiramente, foi realizada a simulação HIL de um sistema com referência variável, controlado por um algoritmo de controle PI embarcado naBeagleBone Black. Por fim, foi realizada a simulação HIL do modelo de uma suspensão automotiva, desta vez com um controlador LQR embarcado na BeagleBone Black.

Cada uma das seções a seguir trata de um dos testes descritos acima, apresentando os resultados experimentais obtidos com a plataforma para cada um.

Documentos relacionados