Octave Engine
Introdução
O motor Octave (ferramenta open-source compatível com MatLab) no Módulo de Scripting permite aos utilizadores realizar cálculos complexos no Requirements & Systems Portal que não são muito fáceis de executar/calcular no Módulo de Design de Sistemas. Pode referenciar os Valis necessários para os cálculos como Valis de entrada e o resultado como Valis de saída. Alguns exemplos comuns deste tipo de cálculo incluem a resolução de equações não lineares, multiplicação de matrizes ou casos condicionais.
Fluxo de scripting para scripts do motor Octave
O fluxo de trabalho típico para utilizar o Módulo de Scripting é apresentado abaixo. Cada passo é explicado em cada uma das subsecções.

1. Criar um novo script Octave
Para criar um novo script Octave no seu projeto, passe o cursor sobre o módulo de simulações (1) e selecione “+ Script” (2). Ao clicar, abre-se uma janela pop-up; introduza o nome e selecione “Octave engine (Matlab compatibilite)” (3) e clique em “Create”. Veja a imagem Creating Octave Script.
2. Entradas e saídas
O utilizador pode adicionar os Valis de entrada e de saída. Por exemplo, quando o utilizador referencia o Vali nas entradas ou saídas, pode fornecer um nome curto para o Vali, que será depois utilizado no seu código de cálculo Octave.
Example:
Se estiver a utilizar um Vali chamado “PowerConsumption.CRUISE” do seu módulo de componentes, pode simplesmente atribuir uma abreviatura à variável, como “cruise“ (1). Assim que o Vali é referenciado nas entradas, o Requirements & Systems Portal adiciona automaticamente os valores juntamente com as unidades (2).
O utilizador também pode alterar a unidade de simulação. Por exemplo, o PowerConsumption definido para cruise no Módulo de Design de Sistemas está em W, mas para a simulação é utilizado kW, o que é definido na coluna “simulation unit” (3). Veja a imagem Setting up Valis.
Pode utilizar qualquer Vali do Módulo de Design de Sistemas como entrada ou saída, mas não simultaneamente como ambos.
3. Cálculo/código Octave
Como mencionado anteriormente, o módulo de simulação do Requirements & Systems Portal utiliza um motor Octave que lhe permite usar a sintaxe do Octave . É semelhante ao Matlab e tem excelente compatibilidade com este, pelo que não terá de se familiarizar com uma nova framework para criar cálculos complexos. Pode consultar a GNU Octave Documentation Page se precisar de mais informações.
Os utilizadores têm de escrever o código Octave no ficheiro “main.m”(1). As instruções sobre como o utilizador pode definir as entradas e saídas estão escritas na área de código (2). Consulte a Figura Octave Script para mais informações.
Depois de o código ser adicionado ao ficheiro main.m, o utilizador pode guardar o script clicando em “Save”(3).
4. Executar simulações/resultados
Quando terminar o seu script, pode clicar no botão de reprodução, que se encontra no canto inferior esquerdo, como mostrado na Figura Running Script.
Assim que a simulação estiver concluída, o Requirements & Systems Portal atualiza automaticamente os valores de saída. Como resultado, os Valis de saída no Módulo de Design de Sistemas são atualizados automaticamente. Se os Valis de saída estiverem a ser utilizados como constantes em fórmulas para calcular outros Valis, o Requirements & Systems Portal recalcula automaticamente todos os Valis associados ao Vali de saída.
5. Caso de utilização de Scripting + Automação
Se quaisquer valores de entrada forem alterados no Módulo de Design de Sistemas, o utilizador tem de voltar a executar a simulação para recalcular os valores de saída.
Para evitar executar simulações após cada alteração nos valores de entrada, pode ser criada uma ligação entre as Automations e o Módulo de Scripting. De facto, podem ser configuradas novas automações com um acionador constante para voltar a executar automaticamente cada simulação afetada por uma alteração de um Vali, como mostrado no pequeno clipe abaixo.
Neste caso específico, o tempo de voo do nosso Valicopter é ajustado de 15 min para 10 min, o que desencadeia automaticamente um recálculo da capacidade total de bateria necessária. Uma vez que a massa total do subsistema de potência é calculada com base na capacidade de bateria necessária (quantas baterias são necessárias), com menos tempo de voo e, consequentemente, menor capacidade de bateria necessária, a massa do subsistema de potência também é recalculada e reduzida.