Upload
vandan
View
215
Download
0
Embed Size (px)
Citation preview
CURSO DE BACHARELADO EM ENGENHARIA DE CONTROLE E
AUTOMAÇÃO
CAMILA FONSECA LINS
FÁBIO VINÍCIUS BARRADAS DE SOUZA
DESENVOLVIMENTO DE UM SIMULADOR DIDÁTICO DE UM PÊNDULO INVERTIDO COM MODELAGEM E CONTROLE EM ESPAÇO
DE ESTADOS
CAMPOS DOS GOYTACAZES - RJ
ABRIL/2013
CAMILA FONSECA LINS
FÁBIO VINÍCIUS BARRADAS DE SOUZA
DESENVOLVIMENTO DE UM SIMULADOR DIDÁTICO DE UM PÊNDULO INVERTIDO COM MODELAGEM E CONTROLE EM ESPAÇO
DE ESTADOS
Trabalho de conclusão de curso apresentado ao Instituto Federal de Educação, ciência e tecnologia Fluminense como requisito parcial para conclusão do curso de Bacharelado em Engenharia de Controle e Automação.
Orientador: Prof. Edson Simões dos Santos
CAMPOS DOS GOYTACAZES - RJ
ABRIL/ 2013
L759d Lins, Camila Fonseca. Desenvolvimento de um simulador didático de um pêndulo invertido com modelagem e controle em espaço de estados / Camila Fonseca Lins, Fábio Vinícius Barradas de Souza – Campos dos Goytacazes, RJ : [s.n.], 2013. 108f. il. Orientador: Edson Simões dos Santos. Monografia ( Engenharia de Controle e Automação). Instituto Federal de Educação, Ciência e Tecnologia Fluminense. Campus Campos Centro, 2013. Referencias bibliográficas: p. 93 – 94. 1. Controle automático. 2. Simulação – Computadores. I. Souza, Fábio Vinícius Barradas de. II. Santos, Edson Simões dos, orient. III. Título.
CDD – 629.83
Dados Internacionais de Catalogação na Publicação (CIP) Biblioteca. Setor de Processos Técnicos (IFF)
CAMILA FONSECA LINS
FÁBIO VINÍCIUS BARRADAS DE SOUZA
DESENVOLVIMENTO DE UM SIMULADOR DIDÁTICO DE UM PÊNDULO INVERTIDO COM MODELAGEM E CONTROLE EM ESPAÇO DE ESTADOS
Trabalho de conclusão de curso apresentado ao Instituto Federal de Educação, ciência e tecnologia Fluminense como requisito parcial para conclusão do curso de Bacharelado em Engenharia de Controle e Automação.
Orientador: Prof. Edson Simões dos Santos
Aprovada em 25 de abril de 2013
Banca Avaliadora:
_____________________________________________________________
Prof° Edson Simões dos Santos (orientador)
Bacharel em Engenharia de Controle e Automação, IFF
Instituto Federal de Educação, ciência e tecnologia Fluminense.
________________________________________________________________
Prof° Adelson Siqueira Carvalho
Doutor em Informática na Educação, UFRGS
Instituto Federal de Educação, ciência e tecnologia Fluminense.
________________________________________________________________
Prof° William da Silva Viana
Doutor em Engenharia e Ciências dos Materiais, UENF
Instituto Federal de Educação, ciência e tecnologia Fluminense.
AGRADECIMENTOS
Gostaríamos de agradecer primeiramente a Deus, pela nossa vida e por ter-nos
possibilitado saúde, inteligência e capacidade para vencer mais este desafio. Nada seria de nós
se não fosse a fé que temos nEle.
Aos nossos pais e familiares que foram pilares de sustentação nos momentos de
cansaço físico e mental e nos ajudaram a manter o foco neste projeto. Pelo apoio,
compreensão e amor dedicados a nós nesses cinco anos e desde sempre, principalmente neste
momento de nossas vidas, no qual caminhamos a fim de conquistar o sucesso tão almejado
que é a conclusão do curso.
Ao nosso orientador e amigo Edson Simões dos Santos pela colaboração,
solidariedade e paciência demonstradas em todas as fases de elaboração do presente trabalho.
Aos professores membros da banca avaliadora, Adelson Siqueira Carvalho e William
da Silva Vianna, por terem enriquecido este trabalho e dado sugestões de melhoria.
Àqueles professores que foram mestres no seu papel de nos passar conhecimento e
sabedoria e à professora Maria Inês Albernaz, que disponibilizou seu tempo para verificar o
resumo em língua inglesa deste trabalho.
Aos colegas de curso, sinceros colegas de turma que certamente deixarão saudades,
pela amizade e companheirismo nesses cinco anos de curso.
E por fim, agradecemos a todos que de alguma forma passaram pela nossa vida e
contribuíram para a construção de quem somos hoje.
Obrigado.
Camila Fonseca Lins e Fábio Vinícius Barradas de Souza
Os nossos ideais se transformarão em realidade sempre que os tentemos
corporificar através de um pensamento firme e valoroso.
Alberto Montalvão
RESUMO
O controle automático tem desempenhado um papel de grande importância no avanço da
tecnologia. Diversos sistemas tem se aperfeiçoado graças a esse avanço e podem ser
utilizados em uma gama de aplicações. O sistema de controle do pêndulo invertido, por
exemplo, pode ser utilizado para simular testes em sistemas de veículos espaciais, sistemas de
direcionamento de mísseis, sistemas robóticos, entre outros. O presente trabalho tem por
propósito apresentar uma simulação didática de um pêndulo invertido através da modelagem e
controle no espaço de estados. O Pêndulo Invertido é um processo mecânico absolutamente
instável, ou seja, está sujeito a cair em qualquer direção a menos que uma força adequada seja
aplicada ao carro de suporte da base do pêndulo acelerando-o em uma determinada direção. O
controle foi realizado através da modelagem do sistema linearizado do pêndulo com o
objetivo de encontrar suas funções de transferências e, a partir delas, as matrizes de estado do
sistema. Através de um projeto do sistema de controle no Simulink® e de sua comunicação
com o Blender, foi possível realizar a simulação do controle do pêndulo, de maneira a
possibilitar a análise do comportamento das variáveis em conjunto com a animação gráfica
em 3D. Esta comunicação foi realizada através do servidor OPC (OLE - Object Linking and
Embedding - for Process Control), pelo software Matrikon. O sistema implementado para o
pêndulo invertido usando a variável força como entrada e as variáveis ângulo, velocidade
angular, posição e velocidade linear como saídas a serem controladas, forneceu bons
resultados.
Palavras-chave: Pêndulo Invertido. Modelagem e Controle no Espaço de Estados. Simulação.
Comunicação OPC.
ABSTRACT
Automatic control has played a major role in the advancement of technology. Several systems
have been perfected through this advance and can be used in a variety of applications. The
control system of the inverted pendulum, for example, can be used to simulate tests in
spacecraft systems, missile guidance systems and robotic systems, among others. The purpose
of this final paper is to present a simulation of an inverted pendulum through modeling and
control in state space. The inverted pendulum is a mechanical process absolutely unstable,
that is, is subject to fall in any direction unless an appropriate force is applied to the pendulum
car support accelerating it in a certain direction. The control was performed by modeling the
pendulum system linearized in order to find their transfer functions and, from them, the
matrices of system state. Through a project control system in Simulink® and its
communication with Blender, it was possible to perform the simulation of the control of the
pendulum, so as to enable analysis of the behavior of the variables together with the 3D
graphical animation. This communication was done through communication OPC (OLE -
Object Linking and Embedding - for Process Control) at Matrikon software. The implemented
system for the inverted pendulum using the variable force as input and the variables angle,
angular speed, linear speed and position as outputs to be controlled, gave good results.
Keywords: Inverted Pendulum. Modeling and Control in State Space. Simulation. OPC
Communication.
LISTA DE FIGURAS
Figura 1.1: Pêndulo Invertido................................................................................................... 13
Figura 1.2: Segway................................................................................................................... 14
Figura 1.3: Classificação dos sistemas para fins de modelagens ............................................. 21
Figura 1.4: Propriedade de Invariância no Tempo (a).............................................................. 24
Figura 1.5: Propriedade de Invariância no Tempo (b).............................................................. 24
Figura 1.6: Representação do Problema................................................................................... 27
Figura 1.7: Problema de re-arranjo de blocos .......................................................................... 28
Figura 1.8: Representação gráfica do espaço de estados para o problema em estudo. ............ 29
Figura 1.9: Sistema de controle de malha fechada com u = - Kx............................................. 44
Figura 2.1: Sistema do pêndulo invertido................................................................................. 49
Figura 2.2: Representação do movimento horizontal............................................................... 49
Figura 2.3: Representação do movimento vertical ................................................................... 50
Figura 2.4: Diagrama do corpo livre (a) ................................................................................... 50
Figura 2.5: Diagrama do corpo livre (b)................................................................................... 50
Figura 2.6: Sistema de controle de malha fechada no Simulink® ............................................ 72
Figura 2.7: Function referente à matriz A ................................................................................ 73
Figura 2.8: Configuração da Function referente à matriz A..................................................... 74
Figura 2.9: Function referente à matriz B................................................................................. 74
Figura 2.10: Configuração da Function referente à matriz B................................................... 75
Figura 2.11: Function referente à matriz C............................................................................... 75
Figura 2.12: Configuração da Function referente à matriz C................................................... 76
Figura 2.13: Function referente à matriz D .............................................................................. 76
Figura 2.14: Configuração da Function referente à matriz D................................................... 77
Figura 2.15: Function referente à matriz de ganho K............................................................... 77
Figura 2.16: Configuração da Function referente à matriz de ganho K ................................... 78
Figura 2.17: Tela inicial do Matrikon....................................................................................... 79
Figura 2.18: Criação do grupo no Matrikon............................................................................. 80
Figura 2.19: Criação da variável “angulo” ............................................................................... 80
Figura 2.20: Criação da variável “posicao”.............................................................................. 81
Figura 2.21: Projeto do sistema de controle no Simulink® ...................................................... 81
Figura 2.22: Tela de configuração do bloco OPC Write .......................................................... 82
Figura 2.23: Adição do cliente OPC no bloco OPC Write (a) ................................................. 83
Figura 2.24: Adição do cliente OPC no bloco OPC Write (b) ................................................. 83
Figura 2.25: Adição do cliente OPC no bloco OPC Write (c) ................................................. 84
Figura 2.26: Adição das variáveis de saída no bloco OPC Write (a) ....................................... 84
Figura 2.27: Adição das variáveis de saída no bloco OPC Write (b)....................................... 85
Figura 2.28: Bloco OPC Write configurado............................................................................. 85
Figura 2.29: Configuração do bloco Saturação ........................................................................ 86
Figura 2.30: Configuração do bloco OPC Configuration......................................................... 86
Figura 2.31: Projeto do sistema de controle configurado......................................................... 87
Figura 3.1: Gráfico do comportamento do ângulo ................................................................... 89
Figura 3.2: Gráfico do comportamento da velocidade angular ................................................ 90
Figura 3.3: Gráfico do comportamento da posição .................................................................. 90
Figura 3.4: Gráfico do comportamento da velocidade linear ................................................... 91
Figura 3.5: Visualização do simulador do pêndulo quando submetido a um distúrbio até o equilíbrio................................................................................................................................... 91
Figura A.1: Tela inicial do Blender.......................................................................................... 95
Figura A.2: Escalonamento do objeto ...................................................................................... 95
Figura A.3: Visão Perspectiva.................................................................................................. 96
Figura A.4: Adição de um novo objeto (a)............................................................................... 96
Figura A.5: Adição de um novo objeto (b)............................................................................... 97
Figura A.6: Objeto criado......................................................................................................... 97
Figura A.7: Movimentação do objeto....................................................................................... 98
Figura A.8: Extrusão da roda.................................................................................................... 98
Figura A.9: Extrusão do objeto em apenas um eixo................................................................. 99
Figura A.10: Renomeação dos objetos (a) ............................................................................... 99
Figura A.11: Renomeação dos objetos (b) ............................................................................. 100
Figura A.12: Escalonamento da roda ..................................................................................... 100
Figura A.13: Duplicação da roda............................................................................................ 101
Figura A.14: Duplicação das rodas......................................................................................... 101
Figura A.15: Criação da haste ................................................................................................ 102
Figura A.16: Modificação do tamanho do novo objeto (haste).............................................. 102
Figura A.17: Criação da haste ................................................................................................ 103
Figura A.18: Renomeação do objeto ...................................................................................... 103
Figura A.19: Criação do topo da haste (a).............................................................................. 104
Figura A.20: Criação do topo da haste (b).............................................................................. 104
Figura A.21: Criação da base fixa para a haste (a)................................................................. 105
Figura A.22: Criação da base fixa para a haste (b)................................................................. 105
Figura A.23: Criação da base da haste ................................................................................... 106
Figura A.24: Modificação das cores dos objetos.................................................................... 106
Figura A.25: Modelo pronto do pêndulo invertido ................................................................ 107
SUMÁRIO
AGRADECIMENTO ................................................................................................................. 3
RESUMO ................................................................................................................................... 5
ABSTRACT ............................................................................................................................... 6
LISTA DE FIGURAS ................................................................................................................ 7
SUMÁRIO................................................................................................................................ 10
INTRODUÇÃO........................................................................................................................ 13
OBJETIVO............................................................................................................................... 16
JUSTIFICATIVA. ................................................................................................................... 17
1 – MÉTODOS E FERRAMENTAS....................................................................................... 18
1.1 – Simulador didático ........................................................................................................ 18
1.1.1 – Modelos ................................................................................................................. 18
1.1.1.1 – Modelos matemáticos .................................................................................... 19
1.1.1.2 – Modelos de simulação ................................................................................... 20
1.1.2 – Sistemas................................................................................................................. 20
1.1.2.1 - Sistemas lineares ............................................................................................ 21
1.1.2.2 – Sistemas não-lineares..................................................................................... 23
1.1.2.3 – Sistemas invariantes no tempo....................................................................... 23
1.1.2.4 – Sistemas variantes no tempo.......................................................................... 24
1.1.3 – Simulação .............................................................................................................. 25
1.2 – Animação 3D ................................................................................................................ 26
1.3 – Linearização de sistemas não-lineares .......................................................................... 27
1.4 – Modelagem no espaço de estados ................................................................................. 27
1.5 – Representação de sistemas dinâmicos no espaço de estados ........................................ 33
1.5.1 – Correlação entre funções de transferência e equações no espaço de estados........ 33
1.5.2 – Representação de funções de transferência no espaço de estados......................... 34
1.6 – Análise de Sistemas de Controle no Espaço de Estados...............................................35
1.6.1 - Controlabilidade..................................................................................................... 36
1.6.1.1 – Controlabilidade completa de estado de sistemas de tempo contínuo........... 36
1.6.1.2 – Condição de controlabilidade completa de estado no plano s....................... 38
1.6.1.3 – Controlabilidade de saída .............................................................................. 38
1.6.1.4 – Estabilizabilidade........................................................................................... 39
1.6.2 – Observabilidade..................................................................................................... 40
1.6.2.1 – Observabilidade completa de sistemas de tempo contínuo ........................... 40
1.6.2.2 – Condição de observabilidade completa no plano s........................................ 42
1.6.2.3 – Detectabilidade .............................................................................................. 42
1.7 – Projeto de Sistemas de Controle no Espaço de Estados................................................ 43
1.7.1 – Projeto por Alocação de Pólos .............................................................................. 43
1.7.1.1 – Condição necessária e suficiente para alocação arbitrária de pólos .............. 44
1.7.1.2 – Determinação da matriz K com a utilização da matriz de transformação T..45
1.7.1.3 – Escolhendo a localização dos pólos de malha fechada desejados ................. 46
1.8 – Servidor OPC ................................................................................................................ 46
1.9 – Software Matemático .................................................................................................... 47
1.9.1 – Plataforma de simulação para modelos contínuos ................................................ 48
2 – DESENVOLVIMENTO..................................................................................................... 49
2.1 – Modelo matemático do pêndulo invertido .................................................................... 49
2.2 – Modelagem no Espaço de Estados................................................................................ 54
2.3 – Funções de transferência do sistema ............................................................................. 56
2.4 – Representação das funções de transferência no espaço de estados na forma canônica controlável.............................................................................................................................. 60
2.5 – Análise do Sistema de Controle no Espaço de Estados do Pêndulo Invertido.............. 61
2.5.1 – Controlabilidade completa de estado..................................................................... 62
2.5.2 – Controlabilidade de saída ......................................................................................63
2.5.3 – Observabilidade completa ..................................................................................... 67
2.6 – Projeto do controlador do pêndulo invertido no MATLAB®........................................ 70
2.7 – Comunicação entre Blender e Simulink® via protocolo OPC....................................... 79
2.8 – Programação em Python no Blender............................................................................. 87
3 – ANÁLISE DOS RESULTADOS ....................................................................................... 89
4 – CONCLUSÃO.................................................................................................................... 92
REFERÊNCIAS ....................................................................................................................... 93
APÊNDICE A .......................................................................................................................... 95
INTRODUÇÃO
O controle automático tem sido cada vez mais utilizado em sistemas de veículos
espaciais, sistemas de direcionamento de mísseis, sistemas robóticos, processos industriais e
de produção, além de otimizar o desempenho de sistemas dinâmicos.
A complexidade desses sistemas de engenharia tem aumentado pela necessidade de
realizar tarefas complexas e de alta precisão, podendo ter entradas e saídas múltiplas e serem
variantes no tempo. Surge então a diferença entre a teoria de controle moderno e teoria de
controle convencional. Enquanto a convencional é aplicável somente a sistemas lineares,
invariantes no tempo, de entrada e saída únicas, a moderna é aplicada a sistemas de entradas e
saídas múltiplas, que podem ser lineares ou não-lineares (OGATA, 2003).
Devido suas características de instabilidade, o pêndulo invertido (Figura 1.1) é um
problema clássico de dinâmica e teoria de controle, representando um sistema não-linear e,
normalmente, invariante no tempo, sendo frequentemente citado em diversas literaturas do
gênero.
Figura 1.1: Pêndulo Invertido
O pêndulo invertido consiste de uma haste solidária a um eixo livre de um carro
motorizado. Uma força adequada aplicada ao carro resulta em uma aceleração em uma
determinada direção, o que faz com que ele se movimente horizontalmente e mantenha a haste
14
equilibrada na posição vertical. Segundo Ogata (2003), pode-se associar esse modelo ao
controle de posição de um foguete na fase de lançamento, onde o objetivo do problema de
controle é manter o foguete na posição vertical. Já Dorf e Bishop (2009), fazem analogias
entre o pêndulo invertido e equilibrar um cabo de vassoura na mão de alguém ou controlar a
atitude de um míssil durante os estágios iniciais do lançamento.
Outras comparações podem ser feitas ao pêndulo invertido, como por exemplo, a
posição ereta estável de um homem ao caminhar. O resultado desta modelagem é conhecido
como Pêndulo Invertido Humano (HIP – Human Inverted Pendulum). Modelos biomecânicos
do modo de caminhar dos seres humanos tem aplicações em muitas áreas como esportes,
fabricação de calçados, robótica, entre outros (SILVA, 2009).
Como na maioria dos trabalhos, a movimentação do carro utilizado nesta pesquisa é
permitida em apenas uma direção, porém é possível encontrar sistemas onde o movimento do
carro não está limitado a somente um eixo, como a versão comercial Segway, um veículo
semelhante a um patinete onde suas duas rodas estão acopladas uma ao lado da outra, como
apresentado na Figura 1.2.
Figura 1.2: Segway (Fonte: <http://www.segway.com/>).
15
Neste trabalho, optou-se por criar um ambiente de simulação onde é representado o
sistema do pêndulo invertido utilizando o controle no espaço de estado, uma forma de
controle moderno, muito abordado teoricamente, porém com poucos exemplos práticos. A
utilização de um software de animação 3D, Blender, possibilitou a análise das variáveis do
modelo já que as mesmas apresentam o mesmo comportamento dinâmico do sistema real.
Apesar desse modelo simulado possibilitar o movimento em apenas um eixo, o estímulo
visual em 3D é melhor se comparado com uma animação 2D.
16
OBJETIVO
Esta pesquisa tem como objetivos principais:
• Desenvolver um simulador didático de um pêndulo invertido através de
análise, modelagem e controle no espaço de estados utilizando uma animação
em 3D;
• Analisar por meio de animação visual o comportamento das variáveis de
estado do sistema verificando os quesitos de projeto quando submetido a um
distúrbio no modelo linearizado;
• Apresentar a configuração da malha de controle por meio de diagramas de
blocos.
17
JUSTIFICATIVA
A modelagem e simulação do pêndulo invertido permitem a análise do mesmo sem
que haja perturbação em um sistema real, como danos provocados por ajustes e sintonias
imprecisas, uma vez que os estudos são realizados no computador. Possibilita ainda o estudo
do modelo, com baixo custo de implementação, sem a necessidade da existência de um
sistema real.
A simulação controlada no espaço de estados serve didaticamente como exemplo
aplicável desse tipo de controle, integrando a metodologia teórica com a prática profissional,
seja para estudo de casos de sistemas lineares e invariante no tempo ou para sistemas
complexos não lineares e variantes no tempo.
1 – MÉTODOS E FERRAMENTAS
Este capítulo apresenta uma contextualização teórica dos métodos e ferramentas
utilizados neste trabalho: simulador didático, animação 3D, controle no espaço de estados,
servidor OPC, software matemático e plataforma de simulação para modelos contínuos.
1.1 – Simulador didático
O entendimento satisfatório sobre simulador didático e simulação de forma ampla,
requer conhecer as definições de modelo e sistema.
1.1.1 – Modelos
Um modelo pode ser definido como uma representação de um objeto, sistema, ou ideia
em alguma outra forma que não a da entidade em si. Em um sentido amplo, um modelo é
certa quantidade de informações e atributos sobre aquilo que é representado, conforme os
objetivos e necessidades da análise. Pode variar desde uma representação simplificada,
croqui, descrição, equação matemática ou até uma réplica acrescida de sensores para medida e
experimentação. Dados, parâmetros, relações e vínculos devem ter representação adequada ao
problema sob investigação (STRACK, 1984).
De acordo com Law e Kelton (2000), um modelo pode ser definido como uma
representação de um sistema desenvolvido com objetivo de estudo. O modelo pode ser
suficientemente detalhado ou “válido” para permitir ao analista ou tomador de decisão a sua
utilização para tomar as mesmas decisões que estes tomam utilizando o sistema real.
Segundo Bratley et al. (1987), um modelo é uma descrição de algum sistema com o
objetivo de se prever o que acontece quando determinada atitude é tomada. Para isso o mesmo
deve ser válido. No entanto, as fronteiras entre o sistema e o modelo devem ser bem definidas,
já que muitas forças que afetam o sistema precisam ser omitidas no modelo para que o mesmo
continue sendo tratável, mesmo quando não há provas de que tais fatores realmente afetam o
sistema. Sendo assim, inevitavelmente, o modelo acaba sendo mais bem definido do que o
sistema. Para um modelo ser útil, é essencial que após sua realização, qualquer
19
comportamento relevante ou propriedade seja determinado de maneira prática. Seja
analiticamente, numericamente ou manipulando o modelo com dados de entrada (aleatórios
ou não), que sejam capazes de produzir determinadas saídas. Este último processo é definido
como simulação.
Os modelos podem ser classificados como concretos, nos casos em que se tem uma
representação física, ou abstratos, quando são formulados por meio de descrições, dados ou
símbolos. São apresentados a seguir dois tipos de modelos abstratos utilizados neste trabalho.
1.1.1.1 – Modelos matemáticos
Segundo Strack (1984), são aqueles onde são buscadas interpretações matemáticas
para os atributos físicos, constituindo o tipo mais abstrato, mais geral e com grande uso em
estudos de sistemas. O mesmo autor os divide em dois grupos: analíticos e numéricos. Os
primeiros são aqueles que resultam em uma expressão matemática bem definida entre as
variáveis dependentes e independentes. A solução é alcançada através da resolução de tal
expressão. Nos modelos numéricos não é necessário o conhecimento de equações numéricas
que regem o sistema. A solução é obtida por interações, métodos de convergência,
interpolação, sendo fornecido um valor estimado juntamente com o erro do método.
O modelo matemático do pêndulo invertido adotado foi um modelo analítico,
constituindo-se de equações diferenciais ordinárias que representarão o sistema. Segundo
Ogata (2003), na obtenção de um modelo matemático deve-se estabelecer uma conciliação
entre a simplicidade do modelo e a precisão dos resultados da análise. Na obtenção de um
modelo matemático relativamente simplificado, com frequência, torna-se necessário ignorar
certas propriedades físicas inerentes ao sistema. Em particular, se for desejável um modelo
matemático linear de parâmetros concentrados (isto é, para empregar equações diferenciais
ordinárias), é sempre necessário ignorar certas não-linearidades e os parâmetros distribuídos
que podem estar presentes no sistema físico. Se os efeitos que essas propriedades ignoradas
têm na resposta forem pequenos, pode-se obter boa aproximação se comparado os resultados
da análise de um modelo matemático e os resultados de um estudo experimental do sistema
físico.
Em geral, na solução de um novo problema, é conveniente construir um modelo
simplificado para ter uma percepção geral em relação à solução (OGATA, 2003).
20
1.1.1.2 – Modelos de simulação
Os modelos são utilizados para simular as características básicas do sistema que
desejamos observar ou analisar (STAMM, 1998).
Segundo Law e Kelton (2000), quando as relações que compõe o modelo são
suficientemente simples, é possível empregar métodos matemáticos como a álgebra, o cálculo
ou a teoria da probabilidade para obter informações exatas sobre questões de nosso interesse.
Entretanto, para Stamm (1998), a maioria dos sistemas do mundo real é complexa demais
para permitir uma avaliação analítica, e por isto estes casos tem que ser estudados por meio de
simulação.
Neste tipo de modelo, as representações são feitas por meio de procedimentos lógicos
ou matemáticos e para obtenção de resultados, eles são “executados” ao invés de serem
“resolvidos”. A simulação não é uma teoria, mas uma metodologia de resolução de
problemas. Nesse sentido, trata-se de um método de análise que não gera soluções por si só,
como os modelos analíticos, mas servem como técnica ou ferramenta para “atuar da mesma
maneira” que o sistema estudado (STRACK, 1984).
1.1.2 – Sistemas
Sistemas podem ser definidos como um conjunto de objetos, entre os quais se podem
encontrar ou definir algum tipo de relação, que atuam e interagem (cooperam) com a intenção
de alcançar um objetivo ou um propósito lógico (TAYLOR, 1970). De forma mais resumida,
um sistema é a combinação de componentes que agem em conjunto para atingir determinado
objetivo (OGATA, 2003).
Para Freitas Filho (2008), pode ainda ser definido como um grupo de componentes
que recebem estímulos ou entradas e produzem respostas ou saídas. Sendo os componentes e
suas relações, tanto internas quanto externas ao próprio sistema, que determinam como este
converte estímulos em respostas.
Ainda segundo o mesmo autor, para o propósito de modelar e simular sistemas, estes
podem ser classificados como: estáticos ou dinâmicos, determinísticos ou aleatórios ou, ainda,
como contínuos ou discretos, como é representado pela Figura 1.3.
21
Figura 1.3: Classificação dos sistemas para fins de modelagens. (Fonte: Adaptado de Freitas Filho, 2008, p. 46)
O sistema do pêndulo invertido estudado, modelado e simulado é classificado como
dinâmico, determinístico e contínuo, uma vez que as variáveis de estado que o representa se
modificam na medida em que o tempo evolui, os possíveis estados destas variáveis podem ser
descritos e predeterminados e as mudanças de estado ocorrem de forma contínua e não em
pontos discretos no tempo.
Já que o intuito deste trabalho é controlar um sistema dinâmico, este deve ser
modelado e ter suas características dinâmicas analisadas, de forma que o modelo matemático
seja definido como um conjunto de equações que representa com precisão ou, pelo menos,
razoavelmente bem, a dinâmica do sistema.
Esse conjunto de equações que regem o sistema, ou seja, o modelo matemático,
permite classificar os sistemas de outra forma, levando em consideração sua linearidade e a
variabilidade no tempo.
1.1.2.1 - Sistemas Lineares
Matematicamente, um sistema linear é composto por um conjunto de equações
lineares cujos coeficientes são constantes ou funções da variável independente.
22
Segundo Lathi (2004), um sistema cuja saída seja proporcional a sua entrada é um
exemplo de um sistema linear. A linearidade implica em duas propriedades: a aditiva e a
homogeneidade. Na propriedade aditiva, se várias entradas estão atuando em um sistema,
então o efeito total no sistema devido a todas estas entradas pode ser determinado
considerando uma entrada por vez e assumindo todas as outras entradas iguais a zero. O efeito
total é, então, a soma de todas as componentes de efeito. Esta propriedade pode ser descrita
por: para um sistema linear, se uma entrada 1x está atuando sozinha e possui efeito 1y , e se
outra entrada 2x também atua sozinha e possui efeito 2y , então, quando as duas entradas
estiverem atuando no sistema, o efeito total será 21 yy + . Portanto, se
2211 y xe yx →→
então, para todo 1x e 2x
2121 y yxx +→+
A outra propriedade de um sistema linear, a homogeneidade ou escalonamento, afirma
que para um número real ou imaginário arbitrário k, se uma entrada aumentar k vezes, seu
efeito também aumentará k vezes. Portanto, se
yx →
então para todo k real ou imaginário
ykxk ×→×
As duas propriedades podem ser combinadas em uma única propriedade
(superposição), a qual é descrita como mostrado a seguir. Se,
2211 y xe yx →→
então para todos os valores de constantes k1 e k2,
22112211 yk ykxk xk +→+
Essa equação é válida para todo 1x e 2x (LATHI, 2004).
Ogata (2003) diz que o princípio da superposição permite construir soluções
complicadas para equações diferenciais lineares a partir de soluções simples.
23
Segundo o mesmo autor, na pesquisa experimental de um sistema dinâmico, se causa e
efeito forem proporcionais, significando assim que é válida a aplicação do princípio da
superposição, então o sistema pode ser considerado linear.
1.1.2.2 – Sistemas não-lineares
Um sistema é dito não-linear se o princípio da superposição não for aplicável a ele.
Assim, para um sistema não-linear, não se pode obter a resposta a duas entradas simultâneas
considerando as entradas individualmente e somando os resultados (OGATA, 2003).
De acordo com o mesmo autor, embora muitas relações de grandezas físicas sejam
representadas por equações lineares, na maioria dos casos a relação entre elas não é
efetivamente linear. De fato, um estudo cuidadoso dos sistemas físicos revela que mesmo os
chamados ‘sistemas lineares’ são realmente lineares somente para intervalos limitados de
operação. Na prática, muitos sistemas eletromecânicos, hidráulicos e outros envolvem
relações não-lineares entre as variáveis.
1.1.2.3 – Sistemas Invariantes no Tempo
Do ponto de vista matemático, um sistema linear é invariante no tempo quando possui
uma relação de entrada/saída descrita por uma equação diferencial linear cujos coeficientes
são constantes.
Segundo Lathi (2004), sistemas cujos parâmetros não são alterados com o tempo são
invariantes no tempo (também chamados de sistemas com parâmetros constantes). Para tais
sistemas, se a entrada for atrasada por T segundos, a saída é a mesma anterior, porém atrasada
também por T segundos (assumindo que as condições iniciais também sejam atrasadas T
segundos). Pode-se atrasar a saída y(t) de um sistema S aplicando um atraso de T segundos à
saída y(t). Se o sistema for invariante no tempo, então a saída atrasada y(t - T) pode ser obtida,
também, atrasando primeiro a entrada x(t) antes de aplicá-la ao sistema. Em outras palavras, o
sistema S e o atraso de tempo são comutativos se o sistema for invariante no tempo. Esse
sistema pode ser representado pelas Figuras 1.4 e 1.5.
24
Figura 1.4: Propriedade de Invariância no Tempo (a) (Fonte: Lathi, 2006, p. 107).
Figura 1.5: Propriedade de Invariância no Tempo (b) (Fonte: Lathi, 2006, p. 107).
1.1.2.4 – Sistemas Variantes no Tempo
Matematicamente, um sistema linear é variante no tempo quando possui uma relação
de entrada/saída descrita por uma equação diferencial linear cujos coeficientes são funções de
tempo.
O Ogata (2003) dá como exemplo de sistema de controle variante no tempo, o sistema
de controle de veículo espacial, onde a massa de um veículo espacial muda devido ao
consumo do combustível.
O pêndulo invertido se encaixa perfeitamente nesse exemplo se for considerado que a
massa do carro muda com o tempo devido ao seu consumo de combustível, porém para este
25
trabalho preferiu-se adotar o sistema como invariante no tempo devido sua maior
simplicidade, já que a simulação será utilizada para fins didáticos.
1.1.3 – Simulação
Com o aumento do poder de processamento dos computadores e a facilidade de uso
dos ambientes de desenvolvimento de modelos computacionais, o termo simulação
praticamente se tornou sinônimo de simulação computacional digital. Devido a isso, Pedgen
(1991, apud FREITAS FILHO, 2008) define simulação como o processo de projetar um
modelo computacional de um sistema real e realizar experimentos com o intuito de entender
seu comportamento.
O uso da simulação se deve, principalmente, ao fato que se podem responder
perguntas hipotéticas sem que os sistemas sob investigação sofram qualquer perturbação, pois
os estudos são realizados no computador.
Simular possibilita ainda o estudo do modelo sem a necessidade da existência do
sistema real. Se tratando do pêndulo invertido, experimentar com algum sistema real, tendo o
propósito de verificar fenômenos que ocorrem durante seu controle, seria muitas vezes
inapropriado. Controlar experimentalmente um foguete na fase inicial de lançamento, por
exemplo, seria inseguro.
A simulação desse trabalho visa demonstrar as mudanças nos estados que envolvem o
modelo de acordo com alterações de quatro variáveis de estado, sendo elas: ângulo da haste
em relação ao equilíbrio, velocidade angular da haste, posição e velocidade do carro. Essas
alterações se dão a partir do acontecimento de alguns eventos, que são os distúrbios
provocados no sistema com a evolução do tempo.
Considerando a aplicabilidade da simulação no ensino, seu uso tem sido uma das
formas mais recorrentes da inserção do computador nas atividades didáticas. O computador,
com o desenvolvimento tecnológico ágil, está se tornando uma ferramenta que consegue
expressar a realidade com grande similaridade, o que permite que o aluno tenha uma visão
dessa realidade virtual através de sua tela (KHALIL et al., 2011).
Neste trabalho a simulação foi realizada virtualmente através de uma animação em
3D.
26
1.2 – Animação 3D
A animação 3D consiste em animar objetos virtuais que simulam a realidade
utilizando três dimensões baseadas nas coordenadas x, y e z, com o objetivo de recriar
ambientes ou personagens com a maior semelhança possível da realidade proposta. Isto é
conseguido através da ilusão criada por duas dimensões elaboradas de modo a proporcionar
formas tridimensionais à imagem, que posteriormente ganha movimentos através de uma série
de instruções.
A plataforma utilizada para criar a animação 3D do pêndulo invertido foi escolhida
através da necessidade de se ter um software gratuito que contenha ao mesmo tempo todos os
requisitos para representar o sistema de forma compatível com o modelo real. Neste contexto
o software Blender 2.49 tornou-se a ferramenta adequada.
O programa Blender fornece um amplo conjunto de recursos de modelagem 3D,
texturização, iluminação, animação e pós-processamento de vídeo e desenvolvimento de
jogos 3D (http://wiki.blender.org/index.php/Doc:PT/2.4/Manual/Introduction). Distribuído
gratuitamente através de seu site oficial, funciona em vários sistemas operacionais, como as
versões do Windows, Linux, Mac OS X, entre outros.
Por se tratar de um software livre e aberto, tem seu código fonte disponível sob a
licença GPL (General Public License), permitindo que usuários desenvolvam aplicações que
ao serem rodadas juntamente com o Blender criem funcionalidades ou aperfeiçoem as que já
existem no programa. Essas aplicações que aumentam o poder do Blender são desenvolvidas
na linguagem Python.
De acordo com Rossum (2005), Python é uma linguagem de programação poderosa e
de fácil aprendizado que adota uma abordagem simples e efetiva para a programação
orientada a objetos. Sua sintaxe limpa e tipagem dinâmica, em adição à sua natureza
interpretada, tornam Python ideal para scripting e para o desenvolvimento rápido de
aplicações em diversas áreas e na maioria das plataformas.
Da mesma forma que um programa de computador, o modelo computacional para a
simulação do pêndulo invertido executa um conjunto de instruções. Essas instruções, escritas
na linguagem Python, ao serem executadas possibilitam alterar os valores de determinadas
variáveis do sistema na simulação, uma vez que se modificam as condições que influenciam o
comportamento do modelo.
27
1.3 – Linearização de sistemas não-lineares
Na engenharia de controle, uma operação normal do sistema pode ser em torno do
ponto de equilíbrio, e os sinais podem ser considerados pequenos sinais em torno do
equilíbrio. Se o sistema operar nessas condições é possível aproximar o sistema não-linear por
um sistema linear. Esse sistema linear é equivalente ao sistema não-linear considerado dentro
de um conjunto limitado de operações (OGATA, 2003).
Dessa forma, Ogata (2003) diz que para obter um modelo matemático linear de um
sistema não-linear, deve-se admitir que as variáveis desviem apenas ligeiramente de alguma
condição de operação.
O pêndulo invertido é um sistema não-linear que teve seu modelo matemático
linearizado, para isso foi admitido que o ângulo da haste em relação à posição de equilíbrio
)(θ e a velocidade angular da haste )(θ& são variáveis suficientemente pequenas na condição
de equilíbrio, ou seja, com o pêndulo invertido na posição vertical.
1.4 – Modelagem no Espaço de Estados
A modelagem de um problema no espaço de estados é elaborada utilizando-se um
conjunto de operações de transformação de estados para partir de um estado inicial e chegar a
um estado final conforme desejado, como pode ser observado na Figura 1.6 (GUARDA,
2004).
Figura 1.6: Representação do Problema (Fonte: Guarda, 2004, p. 8).
Para facilitar a compreensão dos conceitos, um exemplo de Guarda (2004) é
apresentado.
28
Tendo um conjunto de blocos (A, B e C) e uma mesa, os blocos podem estar sobre a
mesa ou empilhados. O problema é elaborar um plano para rearranjar a disposição dos blocos
de acordo com o desejado. Assim, um plano é uma sequência de movimentos de blocos que,
partindo de uma situação inicial, leva a uma situação desejada.
Figura 1.7: Problema de re-arranjo de blocos. (Fonte: Guarda, 2004, p. 8)
No problema evidenciado na Figura 1.7, a modelagem utilizando a abordagem no
espaço de estados é natural: a situação inicial dos blocos é o estado inicial, a situação desejada
é o estado final e a sequência de movimentos é uma sequência de operações válidas do
conjunto de operações de transformação de estados.
Uma operação é válida quando ela respeita as restrições impostas na definição do
problema. As restrições de movimentos no problema proposto são bastante simples: é
permitido mover apenas um bloco de cada vez, não pode haver outros blocos em cima do
bloco a ser movimentado nem do bloco sobre o qual se quer colocar um bloco em cima.
Os estados do problema e as operações de transformação de estados formam um grafo
dirigido chamado de espaço de estados, onde os nodos são os estados e os arcos são as
operações.
A Figura 1.8 evidencia o problema apresentado na Figura 1.7: o estado inicial com
linha mais grossa, o estado final está com linha dupla concêntrica e uma solução possível é o
caminho com setas maiores.
29
Figura 1.8: Representação gráfica do espaço de estados para o problema em estudo (Fonte: Guarda, 2004. p. 9)
Devido ao fato de ser aplicável a sistemas de entradas e saídas únicas, lineares e
invariantes no tempo, a teoria de controle convencional tem se tornado inaplicável no que diz
respeito aos novos sistemas de engenharia, os quais tendem a aumentar sua complexidade.
Este foi um dos motivos para o desenvolvimento da teoria de controle moderno, teoria que
enquadra sistemas de entradas e saídas múltiplas, lineares ou não-lineares e variantes ou
invariantes no tempo. O sistema do pêndulo invertido desenvolvido neste trabalho enquadra-
se nessa nova tendência, tratando-se de um sistema de entrada única e saídas múltiplas,
conhecido por SIMO (Single Input, Multiple Output).
Ogata (2003) expõe que a teoria de controle moderno tem sido desenvolvida em razão
da necessidade de atender às crescentes e rigorosas exigências de desempenho dos sistemas de
controle, ao aumento da complexidade dos sistemas e ao acesso fácil e em larga escala aos
computadores. Esta teoria é, também, essencialmente uma abordagem no domínio de tempo,
enquanto a teoria de controle convencional é uma abordagem no domínio da frequência
complexa.
Para um completo entendimento sobre Modelagem no Espaço de Estados, alguns
conceitos devem ser introduzidos.
Estado – Ogata (2003) define o estado de um sistema dinâmico como o menor
conjunto de variáveis (variáveis de estado), tais que o conhecimento dessas variáveis em
0tt = , juntamente com o conhecimento da entrada para 0tt ≥ , determina completamente o
comportamento do sistema para qualquer instante 0tt ≥ .
30
Para Dorf e Bishop (2009), o estado de um sistema é um conjunto de variáveis cujos
valores, em conjunto com sinais de entrada e as equações descrevendo a dinâmica, irão
fornecer o estado e a saída futuros do sistema.
Variáveis de estado – As variáveis de estado de um sistema dinâmico são aquelas que
constituem o menor conjunto de variáveis capaz de determinar o estado desse sistema
dinâmico. Se pelo menos n variáveis )(x1 t , )(x2 t ,... , )(xn t são necessárias para descrever
completamente o comportamento de um sistema dinâmico (tal que uma vez dada a entrada
para 0tt ≥ e o estado inicial em 0tt = é especificado, o estado futuro do sistema está
completamente determinado), então essas n variáveis )(x1 t , )(x2 t , ... , )(xn t são um
conjunto de variáveis de estado (OGATA, 2003).
De acordo com o mesmo autor, as variáveis de estado não necessitam serem
quantidades fisicamente mensuráveis ou observáveis. Essa liberdade de escolha das variáveis
de estado é uma vantagem dos métodos de espaço de estados. Entretanto, é conveniente
escolher-se para variáveis grandezas que sejam facilmente mensuráveis.
As variáveis de estado descrevem a configuração presente de um sistema e podem ser
usadas para determinar a resposta futura, dadas as excitações de entrada e as equações
descrevendo a dinâmica. Um exemplo simples de uma variável de estado é a condição de um
interruptor de luz liga/desliga. O interruptor pode estar tanto na posição ligado quanto na
posição desligado e, desse modo, o estado do interruptor pode assumir um dos dois valores
possíveis. Assim, se for conhecido o estado (posição) presente do interruptor em 0t e se uma
entrada for aplicada, é possível determinar o valor futuro do estado do elemento (DORF;
BISHOP, 2009).
Vetor de estado – Se n variáveis de estado são necessárias para descrever
completamente o comportamento de um sistema, então essas n variáveis de estado podem ser
consideradas como os n componentes de um vetor x(t). Tal vetor é chamado de vetor de
estado. Um vetor de estado é, portanto, um vetor que determina univocamente o estado do
sistema x(t) para qualquer 0tt ≥ uma vez dado o estado em 0tt = e especificada a entrada u(t)
para 0tt ≥ (OGATA, 2003).
De forma resumida, Dorf e Bishop (2009) definem vetor de estado como a matriz-
coluna que consiste nas variáveis de estado.
31
Espaço de estados – Segundo Ogata (2003), o espaço n-dimensional, cujos eixos
coordenados são formados pelos eixos de )(x1 t , )(x2 t ,... , )(xn t é chamado de espaço de
estados. Qualquer estado pode ser representado por um ponto no espaço de estados.
Equações no espaço de estados – A análise no espaço de estados envolve três tipos
de variáveis que estão presentes na modelagem de sistemas dinâmicos: variáveis de entrada,
variáveis de saída e variáveis de estado (OGATA, 2003).
Supondo um sistema com múltiplas entradas e múltiplas saídas, onde existam r
entradas )(1 tu , )(2 tu ,... , )(tur , m saídas )(y1 t , )(y2 t ,... , )(ym t e n variáveis de estado
)(x1 t , )(x2 t ,... , )(xn t . Então as equações do sistema podem ser descritas como:
saída de equação )u,(x, )y(
estado de equação )u,(x, )(x
→=→=
tgt
tft&
Onde:
=
)(
.
.
.
)(
)(
)(x
2
1
tx
tx
tx
t
n
=
)(
.
.
.
)(
)(
)(u
2
1
tu
tu
tu
t
r
=
)(
.
.
.
)(
)(
)(y
2
1
ty
ty
ty
t
m
saída de vetor )y(
entrada de vetor )u(
estado de vetor )x(
→→→
t
t
t
32
=
) ; , ... , , ; , ... , ,(
.
.
.
) ; , ... , , ; , ... , ,(
) ; , ... , , ; , ... , ,(
)u,x,(
2121
21212
21211
tuuuxxxf
tuuuxxxf
tuuuxxxf
tf
rnn
rn
rn
=
) ; , ... , , ; , ... , ,(
.
.
.
) ; , ... , , ; , ... , ,(
) ; , ... , , ; , ... , ,(
)u,x,(
2121
21212
21211
tuuuxxxg
tuuuxxxg
tuuuxxxg
tg
rnm
rn
rn
Segundo Ogata (2003), se as funções vetoriais f e/ou g envolverem explicitamente o
tempo t, então o sistema será denominado de sistema variante no tempo.
Ainda de acordo com o mesmo autor, se a equação de estado e a equação de saída
forem linearizadas em torno de um ponto de operação, então obtém-se as seguintes equações:
alinearizad saída de equação ))u(D( ))x(C( )y(
alinearizad estado de equação ))u(B( ))x(A( )(x
→+=→+=
ttttt
ttttt&
Sendo:
) (direta ão transmissde matriz )D(
saídas de número ) ( saída de matriz )C(
entradas de número ) ( entrada de matriz )B(
) ( estado de matriz )A(
rmt
mnmt
rrnt
nnt
×→=×→=×→
×→
Se as funções vetoriais f e g não envolverem o tempo t explicitamente, então o
sistema é chamado de sistema invariante no tempo. Nesse caso, a equação de estado
linearizada e a equação de saída linearizada podem ser simplificadas para:
)Du( )Cx( )y(
)Bu( )Ax( )(x
ttt
ttt
+=+=&
(OGATA, 2003).
33
1.5 – Representação de Sistemas Dinâmicos no Espaço de Estados
Um sistema dinâmico pode ser descrito por equações diferenciais ordinárias, nas quais
o tempo é a variável independente. Usando-se notação vetorial-matricial, uma equação
diferencial de ordem n pode ser representada por uma equação diferencial vetorial-matricial
de primeira ordem. Se n elementos do vetor formam um conjunto de variáveis de estado,
então a equação diferencial vetorial-matricial é uma equação de estado (OGATA, 2003).
1.5.1 – Correlação entre funções de transferência e equações no espaço de estados
De acordo com Ogata (2003), a função de transferência de um sistema representado
por uma equação diferencial linear invariante no tempo é definida como a relação entre a
transformada de Laplace da saída e a transformada de Laplace da entrada, admitindo-se todas
as condições iniciais nulas.
zero a iguais iniciais condiçõesL[entrada]
L[saída] )G( =s
)X(
)Y( )G(
s
ss =
Então, essa função pode ser obtida a partir das equações diferenciais lineares
invariantes no tempo, bem como a partir das equações no espaço de estados da seguinte
maneira:
)Du( )Cx( )y(
)Bu( )Ax( )(x
ttt
ttt
+=+=&
Aplica-se a transformada de Laplace:
)DU( )CX( )Y(
)BU( )AX( x(0)- )X(
sss
ssss
+=+=
Admite-se as condições iniciais nulas:
)DU( )CX( )Y(
)BU( )AX( )X(
sss
ssss
+=+=
34
)DU( )CX( )Y(
)BU( )AX( )X(
sss
ssss
+==−
Coloca-se X(s) em evidência na primeira equação:
)DU( )CX( )Y(
)BU( A) (sI )X(
sss
ss
+==−
Multiplica-se ambos os lados da primeira equação por (sI – A)-1:
)DU( )CX( )Y(
)BU(A) (sI )X( -1
sss
ss
+=−=
Substitui-se X(s) na segunda equação pela primeira equação:
)D]U( BA) C(sI[)Y( -1 ss +−=
Então:
D BA) C(sI)U(
)Y( 1- +−=s
s
D BA) C(sI)G( -1 +−=s
1.5.2 – Representação de Funções de Transferência no Espaço de Estados
Segundo Ogata (2003), muitas técnicas estão disponíveis para a obtenção da
representação no espaço de estados de funções de transferência. Neste trabalho, é utilizado o
método de representação no espaço de estados em formas canônicas, mais precisamente a
canônica controlável, já que a seguinte forma é importante na descrição do projeto de sistemas
de controle pela abordagem por alocação de pólos.
Considerando um sistema definido por:
ububububyayayay nn
nn
nn
n
... ... 1
)1(
1
)(
01
)1(
1
(n)
++++=++++ −
−
−
−&&
onde u é a entrada e y é a saída. Essa equação também pode ser escrita através da função de
transferência:
35
nn
nn
asasas
bsbsbsb
s
s
...
...
)U(
)Y(
11-n
1n
11-n
1n
0
++++++++=
−
−
Sua representação no espaço de estados na forma canônica controlável é:
1
0
.
.
.
0
0
.
.
.
...
1...000
....
....
....
0...100
0...010
.
.
.
1
2
1
121
1
2
1
u
x
x
x
x
aaaax
x
x
x
n
n
nnnn
n
+
−−−−
=
−
−−
−
&
&
&
&
[ ] ub
x
x
x
babbabbaby
n
nnnn
.
.
. . . . 0
2
1
0110110 +
−−−= −− MMM
1.6 – Análise de Sistemas de Controle no Espaço de Estados
De acordo com Ogata (2003), um sistema moderno complexo pode ter muitas entradas
e muitas saídas e estas podem estar inter-relacionadas de uma maneira complexa. Para
analisar tal sistema é fundamental reduzir a complexidade das expressões matemáticas, bem
como recorrer ao auxílio dos computadores. Sob esse ponto de vista, a abordagem com base
no espaço de estados é a mais apropriada para analisar o sistema.
Enquanto a teoria de controle convencional é fundamentada na relação entrada-saída,
ou função de transferência, a teoria de controle moderno é fundamentada na descrição de um
sistema de equações em termos de n equações diferenciais de primeira ordem, que podem ser
combinadas em uma equação diferencial vetorial-matricial de primeira ordem. O uso de uma
notação vetorial-matricial simplifica bastante a representação matemática do sistema de
equações fazendo com que um aumento do número de variáveis de estado, do número de
entradas ou do número de saídas não resulte em um aumento da complexidade das equações.
36
Sendo assim, a análise de sistemas complexos com múltiplas entradas e múltiplas saídas pode
ser conduzida por procedimentos que são apenas ligeiramente mais complicados se
comparados com os procedimentos para análise de sistemas de equações diferenciais escalares
de primeira ordem (OGATA, 2003).
Ainda segundo o mesmo autor, para o problema de projeto de sistemas de controle no
espaço de estados existem dois requisitos que podem ditar a existência de uma solução
completa, controlabilidade e observabilidade. Embora a maioria dos sistemas físicos seja
controlável e observável, os correspondentes modelos matemáticos podem não exibir essas
propriedades. Então, é necessário conhecer as condições nas quais um sistema é controlável e
observável.
1.6.1 - Controlabilidade
Dorf e Bishop (2009) definem um sistema como controlável se existe um controle u(t)
sem restrições que pode transferir qualquer estado inicial x(t0) para qualquer outra posição
desejada x(t) em um tempo finito, 10 ttt ≤≤ .
A seguir é determinada primeiramente a condição para controlabilidade completa de
estado. Posteriormente, a definição de controlabilidade completa de saída e por fim, o
conceito de estabilizabilidade.
1.6.1.1 – Controlabilidade completa de estado de sistemas de tempo contínuo
Considerando o sistema de tempo contínuo:
Bu Ax x +=&
Onde:
rn
nn
r
n
matriz B
matriz A
)(vetor controle de vetor u
)(vetor estado de vetor x
×→×→
→→
37
Segundo Ogata (2003), esse sistema é de estado controlável em t = t0 se for possível
construir um sinal de controle não limitado que transfira o sistema de um estado inicial para
qualquer estado final, em um intervalo de tempo finito 10 ttt ≤≤ . Se todo o estado for
controlável, então o sistema será considerado de estado completamente controlável.
A solução para a equação do sistema de tempo contínuo é obtida através de Laplace e
Laplace Inversa e é dada por:
∫+=t
dt tt
0
)-A(A )(Bu e x(0)e )(x τττ
Supondo que o estado final seja a origem do espaço de estados e o instante inicial seja
nulo ou t0 = 0, utilizando-se de ferramentas matemáticas que não há necessidade de serem
expostas neste trabalho, a solução torna-se:
∫∑=
−=1
0
1-n
0k
k )(u )( BA )0(xt
dk τττα
Para ∫1
0 )(u )(
tdk τττα = kβ , a equação apresenta-se da seguinte forma:
k
1-n
0k
k BA )0(x β∑=
−=
[ ]
.
.
. BA. . .ABB
1
1
0
1
−=
−
−
n
n
β
β
β
LLL
LLL
LLL
MMM
Segundo Ogata (2003), para estabelecer se o sistema é completamente controlável, é
necessário que os vetores B, AB, ... , BA 1−n sejam linearmente independentes ou que o posto
da matriz nrn ×
[ ] BA. . .ABB 1−nMMM
38
seja n .
1.6.1.2 – Condição de controlabilidade completa de estado no plano s
De acordo com Ogata (2003), a condição de controlabilidade completa de estado pode
ser determinada em termos de funções de transferência ou de matrizes de transferência.
Uma condição necessária e suficiente para a controlabilidade completa de estado é que
não ocorram cancelamentos na função de transferência ou matriz de transferência. Se
ocorrerem cancelamentos, o sistema não pode ser controlado na direção do modo cancelado.
A mesma conclusão pode ser obtida escrevendo a função de transferência na forma de uma
equação de estado e verificando através de sua representação no espaço de estados se
BA, . . . AB, B, 1−n são linearmente independentes ou se o posto da matriz nn ×
[ ] BA. . .ABB 1−nMMM for n (OGATA, 2003).
1.6.1.3 – Controlabilidade de saída
A controlabilidade completa de estado não é necessária nem suficiente para controlar a
saída de um sistema e no caso de um projeto prático de um sistema de controle, pode-se
desejar que a saída seja controlada ao invés de controlar o estado do sistema. Por essa razão, a
controlabilidade de saída torna-se importante (OGATA, 2003).
Considerando o sistema descrito por:
Bu Ax x +=&
Du Cx y +=
39
Onde:
matriz D
matriz C
matriz B
matriz A
)(vetor saída de vetor y
)(vetor controle de vetor u
)(vetor estado de vetor x
rm
nm
rn
nn
m
r
n
×→×→×→×→
→→→
Segundo Ogata (2003), esse sistema é considerado de saída completamente
controlável se for possível construir um vetor de controle u(t) não limitado que transfira
qualquer saída inicial y(t0) para qualquer saída final y(t1) em um intervalo de tempo finito
10 ttt ≤≤ .
De acordo com o mesmo autor, para estabelecer se o sistema é de saída
completamente controlável, é necessário que o posto da matriz rnm )1( +×
[ ]
DBCA. . .BCACABCB 12MMMMM
−n
seja m .
1.6.1.4 – Estabilizabilidade
Antes de ser definido o conceito de estabilizabilidade é necessário conhecer sobre
autovalores:
Os autovalores de uma matriz ) (A nn× são as raízes da equação característica
0 A - λI = . Dessa forma, os autovalores da matriz do sistema na forma de variáveis de
estado são equivalentes aos pólos do sistema em malha fechada. Portanto, se o autovalor for
real positivo o sistema é naturalmente instável, em contrapartida, caso seja real negativo o
sistema é naturalmente estável.
Ogata (2003) diz que um sistema parcialmente controlável é considerado estabilizável
se os modos não controláveis forem estáveis e os modos instáveis forem controláveis.
40
Portanto, caso o sistema possua autovalores reais negativos não controláveis e possua
autovalores reais positivos controláveis, é chamado de estabilizável.
1.6.2 – Observabilidade
Dorf e Bishop (2009) definem um sistema como observável se existe um tempo finito
1t tal que o estado inicial x(0) pode ser determinado a partir do histórico de observações da
saída y(t) dado o controle u(t), 10 ttt ≤≤ .
A seguir é determinada a condição para observabilidade completa e posteriormente, o
conceito de detectabilidade.
1.6.2.1 – Observabilidade completa de sistemas de tempo contínuo
Considerando o sistema de tempo contínuo:
Bu Ax x +=&
Du Cx y +=
Onde:
matriz D
matriz C
matriz B
matriz A
)(vetor saída de vetor y
)(vetor controle de vetor u
)(vetor estado de vetor x
rm
nm
rn
nn
m
r
n
×→×→×→×→
→→→
Então:
∫+=t
dut tt
0
)-A(A )(B e x(0)e )(x τττ
41
Du )(B eC x(0)Ce )(y0
)-A(A ++= ∫t
dut tt τττ
Segundo Ogata (2003), como as matrizes A, B, C e D e u(t) são conhecidos, os dois
últimos termos do lado direito dessa última equação são quantidades conhecidas. Portanto,
para investigar uma condição necessária e suficiente para observabilidade completa é
suficiente considerar o sistema sem excitação descrito por:
Ax x =&
Cx y =
Esse sistema é considerado completamente observável se todo estado )x(t0 puder ser
determinado pela observação de y(t) durante o intervalo de tempo finito, 10 ttt ≤≤ . Portanto, o
sistema é dito completamente observável se cada transição do estado puder afetar cada
elemento do vetor de saída y(t). Assim, pela saída poderá ser estimado o estado inicial do
sistema (OGATA, 2003).
Na prática, algumas variáveis não podem ser medidas diretamente num sistema,
necessitando serem estimadas para construir um sinal de controle adequado. Isto só é possível
se o sistema for completamente observável.
A solução para a equação do sistema sem excitação é dada por:
x(0)Ce )(y Att =
Logo obtém-se:
x(0)CA)( )(y1-n
0k
k∑=
= tt kα
Segundo Ogata (2003), para estabelecer se o sistema é completamente observável, é
necessário que o posto da matriz nnm ×
42
CA
.
.
.
CA
C
1
−n
LLL
LLL
LLL
seja n ou tenha n vetores-linha linearmente independentes.
No caso da matriz transposta nmn ×
[ ] *C(A*). . .*C*A*C 1-nMMM
é necessário que o posto seja n ou tenha n vetores-coluna linearmente independentes.
1.6.2.2 – Condição de observabilidade completa no plano s
De acordo com Ogata (2003), assim como a condição de controlabilidade completa de
estado, a determinação para a condição de observabilidade completa pode ser dada em termos
de funções de transferência ou de matrizes de transferência.
Portanto, uma condição necessária e suficiente para a observabilidade completa é que
não ocorram cancelamentos na função de transferência ou matriz de transferência. Caso
contrário, o modo cancelado não pode ser observado na saída (OGATA, 2003).
1.6.2.3 – Detectabilidade
Partindo do mesmo conceito de estabilizabilidade, um sistema parcialmente
observável será dito detectável se os modos não observáveis forem estáveis e os modos
observáveis forem instáveis. Portanto, caso o sistema possua autovalores reais negativos não
observáveis e possua autovalores reais positivos observáveis, é chamado de detectável.
43
1.7 – Projeto de Sistemas de Controle no Espaço de Estados
Neste tópico é discutido o projeto de sistemas de controle no espaço de estados
baseado no método da alocação de pólos, método este similar ao método do lugar das raízes,
no qual os pólos de malha fechada são alocados nas posições desejadas. No entanto, existem
algumas diferenças entre esses métodos. No projeto pelo lugar das raízes são alocados
somente os pólos dominantes de malha fechada nas posições desejadas, enquanto no projeto
por alocação de pólos são alocados todos os pólos de malha fechada nas posições desejadas
(OGATA, 2003).
Para Dorf e Bishop (2009), ao se projetar compensadores de variáveis de estado tem
que haver a possibilidade de todos os pólos do sistema em malha fechada serem
arbitrariamente posicionados no plano complexo. Se o sistema for controlável e observável,
então pode-se realizar o objetivo de projeto de alocar os pólos precisamente nas posições
desejadas para se atender às especificações de desempenho.
1.7.1 – Projeto por Alocação de Pólos
Segundo Ogata (2003), para este sistema de controle deve-se admitir que todas as
variáveis de estado sejam mensuráveis, disponíveis para realimentação e que este mesmo
sistema seja de estado completamente controlável. Desta forma, todos os seus pólos de malha
fechada podem ser arbitrariamente alocados na posição desejada por meio de uma
realimentação de estado, empregando uma matriz de ganho apropriada. Caso as variáveis de
estado não possam ser medidas com sucesso, é necessário a inclusão de um observador de
estado no sistema, para isto, o sistema deve ser completamente observável.
Considerando o sistema abaixo
Bu Ax x +=&
uy D Cx +=
44
O sinal de controle adotado será do tipo u = - Kx, o que significa que o sinal de
controle é determinado por um estado instantâneo (o estado o qual o sistema se encontra). A
matriz n 1K × é denominada matriz de ganho de realimentação de estado (OGATA, 2003).
O sistema de malha fechada não possui entradas e seu objetivo é manter nula a saída.
Podem ocorrer distúrbios no sistema que desviarão a saída de zero. Esta saída não-nula
retorna ao valor nulo correspondente à entrada de referência nula, devido ao esquema de
realimentação de estado. Um diagrama de blocos desse sistema é representado na Figura 1.9.
Figura 1.9: Sistema de controle de malha fechada com u = - Kx (Fonte: Adaptado de Ogata, 2003, p. 680)
1.7.1.1 – Condição necessária e suficiente para alocação arbitrária de pólos
Segundo Ogata (2003), a condição para a alocação arbitrária de pólos é que o sistema
necessita ser de estado completamente controlável. Isso significa que em qualquer momento
ou em qualquer estado que o sistema venha assumir durante o processo/ simulação, aquele
vetor de controle escolhido tem condições de realocar os pólos para os locais desejados. Se o
sistema não for de estado completamente controlável, então existirão autovalores da matriz A
– BK que não podem ser controlados por realimentação de estado, bem como não podem ser
arbitrariamente alocados.
45
1.7.1.2 – Determinação da matriz K com a utilização da matriz de transformação T
Supondo um sistema definido por
uB Ax x +=&
Ogata (2003) determina que o sinal de controle seja dado por
Kx- =u
Deste modo, pode ser determinado o vetor de ganho que foi utilizado. Ao trabalhar
com Kx- =u , o sistema é dado por
Bkx-Ax x =&
Colocando x (vetor de estado) em evidência,
Bk)x-(A x =&
Deste modo, a resolução se torna mais fácil, pois o que determina a função
característica é A – Bk. Portanto, sendo a função característica A – Bk e trabalhando com o
notação dela na forma canônica controlável, a matriz de transformação T, que transforma a
representação de um sistema em espaço de estados qualquer para forma canônica controlável,
é igual a 1. Neste caso, basta comparar a equação onde tem a nova alocação de pólos com a
alocação de pólo atual. Da diferença entre estes coeficientes é obtido o vetor de ganho
(OGATA, 2003).
A partir da equação característica da matriz A, ou seja,
nn asasass ... AI 11-n
1n ++++=− −
deve-se determinar os valores de , . . . ,2 ,1 naaa .
Utilizando os autovalores desejados (pólos desejados de malha fechada), escreve-se o
polinômio característico desejado:
nnnn
n ssssss αααµµµ ... )( ... ))(( 11-
121 ++++=−−− −
e determina-se os valores de , . . . ,2 ,1 nααα .
46
A matriz de ganho K de realimentação de estado requerida pode, então, ser
determinada por:
[ ] 1112211 T . . .K −
−− −−−−= aaaa nnnn αααα MMMM
1.7.1.3 – Escolhendo a localização dos pólos de malha fechada desejados
Segundo Ogata (2003), na abordagem por alocação de pólos o primeiro passo consiste
em escolher a localização dos pólos de malha fechada desejados. A escolha desses pólos é
baseada nos pré-requisitos de controle, como máximo sobressinal e tempo de acomodação.
Aloca-se um par de pólos dominantes de malha fechada e escolhem-se os outros pólos de
modo que eles fiquem bem distantes, à esquerda dos pólos dominantes de malha fechada.
Deste modo, o sistema passa a se comportar como um sistema de segunda ordem.
1.8 – Servidor OPC
No mundo de hoje, a automação é usada em destaque em toda grande indústria.
Embora diferentes indústrias costumem usar diferentes dispositivos especializados, sistemas
de controle e aplicativos, todos eles compartilham um desafio comum de rápido crescimento -
como compartilhar dados entre todos estes componentes e do resto da empresa.
O servidor OPC (OLE for Process Control) resolve o problema de comunicação entre
os controladores de dispositivos e aplicações. Ele é usado para responder a um dos maiores
desafios da indústria de automação, como a comunicação entre dispositivos, controladores e /
ou aplicações, sem se envolver nos problemas baseados em cada situação de conectividade
(http://www.matrikonopc.com/downloads/). O servidor OPC que foi utilizado para a
comunicação entre o Blender e o Simulink® foi o da empresa Matrikon.
47
1.9 – Software Matemático
Neste trabalho foi escolhido como software matemático o MATLAB®. Este é um
software com uma linguagem de alto nível e um ambiente interativo para computação
numérica, visualização e programação. Usando o MATLAB®, o usuário pode analisar os
dados, desenvolver algoritmos, criar modelos e aplicações. Sua linguagem, ferramentas e
funções matemáticas permitem explorar múltiplas abordagens e chegar a uma solução mais
rápida do que com planilhas ou linguagens de programação tradicionais
(http://www.mathworks.com/products/matlab/).
Este software pode ser utilizado para uma gama de aplicações, incluindo processamento
de sinais e comunicação, processamento de imagem e vídeo, sistemas de controle, teste e
medição, finanças computacionais e biologia computacional
(http://mathworks.com/products/matlab).
Segundo Gilat (2006), o MATLAB® é uma linguagem poderosa em termos de
computação técnica. O nome MATLAB® vem da junção das palavras MATrix LABoratory,
devido à base operacional do software que são as matrizes. É um software bastante versátil
em cálculos matemáticos, modelagens e simulações, análises numéricas e processamentos,
visualização e gráficos, desenvolvimento de algoritmos, etc.
Atualmente, o MATLAB® é largamente utilizado nas universidades e faculdades nos
cursos introdutórios ou avançados de matemática, ciências e, especificamente, nas
engenharias. Na indústria, o software alcançou o status de ferramenta de pesquisa, projeto e
desenvolvimento. O pacote-padrão do MATLAB® possui ferramentas (funções) comuns a
diversas áreas do conhecimento. Além disso, o MATLAB® disponibiliza uma série de
ferramentas adicionais (os toolboxes) que formam uma coleção de programas especiais
projetados para resolver problemas específicos. Dentre os toolboxes mais utilizados, pode-se
citar: processamento de sinais, cálculos simbólicos (literais), sistemas de controle e lógica
fuzzy (GILAT, 2006).
Para associar os dados das equações de controle com a simulação no Blender, é
necessário a utilização do MATLAB® juntamente com a implementação de uma lógica de
programação que seja capaz de fornecer as informações de controle do sistema para o modelo
simulado via comunicação OPC. Essa lógica foi criada no Simulink® utilizando blocos de
lógica e comunicação OPC.
48
1.9.1 – Plataforma de simulação para modelos contínuos
O projeto de controle do modelo do pêndulo invertido foi criado na plataforma de
simulação Simulink®, através de diagramas de blocos. O MATLAB® e o Simulink® são
ambientes integrados que permitem a análise, simulação e revisão dos modelos em qualquer
ambiente e em qualquer ponto (KARRIS, 2008).
Utilizado na simulação de sistemas dinâmicos, o Simulink® opera com o MATLAB®
com o objetivo de permitir a especificação de diferentes sistemas dinâmicos e determinar as
suas condições de simulação. Dispõe de uma biblioteca de módulos básicos, utilizados na
operação dos diagramas que especificam o sistema (POLLONI et al., 2010).
Esta ferramenta pode ser ainda definida como um sistema de gráficos para modelagem
de processos. Ele possui uma forma de diagrama de blocos que se ligam por uma linha de
conexão que mostra como as informações fluem de um bloco para outro. Estes realizam
funções específicas e podem ser encontrados como blocos padrões na biblioteca do sistema,
ou elaborados pelo usuário. É integrado com MATLAB®, que permite incorporar seus
algoritmos em modelos e exportar os resultados de simulação para análise posterior
(http://www.mathworks.com/products/simulink/).
2 – DESENVOLVIMENTO
2.1 – Modelo matemático do pêndulo invertido
Definindo o ângulo da haste a partir da linha vertical como θ , a distância entre o
ponto fixo da haste ao centro de gravidade como l e as coordenadas (x, y) do centro de
gravidade da haste como (xG, yG), conforme Figura 2.1, então:
θcos
sen
ly
θlxx
G
G
=+=
Figura 2.1: Sistema do pêndulo invertido
Figura 2.2: Representação do movimento horizontal
50
Figura 2.3: Representação do movimento vertical
Considerando os diagramas do corpo livre (Figura 2.4 e 2.5), é possível deduzir as
equações do movimento do sistema.
Figura 2.4: Diagrama do corpo livre (a)
Figura 2.5: Diagrama do corpo livre (b)
51
O movimento rotacional da haste do pêndulo em torno de seu centro de gravidade é
descrito por:
θθθ
θ
cos2M
sen)90cos(1M
2M1M
Hl
VlVl
I
==−=
−=&&
θθθ cos sen HlVlI −=&&
onde I é o momento de inércia da haste em relação ao centro de gravidade.
O movimento horizontal (Figura 2.2) do centro de gravidade da haste do pêndulo é:
Hlxdt
dm )sen (
2
2
=+ θ
O movimento vertical (Figura 2.3) do centro de gravidade da haste do pêndulo é dado
por:
mgVldt
dm −= )cos (
2
2
θ
O movimento horizontal do carro pode ser descrito por:
Hudt
xdM −=
2
2
Admitindo que o ângulo da haste em relação ao equilíbrio (θ ) e a velocidade angular
da haste (θ& ) são variáveis suficientemente pequenas na condição de equilíbrio, ou seja, com o
pêndulo invertido na posição vertical, pode-se considerar que θθ ≅sen , 1cos ≅θ e 02 =θθ & .
Então, as equações do movimento rotacional da haste, do movimento horizontal do centro de
gravidade e do movimento vertical do centro de gravidade podem ser linearizadas:
1
cos sen
×−=
−=
HlVlI
HlVlI
θθθθθ
&&
&&
HlVlI −= θθ&&
52
Hlxdt
dm
Hlxdt
dm
Hlxdt
dm
) (
) (
)sen (
1
1
2
2
2
2
=+
=+
=+
θ
θ
θ
&&
Hlxm ) ( =+ θ&&&&
mgm
mgldt
dm
mgVldt
dm
−=×
−=×
−=
V0
V)1(
)cos (
2
2
2
2
θ
mgV −= 0
A partir das equações linearizadas do movimento horizontal e vertical do centro de
gravidade, substitui-se V e H na equação linearizada do movimento rotacional da haste:
)(
θθθθθ
θθ
&&&&&&
&&
&&
mlxmlmglI
HlmglI
HlVlI
+−=
−=
−=
θθ mglxmlmlI =++ &&&&)( 2
E a equação de movimento horizontal do carro com a do movimento horizontal do
centro de gravidade da haste linearizada se da por:
θ
θ
&&&&&&
&&&&
mlxmuxM
lxmudt
xdM
Hudt
xdM
−−=
+−=
−=
)(
2
2
2
2
umlxmM )( =++ θ&&&&
53
As equações:
θθ mglxmlmlI =++ &&&&)( 2
e
umlxmM )( =++ θ&&&&
descrevem o movimento do sistema de pêndulo invertido sobre o carro e, por isso, constituem
o modelo matemático do sistema.
Considerando que a massa está concentrada no centro de gravidade no topo da haste e
o momento de inércia é definido por: ∑=
=n
1
2 i
ii rmI , pode-se dizer que 0 =r . Portanto, o
momento de inércia do pêndulo sobre seu centro de gravidade será 0=I . Então, o modelo
matemático para o sistema é:
θθ mglxmlml =+ &&&&2
e
umlxmM )( =++ θ&&&&
Dividindo a equação θθ mglxmlml =+ &&&&2 por ml :
θθ gxl =+ &&&&
θθ &&&& lgx −=
Substituindo x&& na equação umlxmM )( =++ θ&&&& :
θθθθθθθθ
θθθ
&&
&&&&
&&&&
&&&&
MlugmM
mllmMugmM
lmMumlgmM
umllgmM
=−+
−+=−+
+−=++
=+−+
)(
)( )(
)( )(
))((
ugmMMl )( −+= θθ&&
54
Dividindo a equação θθ 2 lmgxmlml =+ &&&& por l :
θθ mgxmml =+ &&&&
xmmgml &&&& −= θθ
Substituindo θ&&ml na equação umlxmM )( =++ θ&&&& :
umgxM
uxmmgxmxM
uxmmgxmM
)(
=+=−++=−++
θθθ
&&
&&&&&&
&&&&
θmguxM −= &&
Então, as duas equações do modelo matemático foram modificadas para:
ugmMMl )( −+= θθ&&
e
θmguxM −= &&
2.2 – Modelagem no Espaço de Estados
Definindo as variáveis de estado e , , 4321 xxxx como:
34
3
12
1
xxx
xx
xx
x
&&
&&
===
==
=
θθ
Pode-se substituir essas variáveis de estado no modelo matemático:
Ml
ugx
Ml
mMx
ugxmMxMl
ugmMMl
)(
)(
)(
12
12
−+=
−+=−+=
&
&
&& θθ
e
55
M
u
M
mgxx
mgxuxM
mguxM
+−=
−=−=
14
14
&
&
&& θ
Dessa forma, a equação de estado do sistema é dada por:
uB Ax x +=&
1
0
1
0
000
1000
000
0010
4
3
2
1
4
3
2
1
u
M
Ml
x
x
x
x
gM
m
gMl
mM
x
x
x
x
−+
−
+
=
&
&
&
&
Definindo as saídas do sistema 43,2,1 e yyyy como:
xy
xy
y
y
&
&
4
3
2
1
===
=
θθ
A equação de saída do sistema pode ser descrita por:
uD Cx y +=
0
0
0
0
1000
0100
0010
0001
4
3
2
1
4
3
2
1
u
x
x
x
x
y
y
y
y
+
=
56
2.3 – Funções de transferência do sistema
As funções de transferência do sistema podem ser encontradas aplicando Laplace nas
equações diferenciais lineares que constituem o modelo matemático.
Função de transferência I:
Ml
gmMs
MlsU
sΘ
gmMMlssU
sΘ
sUgmMMlssΘ
sUsgΘmMsΘMls
sUsgΘmMsΘMls
ugmMMl
)(
1
)(
)(
)(
1
)(
)(
)())()((
)()()()(
)()()()(
)(
2
2
2
2
2
+−
−=
+−−=
−=+−
−=+−
−+=−+= θθ&&
Como se trata de um sistema de 4ª ordem, multiplica-se por 2s :
24
2
)()(
)(
sMl
gmMs
Mls
sU
sΘ
+−
−=
Função de transferência II:
)( )( )(
2 smgΘsUsXMs
mguxM
−=
−= θ&&
:então ,)(
)()( Como
2 gmMMls
sUsΘ
+−−=
+−+=
+−+=
gmMMls
mgsUsXMs
gmMMls
sUmgsUsXMs
)(1 )()(
)(
)( )( )(
22
22
57
24
2
242
2
2
22
)(
)(
)(
)(
)(
)(
)(
)()(
gsmMMls
gls
sU
sX
gsmMMlsM
MgMls
sU
sX
gmMMls
mgmgMgMlssUsXMs
+−−=
+−−=
+−+−−=
( )24
2
)(
)(
)(
sMl
gmMs
Mlgsl
sU
sX+−
−=
Função de transferência III:
θ&& saída como se-obtém , )( de variaçãode taxapara Mudando uuu
Ml
gmMs
Mls
sU
sΘ
gmMMls
s
sU
sΘ
ssUgmMMlssΘ
ssUsΘgmMsΘMls
dt
du
dt
tdgmM
dt
tdMl
ugmMMl
)()(
)(
)()(
)(
)(])()[(
)()()()(
))(()(
))((
)(
2
2
2
2
+−
−=
+−−=
−=+−
−=+−
−=+−
−+=
&
&
&
&&
&&
&&
θθθθ
24
3
)()(
)(
sMl
gmMs
Mls
sU
sΘ
+−
−=
&
Função de transferência IV:
)()()(
))(())(())((
2 smgsΘssUsXMs
dt
tdmg
dt
tud
dt
txdM
mguxM
−=
−=
−=
&
&&
&&
θθ
:logo ,)(
)()( Se
2 gmMMls
sUsΘ
+−−=
58
gmMMls
mgss
U
XMs
gmMMls
ssUmgssUsXMs
)((s)
(s)
)(
)()()(
22
22
+−+=
+−−−=
&
&
])([M)(
)(
)()(
)(
)()(
)(
22
3
222
3
2
32
gmMlss
gsls
sU
sX
gmMMsMlsMs
MgsMls
sU
sX
gmMMls
mgsmgsMgsMls
sU
sXMs
+−−=
+−−=
+−+−−=
&
&
&
( )24
3
)((s)
(s)
sMl
gmMs
Mlgsls
U
X+−
−=
&
Outra forma de obter as funções de transferência é pela correlação com as equações
no espaço de estados, ou seja, através de D BA) C(sI)U(
)Y( 1- +−=s
s. Porém, como as matrizes
A e C são matrizes 44× , os cálculos inerentes desse processo são simples, porém longos para
serem expostos nesse trabalho.
Desta forma, escolheu-se a utilização de uma forma mais simples para verificar as
funções, através de um comando apropriado do MATLAB®.
Primeiramente, é necessário atribuir valores a M, m, l e g, caso contrário o MATLAB®
não consegue reproduzir as matrizes A e B. Para esse projeto, os valores são 2 kg, 0,1 kg,
0,5m e 9,81m/s², respectivamente (valores extraídos de: Ogata, 2003, p. 687) .
Os seguintes comandos foram dados no MATLAB®:
>> M=2;
>> m=0.1;
>> l=0.5;
59
>> g=9.81;
>> A=[0 1 0 0; (M+m)*g/(M*l) 0 0 0; 0 0 0 1; -m*g/M 0 0 0]
A =
0000.4905-
1.0000000
00020.6010
001.00000
>> B=[0; -1/(M*l); 0; 1/M]
B =
0.5000
0
1.0000-
0
>> C=[1 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1]
C =
1000
0100
0010
0001
>> D=[0;0;0;0]
D =
0
0
0
0
>> [a,b]=ss2tf(A,B,C,D)
60
a =
08100.90000.05000.00
8100.90000.05000.00000.00
000000.00000.10
000000.10000.00
−−−
−−−
b =
006010.200000.00000.1 −−
Como a corresponde a matriz dos numeradores e b a matriz do denominador,
compara-se as funções de transferência encontradas no MATLAB® com as encontradas
anteriormente:
24
2
24
2
)(
601020
)(
)(
sMl
gmMs
Mls
s.s
s
sU
sΘ
+−
−=
−−=
24
3
24
3
)(
601020
)(
)(
sMl
gmMs
Mls
s.s
s
sU
sΘ
+−
−=
−−=
&
( ) ( )24
2
24
2
)(
601020
81.9 5.0
)(
)(
sMl
gmMs
Mlgsl
s.s
s
sU
sX+−
−=
−−=
( ) ( )24
3
24
3
)(
601020
81.9 5.0
)(
)(
sMl
gmMs
Mlgssl
s.s
ss
sU
sX+−
−=
−−=
&
2.4 – Representação das funções de transferência no espaço de estados na forma
canônica controlável
Comparando as funções de transferência encontradas com a forma genérica:
nn
nn
asasas
bsbsbsb
s
s
...
...
)U(
)Y(
11-n
1n
11-n
1n
0
++++++++=
−
−
61
é possível representá-la no espaço de estados na forma canônica controlável.
1
0
.
.
.
0
0
.
.
.
...
1...000
....
....
....
0...100
0...010
.
.
.
1
2
1
121
1
2
1
u
x
x
x
x
aaaax
x
x
x
n
n
nnnn
n
+
−−−−
=
−
−−
−
&
&
&
&
[ ] ub
x
x
x
babbabbaby
n
nnnn
.
.
. . . . 0
2
1
0110110 +
−−−= −− MMM
1
0
0
0
0)(
00
1000
0100
0010
4
3
2
1
4
3
2
1
u
x
x
x
x
Ml
gmMx
x
x
x
+
+=
&
&
&
&
00
00
1000
0100
4
3
2
1
4
3
2
1
−
−
−
−
=
x
x
x
x
Mll
Mlg
Mll
Mlg
Ml
Ml
y
y
y
y
2.5 – Análise do Sistema de Controle no Espaço de Estados do Pêndulo Invertido
Antes de se projetar o sistema de controle no espaço de estados do pêndulo invertido,
foi verificado se o modelo matemático atendia a duas propriedades: controlabilidade e
observabilidade.
62
2.5.1 – Controlabilidade completa de estado
Como já visto anteriormente, foi confirmado se o posto da matriz nrn ×
[ ] BA. . .ABB 1−nMMM
é n ou se seus vetores são linearmente independentes.
=
+=
0
1
0
0
1
0
0
0
0)(
00
1000
0100
0010
AB
Ml
gmM
+
=
+
+=
+
+=
Ml
gmM
Ml
gmMMl
gmM
Ml
gmM
Ml
gmM
)(
0
1
0
BA
1
0
0
0
)(000
0)(
00
1000
0100
BA
1
0
0
0
0)(
00
1000
0100
0010
0)(
00
1000
0100
0010
BA
2
2
2
63
+=
+
+
+
=
+
+
+=
0
)(
0
1
BA
1
0
0
0
0)(
)(00
)(000
0)(
00
1000
BA
1
0
0
0
0)(
00
1000
0100
0010
)(000
0)(
00
1000
0100
BA
3
2
22
3
3
Ml
gmM
Ml
gmMMl
gmMMl
gmM
Ml
gmM
Ml
gmMMl
gmM
[ ]
+
+=
0)(
01
)(010
0100
1000
BABAABB 32
Ml
gmMMl
gmMMMM
Os vetores B, AB, ... , BA 1−n são linearmente independentes e o posto da matriz 4 4×
é 4, portanto, o sistema é de estado completamente controlável.
2.5.2 – Controlabilidade de saída
Para constatar se a saída é completamente controlável, será verificado se o posto da
matriz rnm )1( +×
[ ]
DBCA. . .BCACABCB 12MMMMM
−n
é m.
64
−=
−
−
−
−
=
Mll
Ml
Mll
Mlg
Mll
Mlg
Ml
Ml
0
1
0
1
0
0
0
00
00
1000
0100
CB
−
=
++−
−
+−
−
=
+
−
−
−
−
=
0
1
0
1
CAB
1
0
0
0
0)(
00
00
0)(
00
1000
CAB
1
0
0
0
0)(
00
1000
0100
0010
00
00
1000
0100
CAB
2
22
Ml
Ml
lM
gmM
Ml
gMl
lMl
glM
gmMMl
Ml
gmM
Mll
Mlg
Mll
Mlg
Ml
Ml
65
++−
+−=
++−
++−
+−
+−
=
+
++−
−
+−
−
=
+
+
−
−
−
−
=
lM
gmMMl
g
lM
gmM
lM
gmMMl
glM
gmMMl
glM
gmMlM
gmM
Ml
gmM
lM
gmMMl
gMMl
glM
gmMMl
Ml
gmM
Ml
gmM
MMlg
MMlg
Ml
Ml
2
222
2
2
22
22
2
2
222
2
)(0
)(0
BCA
1
0
0
0
)(000
0)(
00
)(000
0)(
00
BCA
1
0
0
0
0)(
00
1000
0100
0010
0)(
00
100
0)(
00
1000
BCA
1
0
0
0
0)(
00
1000
0100
0010
0)(
00
1000
0100
0010
100
010
1000
0100
BCA
66
++−
+−
=
−++
++−
+−
+−
=
+
++−
++−
+−
+−
=
+
+
++−
−
+−
−
=
0
)(
0
)(
BCA
1
0
0
0
01)(
)(00
)(000
0)(
)(00
)(000
BCA
1
0
0
0
0)(
00
1000
0100
0010
)(000
0)(
00
)(000
0)(
00
BCA
1
0
0
0
0)(
00
1000
0100
0010
0)(
00
1000
0100
0010
0)(
00
00
0)(
00
1000
BCA
2
22
3
22232
2
3
22
22
3
2
2
22
22
3
2
223
lM
gmMMl
g
lM
gmM
lMlM
mMmMg
lM
gmMMl
gMl
gmMlM
gmM
Ml
gmM
lM
gmMMl
glM
gmMMl
glM
gmMlM
gmM
Ml
gmM
Ml
gmM
lM
gmMMl
gMl
lMl
glM
gmMMl
67
[ ]
++−
++−
+−−
+−−
=
00)(
0
0)(
00
00)(
01
0)(
010
DBCABCACABCB
2
2
22
22
32
lM
gmMMl
gMl
llM
gmMMl
gMl
llM
gmMMl
lM
gmMMl
MMMM
Como o posto da matriz 5 4× é 4, a saída do sistema é completamente controlável.
2.5.3 – Observabilidade completa
Neste tópico foi verificado se o sistema é completamente observável. Isto não seria
necessário, pois suas variáveis podem ser medidas diretamente. Porém, esta condição foi
analisada somente para fins didáticos.
Para analisar se o sistema é completamente observável, foi necessário verificar se o
posto da matriz nnm ×
CA
.
.
.
CA
C
1
−n
LLL
LLL
LLL
é n ou tem n vetores-linha linearmente independentes.
68
0)(
00
00
0)(
00
1000
0)(
00
1000
0100
0010
00
00
1000
0100
CA
2
22
++−
−
+−
−
=
+
−
−
−
−
=
lM
gmMMl
gMl
lMl
glM
gmMMl
Ml
gmM
Mll
Mlg
Mll
Mlg
Ml
Ml
)(000
0)(
00
)( 000
0)(
00
0)(
00
1000
0100
0010
0)(
00
00
0)(
00
1000
CA
2
2
22
22
2
222
++−
++−
+−
+−
=
+
++−
−
+−
−
=
lM
gmMMl
glM
gmMMl
glM
gmMlM
gmM
Ml
gmM
lM
gmMMl
gMl
lMl
glM
gmMMl
0)(
00
1000
0100
0010
)(000
0)(
00
)( 000
0)(
00
CA
2
2
22
22
3 =
+
++−
++−
+−
+−
=
Ml
gmM
lM
gmMMl
glM
gmMMl
glM
gmMlM
gmM
69
01
)(
)(00
)(000
0)(
)( 00
)( 000
22232
2
3
22
22
−++
++−
+−
+−
lMlM
mMmMg
lM
gmMMl
gMl
gmMlM
gmM
−++
++−
+−
+−
++−
++−
+−
+−
++−
−
+−
−
−
−
−
−
=
01
)(
)(00
)(000
0)(
)( 00
)( 000
)(000
0)(
00
)( 000
0)(
00
0)(
00
00
0)(
00
1000
00
00
1000
0100
CA
CA
CA
C
22232
2
3
22
22
2
2
22
2
22
3
2
lMlM
mMmMg
lM
gmMMl
gMl
gmMlM
gmMlM
gmMMl
glM
gmMMl
glM
gmMMl
gmMlM
gmMMl
gMl
lMl
glM
gmMMl
Mll
Mlg
Mll
Mlg
Ml
Ml
A matriz 4 16× tem posto 4 (4 vetores-linha linearmente independentes), portanto, é
completamente observável.
70
2.6 – Projeto do controlador do pêndulo invertido no MATLAB®
Para o projeto do controlador é necessário que o sistema atenda a alguns requisitos de
projeto, como máximo sobressinal e tempo de acomodação. Para atingir esses requisitos é
necessário que as raízes da equação característica sejam modificadas através de uma matriz de
ganho K para os locais desejados. Inicialmente, adotaram-se valores no semiplano esquerdo
distantes da origem para as raízes reais. Através de um algoritmo de busca cega numa dada
região, foram obtidas as raízes complexas conjugadas, tendo como pré-requisito para a
variável ângulo um máximo sobressinal menor que 1,57 (valor correspondente à 90º em
radianos, o que não permite que a haste encoste no carro) e tempo de acomodação menor que
6 segundos (tempo aceitável para que o observador visualize a dinâmica do sistema) a um
critério de 2%, quando submetido a um distúrbio de 1 radianos em sua condição inicial.
.30p ;30p ;2,26,3p ;2,26,3p 4321 −=−=+−=−−= ii
A matriz K foi obtida através da matriz de transformação T.
[ ] -1112211 T . . .K aaaa nnnn −−−−= −− αααα MMMM
Onde, a equação característica da matriz A é:
nn asasass ... AI 11-n
1n ++++=− −
)(
00
100
010
001
AI
0)(
00
1000
0100
0010
000
000
000
000
AI
+−−
−−
=−
+−
=−
sMl
gmMs
s
s
s
Ml
gmMs
s
s
s
s
71
601.20AI
5.02
81.9)1.02(00
100
010
001
AI
24 sss
s
s
s
s
s
−=−
××+−
−−
−
=−
Utilizando os autovalores desejados (pólos desejados de malha fechada), escreveu-se o
polinômio característico desejado:
nnnn
n ssssss αααµµµ ... )( ... ))(( 11-
121 ++++=−−− −
16020 5487 8,1349 67,2 )30)(30)(2,26,3)(2,26,3( 234 ++++=++−+++ ssssssisis
A matriz de ganho de realimentação de estado pode, então, ser determinada por:
[ ]
[ ]
[ ]2,674.1370754816020K
102,67)601,20(8,134907548016020K
T . . .K
1
1112211
MMM
MMM
MMMM
=
×−−−−−=
−−−−=
−
−−− aaaa nnnn αααα
Outra forma mais simples de encontrar o ganho pode ser utilizando o MATLAB ®
através dos comandos:
>> M=2;
>> m=0.1;
>> l=0.5;
>> g=9.81;
>> A = [0 1 0 0; 0 0 1 0; 0 0 0 1; 0 0 (M + m)*g/(M*l) 0];
>> B = [0; 0; 0; 1];
>> J = [-3,6-2,2*i -3,6+2,2*i -30 -30];
72
>> K = acker(A,B,J)
K =
1.0e+004 *
1.60200 0.75480 0.13704 0.00672
Desta forma, utilizaram-se os seguintes valores para a matriz K:
[ ] [ ] 2,674,1370754816020 k4k3k2k1 =
Após encontrar a matriz de ganho K, foi criado o sistema de controle de malha fechada
no Simulink® conforme Figura 1.9 do tópico 1.7.1.
Figura 2.6: Sistema de controle de malha fechada no Simulink®
73
Onde:
Para bom entendimento do diagrama de blocos criado, é apresentada uma breve
explicação de cada componente utilizado:
MATLAB Function – Novas funções podem ser adicionadas ao vocabulário do
MATLAB ® através de termos de funções existentes. Os comandos e funções existentes que
compõem a nova Function são salvos em um arquivo de texto chamado M-file. As Functions
podem utilizar suas próprias variáveis locais e aceitar argumentos de entrada.
Foram utilizadas cinco Functions, correspondentes as matrizes A, B, C, D e a matriz
de ganho K. As functions e suas configurações são apresentadas nas Figuras 2.7 a 2.16.
Figura 2.7: Function referente à matriz A.
74
Figura 2.8: Configuração da Function referente à matriz A.
Figura 2.9: Function referente à matriz B.
75
Figura 2.10: Configuração da Function referente à matriz B.
Figura 2.11: Function referente à matriz C.
76
Figura 2.12: Configuração da Function referente à matriz C.
Figura 2.13: Function referente à matriz D.
77
Figura 2.14: Configuração da Function referente à matriz D.
Figura 2.15: Function referente à matriz de ganho K.
78
Figura 2.16: Configuração da Function referente à matriz de ganho K.
Integrator – De acordo com o Ogata (2003), em um sistema de controle de tempo
contínuo servem como dispositivo de memória, as saídas desses integradores podem ser
consideradas variáveis que definem o estado interno do sistema dinâmico. Assim, as saídas
dos integradores podem ser escolhidas como variáveis de estado. O número de variáveis de
estado que definem completamente a dinâmica de um sistema é igual ao número de
integradores existentes no sistema.
Sum – O bloco Soma realiza adição ou subtração em suas entradas. Este bloco pode
adicionar ou subtrair escalar, vetor ou entradas da matriz.
Mux – Combina suas entradas em um único vetor de saída. Uma entrada pode ser um
sinal de escalar ou vetor. Todas as entradas devem ser do mesmo tipo de dados e tipo
numérico.
Demux – Extrai os componentes de um sinal de entrada e emite os componentes de
saída como sinais separados.
Scope – Tem a função de gerar os gráficos das saídas do sistema.
79
Constant – O bloco constante gera um valor real ou complexo constante. Esse valor
pode ser escalar, vetor ou matriz de saída. Nesse sistema de controle, a constante foi
configurada para ter valor zero, já que a referência do sistema é zero.
2.7 – Comunicação entre Blender e Simulink® via protocolo OPC
Como já foi dito anteriormente, foi utilizado o software Matrikon para interação entre
o Blender e o Simulink® através da comunicação OPC.
Inicialmente, é necessário criar um grupo no Matrikon que contém as saídas do
sistema utilizadas no Simulink® e posteriormente chamadas através de uma linguagem Python
para o Blender.
A Figura 2.17 apresenta a primeira tela que o usuário encontra ao iniciar o Matrikon.
Figura 2.17: Tela inicial do Matrikon.
80
O grupo foi criado dentro do tópico “Alias Configuration”, clicando com o botão
direito do mouse sobre o mesmo, como mostra a Figura 2.18:
Figura 2.18: Criação do grupo no Matrikon.
Após a criação do grupo, este foi renomeado para “Saidas" e é dentro dele que foram
inseridas as variáveis necessárias para simulação do projeto. A primeira variável criada foi
“angulo", variável referente ao ângulo da haste em relação a sua posição de equilíbrio. Para
criação desta variável, clicou-se duas vezes dentro do grupo “Saidas”, como pode ser visto na
Figura 2.19:
Figura 2.19: Criação da variável “angulo”.
81
O mesmo foi feito para a variável posição:
Figura 2.20: Criação da variável “posicao”.
Após a configuração no Matrikon, foi necessário realizar algumas mudanças no
projeto do sistema de controle criado no Simulink®. Foram acrescentados novos blocos como
o OPC Configuration e OPC Write, que são detalhados na Figura 2.21:
Figura 2.21: Projeto do sistema de controle no Simulink®
As variáveis que foram criadas no Matrikon foram inseridas no sistema dentro do
bloco OPC Write, pois é através dele que são escritos seus valores.
82
As saídas referentes às variáveis ângulo e posição devem ser inseridas na entrada do
bloco OPC Write e, posteriormente, este bloco deve ser configurado. Antes de demonstrar a
configuração dos blocos, é necessário conhecer suas funcionalidades.
Bloco OPC Configuration – Este bloco define os clientes OPC usados em um
modelo, configura seu comportamento em tempo real, bem como seus erros e eventos. Não
possui portas de entrada, porém há uma porta de saída opcional que mostra o tempo decorrido
em segundos.
OPC Write – Escreve dados para um ou mais itens em um servidor OPC. A operação
de escrita ocorre de forma síncrona ou assíncrona. Cada elemento do vetor de entrada é
escrito para o item correspondente na lista de identificação de item definido para o bloco OPC
Write.
A Figura 2.22 apresenta a tela de configuração do bloco OPC Write.
Figura 2.22: Tela de configuração do bloco OPC Write
83
Para configurar o cliente OPC utilizado – neste caso, o Matrikon – clicou-se na opção
“Configure OPC Clientes” e posteriormente em “Add”:
Figura 2.23: Adição do cliente OPC no bloco OPC Write (a)
Na nova janela que se iniciou, o cliente OPC foi adicionado clicando sobre a opção
“Select”:
Figura 2.24: Adição do cliente OPC no bloco OPC Write (b)
84
Em seguida, o cliente OPC foi selecionado:
Figura 2.25: Adição do cliente OPC no bloco OPC Write (c)
Após este processo, voltou-se na tela inicial de configuração do bloco (ver Figura
2.22) e clicou-se em “Add Items”:
Figura 2.26: Adição das variáveis de saída ao bloco OPC Write (a)
85
As variáveis ângulo e posição, que estavam dentro do tópico “Configured Aliases >
Saídas”, foram selecionadas e inseridas em “Select server items”, clicando sobre o item “>>”:
Figura 2.27: Adição das variáveis de saída ao bloco OPC Write (b)
Após este processo o bloco se apresentou devidamente configurado:
Figura 2.28: Bloco OPC Write configurado
86
Pode-se observar na Figura 2.21 que um bloco “Saturação” foi adicionado antes da
entrada do bloco OPC Write. Isto foi feito para limitar a posição da haste em 90º. Sua
configuração foi feita inserindo os valores “1.57” e “-1.57” (valores em radianos referentes à
90º) nos campos “Upper limit” e “Lower limit”:
Figura 2.29: Configuração do bloco Saturação.
O bloco OPC Configuration não teve sua configuração alterada, escolheu-se manter os
valores padrões:
Figura 2.30: Configuração do bloco OPC Configuration.
87
Após as configurações dos blocos, o projeto do sistema de controle no Simulink®
encontrou-se devidamente configurado para o controle do modelo do pêndulo.
Figura 2.31: Projeto do sistema de controle configurado.
2.8 – Programação em Python no Blender
Após o processo de configuração do cliente OPC no Simulink®, foi criado o modelo
do pêndulo (Apêndice A) e uma programação em Python no Blender. Tal programação
contém instruções que captam os valores das variáveis de saída e torna possível a animação
do pêndulo.
A programação é apresentada a seguir:
# Disponibiliza a biblioteca OpenOPC e biblioteca Blender import OpenOPC import Blender # Utilizado para comunicar diretamente com servidores OPC Opc = OpenOPC.client () # Atribui variáveis aos objetos obh1 = Blender.Object.Get ('Haste.001') obh= Blender.Object.Get ('Haste') obc = Blender.Object.Get ('Carrinho') obci = Blender.Object.Get ('Circle') obci1 = Blender.Object.Get ('Circle.001') obr = Blender.Object.Get ('Rodas') obr1 = Blender.Object.Get ('Rodas.001') obr2 = Blender.Object.Get ('Rodas.002') obr3 = Blender.Object.Get ('Rodas.003')
88
# Utilizado para que o usuário saiba quando o script estiver processando Blender.Window.WaitCursor(1) # Conecta ao servidor OPC Opc.connect ('Matrikon.OPC.Simulation.1') # Repete a programação por 200 ciclos for i in range(1, 200): # Lê o valor das variáveis ângulo e posição e escreve em y e x. y=Opc['Saidas.angulo'] x=Opc['Saidas.posicao']
# Realiza a animação dos objetos: Rotação e Localização # Os valores entre parênteses se referem às posições nos eixos x, y e z de cada
objeto no Blender obh1.setEuler(0,y,0) obh1.setLocation(x,0,1.3) obh.setLocation(x,0,1.3) obc.setLocation(x,0,0.8) obci.setLocation(x,0.1,1.2) obci1.setLocation(x,-0.1,1.2) obr.setLocation(x+1.5,1.1,0.4) obr1.setLocation(x+1.5,-1.2,0.4) obr2.setLocation(x-1.5,1.1,0.4) obr3.setLocation(x-1.5,-1.2,0.4)
# Atualiza a tela para mostrar as mudanças nos objetos Blender.Redraw()
# Realiza um teste de parada if Blender.Window.TestBreak()==True:
brake() else:
# Utilizado para que o usuário saiba quando o script foi concluído Blender.Window.WaitCursor(0)
3 – ANÁLISE DOS RESULTADOS
Neste capítulo foi feita a análise do comportamento das variáveis quando submetidas
ao distúrbio de 1,0 radianos na condição inicial do ângulo. Através dos gráficos gerados pelo
MATLAB ® e da simulação no Blender foi possível verificar se a nova alocação dos pólos do
sistema em malha fechada atende aos pré-requisitos de projeto e levou o pêndulo ao
equilíbrio.
Iniciando a análise do comportamento do ângulo através do gráfico mostrado na
Figura 3.1 e dos dados obtidos pelo MATLAB®, pode-se constatar que os pré-requisitos de
projeto foram atendidos, com máximo sobressinal de 1,00 radianos e tempo de acomodação
de 5,36 segundos.
Figura 3.1: Gráfico do comportamento do ângulo
Para a variável velocidade angular o máximo sobressinal foi de 24,49 rad/s e o tempo
de acomodação foi de 2,05 segundos, no mesmo critério de 2%, como pode ser observado na
Figura 3.2:
90
Figura 3.2: Gráfico do comportamento da velocidade angular
Ao analisar os resultados da posição (Figura 3.3), o MATLAB® forneceu como
máximo sobressinal de 0.86 metros e o carro retornou à sua posição de origem em 3,19
segundos.
Figura 3.3: Gráfico do comportamento da posição
91
Para a variável velocidade linear os valores obtidos foram 12,48 m/s para máximo
sobressinal e 3,21 segundos para tempo de acomodação, conforme pode ser visualizado na
Figura 3.4:
Figura 3.4: Gráfico do comportamento da velocidade linear
A Figura 3.5 apresenta a simulação do pêndulo em diferentes momentos no tempo,
onde submetido a um distúrbio e em sua posição final, já equilibrado.
Figura 3.5: Visualização do simulador do pêndulo quando submetido a um distúrbio até o equilíbrio
4 – CONCLUSÃO
Após a realização dos testes e análises de comportamento do pêndulo, conclui-se que o
controle por realimentação de estados tornou-se uma ferramenta adequada para a proposta
inicial deste trabalho, obtida com sucesso. O simulador do modelo do pêndulo invertido se
tornou um bom recurso didático para estudos desse e de outros sistemas, apresentando um
comportamento adequado quando submetido a um distúrbio e atendendo aos requisitos
iniciais de tempo de acomodação e sobressinal.
Apesar da dificuldade encontrada no processo de modelagem do sistema, o modelo
matemático foi obtido e, após esse passo, encontrou-se maior facilidade em obter os vetores
de estado que regem o sistema.
Apresenta-se como sugestões para trabalhos futuros a melhoria da tela de simulação,
como a inserção de botões que estimulem o distúrbio no sistema e displays para visualização
das variáveis de saída. Outros softwares de modelagem/simulação podem ser utilizados para
este propósito.
Outra mudança de software pode ser feita com o intuito de utilizar somente softwares
gratuitos, para isso, sugere-se escolher o SCILAB ao invés do MATLAB®.
Pode-se também mudar a modelagem do pêndulo invertido considerando que a massa
do carro varia com o tempo devido ao consumo de combustível, ou seja, o sistema como
variante no tempo.
Seria interessante utilizar o simulador dentro de sala de aula como ferramenta
adicional, desta forma, os alunos do curso de Engenharia terão maior entendimento de como a
teoria de controle no espaço de estados é utilizada na prática, analisando pontos de melhoria a
serem feitas.
REFERÊNCIAS
BLENDER BRASIL. O que é o Blender?. Disponível em: <http://wiki.blender.org/index.php/Doc:PT/2.4/Manual/Introduction>. Acesso em: 12 de janeiro de 2013.
BRATLEY, P.; BENNET, F. L.; SCHRAGE, L. E. A Guide to Simulation. 2nd ed. Springer-Verlag, New York, 1987.
DORF, R.; BISHOP, R. Sistemas de Controle Modernos. 11° ed. Rio de Janeiro, LTC, 2009.
FREITAS FILHO, P. Introdução à Modelagem e Simulação de Sistemas com Aplicação em Arena. 2ª ed. Florianópolis, Visual Books, 2008.
GILAT, A. MATLAB® com aplicações em engenharia. 2ª ed. São Paulo, Bookman, 2006.
GUARDA, Á. CIC 250 - Inteligência Artificial , 2004.
KARRIS, S. K. Signals and Systems with MATLAB® Computing and Simulink® Modeling. 4th ed. United States, Orchard Publications, 2008.
KHALIL, R.; BOSSETTO, M.; FONTEBASSO NETO, J. O uso da tecnologia de simulação na prática docente na área de engenharia de produção, 2011.
LATHI, B. P. Sinais e Sistemas Lineares. 2ª ed. São Paulo, Bookman, 2004.
LAW, A.; KELTON, D. Simulation modeling and analysis. New York, McGraw-Hill, 2000.
MATHWORKS. MATLAB ®, The Language of technical Computing. Disponível em: <http://www.mathworks.com/products/matlab/>. Acesso em: 29 de janeiro de 2013.
MATHWORKS. SIMULINK ®, Simulation and Model-based Design. Disponível em: <http://www.mathworks.com/products/simulink/>. Acesso em: 29 de janeiro de 2013.
94
MATRIKON OPC. OPC Tutoriais. Disponível em: <http://www.matrikonopc.com/portal/downloads/whitepapers/Guide_to_OPC.pdf>. Acesso em: 25 de janeiro de 2013.
OGATA, K. Engenharia de Controle Moderno. 4ª ed. São Paulo, Pearson Prentice Hall, 2003.
POLLONI, E.; FEDELI, R.; PERES, F. E. Introdução à ciência da computação. 2ª ed. CENGAGE LEARNING, 2010.
ROSSUM, G. Tutorial Python . Fred L. Drake Jr., 2005.
SILVA, M. A. DE O. Estudo de Técnicas de Controle Aplicado ao Sistema Pêndulo Invertido. Monografia do Curso de Engenharia de Controle e Automação Industrial, 2009.
STAMM, H. Simulação Industrial: uma avaliação de sua utilização no sudeste e sul do Brasil, 1998.
STRACK, J. GPSS: modelagem e simulação de sistemas. Rio de Janeiro, LTC, 1984.
TAYLOR, F. Princípios de Administração Científica. 7ª ed. São Paulo, Atlas, 1970.
APÊNDICE A:
Passo a passo da criação do modelo do pêndulo invertido no Blender 2.49
Ao abrir o Blender 2.49 o usuário encontrará uma tela como esta:
Figura A.1 – Tela inicial do Blender
O programa já se inicia com um objeto, o cubo, que foi modelado para dar forma ao
carro. Para editar um objeto, o usuário deve mudar do modo objeto para modo de edição
(comando Tab). Para mexer com o tamanho, o comando utilizado foi S (escalonar) + X (Para
mexer com o tamanho apenas na coordenada x) e posteriormente S + Z (Para mudar a altura
do carro, escalonando apenas no eixo Z). A visão pode ser mudada para frontal (NumLock 1)
ou visão lateral (NumLock 3).
96
Figura A.2 – Escalonamento do objeto
Mudando a perspectiva através do NumLock 5, a visão que o usuário terá será a
seguinte:
Figura A.3 – Visão Perspectiva
Para criação das rodas do carro, adiciona-se um novo objeto (círculo) através dos
comandos Barra de Espaço > Add > Mesh > Circle.
97
Figura A.4 – Adição de um novo objeto (a)
Foi escolhido o número de vértices como 32, o raio igual a 1 e selecionada a opção
“Fill”, para que se forme um círculo com preenchimento.
Figura A.5 – Adição de um novo objeto (b)
O círculo se forma em qualquer lugar da tela.
Figura A.6 – Objeto criado
98
Para posicionar o círculo corretamente, basta move-lo através do comando G ou G + a
letra referente a uma das coordenadas, se for o caso de mover em apenas um eixo fixo.
Figura A.7 – Movimentação do objeto
Para dar profundidade a roda, basta extrudá-la através do comando E (o objeto
necessita estar em modo de edição). A visão foi mudada para lateral.
99
Figura A.8 – Extrusão da roda
A extrusão foi feita apenas no eixo x através dos comandos (E + X).
Figura A.9 – Extrusão do objeto em apenas um eixo
Antes de dar continuidade à edição das rodas, os objetos foram nomeados na opção
Panels > Link and Materials. Para renomear primeiro o carro, o mesmo foi selecionado
clicando sobre ele com o botão direito do mouse.
100
Figura A.10 – Renomeação dos objetos (a)
O mesmo foi feito com o objeto referente à roda.
Figura A.11 – Renomeação dos objetos (b)
O próximo passo é acertar o tamanho da roda de forma proporcional ao tamanho do
carro através do comando S (escalonar).
Figura A.12 – Escalonamento da roda
101
Para duplicar a roda foi dado o comando Shift + D, após isto a nova roda foi
posicionada de forma corretamente através do comando G + X (movida apenas no eixo X). A
visão escolhida para este passo foi a frontal (NumLock 1).
Figura A.13 – Duplicação da roda
Com a visão de cima (NumLock 7), as duas rodas já criadas foram duplicadas
novamente (Shift + D) e reposicionadas para o outro lado do carro (G + Y).
Figura A.14 – Duplicação das rodas
102
Para a criação da haste foi adicionada novamente um “circle” (Barra de Espaço > Add
> Mesh > Circle):
Figura A.15 – Criação da haste
O tamanho do círculo foi modificado escalonando o objeto (S):
Figura A.16 – Modificação do tamanho do novo objeto (haste)
103
Para dar altura a haste basta extrudar (E) e mover o mouse até a altura desejada:
Figura A.17 – Criação da haste
Este objeto também deve ser renomeado.
Figura A.18 – Renomeação do objeto
104
Com a haste posicionada em cima do carro (Comando G), foi feita uma nova extrusão
e escalonamento para criar um peso maior no topo da haste. Primeiramente foi feita uma
extrusão sem dar altura (Comando E + clique com o mouse) e logo em seguida o
escalonamento, para criar uma base.
Figura A.19 – Criação do topo da haste (a)
Foi realizada uma nova extrusão (E) para dar altura. O pêndulo deve se apresentar
desta forma:
Figura A.20 – Criação do topo da haste (b)
105
Para criar uma base onde a haste ficará fixada, foi criado um novo objeto (Circle) e
posicionado ao lado da haste, mas apenas com metade do círculo aparente. Os passos para dar
profundidade, modificar o tamanho e posicionar o objeto corretamente são os mesmos
realizados nos passos referentes à roda.
Esta deve ser a posição do novo objeto:
Figura A.21 – Criação da base fixa para a haste
O objeto deve ser duplicado (Shift + D) e posicionado do outro lado da haste (G + Y).
106
Figura A.22 – Criação da base fixa para a haste
Como a haste deve ter o formato de um “T”, deve ser criada uma base para ela. Basta
duplicar novamente o objeto do círculo, modificar o tamanho (S) até que fique proporcional à
haste e extrudá-lo (E) para dar profundidade até que a base passe através das duas bases fixas.
Figura A.23 – Criação da base da haste
As cores de cada objeto podem ser modificadas de acordo com as preferências do
usuário através do menu Panels > Shading > Material > Buttons. Para isto o objeto deve estar
selecionado (clique com o botão direito do mouse) e em modo objeto (Object Mode).
Figura A.24 – Modificação das cores dos objetos