自学内容网 自学内容网

基于PCRLB的CMIMO雷达资源调度方法(MATLAB实现)

集中式多输入多输出CMIMO雷达作为一种新体制雷达,能够实现对多个目标的同时多波束探测,在多目标跟踪领域得到了广泛运用。自从2006年学者Haykin提出认知雷达理论,雷达资源分配问题就成为一个有实际应用价值的热点研究内容。本文基于目标跟踪的后验克拉美罗下界PCRLB(posterior Cramer-Rao lower bound)实现了雷达多目标跟踪的功率资源分配。

1.目标运动模型

图1为CMIMO雷达对多个目标同时跟踪的场景示意图。

1 CMIMO同时多波束跟踪

    假设Q个彼此分离的目标做匀速直线CV运动,第q个目标在第k时刻的运动模型定义:

\boldsymbol{x}_{k}^{q}=\boldsymbol{F}_{q} \boldsymbol{x}_{k-1}^{q}+\boldsymbol{u}_{k-1}^{q}

 其中\boldsymbol{x}_{k}^{q}=\left[x_{k}^{q}, \dot{x}_{k}^{q}, y_{k}^{q}, \dot{y}_{k}^{q}\right]^{\mathrm{T}}为状态向量。

状态转移矩阵为:

\boldsymbol{F}_{q}=\boldsymbol{I}_{2} \otimes\left[\begin{array}{ll} 1 & T \\ 0 & 1 \end{array}\right]

\boldsymbol{u}_{k-1}^{q}为一个零均值的高斯白噪声,其协方差表示为:

\boldsymbol{Q}_{k-1}^{q}=\boldsymbol{\kappa}_{q} \boldsymbol{I}_{2} \otimes\left[\begin{array}{ll} \frac{1}{3} T^{3} & \frac{1}{2} T^{2} \\ \frac{1}{2} T^{2} & T \end{array}\right]

\boldsymbol{\kappa}_{q}是用来控制过程噪声大小的系数。

2.雷达量测模型

       设CMIMO雷达坐标为(0, 0)。在k时刻对Q个目标进行跟踪,第q个目标对应量测和状态向量之间的转换关系表示为:

\boldsymbol{z}_{q, k}=\boldsymbol{h}_{q, k}\left(\boldsymbol{x}_{k}^{q}\right)+\boldsymbol{v}_{q, k}

其中\boldsymbol{v}_{q, k} \sim N\left(0, \boldsymbol{R}_{q, k}\right)为量测噪声,\boldsymbol{h}_{q, k}\left(\boldsymbol{.}\right)为量测和状态向量之间的映射过程,分别为距离、速度与角度:

