三、四轴联动系统综合误差建模

背景介绍

如图为测量系统,测量系统为一个四轴联动系统,整个装置可以抽象为测量件运动链和探头运动链组成的系统,具有X,Y,Z三个平动轴以及B轴一个转动轴组成的系统。传动关系为叶片-B-X-Y-Z-色散探头。
在这里插入图片描述

D-H 齐次坐标变换

D-H 齐次坐标变换是由Denavit-Hartenberg提出的一种通用坐标变换方法,常用于建立机械臂的运动学模型。

测量系统几何误差分析

根据测量系统几何误差分析,该测量系统床共有31项几何误差,如表所示。 δ n M δ_nM δnM表示平动误差, ε n M ε_nM εnM表示角度误差,下标的第一个字母以小写字母表示误差的运动或者旋转方向的轴,如 x 轴、y 轴和 z 轴;下标的第二个字母以大写字母表示运动轴,如 X轴、Z轴、Z轴和 B 轴。 S i ( j ) S_i (j) Si(j)表示在 j轴上 i 方向的垂直度误差。
在这里插入图片描述
运用多体系统理论和齐次坐标变换理论建立测量系统运动综合误差模型, 可以对测量系统的各项误差元进行综合考虑与分析,并能对各项误差元之间的耦合关系进行分析与解耦。多体系统理论是在实际建模过程中,对于测量系统的运动采用低序体阵列的方法进行多体系统拓扑结构描述,如图所示。采用齐次特征矩阵表示各部件之间的几何特征,计算出探头在被测件坐标系中的姿态和位置坐标,从而建立实际测量运动模态,完成测量系统的运动综合误差建模。
在这里插入图片描述
建立测量系统坐标系,基于多体理论推导机床误差综合数学模型,为计算被测件和探头之间的误差和为测量系统建模方便,所有测量系统构件坐标系都采用右手笛卡尔坐标系。测量系统分为两条运动链。被测物链:在被测件上建立坐标系1为低序体 1;在 B 轴转台上建立坐标系 2为低序体2。探头链:在测量系统基座上建立参考坐标系 0;在 X轴平动轴上建立坐标系 3 为低序体 3;在 Y 轴主轴上建立坐标系 4为低序体4;在Z轴上建立坐标系5 为低序体5。在探头建立上建立坐标系6为低序体6。
在建模过程中,规定测量系统误差变换矩阵的方向从被测件坐标系变换到探头坐标系,而误差因素则主要有转角误差、垂直度误差以及移动误差等,在实际测量的过程中如果出现了测量结果与规定相反,则以负值进行赋值并且进行综合计算。

测量系统几何误差建模

整体建模思路

分别列出理想(无误差)状态下相邻体间的转换矩阵和实际状态(有误差)状态下相邻体间的转换阵,通过矩阵相减得到测量系统综合误差。

理想(无误差)状态下相邻体间的转换矩阵

在理想情况下,设 X X X Y Y Y Z Z Z 平动轴的移动距离分别为 x x x y y y z z z,旋转轴 C C C 轴和 B B B 轴的旋转角度分别为 θ B \theta_B θB

从被测物坐标系1到 B B B旋转轴坐标系2的齐次变换矩阵为:
B W T i = I {}_B^W T^i = I BWTi=I

B B B旋转轴坐标系2到基座上建立参考坐标系0的齐次变换矩阵为:
O B T i = [ cos ⁡ θ B − sin ⁡ θ B 0 0 sin ⁡ θ B cos ⁡ θ B 0 0 0 0 1 0 0 0 0 1 ] {}_O^B T^i = \begin{bmatrix} \cos\theta_B & -\sin\theta_B & 0 & 0 \\ \sin\theta_B & \cos\theta_B & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} OBTi= cosθBsinθB00sinθBcosθB0000100001

从床身坐标系0到 X X X平动轴坐标系3的齐次变换矩阵为:
X O T i = [ 1 0 0 x 0 1 0 0 0 0 1 0 0 0 0 1 ] {}_X^O T^i = \begin{bmatrix} 1 & 0 & 0 & x \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} XOTi= 100001000010x001

X X X平动轴坐标系3到 Y Y Y平动轴坐标系4的齐次变换矩阵为:
Y X T i = [ 1 0 0 0 0 1 0 y 0 0 1 0 0 0 0 1 ] {}_Y^X T^i = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & y \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} YXTi= 1000010000100y01

Y Y Y平动轴坐标系4到 Z Z Z平动轴坐标系5的齐次变换矩阵为:
Z Y T i = [ 1 0 0 0 0 1 0 0 0 0 1 z 0 0 0 1 ] {}_Z^Y T^i = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & z \\ 0 & 0 & 0 & 1 \end{bmatrix} ZYTi= 10000100001000z1

