Matlab
Simulink

       Prof José Luiz de Oliveira
Simulink
  • O Simulink é um pacote de software para
 modelar, simular e analisar sistemas dinâmicos.

  • Suporta sistemas lineares e não-lineares,
 modela no tempo contínuo, no tempo amostrado
            ou num híbrido dos dois.

• É mais poderoso do que o ltiview, uma vez que
  o Simulink pode também analisar sistemas não-
           lineares e variantes no tempo.

                                                   2
Exemplo de simulação de sistema
• No Matlab, digite o comando “thermo”.




                                          3
Simulação da termodinâmica de uma casa




O modelo usa subsistemas para simplificar o
  O demo modela a termodinâmica de uma
  modelo do diagrama e cria sistemas que
casa. O termostato é ajustado para 70 graus
podem ser reutilizados. Um subsistema é um
 Fahrenheit pelo Set Point e é afetado pela
 grupo de blocos que é representado por um
   temperatura exterior Text, que varia pela
bloco Subsystem. Este modelo contém cinco
    aplicação de uma onda senoidal (Daily
  subsistemas: um nomeado House, outro
Temp Variation) com amplitude de 15 graus
Thermostat, e três subsistemas conversores
    numa temperatura base (Avg Outdoor
 de temperatura (dois convertem Fahrenheit
Temp) de 50 graus. Isto simula as flutuações
   para Celsius e um converte Celsius para
            diárias de temperatura.                   4
                  Fahrenheit)..
Quando a simulação terminar as temperaturas
  interna e externa aparecerão no plot Indoor
  vs. Outdoor Temp do osciloscópio Thermo
     Plots como sinais amarelo e magenta,
    respectivamente. O custo cumulativo do
  aquecimento aparece no plot Heat Cost ($).



                                                5
Simulink
• Para começar a usá-lo, digite o comando
   simulink no Matlab ou clique no ícone




                                            6
Grupo: Sources
Alguns blocos comumente usados em controle:
                  Chirp Signal gera uma onda senoidal cuja freqüência
                         aumenta numa taxa linear com tempo.
                  Clock determina o tempo atual da simulação para cada
                  etapa da simulação. Este bloco é útil para outros blocos
                         que necessitem do tempo da simulação.

                  Constant gera um valor constante real ou complexo. .


                   From Workspace lê dados do espaço de trabalho do
                                      MATLAB.
                   Ramp gera um sinal que começa num tempo e valor
                  especificados e muda segundo uma taxa especificada.

                  Sine Wave fornece uma senoidal. O bloco pode operar
                    na modalidade baseada no tempo ou baseada em
                                      amostras.
                    Step fornece um degrau entre dois níveis definíveis
                                num tempo especificado.
                                                                             7
Grupo: Math Operations
Alguns blocos comumente usados em controle:
                       Gain multiplica a entrada por um valor constante (ganho).



                    Product executa a multiplicação ou a divisão de suas entradas.



                       Sum executa a adição ou a subtração de suas entradas.


                         Trigonometric Function executa numerosas funções
                   trigonometricas comuns. Tais como: sin, cos, tan, asin, acos, atan,
                             atan2, sinh, cosh, tanh, asinh, acosh, e atanh.


Nota: Muitas outras funções matemáticas estão disponíveis. Certifique-se
da descrição precisa de cada bloco antes de usá-lo.

                                                                                   8
Grupo: Sinks
Alguns blocos comumente usados em controle:


                      Scope indica sua entrada em função do tempo de simulação.




                       To Workspace escreve sua entrada no espaço de trabalho.



 Nota: Ao usar-se o bloco To workspace, ajuste o “save format” à “Array” a
 fim receber a variável como um vetor no workspace (espaço de trabalho).




                                                                              9
Grupo: Sinks

               Usando-se o bloco Scope

                            • Pode-se salvar dados do
                              bloco Scope no
                              workspace (pode-se
                              fazer isto com o bloco
                              “Save to workspace” no
                              grupo “Sinks”)
                            • Pode-se visualizar mais
                              que um sinal no Scope
                              no mesmo eixo ou em
                              eixos separados.


                                                   10
