Escolar Documentos
Profissional Documentos
Cultura Documentos
VIÇOSA
2019
IGOR LOPES COSTA RAMALHO
VIÇOSA
2019
“Sonhe grande. Ter um sonho grande dá o mesmo
trabalho de ter um sonho pequeno.”
(Jorge Paulo Lemann)
Dedico este trabalho a minha mãe, Maria Aparecida.
Agradecimentos
Ao meu orientador, André Gomes Tôrres, por todo o apoio e direcionamento dado ao
longo da elaboração deste trabalho.
Aos meus amigos, antigos e aos novos que fiz durante os anos de graduação, por
compartilharem momentos incríveis comigo.
𝑒 Número de Euler
ξ Coeficiente de amortecimento
1 Introdução .................................................................................................... 13
1.1 Programação orientada a objetos ............................................................................. 13
1.1.1 Objetos e classes .................................................................................................. 14
1.1.2 Pilares da POO .................................................................................................... 14
1.1.2.1 Abstração ............................................................................................................. 14
1.1.2.2 Encapsulamento ................................................................................................... 15
1.1.2.3 Herança ................................................................................................................ 15
1.1.2.4 Polimorfismo ....................................................................................................... 16
1.2 Programação multithread ......................................................................................... 16
1.3 Curva de resposta .................................................................................................... 17
1.3.1 Resposta ao impulso ............................................................................................ 17
1.3.2 Resposta ao degrau .............................................................................................. 18
1.3.3 Resposta a rampa ................................................................................................. 19
1.4 Microsoft Visual Studio .......................................................................................... 19
1.5 Linguagem de programação – C#............................................................................ 20
1.6 MATLAB ................................................................................................................ 20
1.7 Objetivo Geral ......................................................................................................... 21
2 Metodologia................................................................................................. 22
2.1 Modelagem matemática ........................................................................................... 22
2.1.1 Função de primeira ordem ................................................................................... 22
2.1.1.1 Resposta ao impulso ............................................................................................ 22
2.1.1.2 Resposta ao degrau .............................................................................................. 23
2.1.1.3 Resposta a rampa ................................................................................................. 24
2.1.2 Função de segunda ordem ................................................................................... 24
2.1.2.1 Resposta ao impulso ............................................................................................ 25
2.1.2.2 Resposta ao degrau .............................................................................................. 27
2.2 Estrutura do código .................................................................................................. 29
2.2.1 Definição de threads............................................................................................ 29
2.2.2 Gráfico de resposta de saída ................................................................................ 29
2.2.3 Interface gráfica ................................................................................................... 30
2.2.3.1 Método calcular ................................................................................................... 32
2.2.3.2 Método plotar gráfico .......................................................................................... 32
2.2.3.3 Método intertravamento de grau de função ......................................................... 32
2.2.3.4 Método intertravamento função de entrada ......................................................... 33
2.2.3.5 Método ajuste de plotagem .................................................................................. 33
2.2.3.6 Método resetar ..................................................................................................... 33
2.3 Interação com usuário .............................................................................................. 34
4 Conclusões................................................................................................... 38
Figura 12 - Tela do usuário para uma função de transferência de segundo grau .................... 35
2002). Constituem-se assim, as bases para a criação do que hoje conhecemos como
Programação orientada a objetos.
Objetos são instâncias de classes, que determinam qual informação um objeto contém e
como ele pode manipulá-la.
1.1.2.1 Abstração
real qualquer objeto possui elementos que o definem. Dentro da programação orientada a
objetos, essas características são nomeadas propriedades. Por fim, o terceiro ponto consiste em
definir as ações que o objeto irá executar. Essas ações, ou eventos, são chamados métodos
(DEVMEDIA, 2014).
1.1.2.2 Encapsulamento
Dessa forma, detalhes internos sobre a operação do objeto não são conhecidos,
permitindo que o usuário do objeto trabalhe em um nível mais alto de abstração, sem
preocupação com os detalhes internos da classe. Essa facilidade permite simplificar a
construção de programas com funcionalidades complexas, tais como interfaces gráficas ou
aplicações distribuídas (RICARTE, 2001).
1.1.2.3 Herança
1.1.2.4 Polimorfismo
Na natureza, vemos animais que são capazes de alterar sua forma conforme a
necessidade, e é dessa ideia que vem o polimorfismo na orientação a objetos. Como sabemos,
os objetos filhos herdam as características e ações de seus “ancestrais”. Entretanto, em alguns
casos, é necessário que as ações para um mesmo método sejam diferentes (DEVMEDIA, 2014).
Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma
superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas
comportamentos distintos, especializados para cada classe derivada, usando para tanto uma
referência a um objeto do tipo da superclasse. Esse mecanismo é fundamental na programação
orientada a objetos, permitindo definir funcionalidades que operem genericamente com objetos,
abstraindo-se de seus detalhes particulares quando esses não forem necessários (RICARTE,
2001).
Todo processo possui pelo menos uma thread, denominada thread primária. O código
da thread primária corresponde ao programa principal. Outras rotinas de um programa podem
ser executadas como threads de forma concorrente ao programa principal, sendo criadas
dinamicamente pela thread primária (SEIXAS FILHO; SZUSTER, 2003).
ℒ{𝑦(𝑡)} 𝑌(𝑠)
𝐹𝑢𝑛çã𝑜 𝑑𝑒 𝑡𝑟𝑎𝑛𝑠𝑓𝑒𝑟ê𝑛𝑐𝑖𝑎 = 𝐺(𝑠) = ℒ{𝑥(𝑡)} = 𝑋(𝑠) (1)
X(s) Y(s)
G(s)
Figura 1 - Diagrama de blocos de um sistema genérico.
O impulso unitário 𝛿(𝑡), também chamado de função delta de Dirac, é definido pela
expressão (2) (ZILL, 2016), sendo seu gráfico mostrado na Figura 2.
∞, 𝑡 = 0
𝛿(𝑡) = { (2)
0, 𝑡 ≠ 0
ℒ{𝛿(𝑡)} = 1 (3)
1 Introdução 18
𝛿(𝑡)
0, 𝑡 < 0
𝑢(𝑡) = { (5)
1, 𝑡 ≥ 0
Considere agora, uma entrada no formato de degrau unitário para o mesmo tipo de
sistema abordado no tópico anterior. Como a transformada de Laplace da função degrau unitário
1 Introdução 19
é igual a 1/s, a transformada de Laplace da saída do sistema é dada pela expressão (OGATA,
2011):
𝐺(𝑠)
𝑌(𝑠) = (6)
𝑠
A função rampa unitária 𝑟(𝑡) é definido pela expressão (7), sendo seu gráfico mostrado
na Figura 4.
𝑡, 𝑡 ≥ 0
𝑟(𝑡) = { (7)
0, 𝑡 < 0
1
ℒ{𝛿(𝑡)} = (8)
𝑠2
𝑟(𝑡)
1 t
Figura 4 – Gráfico da função rampa unitária.
Considere, por fim, uma entrada no formato de rampa unitária para o mesmo tipo de
sistema abordado nos tópicos anteriores. Como a transformada de Laplace da função rampa
unitária é igual a 1/s2, a transformada de Laplace da saída do sistema é dada por (OGATA,
2011):
𝐺(𝑠)
𝑌(𝑠) = (9)
𝑠2
1.6 MATLAB
𝑌(𝑠) 𝐴
𝐺(𝑠) = 𝑋(𝑠) = ( 10 )
𝐶𝑠+𝐷
A curva de resposta para uma entrada impulso unitário, pode ser observada na Figura
5. Note que na figura T = D/C = D/A.
2 Materiais e Métodos 23
1
𝑥(𝑡) = 𝑢(𝑡) ⇒ 𝑋(𝑠) = 𝑠 ( 14 )
A curva de resposta para uma entrada degrau unitário, pode ser observada na Figura 6.
Note que na figura a amplitude em estado estacionário é unitária e T= D/C.
Figura 6 - Curva exponencial de resposta para entrada degrau unitário (OGATA, 2011).
2 Materiais e Métodos 24
1
𝑥(𝑡) = 𝑟(𝑡) ⇒ 𝑋(𝑠) = 𝑠2 ( 17 )
A curva de resposta para uma entrada rampa unitária, pode ser observada na Figura 7 e
assim como no item anterior T= D/C.
𝑌(𝑠) 𝐴
𝐺(𝑠) = 𝑋(𝑠) = (20 )
𝐵𝑠2 +𝐶𝑠+𝐷
𝑌(𝑠) 𝐴 𝐴 1 𝐴 𝜔𝑛 2
𝐺(𝑠) = 𝑋(𝑠) = =𝐵 = 𝐵𝜔 ( 21 )
𝐵𝑠2 +𝐶𝑠+𝐷 𝑠2 +𝐾1 𝑠+𝐾1 𝑛
2 𝑠2 +2ξ𝜔𝑛 𝑠+𝜔𝑛 2
2 Materiais e Métodos 25
onde
𝐶 𝐷
𝐾1 = 𝐵 = 2ξ𝜔𝑛 , 𝐾2 = 𝐵 = 𝜔𝑛 2 𝑒 𝜔𝑛 > 0 ( 22 )
𝑠 2 + 2ξ𝜔𝑛 𝑠 + 𝜔𝑛 2 = 0 ( 23 )
𝐴 𝜔𝑛 2
𝑌(𝑠) = 𝐵𝜔 2
( 25 )
𝑛 1.(𝑠2 +2ξ𝜔𝑛 𝑠+𝜔𝑛 2 )
𝐴 𝜔𝑛 2 𝐴 𝜔𝑛 2
𝑌(𝑠) = 𝐵𝜔 2 = 𝐵𝜔 ( 27 )
𝑛 𝑠2 +2ξ𝜔𝑛 𝑠+𝜔𝑛 2 2
𝑛 (𝑠+𝜎+𝑗𝜔𝑑 )(𝑠+𝜎−𝑗𝜔𝑑 )
𝐴 1
𝑦(𝑡) = 𝐵𝜔 2 [ 𝑒 −𝜉𝜔𝑛𝑡 . 𝑠𝑒𝑛(𝜔𝑛 √1 − 𝜉 2 . 𝑡)] , para t ≥ 0 ( 28 )
𝑛 √1−𝜉 2
𝐴 𝜔𝑛 2 𝐴 𝜔𝑛 2
𝑌(𝑠) = 𝐵𝜔 2
= 𝐵𝜔 ( 30 )
𝑛 𝑠 +2ξ𝜔𝑛 𝑠+𝜔𝑛 2
2
𝑛
2 (𝑠+𝜔𝑛 )2
𝐴 𝜔𝑛 2 𝐴 𝜔𝑛 2
𝑌(𝑠) = 𝐵𝜔 2
= 𝐵𝜔 ( 33 )
𝑛 𝑠 +2ξ𝜔𝑛 𝑠+𝜔𝑛 2
2
𝑛
2 (𝑠−𝑠1 )(𝑠−𝑠2 )
2 Materiais e Métodos 27
𝐴 𝜔𝑛 2 −1)𝜔 2 −1)𝜔
𝑦(𝑡) = 𝐵𝜔 2
[𝑒 −(𝜉−√𝜉 𝑛𝑡
− 𝑒 −(𝜉+√𝜉 𝑛𝑡
] , para t ≥ 0 ( 34 )
𝑛 2√𝜉 2 −1
A curva de resposta para uma entrada impulso unitário obtida no MATLAB®, para
diferentes valores de ξ pode ser observada na Figura 9. Para fins de plotagem foram utilizados
os valores: A=10, B=1 e ωn = 3 rad/s.
ξ=0.1
ξ=0.2
ξ=0.3
ξ=0.5
ξ=1.0
ξ=2.0
𝐴 𝜔𝑛 2
𝑌(𝑠) = 𝐵𝜔 2
( 35 )
𝑛 𝑠(𝑠2 +2ξ𝜔𝑛 𝑠+𝜔𝑛 2 )
𝐴 𝜔𝑛 2 𝐴 𝜔𝑛 2
𝑌(𝑠) = 𝐵𝜔 2 2 ) = 𝐵𝜔
( 37 )
𝑛 𝑠(𝑠2 +2ξ𝜔𝑛 𝑠+𝜔𝑛 2
𝑛 𝑠(𝑠+𝜎+𝑗𝜔𝑑 )(𝑠+𝜎−𝑗𝜔𝑑 )
2 Materiais e Métodos 28
𝐴 1
𝑦(𝑡) = 𝐵𝜔 2
[1 − 𝑒 −𝜎𝑡 . 𝑠𝑒𝑛(𝜔𝑑 𝑡 + 𝑎𝑐𝑜𝑠(𝜉))] , para t ≥ 0 ( 38 )
𝑛 √1−𝜉 2
𝐴 𝜔𝑛 2 𝐴 𝜔𝑛 2
𝑌(𝑠) = 𝐵𝜔 2 2 ) = 𝐵𝜔 ( 40 )
𝑛 𝑠(𝑠2 +2ξ𝜔𝑛 𝑠+𝜔𝑛 𝑛
2 𝑠(𝑠+𝜔𝑛 )2
𝐴 𝜔𝑛 2 𝐴 𝜔𝑛 2
𝑌(𝑠) = 𝐵𝜔 2 2 ) = 𝐵𝜔 ( 43 )
𝑛 𝑠(𝑠2 +2ξ𝜔𝑛 𝑠+𝜔𝑛 2
𝑛 𝑠(𝑠−𝑠1 )(𝑠−𝑠2 )
𝐴 𝜔𝑛 𝑒 𝑠2 𝑡 𝑒 𝑠1 𝑡
𝑦(𝑡) = 𝐵𝜔 2
[1 + ( − )] , para t ≥ 0 ( 44 )
𝑛 2√𝜉 2 −1 𝑠2 𝑠1
A curva de resposta para uma entrada degrau unitário obtida no MATLAB®, para
diferentes valores de ξ pode ser observada na Figura 10. Para fins de plotagem foram utilizados
os valores: A=10, B=1 e ωn = 3 rad/s.
2 Materiais e Métodos 29
ξ=0.1 ξ=0.2
ξ=0.3
ξ=0.5
ξ=1.0
ξ=2.0
O código do software foi escrito em C# e foi estruturado em duas threads, sendo que os
elementos do corpo do código se dividem em quatro grandes categorias: cálculo de parâmetros,
controle de labels e botões, gráfico de resposta de saída e interface gráfica.
SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: Pearson Prentice Hall,
2011. Tradução de: Ivan Bosnic e Kalinka G. de O. Gonçalves
LIMA, Edwin; REIS, Eugênio. C# e .Net para desenvolvedores. Rio de Janeiro: Campus,
2002.
RICARTE, Ivan Luiz Marques. Programação Orientada a Objetos: Uma Abordagem com
Java. São Paulo: Unicamp - Departamento de Engenharia de Computação e Automação
Industrial, 2001.
OGATA, Katsuhiko. Engenharia de controle moderno. 5. ed. São Paulo: Person, 2011.
Tradução de: Heloísa Coimbra de Souza.
Referências Bibliográficas 40
ZILL, Dennis G. Equações diferenciais com aplicações em modelagem. 3. ed. São Paulo:
Cengage Learning, 2016. Tradução: Márcio Koji Umezawa; revisão técnica Ricardo Miranda
martins, Juliana Gaiba oliveira.
HIGUTI, Ricardo Tokio; KITANO, Cláudio. Sinais e sistemas. São Paulo: UNESP -
Departamento de Engenharia Elétrica, 2003. Disponível em:
<https://www.feis.unesp.br/Home/departamentos/engenhariaeletrica/optoeletronica/sinais_e_s
istemas.pdf>. Acesso em: 21 maio 2019.