該程序爲計算正交位移測量系統中位移傳感器觸點座標的程序。當被測基準塊位姿發生改變時,位移傳感器的示值發生改變,通過該程序,可以計算出不同位移傳感器觸點的新座標。for循環的目的是循環計算15個不同位姿下的位移傳感器的座標。三點確定一個平面!有了新的座標,可以進行平面的計算。
主程序如下:
clc; clear all;close all
warning off
P0=[4 5 6;%S1
7 8 9;%S2
10 11 12];%S3
%x y z
v1=[1 1 1];%定義直線向量
L=-10*(rand(15,3)*2-1);%產生15*3的隨機位移矩陣,定義不同動點到固定點P的距離,負號表示方向
P2=cell(9,1);P3_1=zeros(3,3);
for q=1:length(L)
P2{q}=func(P0,v1,L(q,:));
end
子程序如下:
function P1=func(P0,v1,L)
syms P01 P02 P03 v11 v12 v13 L1 L2 L3 %定義變量;
S11=P0(1,1);S12=P0(1,2);S13=P0(1,3);S21=P0(2,1);S22=P0(2,2);S23=P0(2,3);S31=P0(3,1);S32=P0(3,2);S33=P0(3,3);
v11=v1(1);v12=v1(2);v13=v1(3);L1=L(1);L2=L(2);L3=L(3);%變量賦值
P1(1,1)=S11+L1*v1(1)/norm(v1);%計算固定點1對應的動點X分量
P1(1,2)=S12+L1*v1(2)/norm(v1);%計算固定點1對應的動點Y分量
P1(1,3)=S13+L1*v1(3)/norm(v1);%計算固定點1對應的動點Z分量
P1(2,1)=S21+L2*v1(1)/norm(v1);%計算固定點2對應的動點X分量
P1(2,2)=S22+L2*v1(2)/norm(v1);%計算固定點2對應的動點Y分量
P1(2,3)=S23+L2*v1(3)/norm(v1);%計算固定點2對應的動點Z分量
P1(3,1)=S31+L3*v1(1)/norm(v1);%計算固定點2對應的動點X分量
P1(3,2)=S32+L3*v1(2)/norm(v1);%計算固定點2對應的動點Y分量
P1(3,3)=S33+L3*v1(3)/norm(v1);%計算固定點2對應的動點Z分量
P1;%程序輸出
運行結果如下:
P2 =
[3x3 double]
[3x3 double]
[3x3 double]
[3x3 double]
[3x3 double]
[3x3 double]
[3x3 double]
[3x3 double]
[3x3 double]
[3x3 double]
[3x3 double]
[3x3 double]
[3x3 double]
[3x3 double]
[3x3 double]
每一個 [3x3 double]裏面的內容分別爲: