O documento apresenta uma introdução ao Matlab, Simulink e Simulink Coder Support Package, incluindo detalhes sobre instalação e componentes. É descrito o processo de simulação e verificação de código gerado para kits de desenvolvimento, como NXP FRDM-KL25Z. Contatos e referências são fornecidos no final.
4. Sobre mim
Formação acadêmica
• Engenharia Elétrica com ênfase em Eletrônica – UNISAL
• Técnico em Instrumentação e Automação Industrial/Mecatrônica -
Colégio Dom Bosco
Experiência profissional
• 10 anos de experiência no desenvolvimento de hardware e
firmware.
• Atuei nos setores; Automobilístico, Mobilidade e Transporte,
Automação Industrial e Eletro-Médico.
5. Matlab
O MATLAB é uma ferramenta informática, interativa e de alta
performance, orientada à execução de tarefas que envolvam cálculos
numéricos.
Este software possui uma linguagem de programação própria,
ambiente de programação próprio com excelentes capacidades
gráficas e com um vasto conjunto de funções, organizadas segundo
diversas áreas científicas.
6. Simulink
Simulink é um ambiente de programação gráfica baseado em MATLAB para
modelagem, simulação e análise de sistemas dinâmicos de múltiplos
domínios . Sua interface principal é uma ferramenta gráfica de diagramação
de blocos e um conjunto personalizável de bibliotecas de blocos. Ele oferece
forte integração com o resto do ambiente MATLAB.
Simulink é amplamente utilizado em controle automático e processamento
de sinal digital para simulação de múltiplos domínios e
design baseado em modelo.
7. Simulink Coder Support Package
O “Simulink Coder Support Package” é pacote com uma série de blocos
(Block) predefinidos para diferentes kits de desenvolvimento, tais como:
• Arduino
• NXP Freedom Board
• Raspberry Pi
• Texas Instruments C2000
• STMicroelectronics STM32 Discovery Boards / Nucleo
• BeagleBone Black / Blue
• Entre outros kits de desenvolvimento
8. Code Verification and Validation with
External Mode
O recurso External Mode do Simulink permite que você acelere o processo
de ajuste de parâmetro, permitindo que você altere certos valores de
parâmetro enquanto o modelo está sendo executado no hardware de
destino, sem interromper o modelo. Quando você altera os valores dos
parâmetros de dentro do Simulink, os valores dos parâmetros modificados
são comunicados ao hardware de destino imediatamente. Os efeitos da
atividade de ajuste de parâmetros podem ser
monitorados pela visualização de sinais de
algoritmo em osciloscópios ou telas no Simulink.
9. PIL (Processor-In-the-Loop)
Em uma simulação PIL, o código gerado é executado no kit de
desenvolvimento (no meu caso NXP FRDM-KL25Z). Os resultados da
simulação PIL são transferidos para o Simulink para verificar a equivalência
numérica da simulação e os
resultados da geração do código. O processo
de verificação PIL é uma parte crucial do ciclo
de desenvolvimento para garantir que o
comportamento do código de implantação
corresponda ao design.
10. Software In the Loop (SIL)
Simulação de Software In the Loop (SIL) compila o código-fonte gerado e
executa o código como um processo separado no computador host. Ao
comparar os resultados da simulação normal e SIL, você pode testar a
equivalência numérica de seu modelo e o código gerado.
Durante uma simulação SIL, você pode
coletar cobertura de código e métricas
de tempo de execução para o código
gerado.
11. Instalação
A instalação é bem simples, em Matlab que recurso e licença para utilizar
Simulink, basta clicar “Add-Ons” e em seguida clicar “Get Hardware Support
Packages”. Na janela “Add-On
Explorer”, busque pelo pacote referente ao kit de
desenvolvimento. No meu caso selecionei o
“Simulink Coder Support Package for FRDM-KL25Z”
e “Install”. E para finalizar é necessário fazer o
processo de update. Na própria Home do Matlab
na opção “Help” clique em “Check for Update”.
12. Blocks
O blocos que acompanha o “Simulink Coder Support Package for
FDRM-KL25Z” está dividido em dois grupo
“FRDM-KL25Z” e “FRDM-TFC Shield”.
O primeiro é dedicado aos periféricos da placa
propriamente dito.
Onde temos os seguintes blocos:
Analog Input, Analog Output, Digital Input,
mos o seguinte blocos; Battery Indicator,
Battery Read, DC Motor, Dip Switch,
Line Scan Camera, Momentary Switch,
Potentiometer e Servo Write.