## 2 Climbing Scaffold Status Monitoring Method
### GNSS/BeiDou Positioning Solution Model with Height Constraint for Climbing Scaffolds
#### 2.1.2 Filtering Algorithm  
(1) Discretized Model of the Observation System  
The external climbing scaffold monitoring is a short-baseline positioning system, and, for most of the time, it remains stationary, only transitioning into a moving state during the ascent. The instantaneous acceleration \(\ddot{\boldsymbol{x}}(t)\) can be considered as random interference, i.e., treated as system noise \(\boldsymbol{w}(t)\). The state vector of the observation point is taken as  
\[\boldsymbol{X}(t)=[\boldsymbol{x}(t)\ \dot{\boldsymbol{x}}(t)]^{\text{T}}, \tag{4}\]the following continuity equation can be used to represent  
\[\dot{\mathbf{X}}(t)= \begin{bmatrix}0&1\\ 0&0\end{bmatrix} \mathbf{X}(t)+ \begin{bmatrix}0\\ 1\end{bmatrix} \mathbf{w}(t), \tag{5}\]  
its solution is  
\[\mathbf{X}(t)= \begin{bmatrix}1&t-t_{0}\\ 0&1\end{bmatrix} \mathbf{X}(t_{0})+\int_{t_{0}}^{t} \begin{bmatrix}1&t-\tau\\ 0&1\end{bmatrix}\begin{bmatrix}0\\ 1\end{bmatrix} \mathbf{w}(\tau)\mathrm{d}\tau \tag{6}\]  
Discretize the above equation:  
\[\mathbf{X}(t_{k+1})= \begin{bmatrix}1&t_{k+1}-t_{k}\\ 0&1\end{bmatrix} \mathbf{X}(t_{k})+\int_{t_{i}}^{t_{k+1}} \begin{bmatrix}1&t_{k+1}- \tau\\ 0&1\end{bmatrix}\begin{bmatrix}0\\ 1\end{bmatrix} \mathbf{w}(\tau)\mathrm{d}\tau, \tag{7}\]  
use the subscripts \(k+1\) and \(k\) to represent \(t_{k+1}\) and \(t_{k}\), respectively, to solve the above equation, and define:  
\[\mathbf{w}_{k}=\frac{1}{\Delta t}\int_{t_{k}}^{t_{k+1}}\mathbf{w}(\tau)\mathrm{d}\tau, \tag{8}\]  
This gives the state equation of the observation system:  
\[\mathbf{X}_{k+1}= \begin{bmatrix}1&\Delta t\\ 0&1\end{bmatrix} \mathbf{X}_{k}+ \begin{bmatrix}\frac{1}{2}\Delta t^{2}\\ \Delta t\end{bmatrix} \mathbf{w}_{k}, \tag{9}\]  
where \(\Delta t\) is the observation time interval, and, since the time intervals between adjacent observations are the same, it is set to 1. The observation equation is  
\[\mathbf{y}_{k}=[1\;0] \begin{bmatrix}x_{k}\\ \vdots\\ x_{k}\end{bmatrix} +\mathbf{v}_{k}. \tag{10}\]  
The discretized model of the above observation system can be represented as  
\[x_{k+1} =\mathbf{A}x_{k}+\Gamma w_{k}, \tag{11}\] \[y_{k} =\mathbf{B}x_{k}+v_{k}. \tag{12}\]  
2. Robust Kalman Filtering  
In classical Kalman filtering, the observation noise is typically assumed to be system errors, white noise with a uniform power spectral density distribution, and a random Gaussian-Markov process, with errors exhibiting randomness and independence. However, in practical observation processes, the noise is not randomly distributed, and continuous large outliers may exist in the data. In such cases, classical Kalman filtering is not effective at eliminating or adjusting for the continuous data fluctuations caused by persistent outliers, leading to significant biases in the filtered results as time progresses. When large, continuous deviations appear in the data, robust Kalman filtering can be employed. Building upon the classical filtering approach, robust Kalman filtering adjusts the observation noise covariance matrix by replacing the original observation noise covariance matrix with the observation covariance matrix, thus mitigating the impact of outliers on the filtering process. The Kalman filtering process can be summarized into two stages: prediction and update. Prediction: In the prediction step of the Kalman filter, the system's state and its uncertainty (covariance matrix) are predicted based on the previous state estimate and the system dynamics. The state prediction equation is as follows:  
\[\hat{\mathbf{x}}_{k+1|k}=A_{d}\hat{x}_{k|k}+\mathbf{B}_{d}u_{k}, \tag{13}\]  
\[\mathbf{P}_{k+1|k}=\mathbf{A}_{d}\mathbf{P}_{k|k}\mathbf{A}_{d}^{\intercal}+\mathbf{Q}_{d}, \tag{14}\]  
where \(\hat{\mathbf{x}}_{k+1|k}\) is the predicted state at time \(k+1\) based on the state at time \(k\), \(\mathbf{A}_{d}\) is the state transition matrix that models the system's dynamics, \(\hat{\mathbf{x}}_{k|k}\) is the state estimate at time \(k\), B is the control input matrix, \(u_{k}\) is the control input.