ssinfer.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:icinco-code 作者: jacobnzw 项目源码 文件源码
def _time_update(self, time):
        # in non-additive case, augment mean and covariance
        mean = self.x_mean_filt if self.sys.q_additive else np.hstack((self.x_mean_filt, self.q_mean))
        cov = self.x_cov_filt if self.sys.q_additive else block_diag(self.x_cov_filt, self.q_cov)
        assert mean.ndim == 1 and cov.ndim == 2
        # apply moment transform to compute predicted state mean, covariance
        self.x_mean_pred, self.x_cov_pred, self.xx_cov = self.transf_dyn.apply(self.sys.dyn_eval, mean, cov,
                                                                               self.sys.par_fcn(time))
        if self.sys.q_additive: self.x_cov_pred += self.q_cov
        # in non-additive case, augment mean and covariance
        mean = self.x_mean_pred if self.sys.r_additive else np.hstack((self.x_mean_pred, self.r_mean))
        cov = self.x_cov_pred if self.sys.r_additive else block_diag(self.x_cov_pred, self.r_cov)
        assert mean.ndim == 1 and cov.ndim == 2
        # apply moment transform to compute measurement mean, covariance
        self.z_mean_pred, self.z_cov_pred, self.xz_cov = self.transf_meas.apply(self.sys.meas_eval, mean, cov,
                                                                                self.sys.par_fcn(time))
        # in additive case, noise covariances need to be added
        if self.sys.r_additive: self.z_cov_pred += self.r_cov
        # in non-additive case, cross-covariances must be trimmed (has no effect in additive case)
        self.xz_cov = self.xz_cov[:, :self.sys.xD]
        self.xx_cov = self.xx_cov[:, :self.sys.xD]
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号