001 - Criando Um Novo Workflow No ProtheusDescrição completa
Descrição completa
Descrição completa
Criando entidadesDescrição completa
Descrição completa
reseña de funes
Descripción completa
Bom livroDescrição completa
Tutorial Matlab simulink
Descripción completa
SIMULINK – FUNÇÃO DO USUÁRIO 1
INTRODUÇÃO
Tutorial referente à criação e uso de blocos personalizados no Simulink, sendo essa uma ferramenta para simular, modelar, controlar e analisar sistemas dinâmicos através de blocos funcionais.
2
CRIANDO UM BLOCO DO USUÁRIO
O Simulink dispõe de inúmeros blocos pré-configurados mas em alguns momentos o desenvolvedor deseja utilizar seu próprio código 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 saída o somatório das mesmas. O primeiro passo é a abertura do Simulink através 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
Página 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 próximo passo é criar o arquivo m.file (código Matlab) que será executado dentro do bloco. Para isso, deve-se retornar ao Workspace e acessar: File/New/Script. O arquivo deverá ter algumas funções pré-definidas conforme segue:
Arthur Schuler da Igreja
Página 2
function bloco_teste(block) setup(block); end function setup(block) %% DEFINIÇÃO DO NÚMERO DE ENTRADAS E SAÍDAS DO BLOCO block.NumInputPorts block.NumInp utPorts = 2; block.NumOutputPorts = 1; block.SetPreCompInpPortInfoToDynamic; block.SetPreCompOutPortInfoToDynamic; %% DEFINIÇÃO DO SAMPLE TIME DO BLOCO – 0.1 SEGUNDOS block.SampleTimes = [0.1 0]; block.SetAccelRunOnTLC(true); block.RegBlockMethod( 'Outputs' 'Outputs',@Output); ,@Output); end %% BLOCO ONDE A FUNÇÃO É 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 SAÍDA end
Tal código deverá ser salvo com o nome ´´bloco_teste.m´´ visto que foi o nome declarado no início do código. Para salvar: File/Save as..../bloco_teste.m conforme a Figura 4.
Figura 4 – Salvando código da função.
Arthur Schuler da Igreja
Página 3
Voltando para o Simulink, clica-se 2 vezes em cima do bloco ´´mlfile´´ e no campo ´´M-file name: ´´ indica-se a função criada.
Figura 5 – Indicando função 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 saída. Em seguida, conecta-se um sinal de STEP em cada uma das entradas para verificar o correto funcionamento do projeto e um SCOPE na saída.
Figura 6 – Bloco com sinais de entrada e saída conectados. No primeiro sinal de Step, clicando-se duas vezes, será alterada a amplitude do sinal de 1 para 2 através da mudança do parâmetro ´´Final value:’’ e confirmando-se em ´´OK´´.
Arthur Schuler da Igreja
Página 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 saída igual ao somatório. Para verificar o funcionamento basta acessar o menu Simulation/Start. Para verificar o gráfico de saída basta clicar 2 vezes em cima do bloco Scope.
Figura 8 – Sinal de saída com somatório das entradas.