Using MATLAB, obtain the unit-step response curve for the unity-feedback control system whose openloop transfer function is
Using MATLAB, obtain also the rise time, peak time, maximum overshoot, and settling time in the unit-step response curve.
Passo 1
O enunciado dá a função de malha aberta
e pede, usando MATLAB, a curva de resposta ao degrau unitário do sistema em realimentação unitária e também os tempos/índices de desempenho: tempo de subida, tempo até o pico, sobressinal máximo e tempo de acomodação. Informações relevantes que já temos do enunciado:
- A malha é de realimentação unitária (feedback de ganho
). - A função em malha aberta é
. - Queremos a resposta ao degrau unitário e os valores numéricos de
, , , (os termos estarão, depois, explicados).
Passo 2
Determinar a função de transferência em malha fechada (unidade de feedback) e escrever o numerador/denominador explicitamente.
- Em realimentação unitária, a função de transferência em malha fechada é
- Substituindo
:
- Expandindo o denominador:
. Assim o denominador completo fica
Portanto a função em malha fechada é
Passo 3
Como obter a curva de resposta ao degrau e os índices no MATLAB — comandos essenciais e o que eles fazem.
- Abra o MATLAB e execute as linhas abaixo (estas linhas criam o sistema, plotam a resposta ao degrau e obtêm os índices):
s = tf('s');
G = 10/( s*(s+2)*(s+4) );
T = feedback(G,1); % cria a função de transferência em malha fechada
figure; step(T); grid on; % plota a resposta ao degrau unitario
info = stepinfo(T); % calcula RiseTime, SettlingTime, Overshoot, PeakTime
info.RiseTime, info.PeakTime, info.Overshoot, info.SettlingTime
- Explicação breve dos comandos:
tf('s')cria o operadorpara formar a TF. feedback(G,1)computa(realimentação unitária). step(T)plota a resposta ao degrau unitário.stepinfo(T)retorna uma estrutura comRiseTime,PeakTime,Overshoot(em porcentagem) eSettlingTime(por padrão com tolerância de).
Passo 4
Interpretando e calculando os polos do sistema fechado (para entender a dinâmica e permitir estimativas analíticas).
- Os polos são raízes do denominador
. - Usando MATLAB,
pole(T)fornece as raízes numericamente. Vou apresentar a decomposição e os valores aproximados obtidos (é o mesmo que o MATLAB dará):- Um polo real:
. - Um par complexo conjugado:
.
- Um polo real:
- Esses polos complexos dominantes caracterizam o comportamento oscilatório amortecido (que determina
, , etc.). Vamos analisar esse par para obter parâmetros clássicos.
Passo 5
Do par complexo, calcular frequência natural e razão de amortecimento (como ensinar para usar em prova).
- Para um par complexo
, definimos: -
= frequência natural não amortecida (módulo do pólo complexo), -
= razão de amortecimento.
-
- Dados os polos
, calculamos
- A frequência amortecida é
. Calculando:
(Observe que
coincide com a parte imaginária do polo, como deve ser.)
Passo 6
Usar as fórmulas padrão (segunda-ordem aproximada) para estimar
,
,
e
— e explicar cada fórmula.
-
Essas fórmulas são as que costumam aparecer em provas. Mesmo que o sistema seja de 3ª ordem, o par complexo dominante permite usar a aproximação de segunda ordem com boa precisão.
-
Fórmulas:
- Tempo até o pico:
- Sobressinal máximo (percentual):
- Tempo de acomodação (2%):
(usa o critério de ) - Tempo de subida aproximado (10%–90%) para sistema subamortecido:
- Tempo até o pico:
-
Agora calculamos numéricamente usando os valores de
, , obtidos: - Tempo até o pico:
- Sobressinal máximo:
- Tempo de acomodação (2%):
- Tempo de subida (10%–90%):
Calculandorad, então -
Observação: os valores acima devem coincidir (ou ficar muito próximos) dos valores que o MATLAB retorna em
stepinfo(T)(que usa definições padronizadas: RiseTime é geralmente 10%–90% quando há overshoot, SettlingTime padrão é 2%).
Passo 7
Confirmando com MATLAB e como apresentar o gráfico final.
- Execute em MATLAB:
info = stepinfo(T);
pole(T)
info.RiseTime
info.PeakTime
info.Overshoot
info.SettlingTime
pole(T)dará os polos aproximados mencionados.infotrará valores numéricos (note queinfo.Overshootestá em percentual). O gráfico produzido porstep(T)mostra visualmente o tempo de subida, o pico (com o tempo correspondente) e a acomodação ao redor do valor final. - Se quiser marcar os pontos no gráfico (por exemplo o pico), pode usar:
[y,t] = step(T);
[maxy, idx] = max(y);
tp = t(idx);
mp = (maxy-1)*100;
Assim você obtém o tempo do pico e o overshoot diretamente da simulação.
Passo 8
Resumo dos valores numéricos (valores estimados via aproximação de segunda ordem e confirmáveis com
stepinfo(T) no MATLAB).- Valores aproximados obtidos:
- Tempo de subida
. - Tempo até o pico
. - Sobressinal máximo
. - Tempo de acomodação (2%)
.
- Tempo de subida