Dica para trabalhar com variáveis no Simulink: mudanças entre as edições
(7 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 13: | Linha 13: | ||
== Bloco com parâmetros == | == Bloco com parâmetros == | ||
Outra forma de trabalhar com | 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. | 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 | * 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 | * 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 | * 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 : [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 | 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 80: | Linha 73: | ||
===Inicialização do arquivo .m dentro da mascara do subsistema criado=== | ===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: | [[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
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