projeto de um cruise control usando matlab

32
UNICEP – CENTRO UNIVERSITÁRIO CENTRAL PAULISTA Departamento de Engenharia Elétrica Projeto de um Cruise Control Gerson Roberto da Silva

Upload: gerson-r-da-silva

Post on 25-Jul-2015

252 views

Category:

Engineering


46 download

TRANSCRIPT

Page 1: Projeto de um Cruise Control usando MatLab

UNICEP – CENTRO UNIVERSITÁRIO CENTRAL PAULISTA

Departamento de Engenharia Elétrica

Projeto de um Cruise Control

Gerson Roberto da Silva

Page 2: Projeto de um Cruise Control usando MatLab

INDICE

1 – INTRODUÇÃO

1.1 – O Cruise

Control...................................................................................................3

1.2 - História do controle de

velocidade........................................................................4

1.3 - Adaptative Cruise

Control....................................................................................6

2 –

PROJETO.................................................................................................................7

2.1 – Sistema Cruise

Control.........................................................................................7

2.2 - Controle

Proporcional(P)......................................................................................8

2.3 – Controle Integral

(PI)..........................................................................................12

2.4 – Controle Derivativo (PD)...................................................................................

15

2.5 – Controle

PID........................................................................................................18

3 –

CONCLUSOES......................................................................................................24

2

Page 3: Projeto de um Cruise Control usando MatLab

1 – INTRODUÇÃO

1.1 – O Cruise Control.

O Cruise control (também conhecido como speed control ou autocruise) é um sistema

que mantém a velocidade de condução de um veículo previamente programada. Uma

vez atingida e memorizada a velocidade pretendida, pode-se retirar o pé do acelerador,

permitindo assim um maior conforto da condução em estrada ou em viagem. Nos

veículos com caixa de velocidades manual o regulador de velocidades não funciona na

primeira mudança engrenada. Apesar da sua grande comodidade e utilidade deve-se ter

atenção ao utilizar o Cruise Control em locais de tráfego denso ou em zonas

escarpadas, com muitas curvas ou zonas escorregadias. O sistema basicamente

funciona fazendo a comparação entre as velocidade do veículo e a programada de

forma a fazer a compensação entre as mesmas. Dotado ainda de um complexo sistema

computacional de segurança, o sistema torna-se inoperante quando o motorista

interage com algum comando do veículo tipo: embreagem, freio, acelerador etc.

Segundo Osman 2009, de uma forma geral, a velocidade de um carro comercial pode

ser descrita pela segunda lei de Newton (princípio fundamental da dinâmica). A força

inercial aplicada ao carro é igual ao somatório das forças: de resistência viscosa dos

componentes do sistema de transmissão ( F⃗ visc); de arrasto aerodinâmico (F⃗ aero); de

frenagem (F⃗freio); da componente gravitacional de inclinação (F⃗grav); e a força

exercida pelo motor às rodas tracionáveis através do sistema de transmissão ( F⃗ motor).

Assim, tem-se a seguinte equação geral:3

Page 4: Projeto de um Cruise Control usando MatLab

Equação 1

Onde M representa a massa total do veículo e v⃗a sua velocidade longitudinal. Na

Figura 1.1 é mostrado o diagrama de corpo livre referente a Equação 1.

Figura 1.1 - Diagrama de forças longitudinais que agem no plano inclinado em um carro

Para qualquer situação do veículo se deslocando pelo eixo longitudinal, as parcelasde forças da Equação 1 F⃗ visc , F⃗ aero e F⃗ freio serão sempre opostas ao movimento, portanto, possuem sinal negativo. Já as forças F⃗ grav e F⃗ motor podem inserir ou retirar energia cinética do carro, dependendo da inclinação do terreno e modo de operação do motor, respectivamente.

1.2 – História do controle de velocidade.

Há mais ou menos 50 anos, Ralph Teeter, inventor cego, construiu o primeiro

protótipo de controlador de velocidade, em Hagerstown, Indiana (Estados Unidos). A

Perfect Circle Corporation passou os 30 anos seguintes desenvolvendo, testando e

abrindo o mercado para controladores de velocidade.

1944 – Protótipo do primeiro controlador de velocidade, criado por Teeter, em casa.

4

Page 5: Projeto de um Cruise Control usando MatLab

1948 – É protocolada a primeira patente de piloto automático alimentado pelo vácuo

