Introdução Começando Exemplos Tutorial SCICOS Resolvendo Problemas Simples Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Roteiro 1 Introdução 2 Começando Funcionalidades Paletas 3 Exemplos Diagrama Simples Simulação de um Tanque de Nível Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Introdução I Scicos (Scilab Connected Object Simulator) é um toolbox do Scilab destinado à modelagem e simulação de sistemas dinâmicos. Scicos fornece uma forma modular de construir sistemas dinâmicos, onde o modelo matemático é representado por blocos de funções, editados por um editor de diagrama de blocos. Os diagramas do Scicos são compilados e simulados eficientemente a partir de um simples click. Essa estrutura modular de simulação é semelhante a encontrada no Simulink (Matlab) e no Labview. Scicos manipula, em particular, a interação entre sistemas dinâmicos contínuos e eventos temporais. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Introdução II Usando Scicos, o usuário pode construir uma biblioteca de módulos reutilizáveis (blocos) que podem ser utilizados em diferentes modelos e em diferente projetos. Um grande número de blocos já estão disponíveis nas paletas do Scicos. Esses blocos fornecem operações elementares necessárias na construção de modelos de diversos sistemas dinâmicos. Usuários raramente necessitarão construir blocos novos a partir do zero. Scicos é mais que um programa de modelagem e simulação. Ele contém muitas outras funcionalidades para socorrer o usuário na otimização de parâmetros de modelos, validar modelos, gerar código C, etc. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Funcionalidades Paletas Editor Gráfico Scicos contém um editor gráfico que pode ser usado na construção de modelos em diagrama de blocos de sistemas dinâmicos. Os blocos podem ser aqueles encontrados nas diferentes paletas disponíveis no Scicos ou podem ser definidos (criados) pelo usuário. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Funcionalidades Paletas Executando o Scicos Scicos é um toolbox do Scilab, fazendo parte do pacote Scilab. O Editor do Scicos pode ser aberto pelo comando scicos 7−→ scicos fu n c io n a lid a d e s d o e d it o r e s t ã o d is p o n ív e is n o m e n u s u p e r io r d a ja n e la d o e d it o r Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Funcionalidades Paletas Blocos do Scicos Para construir um modelo, deve-se acessar os blocos do Scicos. Scicos fornece vários blocos elementares em diferentes paletas, que podem ser acessados usando a operação Palettes no menu Edit. Essa operação abre uma caixa de diálogo que inclui uma lista de paletas disponíveis. Selecionando uma paleta da lista, uma nova janela do Scicos aparece, disponibilizando diversos blocos dessa paleta (ao construir um diagrama, simplesmente arraste os blocos desejados para a janela do Editor do Scicos). Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Funcionalidades Paletas Palettes Figura: Paletas dos blocos Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Funcionalidades Paletas Sources A paleta Sources apresenta blocos geradores de sinais: Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Funcionalidades Paletas Funcionalidades da Sources É útil identificar o conteúdo das várias paletas. A paleta Sources apresenta alguns blocos interessantes: Activation Clock (relógio vermelho) é usado para ativar ou envocar outros blocos em instantes de tempo específicos, como por exemplo, os blocos Scope e Display Clock gera um sinal cujo valor é o instante de tempo da simulação Constant (bloco quadrado com "1" dentro) gera uma constante, ou um parâmetro com valor constante Step gera uma variação degrau a partir de um valor inicial até um valor final em um momento específico de tempo Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Funcionalidades Paletas Sinks A paleta Sinks disponibiliza blocos de apresentação de sinais: Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Funcionalidades Paletas Funcionalidades da Sinks Alguns comentários sobre blocos selecionados da paleta Sinks: Scope é usado para apresentar sinais, como os gerados em uma simulação. Usando o bloco Mux (na paleta Branching), pode-se inserir sinais escalares em apenas um bloco Scope Display é usado para apresentar o valor numérico de qualquer sinal Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Funcionalidades Paletas Linear Na paleta Linear os blocos aplicam operações lineares: Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Funcionalidades Paletas Funcionalidades da Linear I Alguns comentários sobre blocos selecionados da paleta Linear: Sum pode ser usado para somar e/ou subtrair sinais. O bloco é configurado "clicando" duas vezes nele Gain representa um ganho; isto é, uma multiplicação por uma constante (bloco triangular com um "1" interno) Integrator é usado para integrar sinais no tempo que são as derivadas no tempo das variáveis de estado do sistema. A saída do integrador é portanto o comportamento da variável de estado do sistema (os integradores implementam a dinâmica de um sistema). O valor inicial e os valores máximo e mínimo da saída do integrador podem ser especificados Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Funcionalidades Paletas Funcionalidades da Linear II PID é um controlador PID (Proporcional + Integral + Derivativo). Os parâmetros são o ganho proporcional Kc , o ganho integral Ki e o ganho derivativo Kd . Frequentemente, os parâmetros do PID são o próprio Kc , o tempo integral τI e o tempo derivativo τD (o conhecido método de ajuste de Ziegler-Nichols fornece os valores de Kc , τI e τD ). A relação entre os vários parâmetros são Ki = Kc /τI e Kd = Kc ∗ τD Continuous Fix Delay (Time Delay) representa um atraso do sinal no tempo. Também é conhecido como tempo morto e retardo por transporte. No início da simulação, o bloco fornece o valor inicial do parâmetro até que o tempo de simulação exceda o parâmetro de tempo morto, quando o bloco começa a gerar o sinal atrasado Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Funcionalidades Paletas Funcionalidades da Linear III Continuous-Time (Laplace Transform) Transfer Function (o bloco com num(s)/den(s)) permite configurar uma função de transferência fornecendo ao bloco os polinômios em s do numerador e denominador da mesma Discrete-Time (z Transform) Transfer Function (o bloco num(z)/den(z)) permite configurar uma função de transferência fornecendo ao bloco os polinômios em z do numerador e denominador da mesma Unit Delay (com o símbolo "1/z") implementa um atraso de 01 intervalo de amostragem Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Funcionalidades Paletas Nonlinear A paleta Nonlinear executa operações não-lineares: Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Funcionalidades Paletas Funcionalidades da Nonlinear Comentários sobre alguns blocos da paleta Nonlinear: Mathematical Expression é usado para implementar qualquer função do Scilab (a expressão é introduzida na caixa de diálogo do bloco) Product implementa multiplicação ou divisão. aceita qualquer número de entradas O bloco Interp implementa interpolação ou procura em tabela de dados Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Funcionalidades Paletas Others Os blocos da paleta Others realizam funções diversas: Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Funcionalidades Paletas Funcionalidades da Others Segue alguns comentários sobre blocos da paleta Others: Text é usado para adicionar anotações (qualquer texto) ao diagrama de blocos End pode ser usado para interromper a simulação a qualquer momento Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Funcionalidades Paletas Branching Na paleta Branching pode-se dividir ou agregar sinais: Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Funcionalidades Paletas Funcionalidades da Branching Abaixo apresentam-se alguns comentários sobre blocos da paleta Branching: Mux é usado para convergir um número de sinais escalares em um sinal vetor (multivariável). Esse bloco é útil para convergir diversos sinais em um mesmo gráfico usando o Scope Switch 1 pode ser usado para selecionar qual das entradas (entre diversas) será conduzida à saída do bloco Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Editando um Modelo I Deseja-se gerar e visualizar a função sen(t) no intervalo de tempo de 0 a 30 unidades de tempo. Os blocos das paletas podem ser copiados para a janela principal do Scicos, bastando marcar o bloco desejado e arrastá-lo para ela. As paletas Sources e Sinks contém, respectivamente, blocos geradores de sinal sem entradas e blocos sem saídas, tais como blocos de visualização. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Editando um Modelo II g e r a d o r d e e v e n t o g e r a d o r fu n ç ã o s e n o v is u a liz a d o r p o r t a d e a t iv a ç ã o p o r t a r e g u la r Figura: Diagrama de blocos em construção Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Editando um Modelo III O primeiro bloco gera uma função seno (Sinusoid Generator) através de sua única saída. Pode-se visualizar esse sinal usando um visualizador (Scope). Isso é feito conectando a saída do gerador da função seno com a entrada do visualizador. Essa conecção é feita traçando-se uma linha reta entre a porta de saída do bloco gerador de sinal e a porta de entrada do visualizador. O gerador de evento (Event Clock) é usado para ativar a periodicidade (frequência) de visualização do bloco visualizador. Toda vez que o visualizador é ativado, ele lê o valor do sinal na sua porta de entrada (neste caso, sen(t)). Esse valor é então usado na construção da curva apresentada na janela do visualizador. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Editando um Modelo IV Para especificar que o bloco visualizador é ativado pelo bloco gerador de evento, a saída de ativação do gerador de evento é conectada à entrada de ativação do visualizador. Essa conecção é feita traçando-se uma linha reta entre ambos. O Scicos apresenta dois tipos diferentes de conecções entre blocos: regular (sinais): são de cor preta e com as portas localizadas nas laterais do bloco ativação (evento): são de cor vermelha e com as portas localizadas no topo ou na base do bloco Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Simulando um Modelo I Para simular o diagrama, basta selecionar a operação Run a partir do menu Simulate. A qualquer momento, a simulação pode ser interrompida usando o botão Stop. A partir dessa interrupção, o usuário poderá continuar a simulação, finalizá-la ou reiniciá-la desde o seu início. Os parâmetros da simulação podem ser ajustados pela operação Setup no mesmo menu. O tempo final de simulação foi fixado em 30 de unidades de tempo dessa forma. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Simulando um Modelo II Figura: Ajuste das propriedades da simulação Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Simulando um Modelo III Ao final da simulação, uma janela gráfica é apresentada contendo a visualização dos resultados da mesma. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Mudando os Parâmetros de um Bloco I O comportamento de um bloco do Scicos depende dos parâmetros que podem ser modificados pelo usuário. Esses parâmetros são acessados "clicando" sobre o bloco no diagrama de blocos. Os limites superior e inferior (3 e -3) da ordenada do gráfico apresentado na janela gráfica da simulação do modelo foram alterados dessa forma. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Mudando os Parâmetros de um Bloco II Figura: Ajuste das propriedades do bloco Scope Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Alterando um Diagrama I Um diagrama do Scicos pode ser modificado e novamente simulado. Agora adiciona-se um integrador (Integral) ao diagrama de blocos do modelo. Esse bloco é obtido da paleta Linear. Para visualizar esse novo sinal de saída do integrador, substitui-se o bloco Scope pelo MScope, o qual admite a visualização de múltiplas entradas. Faz-se necessário dividir o sinal de saída do bloco gerador da função seno (Sinusoid Generator) para alimentar o bloco integrador. A saída desse alimentará o bloco MScope. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Alterando um Diagrama II Para criar essa divisão do sinal de saída do integrador, "clicase" duas vezes sobre a linha do sinal, no ponto onde se deseja dividi-lo. A partir de então pode-se estabelecer a ligação entre o gerador da função seno e o integrador. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Novo Diagrama Figura: Diagrama de blocos alterado Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Janela dos Resultados do Novo Diagrama Figura: Janela gráfica da simulação modificada Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Tanque de Nível O sistema a ser simulado é um tanque de nível. Uma corrente de entrada alimenta o tanque, cujo valor da vazão pode ser ajustado. Uma corrente de saída tem a sua vazão definida pela altura h de líquido√no tanque, através da relação F = k h. A simulação deve calcular e mostrar o comportamento da altura h com o tempo. Tutorial SCICOS F Tanque de Nível o h (A ) F = k h CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Modelo Matemático Inicia-se a construção do simulador pela descrição do modelo matemático do sistema a ser simulado: Balanço de Massa Global Modelo Não-Linear: equação de estado (espaço de estado) √ dh 1 = Fo − k h , h(0) = hs (1) dt A Parâmetros de Projeto Especificações de Projeto 5/2 Fos = Fs = 13, 86 m3 /min k = 8 m /min 2 hs = 3 m A = 0, 3 m Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Diagrama de Blocos do Sistema I primeiros passos do diagrama A eq. 1 é uma equação diferencial para h(t). Ela indica como a derivada no tempo dh(t)/dt pode ser calculada. h(t) é calculada (pelo simulador) integrando dh(t)/dt com relação ao tempo, de um tempo inicial 0 a um tempo final t, a partir de um valor inicial h(0) = hs . Para desenhar o diagrama de blocos do modelo 1, podese iniciá-lo adicionando um integrador (Integral) à janela (ainda vazia) de construção do diagrama. A entrada desse integrador é dh(t)/dt e sua saída é h(t). Cada bloco integrador é usado para definir um estado do sistema. Outros blocos são então adicionados para construir a expressão dh(t)/dt, que corresponde ao lado direito da eq. diferencial 1. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Diagrama de Blocos do Sistema II primeiros passos do diagrama Configura-se um bloco "clicando" duas vezes sobre ele e entrando o valor numérico do parâmetro ou (preferencialmente) o nome do mesmo como variável contextualizada ou parâmetro simbólico. Considera-se que existam dois níveis limites para o nível (alarmes) que devem aparecer no gráfico da resposta do simulador: hamax = 4 m (alarme nível alto) hamin = 2 m (alarme nível baixo) Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Diagrama de Blocos do Sistema III primeiros passos do diagrama No simulador a altura inicial é hs = 3 m. A vazão de entrada permanece igual a Fos = 13, 86 m3 /min até um tempo de simulação de tdeg = 0, 2 min. Neste momento, uma perturbação degrau em Fo (t) aumentará esse valor para Fodeg = Fos + ∆Fo . Ambas as vazões devem estar presentes em um mesmo gráfico. A simulação ocorrerá desde o instante tinit = 0 até tfinal = 1 min. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Diagrama Final Figura: Diagrama de blocos do tanque de nível Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Resultados da Simulação Pode-se personalizar os gráficos obtidos da simulação, editando-os. Localize o botão GED (Graphical Editor) na janela gráfica. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Resultados da Simulação: degrau em Fo Degrau em Fo 16.0 F,Fo (m3/min) 15.5 15.0 14.5 14.0 13.5 13.0 0.0 0.1 0.2 0.3 0.4 0.5 0.6 t (min) Tutorial SCICOS 0.7 0.8 0.9 1.0 CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Resultados da simulação: resposta ao degrau em Fo Resposta ao Degrau em Fo 4.5 4.0 h (m) 3.5 3.0 2.5 2.0 1.5 0.0 0.1 0.2 0.3 0.4 0.5 0.6 t (min) Tutorial SCICOS 0.7 0.8 0.9 1.0 CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Ajustando Parâmetros do Simulador I Abrindo o menu Simulate/Setup Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Ajustando Parâmetros do Simulador II A maioria desses parâmetros pode ser deixada inalterada. O Final integration time define o tempo final (parada) da simulação. No entanto, se o bloco End estiver presente no diagrama de blocos, o parâmetro Final integration time desse bloco também define o tempo de parada da simulação. O menor valor do Final integration time entre os dois será aquele que definirá o tempo final da simulação. Deseja-se usar o tempo final de simulação do bloco End, escolhendo um valor para ele igual ao valor da variável de contexto tfinal = 1 min. Portanto, será escolhido um valor bem maior para Final integration time da janela Simulate/Setup; isto é, 1000. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Ajustando Parâmetros do Simulador III O Realtime scaling define a velocidade relativa entre o tempo real e o tempo de simulação. Por exemplo, um valor de 0,2 indica que o simulador apresentará uma velocidade 1/0,2=5 maior que a velocidade do sistema real. Pode-se usar esse parâmetro para acelerar a simulação de um sistema lento ou reduzir a velocidade na simulação de um sistema rápido. O valor do maximum step size deve ser escolhido apropriadamente; por exemplo, 1/10 do valor da menor constante de tempo ou tempo característico do sistema a ser simulado. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Parâmetros em Contexto I Parâmetros do modelo ou parâmetros da simulação podem ser contextualizados no simulador. Isto é particularmente interessante se o mesmo parâmetro é usado em mais de um bloco ou se o parâmetro é calculado como função de outros parâmetros. Parâmetros simbólicos ou variáveis contextualizadas são simples expressões em Scilab que definem os parâmetros (ou variáveis), atribuindo-lhes valores. Esses parâmetros (ou variáveis) são então usados nos blocos do diagrama. Eles devem ser definidos no contexto do diagrama de blocos antes de serem usados nos parâmetros dos blocos. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Parâmetros em Contexto II Cada diagrama do Scicos contém um contexto. Para acessar o contexto do diagrama, use o botão Context no menu Edit. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Editor do Contexto do Diagrama de Blocos Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Parâmetros em Contexto do Step Abra o bloco Step ("clicando" duas vezes sobre ele e depois escolhendo a opção Open/Set) e observe que as variáveis em contexto tdeg , Fos e Fodeg são utilizadas como parâmetros no bloco. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1) Introdução Começando Exemplos Diagrama Simples Simulação de um Tanque de Nível Parâmetros em Contexto do Activation Block O bloco Activation clock ativa os blocos Scope e Display. Os parâmetros tdelt e tinit são utilizados para especificar os valores do intervalo de tempo em que o bloco adjacente é ativado e o instante inicial da simulação, respectivamente. Tutorial SCICOS CP1 (www.deq.ufscar.br/~ronaldo/cp1)