How to make a code continue running if while loop returns NaN
Mostra commenti meno recenti
I have the following code below
R =5; % LQR Weighting
Q = [100 0 0 0; 0 5 0 0; 0 0 10 0; 0 0 0 1];
K = dlqr(Adhat,Bdhat,Q, R);
R1a = tf(ss(Adhat,Bdhat,K,0));
T1a = minreal(minreal(R1a)/(1 + minreal(R1a))); % Closed Loop Transfer Function
figure(1)
step(T1a)
S = stepinfo(T1a,'SettlingTimeThreshold',0.01); %Settling time threshold specification for 1%
x = S.SettlingTime;
while x > 0.1
R=R/2;
Q = Q*2;
K = dlqr(Adhat,Bdhat,Q, R);
R1a = tf(ss(Adhat,Bdhat,K,0));
T1a = minreal(minreal(R1a)/(1 + minreal(R1a)));
figure(1)
step(T1a)
hold on
x1 = 0:0.1:20; y1 = 1.01*ones(size(x1)); line(x1,y1) % Line to indicate +1%
x2 = 0:0.1:20; y2 = 0.99*ones(size(x2)); line(x2,y2) % Line to indicate -1%
hold off
S = stepinfo(T1a,'SettlingTimeThreshold',0.01); %Settling time threshol specification for 1%
x = S.SettlingTime;
end
figure(2)
nyquist(R1a)
title('Nyquist diagram of return ratio, K ')
hold on
circ = -1 +exp(j*[0:pi/1000:2*pi]');
plot(circ,'r')
hold off
disp('See Fig 2')
disp(['Settling Time= ' num2str(x)])
disp(['R= ' num2str(R)])
disp(['K= ' num2str(K)])
I need the code to continue running even if the while loop returns a NaN value, I cant seem to get this to work. I have tried using if else loop and it returns the same result.
I will apprciate any tips to get this issue resolved.
Thanks
1 Commento
Jan
il 11 Lug 2011
Please format your code properly. See the "Markup" link on this page for explanations.
It would be easier to answer, if you omit all lines, which do not concern your problem. A WHILE loop does not return anything, so please explain, where the NaN appears. Do you mean, that x gets the value NaN?
Risposta accettata
Più risposte (1)
Sean de Wolski
il 11 Lug 2011
while something || isnan(something_else)
%etc.
end
1 Commento
Adeyemi Adepegba
il 11 Lug 2011
Categorie
Scopri di più su Loops and Conditional Statements in Centro assistenza e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!