Top Banner
Sistemas em Tempo Real Controlo de pˆ endulo invertido Elaborado por: Ariel Geraldo Machado - [email protected] Porto, 2 de Janeiro de 2006
28

Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Jul 23, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Sistemas em Tempo Real

Controlo de pendulo invertido

Elaborado por: Ariel Geraldo Machado - [email protected]

Porto, 2 de Janeiro de 2006

Page 2: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Resumo

Neste trabalho foi desenvolvido um sistema de controlo para um penduloinvertido. O desenvolvimento do sistema previu a construccao do driverpara uma placa de aquisicao de dados e o software de controlo, utilizando oscomponentes mecanicos e a electronica de interface de um pendulo invertidopreviamente desenvolvido na disciplina Sistemas Baseados em Logica Difusapelos alunos Jose Ricardo Teixeira Soares e Ricardo Jorge Pinto de Castro [1].

Para a medida da posicao do pendulo recorreu-se a um encoder incremen-tal de 2000 passos e como actuador um motor DC com caixa redutora, paraaumentar o binario.O accionamento do motor e realizado por PWM e para o controlo do pendulofoi desenvolvido um controlador PID (Proporcional-Integral-Diferencial).O software foi desenvolvido num PC sob o sistema operativo de tempo realQNX Neutrino 6.2.1, e para a interface entre o mundo ”real”(encoder e mo-tor) e o PC utilizou-se a placa de aquisicao de dados Intelligent Instrumen-tation PCI-20428W.

Este trabalho foi realizado no ambito da disciplina Sistemas em TempoReal leccionada pelo Professor Mario Jorge Rodrigues de Sousa, correspon-dendo com o plano de estudos do 5º ano da Licenciatura em EngenhariaElectrotecnica e Computadores, no entanto foi cursada como disciplina opta-tiva do 5º ano da Licenciatura em Engenharia Informatica e Computadores.

Page 3: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Conteudo

1 Introducao do Sistema 5

2 Sistema mecanico 7

3 Electronica de interface 103.1 Controlo de velocidade do motor . . . . . . . . . . . . . . . . . 103.2 Medicao de posicao do pendulo . . . . . . . . . . . . . . . . . 11

4 Interface com PC 13

5 Software de interface 165.1 Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

6 Software de controlo 18

7 Analise de tempos 207.1 Tarefa proc pwm . . . . . . . . . . . . . . . . . . . . . . . . . 217.2 Tarefa proc pid . . . . . . . . . . . . . . . . . . . . . . . . . . 227.3 Tempos obtidos . . . . . . . . . . . . . . . . . . . . . . . . . . 227.4 Validacao do Planeamento . . . . . . . . . . . . . . . . . . . . 237.5 Calibracao e Resultados . . . . . . . . . . . . . . . . . . . . . 24

8 Conclusoes 26

2

Page 4: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Lista de Figuras

1.1 Sistema completo de malha fechada . . . . . . . . . . . . . . . 51.2 Modelo dinamico: diagrama de forcas . . . . . . . . . . . . . . 61.3 Estados de equilıbrio do pendulo invertido: a)ponto de equilıbrio

- b)barra em queda - c)barra em repouso . . . . . . . . . . . . 6

2.1 Fotografia do bloco movel do pendulo . . . . . . . . . . . . . . 72.2 Sistema de acoplamento motor/bloco movel . . . . . . . . . . 82.3 Vista superior e vista frontal do hardware . . . . . . . . . . . 92.4 Vista lateral esquerda e direita do hardware . . . . . . . . . . 9

3.1 Isolamento entre a parte de potencia e controlo . . . . . . . . 103.2 Drive do motor DC . . . . . . . . . . . . . . . . . . . . . . . . 113.3 Electronica de interface entre o encoder e o HCTL-2020 . . . . 12

4.1 Instalacao do painel de terminadores na placa PCI-20428W . . 154.2 Detalhe do painel de terminadores PCI-20429T . . . . . . . . 15

