Você está na página 1de 5

SIMULINK FUNO DO USURIO 1 INTRODUO

Tutorial referente criao e uso de blocos personalizados no Simulink, sendo essa uma ferramenta para simular, modelar, controlar e analisar sistemas dinmicos atravs de blocos funcionais.

CRIANDO UM BLOCO DO USURIO

O Simulink dispe de inmeros blocos pr-configurados mas em alguns momentos o desenvolvedor deseja utilizar seu prprio cdigo seja para simplificar o projeto, seja para acrescentar funcionalidades ao projeto. Para o tutorial, ser criado um bloco que far a leitura de 2 entradas e ter como sada o somatrio das mesmas. O primeiro passo a abertura do Simulink atravs do Workspace do Matlab: >> simulink

Figura 1 Library Browser do Simulink.

O menu que aberto (Library Browser) destinado procura dos blocos funcionais existentes. Antes de adicionar os blocos deve-se criar um novo arquivo de projeto, selecionando-se: File/New/Model. Para que um bloco personalizado seja adicionado, deve-se digitar na busca no Library Browser o termo: s-function conforme a Figura 2.
Arthur Schuler da Igreja Pgina 1

Figura 2 Bloco M-file S-function.

Deve-se selecionar o bloco e arrast-lo para o novo modelo criado conforme a Figura 3.

Figura 3 Bloco adicionado ao modelo.

O prximo passo criar o arquivo m.file (cdigo Matlab) que ser executado dentro do bloco. Para isso, deve-se retornar ao Workspace e acessar: File/New/Script. O arquivo dever ter algumas funes pr-definidas conforme segue:

Arthur Schuler da Igreja

Pgina 2

function bloco_teste(block) setup(block); end function setup(block) %% DEFINIO DO NMERO DE ENTRADAS E SADAS DO BLOCO block.NumInputPorts = 2; block.NumOutputPorts = 1; block.SetPreCompInpPortInfoToDynamic; block.SetPreCompOutPortInfoToDynamic; %% DEFINIO DO SAMPLE TIME DO BLOCO 0.1 SEGUNDOS block.SampleTimes = [0.1 0]; block.SetAccelRunOnTLC(true); block.RegBlockMethod('Outputs',@Output); end %% BLOCO ONDE A FUNO DECLARADA function Output(block) ENTRADA1=block.InputPort(1).Data; %% FAZ LEITURA DA ENTRADA 1 ENTRADA2=block.InputPort(2).Data; %% FAZ LEITURA DA ENTRADA 2 block.OutputPort(1).Data = ENTRADA1+ENTRADA2; %% PROCESSA SADA end

Tal cdigo dever ser salvo com o nome bloco_teste.m visto que foi o nome declarado no incio do cdigo. Para salvar: File/Save as..../bloco_teste.m conforme a Figura 4.

Figura 4 Salvando cdigo da funo.

Arthur Schuler da Igreja

Pgina 3

Voltando para o Simulink, clica-se 2 vezes em cima do bloco mlfile e no campo M-file name: indica-se a funo criada.

Figura 5 Indicando funo a ser executada.

Confirmando-se em Apply/OK o bloco toma a forma declarada, ou seja, com 2 sinais de entrada e 1 sinal de sada. Em seguida, conecta-se um sinal de STEP em cada uma das entradas para verificar o correto funcionamento do projeto e um SCOPE na sada.

Figura 6 Bloco com sinais de entrada e sada conectados.

No primeiro sinal de Step, clicando-se duas vezes, ser alterada a amplitude do sinal de 1 para 2 atravs da mudana do parmetro Final value: e confirmando-se em OK.

Arthur Schuler da Igreja

Pgina 4

Figura 7 Bloco STEP com amplitude modificada.

Dessa forma o bloco ter um sinal de entrada com amplitude 1 e outro com 2 e dever ter sada igual ao somatrio. Para verificar o funcionamento basta acessar o menu Simulation/Start. Para verificar o grfico de sada basta clicar 2 vezes em cima do bloco Scope.

Figura 8 Sinal de sada com somatrio das entradas.

Arthur Schuler da Igreja

Pgina 5