Mudanças entre as edições de "Dica para trabalhar com variáveis no Simulink"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(31 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
 +
__TOC__
 +
 
== Diretamente do terminal do MATLAB ==
 
== Diretamente do terminal do MATLAB ==
 +
 +
Você pode declarar as variáveis que queira usar no modelo pelo próprio terminal do MATLAB como mostrado na figura abaixo:
 +
 +
[[Arquivo:Mask_simulink00.png|330px]]
 +
 +
E utilizar estas variáveis nos blocos da seguinte forma:
 +
 +
[[Arquivo:Mask_simulink01.png|330px]]
  
 
== Bloco com parâmetros ==
 
== Bloco com parâmetros ==
  
 +
Outra forma de trabalhar com variáveis no modelo de simulação é através da criação de um bloco que contém todas essas variáveis
 +
dentro de uma '''struct'''. Primeiramente adicione no modelo um bloco chamado '''Subsystem'''. Em seguida clique sobre o bloco e aperte '''ctrl + M''' criando uma mascara no bloco. Agora estamos prontos para definir as variáveis para pode-las utilizadas no modelo.
 +
===Definir parâmetros da máscara===
  
 +
* No Editor de máscara aberto, clique na guia '''Parameters & Dialog''';
 +
* Clique no ícone '''Edit''' parâmetro e adicione linhas;
 +
* Nas linhas que aparecem, especifique os parâmetros da seguinte forma.
  
mask - create mask
+
[[Arquivo:Mask_simulink0.png|570px]]
  
Define mask parameters
+
* Na coluna '''Prompt''' você especifica sobre a variável, para que ela vai ser utilizada, entre outros.
Define parameters to control the underlying blocks.
+
* Na coluna '''Name''' você da o nome a variável que sera utilizada no modelo;
  
In the Mask Editor, click the Parameters & Dialog tab.
 
Click the Edit parameter icon and add two rows.
 
In the rows that appear, specify the parameters as follows.
 
Click Apply.
 
Click Apply.
 
  
 +
Após esse processo clique em '''Apply''' seguido de '''Ok'''. Para saber mais sobre configuração de mascaras acesse : [http://www.mathworks.com/help/simulink/ug/mask-a-subsystem.html Mask a Block] ou [http://www.mathworks.com/help/simulink/block-masks.html Block Masks].
  
Para saber mais sobre configuração de mascaras acesse : [http://www.mathworks.com/help/simulink/ug/mask-a-subsystem.html Mask a Block]
+
===Arquivo .m com as instruções===
 +
 
 +
Após a criação da mascara e dos parametros que serão utilizados pelo modelo. Criamos um função no MATLAB
 +
de acordo com cógido abaixo:
  
 
<syntaxhighlight lang=matlab>
 
<syntaxhighlight lang=matlab>
Linha 33: Linha 48:
 
end
 
end
  
settingsBlock = [bdroot '/parametros'];
+
settingsBlock = [bdroot '/Subsystem'];   % Nome do bloco
[symbol_rate] = getSettings(settingsBlock,'symbol_rate');
+
[symbol_rate] = getSettings(settingsBlock,'symbol_rate');   % Nome do parametro
 
[M_ary] = getSettings(settingsBlock,'M_ary');
 
[M_ary] = getSettings(settingsBlock,'M_ary');
  
Linha 42: Linha 57:
  
 
   
 
   
%Assign variables to base workspace
+
 
 +
% Atribuir variáveis na forma de struct para o workspace do MATLAB
 
  assignin('base', 'p', p);
 
  assignin('base', 'p', p);
  
Linha 54: Linha 70:
 
  end
 
  end
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
===Inicialização do arquivo .m dentro da mascara do subsistema criado===
 +
 +
Clique novamente no Subsistema onde você criou a mascara e digite crtl + M. Escolha a opção '''Initialization''' e coloque no campo '''Initialization Commands''' o nome dado a função criada com extensão .m como é mostrado na figura abaixo.
 +
 +
[[Arquivo:Mask_simulink1.png|500px]]
 +
 +
Assim, você utiliza essas variáveis pelo modelo, e pode altera-las apenas dando dois clique no bloco mascarado e alterando por la os valores dos parâmetros. Certifique-se que esteja no diretório onde esta salvo tanto o modelo como o arquivo .m (os dois devem estar no mesmo diretório).
 +
 +
[[Arquivo:Mask_simulink2.png|330px]]
 +
 +
== Callbacks ==
 +
 +
Outra forma de trabalhar com variáveis e parâmetros é através de ''callbacks'' onde você predetermina valores de variáveis ou até carregar funções criadas no MATLAB. Para saber mais acesse: [http://www.mathworks.com/help/simulink/ug/model-callbacks.html Model Callbacks]

Edição atual tal como às 18h58min de 30 de novembro de 2015

Diretamente do terminal do MATLAB

Você pode declarar as variáveis que queira usar no modelo pelo próprio terminal do MATLAB como mostrado na figura abaixo:

Mask simulink00.png

E utilizar estas variáveis nos blocos da seguinte forma:

Mask simulink01.png

Bloco com parâmetros

Outra forma de trabalhar com variáveis no modelo de simulação é através da criação de um bloco que contém todas essas variáveis dentro de uma struct. Primeiramente adicione no modelo um bloco chamado Subsystem. Em seguida clique sobre o bloco e aperte ctrl + M criando uma mascara no bloco. Agora estamos prontos para definir as variáveis para pode-las utilizadas no modelo.

Definir parâmetros da máscara

  • No Editor de máscara aberto, clique na guia Parameters & Dialog;
  • Clique no ícone Edit parâmetro e adicione linhas;
  • Nas linhas que aparecem, especifique os parâmetros da seguinte forma.

Mask simulink0.png

  • Na coluna Prompt você especifica sobre a variável, para que ela vai ser utilizada, entre outros.
  • Na coluna Name você da o nome a variável que sera utilizada no modelo;


Após esse processo clique em Apply seguido de Ok. Para saber mais sobre configuração de mascaras acesse : Mask a Block ou Block Masks.

Arquivo .m com as instruções

Após a criação da mascara e dos parametros que serão utilizados pelo modelo. Criamos um função no MATLAB de acordo com cógido abaixo:

function parametros


persistent postloadFlag;
if isempty(postloadFlag)
    postloadFlag = true;
else
    if postloadFlag
        postloadFlag = false;ip
        return
    end
end

settingsBlock = [bdroot '/Subsystem'];   % Nome do bloco
[symbol_rate] = getSettings(settingsBlock,'symbol_rate');   % Nome do parametro
[M_ary] = getSettings(settingsBlock,'M_ary');


p.symbol_rate = symbol_rate;
p.M = M_ary;

 

% Atribuir variáveis na forma de struct para o workspace do MATLAB
 assignin('base', 'p', p);

function varargout = getSettings(settingsBlock, varargin)

 varargout = cell(size(varargin));

 h = get_param(settingsBlock, 'handle');
 for n = 1:length(varargin)
     varargout{n} = evalin('base', get(h, varargin{n}));
 end

Inicialização do arquivo .m dentro da mascara do subsistema criado

Clique novamente no Subsistema onde você criou a mascara e digite crtl + M. Escolha a opção Initialization e coloque no campo Initialization Commands o nome dado a função criada com extensão .m como é mostrado na figura abaixo.

Mask simulink1.png

Assim, você utiliza essas variáveis pelo modelo, e pode altera-las apenas dando dois clique no bloco mascarado e alterando por la os valores dos parâmetros. Certifique-se que esteja no diretório onde esta salvo tanto o modelo como o arquivo .m (os dois devem estar no mesmo diretório).

Mask simulink2.png

Callbacks

Outra forma de trabalhar com variáveis e parâmetros é através de callbacks onde você predetermina valores de variáveis ou até carregar funções criadas no MATLAB. Para saber mais acesse: Model Callbacks