0001 function makeStepScan(azrange, elrange, scanParams, outfile)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 azVel = scanParams(1);
0018 azAcc = scanParams(2);
0019 elStep= scanParams(3);
0020
0021
0022 turnTime = abs(azVel/azAcc);
0023
0024 turnTime = ceil(turnTime*1.5);
0025
0026 azVals = [];
0027
0028
0029 azStart(1) = 0;
0030 azVels(1) = 0;
0031 for m=1:turnTime
0032 prevAz = azStart(m);
0033 newVel = azVels(m) + azAcc;
0034 if(newVel> azVel)
0035 newVel = azVel;
0036 end
0037 newAz = prevAz + newVel;
0038
0039 azStart = [azStart; newAz];
0040 azVels = [azVels; newVel];
0041 end
0042 azStart = azStart - max(azStart) + azrange(1);
0043
0044 toGetThere = ones(5,1)*azStart(1);
0045
0046
0047 azBody = azrange(1):azVel:azrange(2);
0048
0049
0050 azBody(1) = [];
0051 azBody(length(azBody)) = [];
0052 azBody = azBody';
0053
0054
0055 azStop(1) = azrange(2);
0056 for m=1:turnTime
0057 prevAz = azStop(m);
0058 newAz = prevAz + azVels(length(azVels)-m+1);
0059
0060 azStop = [azStop; newAz];
0061 end
0062
0063 stopTime = length(azStop)-1;
0064
0065
0066
0067 azValsPlus = [azStart; azBody; azStop];
0068
0069
0070 azValsBack = [reverseVector(azStop); reverseVector(azBody); ...
0071 reverseVector(azStart)];
0072
0073
0074 elRows = elrange(1):elStep:elrange(2);
0075
0076 elVals = ones(size(azVals))*elRows(1);
0077
0078 azValsFin = [];
0079 elValsFin = [];
0080 for m=1:length(elRows)
0081 if(m==1)
0082 azValsFin = [toGetThere; azValsPlus];
0083 elValsFin = [ones(size(toGetThere))*elRows(m); ones(size(azValsPlus))*elRows(m)];
0084 else
0085 if(mod(m,2)==1)
0086 azValsFin = [azValsFin; azValsPlus];
0087 elValsFin = [elValsFin; ones(size(azValsPlus))*elRows(m)];
0088 elseif(mod(m,2)==0)
0089 azValsFin = [azValsFin; azValsBack];
0090 elValsFin = [elValsFin; ones(size(azValsBack))*elRows(m)];
0091 end
0092 end
0093
0094 if(m ~= length(elRows))
0095 elValsFin(length(elValsFin)-stopTime+1:length(elValsFin)) = elRows(m+1);
0096 end
0097 end
0098
0099 daVals = zeros(size(elValsFin));
0100
0101 index = 0:1:(length(azValsFin)-1);
0102
0103
0104 fid = fopen(outfile, 'w');
0105 fprintf(fid, 'MSPERSAMPLE 1000\n');
0106 for m=1:length(index)
0107 fprintf(fid, '%d \t %3.8f \t %3.3f \t 0\n', index(m), azValsFin(m), elValsFin(m));
0108 end
0109 fclose(fid);
0110
0111
0112 return;
0113
0114
0115
0116 function revVec = reverseVector(vec)
0117
0118 revVec = zeros(size(vec));
0119
0120 for m=1:length(vec)
0121 revVec(m) = vec(length(vec)-m+1);
0122 end
0123
0124 return;