⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 f_err.asv

📁 遗传算法在雷达成象方面的应用,主要是insar干涉定标解决敏感度句镇病态性问题
💻 ASV
字号:
%在比较好的结果上继续改动080319
%计算高程差的函数080225 by wjh
 %%my work11.30 在lipin的程序上用我的敏感读方法计算(在完好的基础上,把r1和H的误差也加入)
  %%%my work12.4 在lipin的程序上用我的地形重建算法计算(在完好的基础上,把r1和H的误差也加入
%%%step  1 用差分:放在一条线上:都是正侧视下的取点。
                    %%%%%%%%%%%%%%%%% 不是正侧视,因为取点在x上有分量50m
%%%     简单模型   bv=0,敏感度方程为F[L,3];
%%%     误差引入   H   r   
%%%     r的误差引入的应该是个变量,而不是定值
%%%     基线是单薄的,只有Bn

function z=F_err(x_canshu)


eps0=1e-8;
pi=3.14159265;
H=8000;
H_original=H;
f=9.6e9;
c=3e8;
lamda=c/f;
thetab=pi/6;
thetab_original=thetab;
b=0.6;
b_original=b;
bn_original=b;
bv=0;  %%%%r2变化,theta1变,z公式变
bn=b;
M=100;

dtz=peaks(M)*100;
L_Known=9;
x_distance=0; 
y_distance=1; 
r1MModH=dtz;

for i=1:1:M
    for k=1:1:M
              r1(i,k)=sqrt(i^2+(k+8000-50)^2+(H-dtz(i,k)).^2);
              r2(i,k)=sqrt((H-dtz(i,k)+b*sin(thetab)).^2+(k+8000-50-b*cos(thetab)).^2+(i-bv).^2);
        thetap(i,k)=asin(i/r1(i,k));  %查了几天才发现除这里要加点,不然结果大不相同啊(程序改动,现在不需要了)
    end
end

%--------------------------------------------------------沿距离向取L_Known个已知点
for k=1:L_Known
    x_Known=1;
   H_Known(k)=r1MModH(1+(k-1)*x_distance,x_Known+(k-1)*y_distance);
end
if i==0
     for x=1:1:M
       for y=1:1:M  
           dx1=dtz(x,y);  
          r1(x,y)=sqrt(x^2+(y)^2+(H_original-dx1)^2);   
          r2(x,y)=sqrt((H_original-dx1+b_original*sin(thetab_original)).^2+(y-b_original*cos(thetab_original))^2+(x-bv)^2);       
       end
     end
     beta=asin(x./r1);
end
    fai =2*pi*(r2-r1)/lamda;
     
        
      CanshuDelta=[3  2  0.1 -0.0035 -2]-x_canshu;      
 % CanshuDelta=[0 0 0 0 0 ]-x_canshu;      
    H_tempH=H_Known;
    H=H-CanshuDelta(1);
r1=r1-CanshuDelta(2);
b=b-CanshuDelta(3);
thetab=thetab-CanshuDelta(4);       %delta_thetab;
	
  fai=fai-CanshuDelta(5);
	

theta1=asin((b.^2+bv.^2)./r1/2/b-lamda*fai/2/pi/b-lamda^2*fai.^2/8/pi/pi/b./r1);

for i=1:1:M
    for k=1:1:M
        z_improve(i,k)=H-r1(i,k).*(-(sin(theta1(i,k))-bv/b*sin(thetap(i,k)))*sin(thetab)+sqrt(cos(thetap(i,k)).^2-(sin(theta1(i,k))-bv/b*sin(thetap(i,k))).^2).*cos(thetab));
      end
end     %%%%%%%%%%%%%%加入误差后的高度:
theta=acos(cos(0)*cos(thetab+0+theta1));
 %1.定标点,点的高度差

errorH=z_improve-dtz;
  

%--------------------------------------------------------沿距离向取L_Known个已知点

for k=1:L_Known
    x_Known=1;
    %CanshuDelta_Known(k,:)=[delta_H(1);delta_r1(1);delta_b(1);delta_thetab(1);delta_fai(1);];
T_Known(k)=errorH(1+(k-1)*x_distance,x_Known+(k-1)*y_distance);
H_Known(k)=z_improve(1+(k-1)*x_distance,x_Known+(k-1)*y_distance);

%--------------------------------------------------------敏感度计算
end


Delta_H_Known=H_tempH-H_Known;

%z=sqrt(sum(Delta_H_Known.^2))%-3*sqrt(sum(Delta_H_Known.^2))
sum_DelH=sqrt(sum(Delta_H_Known.^2));
%if sum_DelH>0.1
  %  z=1-exp(-9*0.1);
%else
     
z=1-exp(-2*sum_DelH);
%end



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -