コード例 #1
0
ファイル: ukfProc.py プロジェクト: xrael/estimationTools
    def configureFilter(self, X_0, Pbar_0, t_0):
        """
        Before computing the UKF solution, call this method.
        :param Xbar_0: [1-dimensional numpy array] Initial guess of the state.
        :param Pbar_0: [2-dimensional numpy array] A-priori covariance.
        :param t_0: [double] Initial time.
        :return:
        """
        # Initial data
        sequentialFilterProc.configureFilter(self, X_0, Pbar_0, t_0)

        n = self._dynModel.getNmbrOfStates()
        self._weights_mean = np.zeros(2*n+1)
        self._weights_covariance = np.zeros(2*n+1)

        # DEFAULT alpha and beta
        alpha = 1.0
        beta = 2.0

        kappa_p = 3 - n
        lambda_p = alpha**2 * (n + kappa_p) - n
        self._gamma_p = np.sqrt(n + lambda_p)

        self._weights_mean[0] = lambda_p / (n + lambda_p)
        self._weights_covariance[0] = lambda_p / (n + lambda_p) + (1 - alpha**2  + beta)

        self._weights_mean[1:] = 1.0/(2*(n + lambda_p))
        self._weights_covariance[1:] = 1.0/(2*(n + lambda_p))

        return
コード例 #2
0
    def configureFilter(self, Xbar_0, Pbar_0, t_0):
        """
        Before computing the kalman solution, call this method.
        :param Xref_0: [1-dimensional numpy array] Initial guess of the state.
        :param xbar_0: [1-dimensional numpy array] Deviation from the initial guess (usually 0).
        :param Pbar_0: [2-dimensional numpy array] A-priori covariance.
        :param t_0: [double] Initial time.
        :param joseph_flag: [boolean] Set to true to propagate the covariance using Joseph Formulation.
        :return:
        """
        sequentialFilterProc.configureFilter(self, Xbar_0, Pbar_0, t_0)

        self._xbar_0 = np.zeros(Xbar_0.size)
        self._xhat_i_1 = np.copy(self._xbar_0)

        self._Xref_i_1 = np.copy(Xbar_0)

        self._I = np.eye(self._dynModel.getNmbrOfStates())
        self._stm_i_1_0 = np.copy(self._I)
        self._stm_i_1 = np.copy(self._I)

        self._Pbar_i_1 = np.copy(Pbar_0)

        # # Default iterations
        # self._iteration = 0
        # self._nmbrIterations = 1

        return
コード例 #3
0
    def configureFilter(self, Xbar_0, Pbar_0, t_0):
        """
        Before computing the kalman solution, call this method.
        :param Xbar_0: [1-dimensional numpy array] Initial guess of the state.
        :param Pbar_0: [2-dimensional numpy array] A-priori covariance.
        :param t_0: [double] Initial time.
        :return:
        """
        sequentialFilterProc.configureFilter(self, Xbar_0, Pbar_0, t_0)

        L = np.linalg.cholesky(Pbar_0) # P = L*L^T

        self._xbar_0 = np.zeros(Xbar_0.size)
        self._xhat_i_1 = np.copy(self._xbar_0)

        self._Xref_i_1 = np.copy(Xbar_0)

        self._I = np.eye(self._dynModel.getNmbrOfStates())
        self._stm_i_1 = np.copy(self._I)

        self._R_i_1 = orTrans.backwardsSubstitutionInversion(L)
        self._b_i_1 = self._R_i_1.dot(self._xbar_0)

        self._xhat_vec = None
        self._stm_vec = None
        self._stm_t0_vec = None
        self._Xref_vec = None

        # # Default iterations
        # self._iteration = 0
        # self._nmbrIterations = 1

        return
コード例 #4
0
ファイル: ckfProc.py プロジェクト: xrael/estimationTools
    def configureFilter(self, Xbar_0, Pbar_0, t_0):
        """
        Before computing the kalman solution, call this method.
        :param Xref_0: [1-dimensional numpy array] Initial guess of the state.
        :param xbar_0: [1-dimensional numpy array] Deviation from the initial guess (usually 0).
        :param Pbar_0: [2-dimensional numpy array] A-priori covariance.
        :param t_0: [double] Initial time.
        :param joseph_flag: [boolean] Set to true to propagate the covariance using Joseph Formulation.
        :return:
        """
        sequentialFilterProc.configureFilter(self, Xbar_0, Pbar_0, t_0)

        self._xbar_0 = np.zeros(Xbar_0.size)
        self._xhat_i_1 = np.copy(self._xbar_0)

        self._Xref_i_1 = np.copy(Xbar_0)

        self._I = np.eye(self._dynModel.getNmbrOfStates())
        self._stm_i_1_0 = np.copy(self._I)
        self._stm_i_1 = np.copy(self._I)

        self._Pbar_i_1 = np.copy(Pbar_0)

        # # Default iterations
        # self._iteration = 0
        # self._nmbrIterations = 1

        return