Olá a todos.
Estou a fazer a minha tese de mestrado e existem algumas fases em que tenho de programar(programação básica). Estou a utilizar o MATLAB(basicamente SIMULINK com um pouco de programação em C).
Duvida: existe uma variável(clk) que oscila entre 0 e 1 com um determinado periodo(onda quadrada), ou seja, de 0 passa para 1 depois passa para 0 e assim sucessivamente num determinado intervalo de tempo.
Eu queria que o algoritmo corresse apenas uma vez quando passa-se de 0->1 , em vez de estar sempre a correr..
O programa abaixo esta errado, ou seja, o algoritmo corre varias vezes quando o clk=0 e continua a corre varias vezes quando clk=1.
if clk==0;
%Inicio do P&O Algorithm
if deltaPa > 0
if Va_new > Va
Vref_new = Va_new + deltaV; % Aumenta Vref
else
Vref_new = Va_new - deltaV; % Diminui Vref
end
elseif deltaPa < 0
if Va_new > Va
Vref_new = Va_new - deltaV; % Diminui Vref
else
Vref_new = Va_new + deltaV; % Aumenta Vref
end
else
Vref_new = Va_new; % Não há alteração
end
end
if clk==1;
%Inicio do P&O Algorithm
if deltaPa > 0
if Va_new > Va
Vref_new = Va_new + deltaV; % Aumenta Vref
else
Vref_new = Va_new - deltaV; % Diminui Vref
end
elseif deltaPa < 0
if Va_new > Va
Vref_new = Va_new - deltaV; % Diminui Vref
else
Vref_new = Va_new + deltaV; % Aumenta Vref
end
else
Vref_new = Va_new; % Não há alteração
end
Gostaria muito,se possíve,l que me dessem alguns palpites ou alterem o código se possível.
Agradecia muita a vossa ajuda. Obrigado


