Aula de 28/10/2024. Reiniciando da aula passada (aula de 21/10/2024). Arquivo planta.mat disponÃvel.
>> diary aula_28Oct2024.txt>> load planta>> zpk(G) % Lembrando da planta 20 ------------------ (s+10) (s+4) (s+1) Continuous-time zero/pole/gain model.Sintonizando PID usando método de Ziegler-Nichols (teoria: ver: Sintonia de PIDs usando Ziegler Nichols).
Buscando o usando RL:
xxxxxxxxxx>> rlocus(G)
Percebemos que: . Testando valores:
xxxxxxxxxx>> Ku=38;>> ftmf_Ku=feedback(Ku*G,1);>> figure; step(ftmf_Ku)>> title('K_u = 38 (Step Response)')Para este ganho obtemos a seguinte resposta:

Aumentando um pouco o ganho:
xxxxxxxxxx>> Ku=38.5;>> ftmf_Ku=feedback(Ku*G,1);>> figure; step(ftmf_Ku)>> title('K_u = 38.5 (Step Response)')E agora obtemos a resposta:

Necessitamos identificar agora o perÃodo de oscilação, :
xxxxxxxxxx>> xlim([0 20]) % restringindo a um perÃodo um pouco menorNova figura:

xxxxxxxxxx>> T_ini % variável criada da exportação dos DataTips da figuraT_ini = 1×2 struct array with fields: Target Position DataIndex>> T_ini.Position % verificando os dadosans = 9.0507 1.8016ans = 0.48508 1.8037>> >> delta_T = 9.0507 - 0.48508delta_T = 8.5656>> Tu = delta_T/10Tu = 0.85656Consultando tabela de Ziegler-Nichols: Página Wiki e determinando valores para PID no formato "ISA":
xxxxxxxxxx>> Kp_ZH=0.6*KuKp_ZH = 23.1>> Ti_ZH=0.5*TuTi_ZH = 0.42828>> Td_ZH=0.125*TuTd_ZH = 0.10707Substituindo estes valores no diagrama de blocos sintonia_PID_exemplo.slx no Simulink vamos encontrar uma resposta (inicial) como:

Como previsto, o resultou bem elevado (). Falta realizar um "ajuste fino" deste PID modificando seus valores:
xxxxxxxxxx>> Kp_PID2 = 0.33*KuKp_PID2 = 12.705>> Td_PID2 = 0.33*TuTd_PID2 = 0.28267>> Ti_PID2 = Ti_ZHTi_PID2 = 0.42828>> Kp_PID2 = 0.20*KuKp_PID2 = 7.7>> Td_PID2 = 0.4; % provavelmente reduz %OS>> % Simulando ("play")>> % Salvando diagrama de blocos num arquivo .png:>> print ('-ssintonia_PID_exemplo', '-dpng', '-r150', 'sintonia_PID_exemplo.png')Acabamos ficando com o seguinte PID sintonizado:

Obtendo como resposta:

Resultando em:
Testando PID no formato paralelo, arquivo: sintonia_PID_paralelo.slx.
Recalculando parâmetros deste PID:
xxxxxxxxxx>> Ki_PID3 = 7.7/0.975Ki_PID3 = 7.8974>> Kd_PID3 = 7.7/0.1Kd_PID3 = 77>> >> Kp_PID3 = 0.2*KuKp_PID3 = 7.7>> Ki_PID3 = 0.4*Ku/TuKi_PID3 = 17.979>> Kd_PID3 = 0.066*Ku*TuKd_PID3 = 2.1765>> % Salavando PID (janela do Simulink) em arquivo .png>> print ('-ssintonia_PID_paralelo', '-dpng', '-r150', 'sintonia_PID_paralelo.png')Finalmente obtemos um PID no formato paralelo como:

Com a seguinte resposta ao degrau:

Resultando em:
Encerrando seção de trabalho deste dia:
xxxxxxxxxx>> save planta>> diary off>> quit🌊 Fernando Passold 📬 ,