Why is this While Loop not running?
Show older comments
Hi all,
I'm doing a spacecraft link budget analysis in MATLAB. I have a function that calculates the link margin, which I call in a main script. As I wish to limit the margin to a certain range I use a While Loop that alters the transmission power (P_t) until the condition is satisfied.
P_t=5;
flag_para=0;
flag_helix=0;
flag_horn=0;
flag_array=1;
S=S_epsilon*1000;
R_b=20e+6;
BER=8e-6;
dl=3;
A=0.1; % phase array
D_t=0; % Parabolic
eta=0.7;
f_t=8e+9;
lamda=3e+8/f_t; % Operating Wavelength in metres
L_com=0; % horn
margin=-inf;
j=1;
while margin<6 && margin>12
[margin,M_com,P_com,L_ant]=comm_payload(flag_para,flag_helix,flag_horn,flag_array...
,P_t,eta,lamda,D_t,f_t,L_com,A,S,dl,R_b,BER);
if margin<6
P_t=P_t*1.1;
j=j+1;
elseif margin>12
P_t=P_t*0.9;
j=j+1;
end
end
This doesn't seem to be working. The code runs but J stays at 1 and the margin also remains at -inf. Any ideas what is wrong? The function 100% works, tested it many times without the while loop.
Cheers
Accepted Answer
More Answers (0)
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!