5.1 Classe PCI 20428w para gerir a placa de aquisicao de dados.A classe CBoardInfo retorna informacao sobre a mesma. . . . 17

6.1 Classe CPid que implementa o algoritmo PID . . . . . . . . . 19

3

Page 5: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Lista de Tabelas

4.1 Utilizacao do porto digital de saıda da placa PCI-20428W . . 144.2 Utilizacao do porto digital de entrada da placa PCI-20428W . 14

7.1 Tempos e prioridades das tarefas periodicas de controlo . . . . 207.2 Detalhes dos eventos do temporizador para a tarefa proc pwm 217.3 Detalhes dos eventos do temporizador para a tarefa proc pid . 22

Page 6: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

Capıtulo 1

Introducao do Sistema

Este projecto consiste no desenho e implementacao do controlo de umsistema de pendulo invertido. A figura 1.1 apresenta um diagrama de blocosdo sistema completo de malha fechada. O bloco principal e o computador,equipado com uma placa de aquisicao de dados (I/O) PCI-20428W da Intel-ligent Instrumentation.O estado θ do sistema, correspondente com o angulo do pendulo e obtidodesde um encoder incremental montado sobre o carrinho movel. Este si-nal e enviado ao computador que, utilizando um algoritmo de controlo PID,gera uma saıda de referencia utilizada como duty cycle do controlador PWMque regula o torque do motor. A implementacao do controlo e realizada porsoftware sob o sistema operativo de tempo real QNX Neutrino 6.2.1 (RTOS).

Figura 1.1: Sistema completo de malha fechada

O modelo dinamico do sistema corresponde com o modelo nao linear do

Introducao do Sistema 5

Page 7: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

pendulo invertido, que considera como entrada a forca do carrinho e o angulodo pendulo, e como saıda o deslocamento do carrinho.

Figura 1.2: Modelo dinamico: diagrama de forcas

Figura 1.3: Estados de equilıbrio do pendulo invertido: a)ponto de equilıbrio- b)barra em queda - c)barra em repouso

Introducao do Sistema 6

Page 8: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

Capıtulo 2

Sistema mecanico

A construcao do pendulo invertido teve por base o esqueleto de umaimpressora A3. Da impressora original foram aproveitados a base metalica,um veio por onde o carreto da impressora deslizava e o sistema de fio eroldanas que a era usado para mover o carrinho.Para realizar o controlo do pendulo uma parte movel efectua o movimentosegundo o eixo horizontal. Nesse bloco movel foi colocado um veio giratorioao qual, num dos extremos e fixo o pendulo e ao outro esta acoplado o encoderque permitira medir a posicao angular do pendulo. Este bloco pode ser vistona figura 2.1.

Figura 2.1: Fotografia do bloco movel do pendulo

Sistema mecanico 7

Page 9: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

Um outro elemento importante do hardware e a ligacao do motor com obloco movel. O motor realiza a sua accao de traccao atraves de um fio quegira solidario com o motor e por estar ligado ao bloco movel atraves de umsistema de roldanas faz com que este tenha um movimento de translacao. Omotor utilizado e um motor DC de 24V com saıda redutora de 18x. Paraque o sistema possuısse dinamica suficiente para controlar o pendulo foi ne-cessario introduzir no acoplamento ao motor um elemento multiplicador develocidade.Esse elemento pode ser visto na figura 2.2. Este elemento, ao aumentar oraio do veio do motor ao qual esta ligado o fio responsavel pela traccao dobloco movel gera um aumento do passo, ou seja, uma volta do motor passaagora a corresponder a uma maior distancia percorrida pelo carrinho.

Figura 2.2: Sistema de acoplamento motor/bloco movel

A vista total do sistema, bem como as suas dimensoes pode ser encontradanas figuras 2.3 e 2.4.

Sistema mecanico 8

Page 10: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

Figura 2.3: Vista superior e vista frontal do hardware

Figura 2.4: Vista lateral esquerda e direita do hardware