do motor.

1957 – Primeira patente de piloto automático eletro mecânico, Speedo Star.

1958 – As primeiras unidades foram produzidas pela Chrysler Corporation, primeiro

cliente.

1959 – Cadillac torna-se cliente. Chrysler incorpora trata automática ao conjunto.

1960 – Chevrolet entra para a lista de clientes. Seus revendedores instalam o cruise

control como opcional.

1961 – Lincoln é um novo cliente e a Mercury passa a instalar o piloto automático

como opcional. É criada uma divisão separada para fabricar e desenvolver pilotos

automáticos.

1962 – Oldsmobile vira cliente.

1963 – Dodge e Pontiac, novos consumidores. Perfect Circle é comprada pela Dana

Corporation.

1965 – Início da produção do modelo F para Cadillac.

1966 – Começo da produção do modelo J para Oldsmobile e América Mortors

Corporation.

1967 – Produção das primeiras unidades do modelo L para a Cadillac.

1969 – Produção do primeiro cruise control com comando na alavanca de seta e pisca-

pisca do farol.

1970 – Montogomery Ward torna-se o primeiro cliente no setor de peças de reposição

a trabalhar com piloto automático.

1974 – Patente do piloto eletrônico automático.

5

Page 6: Projeto de um Cruise Control usando MatLab

1975 – Segunda patente de piloto automático.

1977 – Início da produção do JR, em Laurinburg, na unidade da Carolina do Norte

(Estados Unidos).

1982 – É consolidada a Divisão de Laurinburg - Engenharia, Vendas, marketing e

Produção com novo nome – Precision Controls Division.

1989 – Alfa Romeo torna-se cliente.

1991 – Rostra Technologies adquire a Precision Controls Division, que passa a se

chamar Rostra Precision Controls.

1992 – Início da produção do 16 R.

1993 – Fabricação do Ultra Cruise.

1995 – Fabricação do Ultra Cruise II.

1.4 - Adaptative Cruise Control

Usando tecnologia empregada em aviões de combate, o Adaptative Cruise Control é

mais um importante recurso de segurança ativa desenvolvido pela Volvo para ajudar a

reduzir acidentes nas estradas. Ele ajuda o caminhão ou ônibus a manter distância em

relação ao veículo à sua frente.

O sistema usa um radar de última geração, interagindo com os freios, acelerador e com

a caixa de câmbio eletrônica I-Shift, da Volvo – nos veículos que possuem essa

transmissão. Toda vez que o caminhão ou ônibus aproximar-se demais do veículo à

sua frente, ele emitirá um alerta sonoro e luminoso, no painel de instrumentos,

alertando o motorista e, quando houver necessidade, o sistema atuará sobre os freios e

a aceleração para controlar o veículo e impedir acidentes.

Nas configurações, o motorista pode definir a margem de segurança, como por

exemplo, três segundos, e o sistema ACC controlará a distância atuando

6

Page 7: Projeto de um Cruise Control usando MatLab

automaticamente nos controles de aceleração e freios sempre que seu veículo estiver a

três segundos de tocar ou colidir com o outro, que estiver à sua frente.

2 - Projeto

2.1 - Sistema Cruise Control

O objetivo deste projeto é a simulação de um sistema automático de controle veicular

(Cruise Control) com auxílio do MatLab.

Serão analisadas três situações para o sistema.

Primeira: Utilizando apenas o controlador P

Segunda: Utilizando o controlador PI

Terceira: Utilizando o controlador PID

Para as três situações serão analisados o atendimento às especificações de desempenho

do sistema, para cada caso os gráficos de resposta ao degrau e lugar das raízes serão

plotados para análise dos parâmetros de desempenho e do ganho do sistema.

A função de transferência foi obtida por meio da transformada de Laplace da equação

diferencial do sistema em questão.

P(S)=V (S )

U (S)

= 1ms+b

⌈ m / sN

⌉ Equação 2

V = variável de saída ou velocidade

U = variável de entrada ou força motriz.

O diagrama de bloco com realimentação unitária é mostrado na Figura 2.1.

7

Page 8: Projeto de um Cruise Control usando MatLab

Figura 2.1 – Diagrama de blocos do controlador

Lembrando que a função de transferência de um controle PID é:

Equação 3

Parâmetros do sistema

Massa do veículo (m) = 1000 kg

