quarta-feira, 16 de outubro de 2019

Simulink para C -- Parte 1

Untitled
O presente post tem a finalidade de evidenciar como que se converte um programa originalmente criado no ambiente Matlab-Simulink para linguagem C, o qual pode ser embarcado.
A primeira parte do programa se restringirá apenas ao ambiente do Simulink. Dessa forma, o passo a passo a seguir mostrará o que foi feito.
  • Abra o ambiente Simulink partindo do click no ambiente Matlab, ou digitando Simulink no prompt do Matlab
  • Após a abertura da interface inicial do Simulink, clique na aba abaixo para abrir um novo projeto em Simulink.
  • Essa é a aba de um projeto em branco no Simulink.
  • Crio o seguinte sistema de simulação no ambiente Simulink. No caso, foi evidenciado o resultado final da simulação do sistema.
  • Crio um sub-bloco conforme figura abaixo.
  • Internamente, o bloco resultante está abaixo.
  • Renomeou-se o nome do bloco, o nome das variáveis de entrada e as variáveis de saída, conforme a Figura a seguir.
  • Clicando na aba Display > Sinal&Ports > Port Data Types, conforme Figura abaixo, possibilita que se tenha noção do tipo de dado que é esperado como entrada e saída do bloco a ser embarcado. Esta etapa é primordial para que o programa a ser embarcado não apresente arestas devido algum descasamento entre sinal e variável programada.
  • Dessa forma, o tipo de variável de entrada e saída do programa resultante está mostrado na Figura abaixo:
  • Tem como realizar alterações nos tipos default do sistema. No caso, deseja-se alterar os tipos de variável das entradas u1 e u2 de double para int32. Dessa forma, dá-se, inicialmente, um duplo clique no bloco Constant que servirá como fonte para a entrada u1 e no final das contas aparece a seguinte tela, na qual deve-se clicar na aba Signal Attribute. Uma vez lá, percebe-se que no item Data Type originalmente está definido como Inherit:auto.
  • Na seta do Data Type, pode-se alterar o referido dado para o tipo de interesse. No caso, conforme interesse, será alterado para int32
  • Este mesmo procedimento é realizado para u2 e também para as variáveis de entrada do sistema (no caso os blocos Constant e Constant1), conforme Figura abaixo:
A parte dois desse registro tem a continuação.

Nenhum comentário:

Postar um comentário