Dica para trabalhar com variáveis no Simulink: mudanças entre as edições

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Rogerio.j (discussão | contribs)
Rogerio.j (discussão | contribs)
 
(12 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 3: Linha 3:
== 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]]
[[Arquivo:Mask_simulink00.png|330px]]


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


[[Arquivo:Mask_simulink01.png|330px]]
[[Arquivo:Mask_simulink01.png|330px]]
Linha 11: Linha 13:
== Bloco com parâmetros ==
== Bloco com parâmetros ==


Adicione no modelo um bloco chamado subsystem, botão direito no bloco e mask - create mask
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===
===Definir parâmetros da máscara===


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


[[Arquivo:Mask_simulink0.png|570px]]
[[Arquivo:Mask_simulink0.png|570px]]


Na coluna Prompt você especifica sobre a variavel
* 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 variavél que sera utilizada no modelo
* Na coluna '''Name''' você da o nome a variável que sera utilizada no modelo;
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] ou [http://www.mathworks.com/help/simulink/block-masks.html Block Masks]


===Arquivo .m com as instruções===
===Arquivo .m com as instruções===


Após esse processo escreva um arquivo .m com isso:
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 73: Linha 73:
===Inicialização do arquivo .m dentro da mascara do subsistema criado===
===Inicialização do arquivo .m dentro da mascara do subsistema criado===


novamente no subsistema onde você criou a mascara e vá em mask-edit mask. Escolha o campo '''Initialization''' e coloque o nome dado a este arquivo.m
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_simulink1.png|500px]]
[[Arquivo:Mask_simulink2.png|330px]]
 
Assim, você utiliza essas variaveis pelo modelo, e pode altera-las apenas dando dois clique no bloco mascarado e alterando por la os valores dos parametros


== Callbacks ==


[[Arquivo:Mask_simulink2.png|370px]]
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

1 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:

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

2 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.

2.1 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.

  • 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.

2.2 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

2.3 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.

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).

3 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