Coeficiente de arrasto (b) = 50 N.s/m

Velocidade de referência (r) = 10 m/s

Especificações de desempenho do sistema

Sobressinal Máximo (SS%) < 10%

Erro em regime permanente < 2%

Tempo de subida < 5s

2.2 - Controle Proporcional (P).

A primeira coisa a fazer neste problema é encontrar uma função de transferência de

malha fechada para um controle proporcional (C = Kp).

Ao reduzir o diagrama de blocos apresentado anteriormente, a função de transferência

de malha fechada com um controlador proporcional torna-se:

8

Page 9: Projeto de um Cruise Control usando MatLab

T (S )=Y (S )

R(S )

=P(S)C(S)

1+P(S )C(S )

=K p

ms+b+K p

Equação 4

Sabemos que um controlador proporcional, KP, diminui o tempo de subida, o que é

desejável neste caso.

Por enquanto, usaremos Kp igual a 200 e uma velocidade de referência de 10 m / s.

Temos o seguinte script no MatLab:

m = 1000;b = 50;r = 10;

s = tf('s');P_cruise = 1/(m*s + b);

Kp = 150;C = pid(Kp);

T = feedback(C*P_cruise,1)

t = 0:0.1:20;step(r*T,t)axis([0 20 0 10])

T = 150 ------------ 1000 s + 200 Continuous-time transfer function.

9

Page 10: Projeto de um Cruise Control usando MatLab

Gráfico 1 – Controle Proporcional

A partir do Gráfico 1 é possível ver que o tempo de aceleração do controle está fora dos valores determinados pelo roteiro.

Rise Time = 11s

Sobre Sinal (overshoot) = 0%

Erro estacionário(ess) = 1,9%

10

Page 11: Projeto de um Cruise Control usando MatLab

Gráfico 2 – nos mostra o polo do sistema.

Com o Grafico 2 é possível vermos o polo do sistema que com este valor de Kp está em -0.2.

Para que conseguíssemos chegar a um valor considerável para Kp foram efetuados inúmeros teste com diversos valores, e assim foi possível chegar a um valor para Kp que ficou próximo ao valores desejados.

Kp = 400

Continuous-time transfer function.

>> m = 1000;

b = 50;

r = 10;

s = tf('s');

P_cruise = 1/(m*s + b);

Kp = 400;

C = pid(Kp);

11

Page 12: Projeto de um Cruise Control usando MatLab

T = feedback(C*P_cruise,1)

t = 0:0.1:20;

step(r*T,t)

axis([0 20 0 10])

T =

400

------------

1000 s + 450

Continuous-time transfer function.

Grafico 3 – Para Kp igual a 400.

Para este novo valor de Kp é possível ver que os seguintes valores:

Tempo de subida = 4.88s

Sobre sinal = 0%

Setting Time = 8.66s

12

Page 13: Projeto de um Cruise Control usando MatLab

Figura 4 – Nos mostra o valor do Polo -0.45 para Kp = 400.

Os valores de encontrados estão dentro dos valores de referência porem cabe ressaltar que acelerar 10m/s em 4.88 segundos é uma tarefa para veículos com grande potência.

2.3 – Controle Integral (PI).

A função de transferência em malha fechada com um controlador PI (C = Kp + Ki / s) é:

Equação 5

A adição de um controlador integral ao sistema elimina o erro de estado estacionário.

Mais uma vez devemos encontrar os valores de Kp e Ki para que possamos atender os

requisitos de nosso sistema.

Foram realizados inúmeros teste com diversos valores de Kp e Ki sendo que os dois

melhores valores encontrados foram:

Kp = 458.3

13

Page 14: Projeto de um Cruise Control usando MatLab

Ki = 20

Codigo digitado no MatLab:

>> m = 1000;

b = 50;

r = 10;

s = tf('s');

Gp = 1/(m*s + b);

Kp = 458.3;

Ki = 20;

C = pid(Kp,Ki);

Ts = feedback(C*Gp,1)

t = 0:0.1:100;

step(r*Ts,t)

axis([0 40 0 11])

Ts =

506 s + 14

---------------------

1000 s^2 + 556 s + 14

Continuous-time transfer function.

14

Page 15: Projeto de um Cruise Control usando MatLab

Figura 5 – Valores encontrado para o controlador PI.

A partir do gráfico acima encontramos os seguintes valores:

Tempo de subida = 4.99 s.

Sobre sinal = 0%.

Erro estacionário = 0%

Setting Time = 10.1s

15

Page 16: Projeto de um Cruise Control usando MatLab

Grafico 6 – Lugar das raízes do controle PI

O controle Pi possui dois polos:

P1 = -0.467

P2 = -0.428

O controle PI descrito atende os valores exigidos pelo sistema uma vez que com o

ganho Kp relativamente mais baixo e com o erro zerado com auxílio do ganho Ki,

temos um sistema com valores mais aceitáveis de serem obtidos em um sistema físico

real.

2.4 – Controle derivativo (PD).

Agora, vamos dar uma olhada em um controle PD. A partir da Tabela1 abaixo ,

podemos ver que o controlador derivativo (Kd) reduz tanto o sobre sinal quanto o

tempo de estabilização. A função de transferência em malha fechada do sistema com

um controlador PD é:

16

Page 17: Projeto de um Cruise Control usando MatLab

Tabela 1 – Característica de atuação de cada tipo de ganho.

Equação 6

Após algumas tentativas de se chegar a valores para o controle PD, encontramos os

seguintes valores para Kp e Kd:

Kp = 396;

Kd = 11;

Os comandos digitados no MatLab foram:

m = 1000;

b = 50;

r = 10;

s = tf('s');

P = 1/(m*s + b);

Kp = 396;

Kd = 11;

C = pid(Kp,0,Kd)

T = feedback(C*P,1)

t = 0:0.1:13;

step(T,t)

C = 4r

Kp + Kd * s

with Kp = 396, Kd = 11

Continuous-time PD controller in parallel form.

T =

11 s + 396

------------

1011 s + 446

Continuous-time transfer function.

17

Page 18: Projeto de um Cruise Control usando MatLab

>>

Gráfico 7 – Valores obtidos com o controlador PD.

O gráfico 7 acima nos mostra os valores encontrados com o controlador tipo PD, seus

dados são:

Rise Time = 4.99s

Setting Time = 8.88s

Overshoot = 0%

Tempo Total = 12s

E com o Gráfico 8 abaixo é possível ver o local das raízes que estão em:

Polo 1 = -36

Polo 2 = -0.485

18

Page 19: Projeto de um Cruise Control usando MatLab

Gráfico 8 – Local das raízes do controlador PD.

Com isso é possível concluirmos que com um controlador tipo PD também é possível

obter os valores exigidos pelo sistema de Cruise Control, obtivemos valares de

aceleração dentro dos padrões exigidos.

2.5 – Controle PID

Um controlador proporcional (Kp) tem o efeito de reduzir o tempo de subida e reduz,

mas nunca elimina o erro de estado estacionário. Um controle integral (Ki) tem o

efeito de eliminar o erro de estado estacionário para uma entrada constante ou de

passo, porem resulta em uma resposta transitória mais lenta. Ja um controle derivativo

(Kd) terá o efeito de aumentar a estabilidade do sistema, reduzindo o excesso, e

melhorando a resposta transiente.

19

Page 20: Projeto de um Cruise Control usando MatLab

A função de Transferencia de um controle PID pode ser vista na Equação 6 abaixo:

Equação 7

O MATLAB nos fornece ferramentas para escolher automaticamente ganhos do PID,

o que torna o processo de tentativa e erro um trabalho bem mais simple. Podemos

acessar o algoritmo de ajuste diretamente usando pidtune ou através de uma interface

agradável gráfica do usuário (GUI) usando pidtool.

O algoritmo de ajuste automatizado MATLAB escolhe os ganhos do PID para

equilibrar o desempenho (tempo de resposta, a largura de banda) e robustez (margens

de estabilidade). Por padrão, os projetos algorthm tem uma margem de fase de 60

graus.

Para podermos utilizar o Autotuning PID devemos digitar o seguinte comando logo

apos o script do controlador:

pidtool(P,'p')

Com isso os comandos digitados no MatLab foram:

m = 1000;b = 50;r = 10; s = tf('s');P = 1/(m*s + b);Kp = 1;Ki = 1;Kd = 1;C = pid(Kp,Ki,Kd)T = feedback(C*P,1);

t = 0:0.01:2;step(T,t) pidtool(P,'p')

C = 1 Kp + Ki * --- + Kd * s s