Sistema mecanico 9

Page 11: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

Capıtulo 3

Electronica de interface

3.1 Controlo de velocidade do motor

A velocidade do motor e controlada em PWM utilizando uma ponte Hintegrada: o L6204. Este integrado utiliza transıstores MOSFET e ja trazos dıodos de free-wheeling, como tambem a logica que evita a necessidade deutilizar um tempo morto nas linhas de comutacao da ponte.

Para isolar a parte de potencia do controlo recorreu-se a opto-acopladoresrapidos: 6N136. Os sinais a serem isolados sao os de comando da ponte H,gerados pelo PC, e os sinais do encoder.A figura 3.1 representa uma interface generica entre os sinais da placa deaquisicao de dados (In) e os sinais de controlo da ponte H (Out). Os sinaisdevem ser compatıveis com as especificacoes do L6204, ou seja, VIHmin=2Ve VILmax=0.8V.

Figura 3.1: Isolamento entre a parte de potencia e controlo

Alem dos sinais de comando e alimentacao e necessario incluir uma pe-quena montagem para gerar as tensoes superiores as de alimentacao para

Electronica de interface 10

Page 12: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

o integrado ser capaz de disparar os dois MOSFET cujo dreno liga a ali-mentacao.

Na figura 3.2 apresenta-se o diagrama de controlo do motor, onde saovisualizadas as linhas ENABLE, IN1 eIN2 que serao utilizadas pela interfacecom PC.

Figura 3.2: Drive do motor DC

3.2 Medicao de posicao do pendulo

Para a medicao de posicao do pendulo utilizou-se um encoder de 2000impulsos por revolucao. Para contar os impulsos recebidos do encoder, asolucao de eleicao foi o integrado HCTL2020.Consiste de um descodificador de quadratura 4x, um contador binario up/downde 16 bits e um barramento de 8 bits. A interface para a leitura e extrema-mente simples: e como ler uma posicao de memoria. Este integrado necessitadum clock externo.Para evitar problemas de ruıdo foram isoladas as saıdas do encoder atraves

Electronica de interface 11

Page 13: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

de um opto-acoplador. Na figura 3.3 apresenta-se o diagrama da interfacepara o encoder.

Figura 3.3: Electronica de interface entre o encoder e o HCTL-2020

Electronica de interface 12

Page 14: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

Capıtulo 4

Interface com PC

Para lidar com o controlo do pendulo invertido utiliza-se um PC que serao responsavel por calcular a posicao do carrinho segundo os valores de lei-tura da posicao do pendulo. Para a interface entre o mundo ”real”(encodere motor) e o PC utilizou-se a placa de aquisicao de dados Intelligent Ins-trumentation PCI-20428W [2]. Esta placa prove 16 bits de I/O digital TTLcompatıvel, separados em dois portos de 8 bits: um de entrada e outro desaıda.

O Port-0 e um porto de entrada de 8 canais e o Port-1 e um porto desaıda de 8 canais. Os dados aplicados ao Port-0 nao sao retidos pela placa,pelo que a leitura deste porto retorna os dados que estiverem aplicados nessemomento nas entradas. Os dados de saıda sao retidos pela placa PCI-20428Wno Port-1 durante a escrita.Esta placa possui um painel de terminadores PCI-20429T que permite li-gar todas as linhas de I/O com os sinais externos ou dispositivos como seapresenta na figura 4.1.

O porto digital de saıda e utilizado para controlar a ponte H e as linhasde controlo do contador presente no HCTL-2020 que descodifica a posicaodo pendulo obtida do encoder. Na tabela 4 e descrita a utilizacao de cadalinha do Port-0.

O porto digital de entrada e utilizado na ıntegra pelo barramento de dadosdo HCTL-2020 para realizar a leitura do contador que contem a posicao dopendulo.Tal como foi referido na seccao 3.2, o contador do detector de quadratura ede 16 bits e o barramento possui 8 bits, o que implica que a leitura e realizadaem duas etapas. A seleccao do byte baixo ou alto a ler e realizada pela linhade controlo SEL.