Grupo: Sinks

               Usando-se o bloco Scope




• Setando o número de        • Salvando os dados para
  eixos para o Scope           o espaço de trabalho
                               (workspace)
                                                   11
Usando o bloco Scope




• Setando o número de   • Salvando os dados para
  eixos para o scope      o espaço de trabalho
                          (workspace)

                                              12
Grupo: Signal Routing
Alguns blocos comumente usados em controle:


               Bus Creator combina um conjunto de sinais em um bus (barra-
              ônibus), isto é, um grupo de sinais representados por uma única
                                linha em um diagrama de bloco.


              Bus Selector recebe sinal de um bus ou de um multiplexador e
                            separa-o em seus sinais originais.


                 Mux combina suas entradas em um único vetor de saída.



             Demux extrai os componentes de um sinal de entrada e fornece os
                          componentes como sinais separados.


                                                                          13
Grupo: Continuous
Alguns blocos comumente usados em controle:
                 Derivative aproxima a derivada de sua entrada computando
                onde du é a mudança no valor da entrada e dt é a mudança do
                  tempo desde o passo precedente do tempo de simulação.

              Integrator fornece a integral da entrada no tempo atual. A seguinte
              equação representa a saída do bloco y em função de sua entrada u
              de uma condição inicial y0, onde y e u são funções vetor do tempo
                                      de simulação atual t.




              State-Space Implementa um sistema linear de espaço de estados.


                  Transfer Fcn modela um sistema linear por uma função de
                                transferência no domínio s.
               Transport Delay atrasa a entrada por uma quantidade de tempo
                                       especificada.
               Zero-Pole modela um sistema especificado pelos zeros, pólos e
               ganho de uma função de transferência no domínio s que define o
                                                                          14
                 relacionamento entre a entrada do sistema e as suas saídas.
Iniciando um novo modelo
                     • O Simulink Library Browser
                       é o toolbox para criação do
                                 modelo.
                      • Inicie criando uma nova
                          janela de trabalho.




                                                  15
Iniciando um novo modelo
                     • O Simulink Library Browser
                       é o toolbox para criação do
                                 modelo.
                      • Inicie criando uma nova
                          janela de trabalho.




                                                  16
Iniciando um novo modelo
•   Arraste o bloco Constant do grupo
    Sources do Simulink para a janela
    de trabalho, depois arraste o
    bloco Scope do grupo Sinks.

•   Clique agora, na saída do bloco (o
    pequeno triângulo á direita do
    bloco) Constant e enquanto
    mantém o botão do mouse
    abaixado, arraste o mouse para a
    entrada do bloco (a pequena seta
    á esquerda do bloco) Scope e
    então libere-o. Será visto uma
    seta apontada sendo
    desenhada.

•   Dê um duplo clique no bloco
    Constant para abrir sua janela de
    parâmetros.

•   Mude o Constant value para 5.
                                         17
Iniciando um novo modelo



    • Através de um duplo clique no bloco
      Scope abre-se a janela do mesmo.




                                            18
Iniciando um novo modelo

  • Pode-se configurar os parâmetros da
  simulação através do Configuration
  Parameters…do menu Simulation.
  • Assim, por exemplo, podemos mudar os
  limites do tempo para a simulação.




                                           19
Iniciando um novo modelo

• Clique Start do menu Simulation (alternativamente pressione Ctrl + T,
   ou ainda clique o botão na barra de ferramentas) para iniciar a
                             simulação.




                                                                      20
Iniciando um novo modelo

 • Esta simulação é muito simples. O que
 ela realiza é simplesmente fazer a saída
    assumir o valor constante 5 o quê é
    mostrada no bloco Scope (o eixo x
    representa o tempo de simulação).


• Dê um clique direito na
janela Autoscale do
Scope




para obter o seguinte
resultado:

                                            21
Iniciando um novo modelo
• Vamos incrementar um
  pouco mais.
