Beruflich Dokumente
Kultur Dokumente
Lucena Germano Cinthia Gabriella Pereira Felipe Edgar Rivas Francisco Assis Jnior
O presente relatrio tem o objetivo de expor a resoluo da primeira lista de exerccios propostos na disciplina de Controle Preditivo. Foi usado o software Matlab para simulao. Ser discutida a forma de resoluo bem como os resultados obtidos.
a) Encontre Ns coeficientes da resposta ao degrau desse sistema de forma que se possa representa-lo por um modelo FSR (Finite Step Response). Escolha um perodo de amostragem adequado; b) Aplique uma entrada senoidal a esse sistema e ao modelo FSR obtido no item (a) e compare graficamente os resultados.
Soluo:
a) Aplicamos sada da funo de transferncia da planta G(s), um segurador de ordem zero com perodo de amostragem igual a 0.2s para obter o modelo discreto do sistema G(z). Em seguida aplicamos um degrau para obter Ns coeficientes da resposta ao degrau. Dessa forma obtemos Ns = 1001. Os coeficientes obtidos foram:
0.3361
0.2802 0.1879
0.2406 0.1877
0.2171 0.1876
0.2038 0.1876
b) Aplicando uma entrada senoidal ao sistema G(s) e ao modelo que obtivemos na questo acima, obtivemos os seguintes resultados:
Onde o sinal verde a senoide que foi aplicada. O sinal azul a resposta senoide da planta G(s) e o sinal vermelho a resposta senoide do modelo FSR. Questo 2. Considere uma planta representada pela seguinte funo de transferncia :
Implemente um controlador DMC sem restries para essa planta. Deixe sua implementao flexvel de forma a testar vrios valores diferentes de Ns, N, M e . Utilize perodo de amostragem de 0.2 segundos. Implemente uma trajetria de referncia para que o sistema siga. Soluo: Temos que a sada do controlador DMC .
Ento precisamos implementar uma trajetria R de referncia, obter a resposta livre F e obter K a partir da matriz G. A matriz G obtida a partir dos coeficientes da resposta ao degrau finita (FSR). Essa matriz possui M (horizonte de controle) linhas e N (horizonte de predio) colunas. G=calculateG(N, M, fsr) function
G = zeros(N, M); for i=1:M G(i:N, i) = fsr(1:N - i + 1); end end
O vetor R a trajetria de referncia, que na nossa implementao foi utilizado um degrau unitrio.
function R=generateR(N, lastY, setPointStep) R = setPointStep * ones(N, 1); end
Assim, temos que K a primeira linha fsr, rho, lambda, setPoint) . function U=dmcmpc(N, M, Ns, Gz, de end
% Inicializaes end function K=calculateK(G, rho, lambda) nump =% get(Gz, 'num'); nump quadrados Soluo por mnimos = nump{:}; denp =fullK = (G' * rho denp + lambda) \ (G' * rho); get(Gz, 'den'); * G = denp{:}; nnump = length(nump) - 1; ndenp % K apenas a primeira linha = length(denp) - 1; lastU K = fullK(1:1, 1:end); = 0; lastY end = 0; simulationSteps = 150; Uinteiro = zeros(simulationSteps,1); vectorDeltaU = zeros(Ns, 1); Finalmente,=calculamos da seguinte forma: vectorU zeros(ndenp, 1); vectorY = zeros(ndenp, 1); % G depende do modelo function deltaU=calculateDeltaU(K, R, F) G = calculateG(N, M, fsr); % Variao tima do sinal de controle % Otimizao pelo mtodo do gradiente deltaU = K * (R - F); K = calculateK(G, rho, lambda); end y = zeros(simulationSteps, 1);
for i=1:simulationSteps % Traa a trajetria de referncia R = generateR(N, lastY, setPoint(i)); % F depende do modelo F = calculateF(N, Ns, fsr, vectorDeltaU, lastY); % Otimizao pelo mtodo do gradiente deltaU = calculateDeltaU(K, R, F); % Atualiza o vetor de variaes passadas do sinal de controle vectorDeltaU = updateVectorDeltaU(vectorDeltaU, deltaU); % Obtm o sinal de controle a ser aplicado na planta U = lastU + deltaU; % Atualiza o sinal de controle atual lastU = U; vectorU = [lastU; vectorU(1:end - 1)]; % Calcula a sada atual lastY = calculateY(nump, denp, nnump, ndenp, vectorY, vectorU); vectorY = [lastY; vectorY(1:end - 1)]; end figure(1); plot(y); figure(2); plot(Uinteiro) end
Resultados:
Concluso Como exposto na resoluo da questo, foi obtido sucesso no controle da planta com o DMC. A implementao ficou flexvel para testar vrios parmetros diferentes, tendo em vista possveis limitaes de valores para alguns parmetros.