Z Z Z平动轴坐标系5到探头坐标系6的齐次变换矩阵为:
T Z T i = I {}_T^Z T^i = I TZTi=I

那么,从被测物坐标系到探头坐标系的运动误差矩阵为:
T W T i = B W T i ⋅ 0 B T i ⋅ X 0 T i ⋅ Y X T i ⋅ Z Y T i ⋅ T Z T i {}_T^W T^i = {}_B^W T^i \cdot {}_0^B T^i \cdot {}_X^0 T^i \cdot {}_Y^X T^i \cdot {}_Z^Y T^i \cdot {}_T^Z T^i TWTi=BWTi0BTiX0TiYXTiZYTiTZTi

实际状态(有误差)状态下相邻体间的转换阵

与理想情况类似,设 X X X Y Y Y Z Z Z 平动轴的移动距离分别 x x x y y y z z z,旋转轴 C C C 轴和 B B B 轴的旋转角度分别为 θ B \theta_B θB。并把表2-1所示的各个运动轴的六自由度误差及轴间位置误差共计31项误差元考虑进来。

其中: δ i ( j ) \delta_i (j) δi(j) 表示在 j j j 轴上 i i i 方向的位置误差; ε i ( j ) \varepsilon_i (j) εi(j) 表示在 j j j 轴上 i i i 方向的角度误差; S i ( j ) S_i (j) Si(j) 表示在 j j j 轴上 i i i 方向的垂直度误差; ρ u ( v ) \rho_u (v) ρu(v) 表示在 v v v 轴上 u u u 方向的位置误差; σ u ( v ) \sigma_u (v) σu(v) 表示在 v v v 轴上 u u u 方向的角度误差; i i i j j j u u u v v v 可表示为 x x x y y y z z z b b b
Y 轴位置相关误差
Y 轴位置无关误差
旋转轴(B轴)位置无关误差

从被测物坐标系1到B旋转轴坐标系2的齐次变换矩阵为:
B W T e = I [ 1 − ε z ( B ) ε y ( B ) + σ x ( b ) δ x ( B ) + ρ x ( b ) ε z ( B ) 1 − ε x ( B ) − σ y ( b ) δ y ( B ) + ρ y ( b ) − ε y ( B ) − σ x ( b ) ε x ( B ) + σ y ( b ) 1 δ z ( B ) 0 0 0 1 ] {}_B^W T^e = I \begin{bmatrix} 1 & -\varepsilon_z(B) & \varepsilon_y(B) + \sigma_x(b) & \delta_x(B) + \rho_x(b) \\ \varepsilon_z(B) & 1 & -\varepsilon_x(B) - \sigma_y(b) & \delta_y(B) + \rho_y(b) \\ -\varepsilon_y(B) - \sigma_x(b) & \varepsilon_x(B) + \sigma_y(b) & 1 & \delta_z(B) \\ 0 & 0 & 0 & 1 \end{bmatrix} BWTe=I 1εz(B)εy(B)σx(b)0εz(B)1εx(B)+σy(b)0εy(B)+σx(b)εx(B)σy(b)10δx(B)+ρx(b)δy(B)+ρy(b)δz(B)1

从B旋转轴坐标系2到基座上建立参考坐标系0的齐次变换矩阵为:
O B T e = [ cos ⁡ θ B − sin ⁡ θ B 0 0 sin ⁡ θ B cos ⁡ θ B 0 0 0 0 1 0 0 0 0 1 ] {}_O^B T^e = \begin{bmatrix} \cos\theta_B & -\sin\theta_B & 0 & 0 \\ \sin\theta_B & \cos\theta_B & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} OBTe= cosθBsinθB00sinθBcosθB0000100001

从床身坐标系0到X平动轴坐标系3的齐次变换矩阵为:
X O T e = [ 1 0 0 x 0 1 0 0 0 0 1 0 0 0 0 1 ] [ 1 − ε z ( X ) ε y ( X ) δ x ( X ) ε z ( X ) 1 − ε x ( X ) δ y ( X ) − ε y ( X ) ε x ( X ) 1 δ z ( X ) 0 0 0 1 ] {}_X^O T^e = \begin{bmatrix} 1 & 0 & 0 & x \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 1 & -\varepsilon_z(X) & \varepsilon_y(X) & \delta_x(X) \\ \varepsilon_z(X) & 1 & -\varepsilon_x(X) & \delta_y(X) \\ -\varepsilon_y(X) & \varepsilon_x(X) & 1 & \delta_z(X) \\ 0 & 0 & 0 & 1 \end{bmatrix} XOTe= 100001000010x001 1εz(X)εy(X)0εz(X)1εx(X)0εy(X)εx(X)10δx(X)δy(X)δz(X)1