Na tabela 4 e descrita a utilizacao de cada linha do Port-1.

Interface com PC 13

Page 15: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

Utilizacao das linhas do Port-0 (Digital Output)

D0 OE Habilita os buffers tri-state de saıda do HCTL-2020D1 SEL Controla que byte do contador e disponibilizado na

saıda do buffer no HCTL-2020D2 IN1 Entrada da ponte HD3 IN2 Entrada da ponte HD4 ENABLE Habilita a ponte HD5 – Nao utilizadoD6 – Nao utilizadoD7 – Nao utilizado

Tabela 4.1: Utilizacao do porto digital de saıda da placa PCI-20428W

Utilizacao das linhas do Port-1 (Digital Input)

D0 HCTL-2020 D0

D1 HCTL-2020 D1

D2 HCTL-2020 D2

D3 HCTL-2020 D3

D4 HCTL-2020 D4

D5 HCTL-2020 D5

D6 HCTL-2020 D6

D7 HCTL-2020 D7

Tabela 4.2: Utilizacao do porto digital de entrada da placa PCI-20428W

Interface com PC 14

Page 16: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

Figura 4.1: Instalacao do painel de terminadores na placa PCI-20428W

Figura 4.2: Detalhe do painel de terminadores PCI-20429T

Interface com PC 15

Page 17: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

Capıtulo 5

Software de interface

Para o desenvolvimento do sistema de controlo foi prevista a imple-mentacao em etapas progressivas de modulos de software, de forma que cadamodulo deveria servir de suporte para o desenvolvimento do modulo seguinte.Os componentes de software foram desenvolvidos nas linguagens de pro-gramacao C e C++.

Todo o codigo fonte deste trabalho encontra-se devidamente documen-tado, tendo sido utilizada a ferramenta Doxygen [3], e o resultado encontra-se disponıvel nos formatos HTML e PDF.

5.1 Driver

Para a manipulacao da placa de aquisicao de dados Intelligent Instrumen-tation PCI-20428W foi aplicado um desenvolvimento orientado a objectos,tendo sido desenhada uma classe especıfica que forma o core do driver.

Nesta etapa foram necessarios estudos detalhados sobre a interface PCI-20428W utilizada e sobre as formas de acesso ao sistema de entrada e saıdautilizando o sistema operativo QNX, devido ao facto do acesso ao hardwareser protegido e privilegiado, a fim de assegurar uma maior proteccao do sis-tema, com controlo de acesso ao usuario; o que gera a necessidade de se usarfuncoes especificas do SO para aceder aos enderecos de memoria utilizadospela placa de interface no sistema.

Esta classe implementa todas as funcoes disponıveis no tratamento dainterface digital da placa de aquisicao de dados, sendo tambem possıvel noseu futuro estender as suas funcionalidades para gerir a interface analogica.

Software de interface 16

Page 18: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

P C I_ 2 0 4 2 8 w

- m IO L e n g th : si ze _ t- m IO A d d re ss: u i n t6 4 _ t- m b B o a rd In i t i a l i ze d : b o o l- m n O u tp u tL a tch : u i n t8 _ t- m re g B o a rd : u i n tp tr_ t- m re g S ta tu s: u i n tp tr_ t- m re g D i g i ta l P o rt: u i n tp tr_ t- m re g D M A S ta rt: u i n tp tr_ t- m re g G ra l P u rp o se C o u n te r: u i n tp tr_ t- m re g A O R a te G e n e ra to rC o u n t: u i n tp tr_ t- m re g A IR a te G e n e ra to rC o u n t: u i n tp tr_ t- m re g 8 2 5 4 C o u n te rC trl : u i n tp tr_ t- m re g C o n fi g u ra t i o n : u i n tp tr_ t- m re g A IC h a n n e l : u i n tp tr_ t- m re g A IL S B : u i n tp tr_ t- m re g A IM S B : u i n tp tr_ t- m re g A O _ A _ L S B : u i n tp tr_ t- m re g A O _ A _ M S B : u i n tp tr_ t- m re g A O _ B _ L S B : u i n tp tr_ t- m re g A O _ B _ M S B : u i n tp tr_ t