with Kp = 1, Ki = 1, Kd = 1

20

Page 21: Projeto de um Cruise Control usando MatLab

Continuous-time PID controller in parallel form.

>>E a seguinte janela de Autotuning é aberta

Figura 2.5 – Janela do AutoTuning do MatLab para controladores PID

Uma vez com o aplicativo aberto efetuamos diversos testes com diferentes valores

para Kp, Ki e Kd porem mesmo com o auto ajuste não foi possível encontrar valores

que se enquadraram perfeitamente no nosso script para Cruise Control. Sendo assim os

valores encontrados serviram como base para uma ajuste fino que foi mais uma vez

realizado por tentativa e erro.

Valores encontrados com o Auto ajuste de PID:

Kp = 368.0999

Ki = 37.3217

kd = 83.9827

O gráfico 9 abaixo nos mostra como ficou o sistema encontrado. Nele é possível ver

que os valores do sistema estão fora daqueles determinados no script do exercício, os

valores deste gráfico são:

Rise Time = 4.57

21

Page 22: Projeto de um Cruise Control usando MatLab

Overshott = 3,64

Gráfico 9 – Valores obtidos com o auto tuning do MatLab.

Com os dados de referência em mãos foi possível encontrar valores que ficaram bem

próximos aos exigidos pelo sistema e o Gráfico 10 nos mostra com ficaram os dados

após os devidos ajustes para os valores de Kp, Ki e Kd foram:

Kp = 444;

Ki = 22;

Kd = 8;

Portanto o script digitado no Matlab foi:

m = 1000;

b = 50;

r = 10;

22

Page 23: Projeto de um Cruise Control usando MatLab

s = tf('s');

P = 1/(m*s + b);

Kp = 444;

Ki = 22;

kd =8;

C = pid(Kp,Ki,Kd)

T = feedback(C*P,1);

t = 0:0.01:14;

step(T,t)

C =

1

Kp + Ki * --- + Kd * s

s

with Kp = 444, Ki = 22, Kd = 1

Continuous-time PID controller in parallel form.

23

Page 24: Projeto de um Cruise Control usando MatLab

Grafico 10 – Valores encontrados para o controlado PID apos ajustes manuais.

Assim sendo os valores a partir do Grafico 10 foram:

Rise Time = 4.97s

Seting Time = 8.9s

Overshoot = 0%

Erro (ess) = 0%

24

Page 25: Projeto de um Cruise Control usando MatLab

Grafico 11 – Polos do sistema PID.

OS polos encontrados foram:

P1 = -63.1

P2 = -0.0495

P3 = -0.0809

3 - CONCLUSOES

Foi possivel observar a atuação de todos os tipos de controle de sistemas e ficou

evidente que a utilização de um ou a junção de controladores depende de cada sistema

a ser controlado, no nosso exemplo vimos que apenas o controlado Kp não nos traz o

melhor ajuste do Cruise Control, porem vimos que a junção deste com um Ki ja nos

oferece uma melhor estabilidade do sistema. Assim como o controle Kd tambem

25

Page 26: Projeto de um Cruise Control usando MatLab

provou ser outra alternativa de controle ou seja, existema diversas possibilidades que

de certo modo são mais simples utilização que o controle completo PID.

Cabe lembrar que quando se está criando um controlador PID para um determinado

sistema, devemos seguir os passos abaixo para obter a resposta desejada.

Obter uma resposta em malha aberta e determinar o que precisa ser melhorado.

- Adicionar um controle proporcional para melhorar o tempo de subida.

- Adicionar um controle derivado para melhorar o sobre sinal.

- Adicionar um controle integral para eliminar o erro de estado estacionário.

- Ajustar cada um dos ganhos Kp, Ki e Kd até obter uma resposta global desejada.

Podemos sempre consultar a Tabela 1 para descobrir qual caraceristica de cada

controlador.

Por último, tenha em mente que não precisamos implementar todos os três

controladores (proporcionais, derivativo e integral) em um único sistema, se não for

necessário. Por exemplo, se um controlador PI nos dá uma resposta boa o suficiente

(como em nosso exemplo acima), então não precisamos implementar um controlador

derivado no sistema.

Manter o controlador o mais simples possivel ajuda a construir um sistema mais barato

e tão eficaz quanto o necessario.

Tabela 1 – Característica de atuação de cada tipo de ganho.

26