从X平动轴坐标系3到Y平动轴坐标系4的齐次变换矩阵为:
Y X T e = [ 1 0 0 0 0 1 0 y 0 0 1 0 0 0 0 1 ] [ 1 − ε z ( Y ) ε y ( Y ) δ x ( Y ) − y S x ( y ) ε z ( Y ) 1 − ε x ( Y ) δ y ( Y ) − ε y ( Y ) ε x ( Y ) 1 δ z ( Y ) 0 0 0 1 ] {}_Y^X T^e = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & y \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 1 & -\varepsilon_z(Y) & \varepsilon_y(Y) & \delta_x(Y) - yS_x(y) \\ \varepsilon_z(Y) & 1 & -\varepsilon_x(Y) & \delta_y(Y) \\ -\varepsilon_y(Y) & \varepsilon_x(Y) & 1 & \delta_z(Y) \\ 0 & 0 & 0 & 1 \end{bmatrix} YXTe= 1000010000100y01 1εz(Y)εy(Y)0εz(Y)1εx(Y)0εy(Y)εx(Y)10δx(Y)ySx(y)δy(Y)δz(Y)1

从Y平动轴坐标系4到Z平动轴坐标系5的齐次变换矩阵为:
Z Y T e = [ 1 0 0 0 0 1 0 0 0 0 1 z 0 0 0 1 ] [ 1 − ε z ( Z ) ε y ( Z ) δ x ( Z ) − z S x ( z ) ε z ( Z ) 1 − ε x ( Z ) δ y ( Z ) − z S y ( z ) − ε y ( Z ) ε x ( Z ) 1 δ z ( Z ) 0 0 0 1 ] {}_Z^Y T^e = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & z \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 1 & -\varepsilon_z(Z) & \varepsilon_y(Z) & \delta_x(Z) - zS_x(z) \\ \varepsilon_z(Z) & 1 & -\varepsilon_x(Z) & \delta_y(Z) - zS_y(z) \\ -\varepsilon_y(Z) & \varepsilon_x(Z) & 1 & \delta_z(Z) \\ 0 & 0 & 0 & 1 \end{bmatrix} ZYTe= 10000100001000z1 1εz(Z)εy(Z)0εz(Z)1εx(Z)0εy(Z)εx(Z)10δx(Z)zSx(z)δy(Z)zSy(z)δz(Z)1

从Z平动轴坐标系5到探头坐标系6的齐次变换矩阵为:
T Z T e = I {}_T^Z T^e = I TZTe=I

那么,从被测物坐标系到探头坐标系的运动误差矩阵为:
T W T e = B W T e ⋅ 0 B T e ⋅ X 0 T e ⋅ Y X T e ⋅ Z Y T e ⋅ T Z T e {}_T^W T^e = {}_B^W T^e \cdot {}_0^B T^e \cdot {}_X^0 T^e \cdot {}_Y^X T^e \cdot {}_Z^Y T^e \cdot {}_T^Z T^e TWTe=BWTe0BTeX0TeYXTeZYTeTZTe

最后运算

基于小误差假设理论,测量系统空间运动综合误差变换矩阵 T W E {}_T^W E TWE 可表示为:
T W E = T W T e − T W T i = [ 1 − Δ ε z Δ ε y Δ x Δ ε z 1 − Δ ε x Δ y − Δ ε y Δ ε x 1 Δ z 0 0 0 1 ] {}_T^W E = {}_T^W T^e - {}_T^W T^i = \begin{bmatrix} 1 & -\Delta\varepsilon_z & \Delta\varepsilon_y & \Delta x \\ \Delta\varepsilon_z & 1 & -\Delta\varepsilon_x & \Delta y \\ -\Delta\varepsilon_y & \Delta\varepsilon_x & 1 & \Delta z \\ 0 & 0 & 0 & 1 \end{bmatrix} TWE=TWTeTWTi= 1ΔεzΔεy0Δεz1Δεx0ΔεyΔεx10ΔxΔyΔz1

式中 Δ x \Delta x Δx Δ y \Delta y Δy Δ z \Delta z Δz 是探头实际位移点相对理想指令位移点的移动误差。 Δ ε x \Delta\varepsilon_x Δεx Δ ε y \Delta\varepsilon_y Δεy Δ ε z \Delta\varepsilon_z Δεz 为探头实际位置相对理想指令位置的转角误差。

基于小误差假设,忽略二阶及二阶以上小量,可得 Δ x \Delta x Δx Δ y \Delta y Δy Δ z \Delta z Δz 的表达式。

