## 1 Introduction  
As the manufacturing technology has continuously been developed, the accuracy requirements of computer numerical control (CNC) machining are becoming increasingly important. Error compensation has become a hot issue for actively improving the machining accuracy, which is influenced by error sources such as geometric error of machine tools, thermal error, cutting force, tool's wear error, etc. [1; 2; 3]. Software compensating is a convenient solution to error compensation, which consists of three crucial steps, measurement strategy, identification approach, and compensation method. It improves machining accuracy and surface quality of workpiece through regenerating numerical control (NC) program for next compensation cycle, which is characterized by high efficiency and low cost. There are many studies that have focused on one error source to compensate, which is the main cause of machine inaccuracy under certain machining. For example, the geometric error makes up a significant portion of the inaccuracy of a machine tool, accounting for more than 30% [4]. The authors of [5] presented a novel 13-line identification algorithm by employing a laser interferometer, and by correcting compensation parameters in NC instructions the linear axes are compensated. In [6], by using double ball bar (DBB), a comprehensive geometric error measurement and identification method is presented. However, for the experiments, on a tilt table of five-axis machine tool, the authors assumed that the geometric errors of the translational axes were abandoned. [PERSON] et al. [7] presented an integrated error prediction and compensation method for the translational axes' geometric errors. With this integrated approach, the positioning inaccuracy of tool ball for a double ball bar is greatly decreased in a multi-axis machine tool. On the other hand, there are many studies reporting that the error caused by thermal error source constitutes another vital portion, up to 25-35% of total errors [8; 9; 10]. There are three categories of methods to eliminate thermal errors in current research, which are structural optimization of machine tool featured by thermal characteristics, temperature control, and thermal error compensation. The first two kinds are error prevention, which are high-cost. There is a large quantity of research focused on thermal error compensation for machining accuracy. On the basis of least square support vector machine (LS-SVM), a thermal error model of motorized spindle is proposed in [11]. The results showed that the predictive ability of this model was high. According to temperature variation, a thermal growth model of spindle is presented by [PERSON] in [12], and a parameter identification method of the model is also given in this article. At present, almost all of the thermal error compensation method conducted on the machine tools is based on modeling error sources. On the contrary, the constructed various thermal error models are rarely applied to structural optimization or design of machine tools in no matter what manner [13]. Cutting force is another factor influencing machining accuracy of workpiece, which contributes about 10% of inaccuracy. Many researchers have focused on dealing with the reduction in tool deflection error induced by cutting force [14; 15] and this kind compensation has widely been conducted in milling process. Moreover, in practical application, after a long time machining, the tool's wear increases, which is inevitable. Therefore, it is difficult to ensure that the precision of machine tools is still within acceptable limits. From the above literature review and to our best knowledge of the research, it can be seen that most of the studies have concentrated on measuring and modeling of error sources, as well as parameter identification. As known to all, there are various error sources on a machine tool, not just one.