\begin{array}{l} \boldsymbol{h}_{q, k}(\bullet)=\left[r_{q, k}(\bullet), f_{q, k}(\bullet), \varphi_{q, k}(\bullet)\right]^{\mathrm{T}} \\ \left\{\begin{array}{l} r_{q, k}\left(\boldsymbol{x}_{k}^{q}\right)=\sqrt{\left(x_{k}^{q}\right)^{2}+\left(y_{k}^{q}\right)^{2}} \\ f_{q, k}\left(\boldsymbol{x}_{k}^{q}\right)=-\frac{2}{\lambda} *\left(\dot{x}_{k}^{q}, \dot{y}_{k}^{q}\right)\binom{x_{k}^{q}}{y_{k}^{q}} / r_{q, k} \\ \varphi_{q, k}\left(\boldsymbol{x}_{k}^{q}\right)=\arctan 2\left(y_{k}^{q}\right) /\left(x_{k}^{q}\right) \end{array}\right. \end{array}

       量测噪声的协方差矩阵表示为:

\begin{array}{l} \boldsymbol{R}_{q, k}=\operatorname{diag}\left(\boldsymbol{R}_{r_{q, k}}^{2}, \boldsymbol{R}_{f_{q, k}}^{2}, \boldsymbol{R}_{\varphi_{q k}}^{2}\right) \\ \left\{\begin{array}{l} \boldsymbol{R}_{r_{q, k}}^{2} \propto\left(\alpha_{q, k} P_{q, k}\left|\sigma_{k}^{q}\right|^{2}\right)^{-1} \\ \boldsymbol{R}_{f_{q, k}}^{2} \propto\left(\alpha_{q, k} P_{q, k}\left|\sigma_{k}^{q}\right|^{2}\right)^{-1} \\ \boldsymbol{R}_{\varphi_{q, k}}^{2} \propto\left(\alpha_{q, k} P_{q, k}\left|\sigma_{k}^{q}\right|^{2}\right)^{-1} \end{array}\right. \end{array}

其中,\sigma_{k}^{q}为目标RCS,P_{k,q}为实际功率,\alpha_{k,q}为大小与距离4次方成反比的衰减系数。上式可以看出,在跟踪过程中,目标RCS和雷达发射参数均会影响量测协方差。

3.多目标跟踪PCRLB递推

       跟踪滤波的无偏估计量与目标状态向量之间满足:

\mathbb{E}_{x_{k}^{q}, \boldsymbol{x}_{g, k}}\left\{\left[\hat{x}_{k \mid k}^{q}\left(\boldsymbol{z}_{q, k}\right)-\boldsymbol{x}_{k}^{q}\right]\left[\hat{x}_{k \mid k}^{q}\left(z_{q, k}\right)-\boldsymbol{x}_{k}^{q}\right]^{\mathrm{T}}\right\} \geq \operatorname{FIM}^{-1}\left(\boldsymbol{x}_{k}^{q}\right)

其中为\hat{x}_{k \mid k}^{q}\left(\boldsymbol{z}_{q, k}\right)无偏估计量;\mathbb{E}_{x_{k}^{q}, \boldsymbol{x}_{g, k}}表示数学期望操作;{FIM}^{-1}\left(\boldsymbol{x}_{k}^{q}\right)表示PCRLB矩阵,对应逆矩阵为目标q所对应的Fisher Information Matrix。其递推公式为:

\begin{array}{l} \operatorname{FIM}\left(\boldsymbol{x}_{k}^{q}\right)=\operatorname{FIM}_{P}\left(\boldsymbol{x}_{k}^{q}\right)+\operatorname{FIM}_{z}\left(\boldsymbol{x}_{k}^{q}\right) \\ =\left[\boldsymbol{Q}_{k-1}^{q}+\boldsymbol{F}_{q} \operatorname{FIM}^{-1}\left(\boldsymbol{x}_{k-1}^{q}\right) \boldsymbol{F}_{q}^{\mathrm{T}}\right]^{-1}+\boldsymbol{H}_{q, k}^{\mathrm{T}}\left(\hat{\boldsymbol{R}}_{q, k}\right)^{-1} \boldsymbol{H}_{q, k} \end{array}

其中\operatorname{FIM}_{P}\left(\boldsymbol{x}_{k}^{q}\right)表示目标状态先验分布对应的FIM,\operatorname{FIM}_{Z}\left(\boldsymbol{x}_{k}^{q}\right)为量测信息FIM。\boldsymbol{H}_{q, k}表示雅克比矩阵:\boldsymbol{H}_{q, k}^{\mathrm{T}}=\left[\nabla_{\chi_{k}^{g}} r_{q, k}, \nabla_{x_{k}^{g}} f_{q, k}, \nabla_{x_{k}^{g}} \varphi_{q, k}\right]。对FIM求逆得到PCRLB矩阵:

F_{P C R L B}\left(P_{k}^{q}, \boldsymbol{x}_{k}^{q}\right)=\operatorname{FIM}^{-1}\left(P_{k}^{q}, \boldsymbol{x}_{k}^{q}\right)

其中P_{k}^{q}k时刻对第q个目标分配的功率资源,F_{P C R L B}\left(P_{k}^{q}, \boldsymbol{x}_{k}^{q}\right)对角线元素对应目标状态向量的无偏估计方差下界,可将其作为代价函数:\mathbb{F}\left(P_{k}, \boldsymbol{x}_{k}^{q}\right)=\max \left(\sqrt{\operatorname{tr}\left\{F_{P C R L B}\left(P_{k}^{q}, \boldsymbol{x}_{k}^{q}\right)\right\}}\right)。进一步地,可以跟踪实际物理约束构造资源调度模型,我们采用MinMax准则优化多目标跟踪精度。

        MinMax-PCRLB优化模型可以建模为:

\begin{array}{l} \min \left[\mathbb{F}\left(P_{k}, \boldsymbol{x}_{k}^{q}\right)\right] \\ \text { s.t. }\left\{\begin{array}{l} \left|P_{k}^{q}\right|_{1}=P_{\text {total }} \\ \bar{P}_{\min } \leq P_{k}^{q} \leq \bar{P}_{\max } \\ q=1,2, \ldots, Q \end{array}\right. \end{array}

其中,|.|_{1}表示1范数。P_{\text {total }}\\ \bar{P}_{\max}\\ \bar{P}_{\min }分别为总功率、最大分配功率与最小分配功率。已经证明上述问题是一个凸问题,可以通过典型的优化算法进行求解,得到下一帧的雷达资源调度方案。

4.仿真实验

       CMIMO雷达对三个目标进行跟踪,利用扩展卡尔曼滤波或者无迹卡尔曼滤波算法进行跟踪,蒙特卡洛试验次数设置为100次。通过MATLAB进行仿真,能够得到如下结果:

图2 多目标与雷达的距离变化曲线图

图3 位置估计结果

图4 速度估计结果

图5 雷达资源调度结果

       结合图2与图5可以看出,在跟踪前期,目标1距离雷达最远,系统为了保证最远目标的跟踪精度,分配绝大部分功率给目标1。随着目标1距离雷达越来越近,系统分配给目标1的功率逐渐减小。而目标2距离雷达越来越远,因此分配给目标2的功率越来越大。另外,目标3的距离一直较小,因此在跟踪全过程中,分配给目标3的雷达资源最少。

       另外,从图3与图4中可以看出,系统对多个目标的运动参数的估计是收敛的,且PCRLB能够表征目标跟踪的估计下界。PCRLB能够指导雷达完成雷达资源的有效分配。如有代码问题,加UltraNextYJ交流。

部分代码如下:

%% PCRLB的计算与比较(用上一时刻进行迭代)
CR_pos_PCRLB = zeros(N_tracking,TAR_NUM);
CR_vel_PCRLB = zeros(N_tracking,TAR_NUM);
for tar_num = 1:TAR_NUM
    J = inv(P_0);    % pcrlb初始化
    for k = 1:N_tracking
        % N为跟踪时间
        D11 = sum(d11_pcrlb(:,:,k,:,tar_num),4)./MC;    
        D12 = sum(d12_pcrlb(:,:,k,:,tar_num),4)./MC;
        D22 = sum(d22_pcrlb(:,:,k,:,tar_num),4)./MC;
        % PCRLB
        Bound_CRLB = inv(J);
        % 位置和速度的PCRLB的计算
        CR_pos_PCRLB(k,tar_num) = sqrt(Bound_CRLB(1,1) + Bound_CRLB(3,3));   
        CR_vel_PCRLB(k,tar_num) = sqrt(Bound_CRLB(2,2) + Bound_CRLB(4,4));
    end
end
%% 计算跟踪过程对应的RMSE,将误差存入矩阵
position = zeros(N_tracking,MC,TAR_NUM);
velocity = zeros(N_tracking,MC,TAR_NUM);
rmse_position = zeros(N_tracking,TAR_NUM);
rmse_velocity = zeros(N_tracking,TAR_NUM);
for tar_num = 1:TAR_NUM
    for i = 1:MC
        for k = 1:N_tracking
            error(:) = sV(:,k,i,tar_num) - eV(:,k,i,tar_num);
            % RMSE
            error2(:) = error(:).^2;               
            error2_dis = error2(1) + error2(3);    
            error2_vel = error2(2) + error2(4);
            position(k,i,tar_num) = error2_dis;   
            velocity(k,i,tar_num) = error2_vel;
        end
    end
end
for tar_num = 1:TAR_NUM
    rmse_position(:,tar_num) = sqrt(sum(position(:,:,tar_num),2)./MC);  
    rmse_velocity(:,tar_num) = sqrt(sum(velocity(:,:,tar_num),2)./MC);
end

 


原文地址:https://blog.csdn.net/weixin_43475160/article/details/144397566

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!