MATLAB编程仿真

clc
clear
% 使用符号计算
syms x y z % 平移距离
syms theta_B % 旋转角度

% 定义齐次变换矩阵
WB_Ti = eye(4); % 从被测物坐标系1B旋转轴坐标系2的齐次变换矩阵为单位矩阵
B0_Ti = [cos(theta_B) -sin(theta_B) 0 0; sin(theta_B) cos(theta_B) 0 0; 0 0 1 0; 0 0 0 1]; %B旋转轴坐标系2到基座上建立参考坐标系0的齐次变换矩阵
X0_Ti = [1 0 0 x; 0 1 0 0; 0 0 1 0; 0 0 0 1]; % 从床身坐标系0X平动轴坐标系3的齐次变换矩阵
XY_Ti = [1 0 0 0; 0 1 0 y; 0 0 1 0; 0 0 0 1]; %X平动轴坐标系3Y平动轴坐标系4的齐次变换矩阵
YZ_Ti = [1 0 0 0; 0 1 0 0; 0 0 1 z; 0 0 0 1]; %Y平动轴坐标系4Z平动轴坐标系5的齐次变换矩阵
ZT_Ti = eye(4); %Z平动轴坐标系5到探头坐标系6的齐次变换矩阵为单位矩阵

% 计算总的变换矩阵
WT_Ti = WB_Ti * B0_Ti * X0_Ti * XY_Ti * YZ_Ti * ZT_Ti;

% 显示结果
disp('从被测物坐标系到探头坐标系的运动误差矩阵为:');
disp(WT_Ti);

% 使用符号计算
syms ezB exB eyB deltaxB deltayB deltazB exX eyX ezX deltaxX deltayX deltazX exY eyY ezY deltaxY deltayY deltazY exZ eyZ ezZ deltaxZ deltayZ deltazZ 
syms Sxy Sxz Syz rhox_b rhoy_b sigmax_b sigmay_b
syms theta_B x y z 
% 定义齐次变换矩阵
WB_Te = [1 -ezB eyB+sigmax_b deltaxB+rhox_b;
         ezB 1 -exB-sigmay_b deltayB+rhoy_b;
         -eyB-sigmax_b exB+sigmay_b 1 deltazB;
         0 0 0 1];

B0_Te = [cos(theta_B) -sin(theta_B) 0 0;
         sin(theta_B) cos(theta_B) 0 0;
         0 0 1 0;
         0 0 0 1];

X0_Te = [1 0 0 x;
          0 1 0 0;
          0 0 1 0;
          0 0 0 1] * [1 -ezX eyX deltaxX;
                       ezX 1 -exX deltayX;
                       -eyX exX 1 deltazX;
                        0 0 0 1];

XY_Te = [1 0 0 0;
          0 1 0 y;
          0 0 1 0;
          0 0 0 1] * [1 -ezY eyY deltaxY-y*Sxy;
                       ezY 1 -exY deltayY;
                       -eyY exY 1 deltazY;
                        0 0 0 1];

YZ_Te = [1 0 0 0;
          0 1 0 0;
          0 0 1 z;
          0 0 0 1] * [1 -ezZ eyZ deltaxZ-z*Sxz;
                       ezZ 1 -exZ deltayZ-z*Syz;
                       -eyZ exZ 1 deltazZ;
                        0 0 0 1];

ZT_Te = eye(4); %Z平动轴坐标系5到探头坐标系6的齐次变换矩阵为单位矩阵

% 计算总的变换矩阵
WT_Te = WB_Te * B0_Te * X0_Te * XY_Te * YZ_Te * ZT_Te;

% 显示结果
disp('从被测物坐标系到探头坐标系的运动误差矩阵为:');
disp(WT_Te);

WTE = WT_Te - WT_Ti;

% 显示结果
disp('从被测物坐标系到探头坐标系的误差矩阵 WTE 为:');
disp(WTE);

syms deltay_x deltay_y deltay_z;
deltay_x=WTE(1,4);
deltay_y=WTE(2,4);
deltay_z=WTE(3,4);
disp(deltay_x);
disp(deltay_y);
disp(deltay_z);

写在后面

之前对测量系统的综合误差进行了建模,但整个分析过程仍存在一些问题,后续会进行修正,先把已有的进度记录下来。
——RIVER CHEN(2025.9.24于华中科技大学)

“无论走到哪里都应该记住,过去都是假的,回忆是一条没有归途的路,以往的一切春天都无法复原,即使最狂乱且坚韧的爱情,归根结底也不过是一种瞬息即逝的现实,唯有孤独永恒。”
——《百年孤独》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值