+ P C I_ 2 0 4 2 8 w ()+ P C I_ 2 0 4 2 8 w (IO B a se A d d re ss :_ U i n t8 t)+ h w In i t() : b o o l+ sl o tIn q u i re () : C B o a rd In fo+ d i g i ta l IO R e a d () : u i n t8 _ t+ d i g i ta l O L a tch () : u i n t8 _ t+ d i g i ta l IO R e a d B i t(p o rtB i t :_ U i n t8 t) : b o o l+ d i g i ta l IO W ri te (d a ta :_ U i n t8 t) : vo i d+ d i g i ta l IO W ri te B i t(p o rtB i t :_ U i n t8 t, d a ta :b o o l ) : vo i d- i n i tR e g i ste rs() : vo i d

C B o a r d In fo

+ p re se n t: b o o l+ i d : u i n t8 _ t+ a d d re ss: u i n t6 4 _ t

Figura 5.1: Classe PCI 20428w para gerir a placa de aquisicao de dados. Aclasse CBoardInfo retorna informacao sobre a mesma.

De facto, no codigo fonte da classe ja sao iniciados os offsets dos registosda parte analogica e podera observar algumas indicacoes sobre os metodosrestantes para a implementacao analogica.

Software de interface 17

Page 19: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

Capıtulo 6

Software de controlo

O ponto de equilıbrio desejado do sistema ou Set-Point corresponde aθ = 0. Neste estado, o pendulo esta equilibrado. Dado que a resposta dese-jada do sistema e 0º, qualquer angulo medido diferente de zero e o erro, ouY (t) = E(t).

Na implementacao do controlador PID, desenvolvido na classe CPid quee apresentada na figura 6.1, sao estes os 3 termos em que sao baseados oscalculos do erro:

� Termo Proporcional: KcE(t), onde Kc e a constante proporcional

� Termo Integral: Ti∫ t0 E(t)dt, onde Ti e a constante integral

� Termo Derivativo: TddE(t)dt

, onde Td e a constante derivativa

C(t) = KcE(t) + Ti∫ t

0E(t)dt + Td

dE(t)

dt

Neste sistema, o sinal de saıda do controlador, C(t), determina a direccaoque o motor toma. A magnitude de C(t) corresponde directamente com oduty cycle do PWM, determinando a velocidade que o motor desenvolvera.

Software de controlo 18

Page 20: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

C P i d

- m n S e tP o i n t: d o u b l e- m n P ro p o rt i o n : d o u b l e- m n In te g ra l : d o u b l e- m n D e ri va t i ve : d o u b l e- m n D t: d o u b l e- m n L a stE rro r: d o u b l e- m n P re vE rro r: d o u b l e- m n S u m E rro r: d o u b l e- m L o ck: p th re a d _ m u te x_ t

+ C P i d ()+ C a l cu l a te (fe e d b a ck :d o u b l e ) : d o u b l e+ S e tP o i n t(n V a l u e :d o u b l e ) : vo i d+ S e tP o i n t() : d o u b l e+ P ro p o rt i o n (n V a l u e :d o u b l e ) : vo i d+ In te g ra l (n V a l u e :d o u b l e ) : vo i d+ D e ri va t i ve (n V a l u e :d o u b l e ) : vo i d+ D t(n V a l u e :d o u b l e ) : vo i d+ D t() : d o u b l e

Figura 6.1: Classe CPid que implementa o algoritmo PID

Software de controlo 19

Page 21: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

Capıtulo 7

Analise de tempos

Para conhecer, analisar e predizer os comportamentos temporais destesistema em tempo real, adoptou-se uma coleccao de metodos quantitativosconhecidos como rate monotonic analysis (RMA)[5].

