Muitos carros modernos são equipados com controlador de velocidade de cruzeiro que, ao se pressionar um botão, mantém a velocidade fixada. Desta maneira, o motorista pode guiar a uma velocidade econômica ou na velocidade máxima da estrada, sem necessidade de checar a todo instante o odômetro. Projete um controle realimentado sob a forma de diagrama de blocos para este sistema.
Passo 1
O enunciado pede que você projete um controle realimentado (diagrama de blocos) para um sistema de cruzeiro de carro que mantém a velocidade constante quando o motorista pressiona um botão.\n
Informações e elementos fornecidos/necessários (resumidos e explícitos):
Há uma referência de velocidade que queremos manter: r(t) (por exemplo, 100 km/h convertido para m/s).
A saída que deve ser mantida é a velocidade do veículo: y(t).
O controle gera um comando para o motor/acionador (esforço/força) que vou chamar de u(t).
Existem perturbações externas que mudam a velocidade (subida/descida, vento): vou representar por d(t).
Existe um sensor que mede a velocidade e fornece realimentação (pode haver ruído, atraso, mas inicialmente assumimos medição direta de y).\n
Nada mais foi dado (massas, coeficientes, etc.), então vamos modelar o veículo com parâmetros típicos e projetar um controlador que funcione conceitualmente; no final eu mostro como obter ganhos numéricos a partir de escolhas/objetivos de desempenho.
Passo 2
Modelagem física simples (passo essencial antes do diagrama). Vou usar um modelo de primeira ordem usual para velocidade longitudinal: massa m, arrasto viscoso b (representa resistência do ar aproximada linearmente em pequenas variações), força do motor u(t) e perturbação d(t) (força externa positiva sentido avanço). A equação de movimento é a segunda lei de Newton aplicada à velocidade:
m\dot v(t) = -b\,v(t) + u(t) + d(t).
Onde:
v(t) é a velocidade do veículo (m/s) — esta será a saída y(t).
m é a massa equivalente do veículo (kg).
b é o coeficiente de amortecimento (N·s/m).
u(t) é a força gerada pelo motor/controlador (N).
d(t) é a força de perturbação (N).\n
Transformando para o domínio de Laplace (condições iniciais nulas) e obtendo a função de transferência do comando u para a velocidade y:
\mathcal{L}\{m\dot v\} = m s V(s),\quad \Rightarrow\quad (m s + b) V(s) = U(s) + D(s).
Portanto a planta (sem considerar medição) é
G(s) = \frac{V(s)}{U(s)} = \frac{1}{m s + b}.
A transferência da perturbação para a saída é a mesma:
G_d(s) = \frac{V(s)}{D(s)} = \frac{1}{m s + b}.
Passo 3
Desenho do diagrama de blocos (descrição clara e completa — isto é o que você deve desenhar no papel na prova).\n
Estrutura proposta (unidade de sinais):
Um somador recebe a referência r(t) com sinal positivo e a saída medida y(t) com sinal negativo; a saída do somador é o erro e(t)=r(t)-y(t).
O erro e(t) entra no controlador C(s) que gera o comando u(t).
O comando u(t) entra na planta G(s)=\dfrac{1}{m s + b} e produz a velocidade y(t).
A perturbação d(t) entra somada ao comando u(t) na entrada da planta (adição de forças externas).
A saída y(t) é retornada ao somador (feedback) por um sensor, que para o caso simples usamos ganho unitário na medida.\n
Representação textual do fluxo:
r(s)\longrightarrow\oplus\longrightarrow e(s)\longrightarrow C(s)\longrightarrow u(s)\xrightarrow{+\,d(s)}\text{Plant }G(s)\longrightarrow y(s)\xrightarrow{\text{(sensor)}}\longrightarrow \text{(soma com }r)
Onde o símbolo \oplus indica o somador com + em r e - em y.\n
Observação: se houver ruído de medição ou dinâmica do atuador, adicionamos blocos de sensor H(s) e atuador A(s); por enquanto mantemos sensor unitário e assumimos atuação instantânea.
Passo 4
Escolha do tipo de controlador e justificativa didática.\n
Objetivos típicos de um cruzeiro: manter a velocidade de referência com pequeno erro em regime permanente diante de referências em degrau e perturbações constantes (subida). Para garantir erro nulo a uma referência em degrau e a uma perturbação constante precisamos de ação integral no loop.\n
Portanto um controlador PI é uma boa escolha prática simples:
C(s)=k_p + \frac{k_i}{s}.
Expliquei o porquê de cada termo:
k_p (proporcional): aumenta a rapidez da resposta e reduz o erro, age proporcionalmente ao erro. Muito k_p pode gerar overshoot/oscilação.
k_i/s (integral): acumula erro ao longo do tempo e força erro em regime permanente a zero para entradas/perturbações constantes (elimina erro estacionário). Mas integral em excesso causa lentidão e possível instabilidade (windup).\n
Com esse C(s) e G(s) o ganho de laço aberto é
L(s)=C(s)G(s)=\frac{k_p + \dfrac{k_i}{s}}{m s + b} = \frac{k_p s + k_i}{s(m s + b)}.
A equação característica do sistema em malha fechada é
1 + L(s) = 0 \quad\Rightarrow\quad s(m s + b) + k_p s + k_i = 0,
que se rearranja para
m s^2 + (b + k_p) s + k_i = 0.
Isto é um polinômio quadrático; com ajuste adequado de k_p e k_i conseguimos pôr os polos desejados (controle de estabilidade e desempenho).
Passo 5
Análise do erro em regime permanente (por que integral elimina o erro):\n
Queremos ver o erro quando r(t) é um degrau de amplitude R e d(t) é uma perturbação constante. A função de sensibilidade é
S(s)=\frac{1}{1+L(s)}.
A saída em função da referência e da perturbação é
Para uma referência degrau R(s)=R/s e com integral no controlador, o ganho de laço em s\to 0 é infinito (L(s)\to\infty) porque o termo \dfrac{k_i}{s} domina, então S(0)=0 e a fração \dfrac{L}{1+L}\to 1. Pelo Teorema do Valor Final, o erro em regime permanente para degrau vai a zero. De modo semelhante, uma perturbação constante D(s)=D_0/s é rejeitada em regime permanente (saída volta ao valor de referência) se houver ação integral, pois S(0)=0 implica ganho zero para o componente de baixa frequência da perturbação.\n
Resumo prático: integrar evita erro estacionário para entradas/perturbações contínuas — essencial para manter velocidade constante numa subida.
Passo 6
Método de sintonia simples (como obter k_p e k_i na prova sem muitas contas): projeto por colocação de polos equivalentes a um segundo-ordem desejado. Vamos igualar
m s^2 + (b + k_p) s + k_i = m\left(s^2 + 2\zeta\omega_n s + \omega_n^2\right).
Dessa igualdade obtemos fórmulas diretas:
k_p = 2 m \zeta \omega_n - b, \qquad k_i = m \omega_n^2.
Interprete:
\omega_n é a frequência natural desejada (controla velocidade das respostas).
\zeta é o fator de amortecimento desejado (tipicamente 0{,}5 a 0{,}9; \zeta\approx 0{,}7 é um compromisso comum entre velocidade e overshoot).\n
Exemplo numérico (para você ter um número a testar na prova/Simulação): escolha parâmetros típicos
m=1000\\ \text{kg},\qquad b=50\\ \text{N·s/m},
e requisitos: resposta razoavelmente rápida com \zeta=0{,}7 e \omega_n=1{,}5\\ \text{rad/s} (isso dá tempo de acomodação de ordem de alguns segundos). Calculamos:
Dica: teste no simulador ou ajuste fino na bancada; se o sistema oscilar, reduza k_p ou k_i; se ficar lento, aumente k_p ou \omega_n.
Passo 7
Aspectos práticos e melhorias que você deve mencionar na prova (curtos e claros):
Anti-windup: quando o atuador saturar (motor com limite de torque), o integrador deve ser limitado para evitar acumular erro excessivo.
Filtragem do sinal derivativo: não use derivativo direto se existir ruído, aqui nem usamos derivativo, mas se for PID, filtre o termo D.
Dinâmica do atuador/sensor: se houver atraso ou dinâmica, inclua blocos A(s) e H(s) no diagrama; pode ser necessário redesenhar ganhos.
Implementação digital: discretize C(s) (por exemplo, controlador PI discreto) se for implementado em ECU.\n
Essas observações mostram que você entende limitações reais e como ajustar o projeto.
Passo 8
Resumo final do diagrama de blocos (texto pronto para desenhar na prova) e controle proposto:\n
Blocos, da esquerda para direita: r(s)\to[\,+\,]\to e(s)\to C(s)\to u(s)\xrightarrow{+\\ d(s)}G(s)=\dfrac{1}{m s + b}\to y(s)\xrightarrow{\text{(sensor 1)}} retorna para o somador com sinal negativo.\n
Controller proposto: C(s)=k_p + \dfrac{k_i}{s} (PI). Exemplo de sintonia por colocação de polos: k_p = 2 m \zeta \omega_n - b,\; k_i = m \omega_n^2.\n
Diagrama de blocos: r(s)\longrightarrow\oplus\longrightarrow e(s)\longrightarrow C(s)\longrightarrow u(s)\xrightarrow{+\\ d(s)}G(s)=\dfrac{1}{m s + b}\longrightarrow y(s)\longrightarrow (feedback negativo para o somador).\n
Controlador proposto: C(s)=k_p+\dfrac{k_i}{s} (PI) com sintonia por colocação de polos:
k_p = 2 m \zeta \omega_n - b,\qquad k_i = m \omega_n^2.
Exemplo numérico (parâmetros típicos): para m=1000, b=50, \zeta=0{,}7, \omega_n=1{,}5: