quarta-feira, março 25, 2009

Como gerar Diagramas de Bode sem fazer contas no MATLAB.

Suponha que você precise gerar os Diagramas de Bode para uma função qualquer. Traça-los na mão é muito trabalhoso, chato e sujeito a erros. Existe um modo mais fácil de fazer isso?

Claro que existe. Tu podes usar o Matlab. O Matlab possui algumas funções que traçam os diagramas de margem e fase. Tu só tens que fornecer a função de transferência.

Por exemplo, se a tua função de transferência for

tu podes usar a função Margin(), igual mostrado na figura 1 abaixo.

Figura 1 - Executando a função Margin

O Matlab vai gerar o gráfico mostrado na figura 2.

Figura 2 - Resultado da função Margin

Legal, não é? Mas e se a função de transferência for mais complexa? Se ela for composta por duas ou mais funções? Por exemplo a mostrada na figura 3?

Figura 3 - Função mais complexa para a qual se deseja traçar o Diagrama de Bode

Simples. Tu podes achar a função equivalente, conforme mostrado na figura 4. Daí nós simplesmente chamamos a função Margin passando a função equivalente, igual fizemos no primeiro exemplo.

Figura 4 - Função equivalente para a qual se deseja traçar o Diagrama de Bode

E se a função for mais complexa ainda. Por exemplo, igual a mostrada na figura 5?

Figura 5 - Exemplo de função mais complexa

Simples. Podemos achar a função equivalente dela, igual fizemos no exemplo anterior.

O problema com essa abordagem é que, além de trabalhosa, demorada e sujeita a erros, nem sempre é viável acharmos a função equivalente "na unha".

Devemos deixar o Matlab trabalhar para nós. Como? Simples (irritante esse negócio de ficar falando simples toda hora, não é?). Usaremos a ferramenta do Matlab chamada Simulink.

Os passos são sempre os mesmos, não importa a complexidade do circuito.

Suponha que queremos traçar o Diagrama de Bode para o circuito mostrado na figura 5.

  1. No command Window do Matlab, digite Simulink e tecle ENTER.

  2. Desenhar o circuito / planta para o qual se deseja traçar o Diagrama de Bode (conforme fizemos na figura 5).

  3. Clique com o botão direito do mouse sobre a entrada do sistema e selecione Linearization Points -> Input Point.

    Figura 6 - Selecionando o ponto de entrada do circuito

    Aparecerá uma bolinha com uma setinha entrando nela em cima da linha de entrada do sistema. A figura 7 mostra o que estou falando.

    Figura 7 - Seta vermelha mostra a entrada selecionada

  4. Clique com o botão direito do mouse sobre a saída do sistema e selecione Linearization Points -> Output Point.

    Figura 8 - Selecionando o ponto de saída do circuito

    Aparecerá uma bolinha com uma setinha saindo dela em cima da linha de saída do sistema. Veja a figura 9.

    Figura 9 - Seta vermelha mostra a saída selecionada

  5. Selecione Tools -> Control Design - Linear Analysis (veja a figura 10).

    Figura 10 - Selecionando a análise linear.

  6. Na janela que abrirá, selecione Bode Response Plot no combo box (figura 11).

    Figura 11 - Selecionada a análise Bode Response Plot

  7. Clique no botão Linearize Mode (figura 12).

    Figura 12 - Selecionar o botão de execução da análise linear.
Pronto. O Matlab irá gerar o Diagrama de Bode para ti. A figura 13 mostra o resultado.

A partir de agora, tu nunca mais vais precisar resolver na mão as equações. Este método é útil para outros tipos de análise, como o Diagrama de Nyquist, por exemplo.

O Matlab é uma excelente ferramenta. E, como toda ferramenta, para que possamos aproveitá-la ao máximo, devemos conhecê-la bem.

Recomendo os três livros a seguir:
Não se impressione com as palavras Engenheiros / Engenharia nos títulos. Tu não precisas ser nem engenheiro nem estudante de engenharia para usá-lo.

Tudo que eles ensinam servem para todos que precisem usar o Matlab. Escolha quantos quiser, compre-os e estude-os com afinco. Valerá a pena.

Figura 13 - Diagramas de Bode de Margem e Fase

2 comentários:

Wanderley Caloni disse...

Uau! Welcome back, tio. Sempre é bom ver blogueiros voltando à ativa =)

[]s

Marcio Andrey Oliveira disse...

Thanks a lot!

Vou tentar escrever mais. Infelizmente (?) ando com pouco tempo para escrever (não tão pouco quanto o Fernando, claro).