O termo rate monotonic (RM) definido por Liu e Layland [4] vem dometodo de atribuir as prioridades a um conjunto de tarefas em que as prio-ridades sao estabelecidas como uma funcao da cadencia da tarefa periodica:uma cadencia superior implica uma prioridade superior.

Para realizar a analise de tempos, a aplicacao compilada com a directiva#define DEBUG gera ficheiros com os registos de tempos obtidos na execucaodos processos lancados pelo respectivo temporizador. Neste caso, foram re-gistados os tempos de 25000 eventos para cada uma das tarefas periodicas.

Na tabela 7 sao resumidas as caracterısticas das duas tarefas periodicasque sao planeadas, apresentando os piores casos observados em relacao aostempos de execucao. A polıtica de planeamento do QNX seleccionada nestaaplicacao corresponde ao algoritmo FIFO.

Tarefa Tempo Execucao Perıodo Deadline Prioridade

proc pwm 6µS 20µS 20µS 63proc pid 35µS 500µS 500µS 62

Tabela 7.1: Tempos e prioridades das tarefas periodicas de controlo

O Deadline coincide com o final do perıodo da tarefa, isto implica que aexecucao da tarefa deve estar concluıda antes ou, no pior dos casos, coincidircom o final do perıodo.

Analise de tempos 20

Page 22: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

Este requerimento de tempo deve ser obrigatoriamente respeitado.

O Deadline foi utilizado como um guia na atribuicao de prioridades paraas respostas: o mais curto deadline, possui a maior das prioridades, de acordocom o algoritmo RM.

A polıtica de planeamento FIFO aplicada nesta aplicacao revelou ser uminconveniente quando se tentou utilizar o mais baixo perıodo possıvel paraum temporizador em QNX, que corresponde aos 10µS [7].

Isto porque este valor situa-se praticamente no limite do tempo de execucaonecessario pela tarefa e o seu deadline, qualquer atraso provoca que a lista deprocessos atinga rapidamente o seu limite com os processos ainda pendentes,ocasionando um bloqueio geral do sistema operativo. Isto obrigou a relaxaro perıodo da tarefa de PWM, passando a situar-se nos 20µS.

Devem ser cuidadosamente estudadas as utilizacoes de listas FIFO, oueventualmente eliminar o seu uso, ja que pode exacerbar a inversao de pri-oridades, que acontece quando tarefas com alta prioridade de resposta saoforcadas a aguardar por tarefas com menor prioridade de resposta que estaoa frente da lista.

7.1 Tarefa proc pwm

O temporizador que dispara eventos e que ao serem recebidos pelo sis-tema sao respondidos com a execucao da tarefa proc pwm possui as seguintescaracterısticas:

Tipo de Evento Temporizado Uma sequencia de eventos que re-sultam da passagem do tempo

Padrao deChegada

Periodico, 20µs Os eventos chegam a intervalosconstantes definidos pelo perıodo

Requerimento deTempos

Hard[0, 20µs] A resposta deve ser feita dentroda janela de tempo especificada

Tabela 7.2: Detalhes dos eventos do temporizador para a tarefa proc pwm

Analise de tempos 21

Page 23: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

7.2 Tarefa proc pid

O temporizador que dispara eventos e que ao serem recebidos pelo sis-tema sao respondidos com a execucao da tarefa proc pid possui as seguintescaracterısticas:

Tipo de Evento Temporizado Uma sequencia de eventos que re-sultam da passagem do tempo

Padrao deChegada

Periodico, 500µs Os eventos chegam a intervalosconstantes definidos pelo perıodo

Requerimento deTempos

Hard[0, 500µs] A resposta deve ser feita dentroda janela de tempo especificada

Tabela 7.3: Detalhes dos eventos do temporizador para a tarefa proc pid

7.3 Tempos obtidos

