Introdução ao EMSO #2 – Primeiro Programa

Opa galera, vamos continuar o aprendizado sobre o EMSO.

Faremos um programa para somar 2 números. Simples?! heheh, Numa linguagem procedural realmente é muito simples, mas na linguagem do EMSO é um pouco mais complicado, mas ainda assim nada de outro mundo. Vamos por a mão na massa (ou no teclado … :-x).

FlowSheet SOMAR
 
VARIABLES
X as Real (Brief="Numero 1");
Y as Real (Brief="Numero 2");
Z as Real (Brief="Somatorio");
 
SPECIFY
X = 2;
Y = 4;
 
EQUATIONS
Z = X + Y;
 
OPTIONS
Dynamic = false;
end

Código 1: Somar 2 números

FlowSheet SOMAR_2
 
VARIABLES
 X as Real (Brief="Numero 1",Unit ='m');
 Y as Real (Brief="Numero 2",Unit ='m');
 Z as Real (Brief="Somatorio",Unit ='m');
 
PARAMETERS
 a  as Integer (Default = 1);
 b  as Integer (Default = 1);
 
SPECIFY
 X = 2*'m';
 Y = 4*'ft';
SET
 b = 3;
 
EQUATIONS
 "Equacao de Z"
 Z = a*X + b*Y;
end

Código 2: Somar 2 números com parâmetros

O código 1 soma os valores de X e Y e armazena esse valor na variável Z. O código 2 é o mesmo procedimento, mas utilizando parâmetros a e b. As variáveis são declaradas na seção VARIABLES e devem ser sempre especificadas (no SPECIFY), enquanto os parâmetros devem ser declaradas em PARAMETERS e são setadas no SET. No caso, parâmetros podem ter valores padrões associados durante a etapa de declaração (Comando Default no Código 2).

As Equações ficam declaradas em EQUATIONS e podem ser tanto na forma do código 1 ou na forma do código 2 que colocamos o nome da equação aparecendo na aba Explorer e Results.

Quanto as declarações, utilizamos apenas Real e Integer. mas poderiam ser outros, como Booleano, switcher, plugin. Farei um post apenas para elucidar esses atributos, mas isso pode ser facilmente encontrado no manual.

Para finalizar, vamos transformar o código em um modelo e chamá-lo num FlowSheet:

Model soma
 
VARIABLES
    X   as Real (Brief="Numero 1",Unit ='m');
    Y   as Real (Brief="Numero 2",Unit ='m');
    Z   as Real (Brief="Somatorio",Unit ='m');
 
PARAMETERS
    a   as Integer (Default = 1);
    b   as Integer (Default = 1);
 
EQUATIONS
    "Equacao de Z"
    Z = a*X + b*Y;
end
 
FlowSheet SOMAR_2_numero
 
DEVICES
    Resultado1 as soma;
    Resultado2 as soma;
 
SET
    Resultado2.b = 5;
 
SPECIFY
    # Primeira operacao
    Resultado1.X = 1*'m';
    Resultado1.Y = 3*'m';
 
    # Segunda operacao
    Resultado2.X = 4*'m';
    Resultado2.Y = 6*'m';
end

Código 3: Modelo e FlowSheet para somar 2 números

O modelo é declarado na seção Model e é chamado no FlowSheet na seção DEVICES ou mesmo em VARIABLES. Os Parâmetros podem ser setados tanto no modelo quanto no FlowSheet, sendo que no primeiro, o parâmetro não poderá ser mudado dentro do FlowSheet e valerá para todos os objetos que chamar o model. As especificações devem ser fornecidas no FlowSheet.

É isso, tentem fazer outros sistemas simples e vão transformando em modelos e testem, só dominamos uma ferramenta quando praticamos, por mais simples que seja.

Aconselho fortemente a leitura dos dois artigos abaixo que demonstra uma simples simulação de um tanque. vale muito a pena.

Até o próximo post. Um abraço,

Reiner Requião

7 Comments

  • Victor Gabriel Santos Silva

    Não consegui acessar os links, acho que não estão funcionando. Queria saber se além do VRTherm existe algum outro plugin que é muito necessário para o uso do EMSO para engenharia química.

    Navegador: Unknown em Unknown O.S.
    • Reiner Requião

      Olá Vitor,

      Acabei de testar aqui e os links estão funcionando corretamente. Tenta de novo.

      Não acho que é preciso de outro plugin, eu até uso sem o VRTherm em alguns cursos, mas se quer utilizar a parte termodinâmica ele é fundamental.

      Outros plugins do EMSO são de caráter particular, vc encontra alguns em teses ou dissertações, mas não são essenciais.

      Abraços

      Navegador: Unknown em Unknown O.S.
  • Victor Gbariel Santos Silva

    Eu desejo saber porque houve uma interrupção dos posts sobre o software EMSO, pois os achei interessante e está relativamente difícil encontrar um bom material sobre EMSO e até o próprio manual me pareceu complicado para uma primeira utilização.

    Navegador: Unknown em Unknown O.S.
    • Reiner Requião

      Bom, na verdade acabei tendo muita coisa para fazer no mestrado acabei pausando a série de post. Irei reativar a série em breve. hehe Valeu pelo incentivo.

      Navegador: Unknown em Unknown O.S.
  • Victor Gabriel Santos Silva

    Mas foi realmente mais fácil entender o funcionamento do EMSO através desse post.

    Estou no aguardo. xD

    Navegador: Unknown em Unknown O.S.
  • Victor Gabriel Santos Silva

    Desculpe perguntar demais, mas outra coisa que não entendi é pra que serve aquele “Dynamic = false”. O programa roda normalmente sem ele e nos outros programas ele não está presente.

    Obrigado.

    Navegador: Unknown em Unknown O.S.