Inicialização de Modelos CDU¶
No início da simulação dinâmica, o Anatem realiza a inicialização de cada modelo CDU a partir de variáveis conhecidas do caso de regime permanente para a determinação do valor inicial de todas as variáveis internas dos controladores.
De forma geral, o procedimento de inicialização adotado pelo Anatem é ilustrado na Fig. 79:
Este algoritmo pode ser enumerado nas seguintes etapas:
1 - Tentar inicializar variáveis a partir de DEFVAL;
2 - Tentar inicializar variáveis de saída de bloco IMPORT a partir de sinais externos conhecidos;
3 - Tentar inicializar variáveis de entrada de bloco EXPORT a partir de sinais externos conhecidos;
4 - Verificar redundância na inicialização de blocos (redundância significa que a inicialização do bloco está atribuindo um valor a uma variável já inicializada);
Erro
Se houver redundância e se o valor desejado e o já existente forem diferentes (acima de uma certa tolerância), emitir mensagem de erro e parar o programa indicando que há inconsistência nas condições iniciais.
5 - Tentar inicializar variáveis com DEFVAL pendente (depende do valor de um sinal ou do valor de outra variável que ainda não tenha sido determinada);
6 - Pesquisar blocos candidatos à inicialização e colocá-los numa lista;
Importante
blocos PROINT: com saída, entrada e limites conhecidos;
blocos WSHOUT: com saída, entrada e limites conhecidos;
entrada e limites conhecidos/ saída desconhecida;
limites e saída conhecidos/ entrada desconhecida;
outros blocos:
entradas conhecidas/ saída desconhecida;
saída e n-1 entradas conhecidas/ 1 entrada desconhecida;
7 - Se não há blocos candidatos à inicialização, colocar na lista:
8 - Se ainda não há blocos candidatos à inicialização:
9 - Se não há blocos candidatos à inicialização e ainda faltam blocos para serem inicializados: emitir mensagem de erro e a lista de blocos já inicializados e parar o programa; Se existirem blocos na lista de inicialização, seguir para o próximo passo.
10 - Processar blocos na lista de inicialização;
Importante
Inicializar blocos e calcular variáveis correspondentes.
11 - Se ainda restarem blocos não inicializados, voltar ao item (4). Do contrário, emitir a lista de blocos PROINT/WHSOUT/POL(S) com inicialização duvidosa;
12 - Fim da inicialização com sucesso.
Sentido de Inicialização de CDUs¶
O Anatem adota atualmente um processo de inicialização bloco a bloco para os CDU’s. Em algumas situações pode ocorrer de não ser possível inicializar todos os blocos automaticamente, sem o fornecimento de informações adicionais por parte do usuário. Existem dois casos típicos, que são mostrados a seguir:
- Inicialização da entrada para a saída (CDU)¶
Na figura acima, os blocos com ganhos \(K_1\) e \(K_2\) podem ser um conjunto de blocos em série, onde \(K_1\) e \(K_2\) seriam os ganhos em regime permanente, equivalentes às respectivas sequências de blocos. O valor de \(X_1\) é conhecido, mas não os de \(X_2\), \(X_3\) e \(X_4\). Não é possível determinar a priori estes valores pois na equação do bloco somador há duas incógnitas (\(X_2\) e \(X_4\)). Porém, se o bloco somador e os dois blocos de ganho fossem resolvidos simultaneamente poderíamos obter o valor da variável \(X_3\) pela expressão. Desta forma se acrescentarmos um bloco com o ganho e com entrada \(X_1\) e saída \(X_5\), como mostrado abaixo, podemos utilizar a saída deste bloco para inicializar a variável \(X_3\), após o que o programa conseguirá calcular as variáveis restantes (\(X_2\) e \(X_4\)).
- Inicialização da saída para a entrada (CDU)¶
Na figura acima, os blocos com ganhos \(K_1\) e \(K_2\) podem ser um conjunto de blocos em série, onde \(K_1\) e \(K_2\) seriam os ganhos em regime permanente, equivalentes às respectivas sequências de blocos. O valor de \(X_4\) é conhecido, mas não os de \(X_1\), \(X_2\) e \(X_3\). Não é possível determinar a priori estes valores, pois na equação do bloco somador há duas incógnitas (\(X_2\) e \(X_3\)). Porém, se o bloco somador e os dois blocos de ganho fossem resolvidos simultaneamente poderíamos obter o valor da variável \(X_1\) pela expressão. Desta forma se acrescentarmos um bloco com o ganho, com entrada \(X_4\) e saída \(X_5\), como mostrado abaixo, podemos utilizar a saída deste bloco para inicializar a variável \(X_1\), após o que o programa conseguirá calcular as variáveis restantes (\(X_2\) e \(X_4\)).