Dos ficheiros de log que registaram os tempos de execucao das tarefas,foram extraıdos os valores de referencia que permitem praticar uma analisedo comportamento temporal do sistema em tempo real.

Para o processo proc pwm temos:

� Tempo do perıodo gerado pelo temporizador QNX:Maximo: 29µSMedia: 20µSMınimo: 15µS

� Jitter relativo: 10µS

� Tempo de execucao:Maximo: 6.00µSMedia: 0.33µSMınimo: 0.26µS

Para o processo proc pid temos:

� Tempo do perıodo gerado pelo temporizador QNX:Maximo: 507µSMedia: 500µSMınimo: 488µS

Analise de tempos 22

Page 24: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

� Jitter relativo: 8µS

� Tempo de execucao:Maximo: 35µSMedia: 20µSMınimo: 20µS

7.4 Validacao do Planeamento

As metodologias aplicadas no desenho do sistema de controlo nao garan-tem os requerimentos de tempo, portanto torna-se necessario a utilizacao deuma tecnica mais precisa que nos permita garantir o sucesso.Esta tecnica consiste em utilizar o conceito de utilizacao para o conjuntocompleto de tarefas do sistema.

Utiliza-se o teorema de Liu e Layland para verificar se a utilizacao totaldas tarefas periodicas supera o limite de planeamento.

Utotal =n∑

i=1

Ci

Ti

≤ U(n) = n(21n − 1)

Esta tecnica prove um teste rapido e suficiente que pode ser utilizadopara assegurar o planeamento de uma sequencia de eventos.

IDEvento

(e)

Perıodo deChegada

(T)

ID Accao Tempo deExecucao

(C)

Prioridade(P)

Deadline(D)

e1 20µs proc pwm 6µs 63 20µse2 500µs proc pid 35µs 62 500µs

Passo 1 Calcular a utilizacao total para todos os eventos.

Utotal =n∑

i=1

Ci

Ti

Utotal =6

20+

35

500= 0.37

Passo 2 Calcular o limite de utilizacao.

U(n) = n(21n − 1)

Analise de tempos 23

Page 25: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

U(2) = 2(212 − 1) = 0.828

Passo 3 Comparar a utilizacao efectiva total com o limite de utilizacao.

Utotal ≤ U(n)

0.37 ≤ 0.828

Dado que esta inequacao e verdadeira, todos os eventos dentro deste con-junto cumpriram os seus deadlines, e portanto satisfazem os requerimentostemporais.

A analise anterior so tem em conta as duas unicas tarefas do sistema decontrolo do pendulo a serem executadas, no entanto e natural que o sistemaoperativo execute outras tarefas nao relacionadas directamente com o sis-tema em analise.

Uma forma de garantir que o sistema continue a satisfazer os requeri-mentos temporais nestes casos e aplicar a tecnica anterior, utilizando para ocalculo do limite de utilizacao um numero infinito de tarefas:

U(∞) =∞(21∞ − 1) = 0.693

0.37 ≤ 0.693

Pode-se confirmar que neste cenario o sistema de controlo do penduloinvertido continuara a respeitar as restricoes temporais, tıpicas do generodos sistemas de tempo real.

7.5 Calibracao e Resultados

Apos terem sido concluıdas as tarefas de integracao do hardware e o desen-volvimento do software, procedeu-se ao ajuste dos parametros do algoritmoPID, nomeadamente as constantes Kc, Ti e Td. O ajuste foi realizado deforma empırica, verificando o comportamento dinamico do sistema ante asvariacoes destas constantes.O Set-Point do PID corresponde com a posicao que o encoder retorna quandoo pendulo se encontra em equilıbrio, como foi apresentado na figura 1.3-(a).

Analise de tempos 24

Page 26: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