• Construa o seguinte
  modelo, (pode-se encontrar
  o bloco Clock no grupo
  Sinks.
• Os blocos Trigonometric
  Function e Sum ficam no
  grupo Math:



       • O resultado que se obtém é
         o seguinte:



                                      22
Iniciando um novo modelo
• Agora, vamos ver se a
  derivada é realmente um
  coseno.
• Construa o seguinte sistema
  (o bloco Derivative esta
  localizado no grupo
  Continuous):

                                Nós podemos ver que o resultado
                                certamente é um coseno, mas
                                algo está errado no começo.




                                                             23
Iniciando um novo modelo

• Isto acontece porque no tempo
  0, o bloco Derivative não tem
  nenhuma informação prévia
  para o cálculo.
• Não há nenhum valor inicial
  para a derivada.
• Assim para o primeiro passo, o
  bloco Derivative supõe que sua
  entrada tem um valor
  constante, assim sua derivada
  é 0, o quê justifica o início do
  gráfico.




                                     24
Iniciando um novo modelo

       • Desenhe o diagrama abaixo e simule-o:
       • Simule também o sistema supondo
         modificações na condição inicial do
         integrador.




                                                 25
Setando preferências




• File --> PreferencesSimulink

                                  28
Modelando Sistemas Dinâmicos



• Um diagrama de bloco Simulink é um modelo
  pictórico de um sistema dinâmico.
• Cada bloco representa um sistema dinâmico
  elementar que produz uma saída contínua (um
  bloco contínuo) ou pontos específicos do tempo
  (um bloco discreto).
• As linhas representam conexões de entradas ou
  saídas do bloco.
                                                   29
Anotações



• Às vezes necessita-se identificar as ligações em
  diagramas de bloco complexos
• Pode-se usar o formato do Latex para a
  anotação
• Para usar o formato do Latex escolha Format 
  Enable Tex Commands
                                                 31
Criando-se um Subsistema
• Ajuda a reduzir o número de blocos indicados na janela
  do modelo.
• Permite manter junto os blocos funcionalmente
  relacionados.
• Permite estabelecer um diagrama de bloco hierárquico,
  onde um bloco de subsistema esta em uma camada e
  os blocos que o compõem em outro.




                                                       32
Antes - Depois




• Selecione com o browser a parte do
  modelo que se quer criar como sub-
  sistema na janela do Simulink
• Nomeie as portas do sub-sistema



                                       33
Ajuda pela Web
http://www.mathworks.com/access/helpdesk/help/toolbox/simulink/gs/bqea1ff-1.html




                                                                            40
Ajuda pela
Literatura




             41

Simulink -oliveira

  • 1.
    Matlab Simulink Prof José Luiz de Oliveira
  • 2.
    Simulink •O Simulink é um pacote de software para modelar, simular e analisar sistemas dinâmicos. • Suporta sistemas lineares e não-lineares, modela no tempo contínuo, no tempo amostrado ou num híbrido dos dois. • É mais poderoso do que o ltiview, uma vez que o Simulink pode também analisar sistemas não- lineares e variantes no tempo. 2
  • 3.
    Exemplo de simulaçãode sistema • No Matlab, digite o comando “thermo”. 3
  • 4.
    Simulação da termodinâmicade uma casa O modelo usa subsistemas para simplificar o O demo modela a termodinâmica de uma modelo do diagrama e cria sistemas que casa. O termostato é ajustado para 70 graus podem ser reutilizados. Um subsistema é um Fahrenheit pelo Set Point e é afetado pela grupo de blocos que é representado por um temperatura exterior Text, que varia pela bloco Subsystem. Este modelo contém cinco aplicação de uma onda senoidal (Daily subsistemas: um nomeado House, outro Temp Variation) com amplitude de 15 graus Thermostat, e três subsistemas conversores numa temperatura base (Avg Outdoor de temperatura (dois convertem Fahrenheit Temp) de 50 graus. Isto simula as flutuações para Celsius e um converte Celsius para diárias de temperatura. 4 Fahrenheit)..
  • 5.
    Quando a simulaçãoterminar as temperaturas interna e externa aparecerão no plot Indoor vs. Outdoor Temp do osciloscópio Thermo Plots como sinais amarelo e magenta, respectivamente. O custo cumulativo do aquecimento aparece no plot Heat Cost ($). 5
  • 6.
    Simulink • Para começara usá-lo, digite o comando simulink no Matlab ou clique no ícone 6
  • 7.
    Grupo: Sources Alguns blocoscomumente usados em controle: Chirp Signal gera uma onda senoidal cuja freqüência aumenta numa taxa linear com tempo. Clock determina o tempo atual da simulação para cada etapa da simulação. Este bloco é útil para outros blocos que necessitem do tempo da simulação. Constant gera um valor constante real ou complexo. . From Workspace lê dados do espaço de trabalho do MATLAB. Ramp gera um sinal que começa num tempo e valor especificados e muda segundo uma taxa especificada. Sine Wave fornece uma senoidal. O bloco pode operar na modalidade baseada no tempo ou baseada em amostras. Step fornece um degrau entre dois níveis definíveis num tempo especificado. 7
  • 8.
    Grupo: Math Operations Algunsblocos comumente usados em controle: Gain multiplica a entrada por um valor constante (ganho). Product executa a multiplicação ou a divisão de suas entradas. Sum executa a adição ou a subtração de suas entradas. Trigonometric Function executa numerosas funções trigonometricas comuns. Tais como: sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, asinh, acosh, e atanh. Nota: Muitas outras funções matemáticas estão disponíveis. Certifique-se da descrição precisa de cada bloco antes de usá-lo. 8
  • 9.
    Grupo: Sinks Alguns blocoscomumente usados em controle: Scope indica sua entrada em função do tempo de simulação. To Workspace escreve sua entrada no espaço de trabalho. Nota: Ao usar-se o bloco To workspace, ajuste o “save format” à “Array” a fim receber a variável como um vetor no workspace (espaço de trabalho). 9
  • 10.
    Grupo: Sinks Usando-se o bloco Scope • Pode-se salvar dados do bloco Scope no workspace (pode-se fazer isto com o bloco “Save to workspace” no grupo “Sinks”) • Pode-se visualizar mais que um sinal no Scope no mesmo eixo ou em eixos separados. 10
  • 11.
    Grupo: Sinks Usando-se o bloco Scope • Setando o número de • Salvando os dados para eixos para o Scope o espaço de trabalho (workspace) 11
  • 12.
    Usando o blocoScope • Setando o número de • Salvando os dados para eixos para o scope o espaço de trabalho (workspace) 12
  • 13.
    Grupo: Signal Routing Algunsblocos comumente usados em controle: Bus Creator combina um conjunto de sinais em um bus (barra- ônibus), isto é, um grupo de sinais representados por uma única linha em um diagrama de bloco. Bus Selector recebe sinal de um bus ou de um multiplexador e separa-o em seus sinais originais. Mux combina suas entradas em um único vetor de saída. Demux extrai os componentes de um sinal de entrada e fornece os componentes como sinais separados. 13
  • 14.
    Grupo: Continuous Alguns blocoscomumente usados em controle: Derivative aproxima a derivada de sua entrada computando onde du é a mudança no valor da entrada e dt é a mudança do tempo desde o passo precedente do tempo de simulação. Integrator fornece a integral da entrada no tempo atual. A seguinte equação representa a saída do bloco y em função de sua entrada u de uma condição inicial y0, onde y e u são funções vetor do tempo de simulação atual t. State-Space Implementa um sistema linear de espaço de estados. Transfer Fcn modela um sistema linear por uma função de transferência no domínio s. Transport Delay atrasa a entrada por uma quantidade de tempo especificada. Zero-Pole modela um sistema especificado pelos zeros, pólos e ganho de uma função de transferência no domínio s que define o 14 relacionamento entre a entrada do sistema e as suas saídas.
  • 15.
    Iniciando um novomodelo • O Simulink Library Browser é o toolbox para criação do modelo. • Inicie criando uma nova janela de trabalho. 15
  • 16.
    Iniciando um novomodelo • O Simulink Library Browser é o toolbox para criação do modelo. • Inicie criando uma nova janela de trabalho. 16
  • 17.
    Iniciando um novomodelo • Arraste o bloco Constant do grupo Sources do Simulink para a janela de trabalho, depois arraste o bloco Scope do grupo Sinks. • Clique agora, na saída do bloco (o pequeno triângulo á direita do bloco) Constant e enquanto mantém o botão do mouse abaixado, arraste o mouse para a entrada do bloco (a pequena seta á esquerda do bloco) Scope e então libere-o. Será visto uma seta apontada sendo desenhada. • Dê um duplo clique no bloco Constant para abrir sua janela de parâmetros. • Mude o Constant value para 5. 17
  • 18.
    Iniciando um novomodelo • Através de um duplo clique no bloco Scope abre-se a janela do mesmo. 18
  • 19.
    Iniciando um novomodelo • Pode-se configurar os parâmetros da simulação através do Configuration Parameters…do menu Simulation. • Assim, por exemplo, podemos mudar os limites do tempo para a simulação. 19
  • 20.
    Iniciando um novomodelo • Clique Start do menu Simulation (alternativamente pressione Ctrl + T, ou ainda clique o botão na barra de ferramentas) para iniciar a simulação. 20
  • 21.
    Iniciando um novomodelo • Esta simulação é muito simples. O que ela realiza é simplesmente fazer a saída assumir o valor constante 5 o quê é mostrada no bloco Scope (o eixo x representa o tempo de simulação). • Dê um clique direito na janela Autoscale do Scope para obter o seguinte resultado: 21
  • 22.
    Iniciando um novomodelo • Vamos incrementar um pouco mais. • Construa o seguinte modelo, (pode-se encontrar o bloco Clock no grupo Sinks. • Os blocos Trigonometric Function e Sum ficam no grupo Math: • O resultado que se obtém é o seguinte: 22
  • 23.
    Iniciando um novomodelo • Agora, vamos ver se a derivada é realmente um coseno. • Construa o seguinte sistema (o bloco Derivative esta localizado no grupo Continuous): Nós podemos ver que o resultado certamente é um coseno, mas algo está errado no começo. 23
  • 24.
    Iniciando um novomodelo • Isto acontece porque no tempo 0, o bloco Derivative não tem nenhuma informação prévia para o cálculo. • Não há nenhum valor inicial para a derivada. • Assim para o primeiro passo, o bloco Derivative supõe que sua entrada tem um valor constante, assim sua derivada é 0, o quê justifica o início do gráfico. 24
  • 25.
    Iniciando um novomodelo • Desenhe o diagrama abaixo e simule-o: • Simule também o sistema supondo modificações na condição inicial do integrador. 25
  • 26.
    Setando preferências • File--> PreferencesSimulink 28
  • 27.
    Modelando Sistemas Dinâmicos •Um diagrama de bloco Simulink é um modelo pictórico de um sistema dinâmico. • Cada bloco representa um sistema dinâmico elementar que produz uma saída contínua (um bloco contínuo) ou pontos específicos do tempo (um bloco discreto). • As linhas representam conexões de entradas ou saídas do bloco. 29
  • 28.
    Anotações • Às vezesnecessita-se identificar as ligações em diagramas de bloco complexos • Pode-se usar o formato do Latex para a anotação • Para usar o formato do Latex escolha Format  Enable Tex Commands 31
  • 29.
    Criando-se um Subsistema •Ajuda a reduzir o número de blocos indicados na janela do modelo. • Permite manter junto os blocos funcionalmente relacionados. • Permite estabelecer um diagrama de bloco hierárquico, onde um bloco de subsistema esta em uma camada e os blocos que o compõem em outro. 32
  • 30.
    Antes - Depois •Selecione com o browser a parte do modelo que se quer criar como sub- sistema na janela do Simulink • Nomeie as portas do sub-sistema 33
  • 31.
  • 32.
  • 33.