Os resultados obtidos sao altamente satisfatorios: o sistema conseguemanter o pendulo em equilıbrio e o torna a recuperar ante pequenas per-turbacoes do seu estado, compensando o desequilıbrio com os deslocamentosrapidos do carrinho.Inicialmente existia a intencao que, uma vez o sistema ter estabilizado opendulo, conseguisse regressar ao meio do percurso do veio como posicao derepouso mas, devido a falta dum encoder no eixo horizontal que fornecesseinformacao sobre a posicao do carrinho, nao foi possıvel implementar estacaracterıstica.

Este sistema pode vir a ser utilizado num futuro para implementar e ana-lisar novos algoritmos e tecnicas de controlo para o pendulo invertido (ex.fazer o swing-up, melhorar a imunidade ante perturbacoes, etc...), permi-tindo concentrar o estudo nas particularidades do algoritmo e sua aplicacaonum ambiente de tempo real, tendo sido ja resolvidas as dificuldades daimplementacao electronica e do software de interface para a comunicacao econtrolo.

Analise de tempos 25

Page 27: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

Capıtulo 8

Conclusoes

Considero que o objectivo para o controlo do pendulo invertido foi atin-gido com sucesso. As tarefas de interligacao do hardware existente com aplaca de aquisicao de dados para medir a posicao atraves do encoder e con-trolar a velocidade do motor, o desenvolvimento do software que actua comodriver para a placa PCI-20428W e a implementacao dos algoritmos PID ePWM, foram conseguidas integralmente.Como aluno da licenciatura em Engenharia Informatica e Computadores, estetrabalho foi desafiante em varios aspectos, principalmente no que respeita aocontrolo do hardware e a interligacao da electronica existente com a placade aquisicao de dados, o que implica ter aquirido um domınio razoavel naarea dos circuitos digitais. Tambem foram adquiridos conhecimentos teoricosdurante este desenvolvimento na area de controlo e automacao industrial, no-meadamente na utilizacao de encoders, sistemas em malha fechada, controloPID, controlo de velocidade por PWM, etc.Finalmente, a possibilidade de conhecer os principais aspectos do desenvolvi-mento de software para sistemas em tempo real, como a analise da viabilidadedo projecto no cumprimento de restricoes de tempo, como assim tambem autilizacao e programacao de sistemas RTOS (Real-Time Operating Systems)como o caso do sistema operativo QNX Neutrino.

Quero agradecer expressamente a colaboracao nos esclarecimentos, o acom-panhamento e a orientacao dada ao longo deste trabalho pelo professor MarioJorge Rodrigues de Sousa, que permitiu levar a bom termo a sua concre-tizacao.Uma palavra de agradecimento tambem para o professor Armando JorgeSousa, que forneceu o hardware do pendulo invertido como tambem a docu-mentacao da placa de aquisicao de dados, e demonstrando disponibilidadepara prestar os esclarecimentos necessarios.

Conclusoes 26

Page 28: Sistemas em Tempo Real Controlo de pˆendulo invertidopaginas.fe.up.pt/~ei02009/projectos/Pendulo.pdf · Para a medida da posi¸c˜ao do pˆendulo recorreu-se a um encoder incremen-tal

Controlo de pendulo invertido

Bibliografia

[1] Jose R.T. Soares, Ricardo J.P. Castro: Controlo de pendulo invertido,FEUP (2005) 1

[2] Intelligent Instrumentation: PCI-20428W-1A,-2A,-3A - MultifunctionBoards http://www.instrument.com 13

[3] Dimitri van Heesch: Doxygen Home Page,http://www.stack.nl/dimitri/doxygen/ 16

[4] Jane W. S. Liu: Real-time Systems, Prentice Hall (2000) 20

[5] Mark H. Klein: A practitioner’s Handbook for Real-Time Analysis:Guide to Rate Monotonic Analysis for Real-Time Systems, Kluwer Aca-demic (1993) 20

[6] Leo Motus, Michael G. Rodd: Timing Analysis of Real-Time Software,Pergamon (1994)

[7] Neutrino Programmer’s Guide, QNX Software Systems 21

[8] Neutrino Library Reference, QNX Software Systems

BIBLIOGRAFIA 27