某工件为圆形半径为10mm±01mm超出此范围即为次品要求建立一个合理的检验正次品的模型用Matlab对每个工件的 36 个数据进行计算后给出判断。data_xy=31270 34290 30276 39375 26078 43503 21188 44713 16016 43195 12954 39891 11420 34289 12732 29450
首先,我们可以计算出每个点到圆心的距离,即:
r = sqrt(x.^2 + y.^2);
然后,我们可以计算出所有点的距离均值和标准差,即:
mu = mean(r); sigma = std(r);
接下来,我们可以根据半径的要求,设置一个判定标准,即:
if mu >= 10 && mu <= 10.1 && sigma <= 0.1 disp('正品'); else disp('次品'); end
最后,我们可以将以上过程整合在一个函数中,如下所示:
function result = check_circle(data_xy) % 检验圆形工件是否合格 % data_xy: 工件的36个坐标点,2列
x = data_xy(:,1); y = data_xy(:,2);
% 计算距离 r = sqrt(x.^2 + y.^2);
% 计算均值和标准差 mu = mean(r); sigma = std(r);
% 判定标准 if mu >= 10 && mu <= 10.1 && sigma <= 0.1 result = '正品'; else result = '次品'; end
end
然后,我们就可以对每个工件的数据进行判断了,如下所示:
data1 = [31.270 34.290 30.276 39.375 26.078 43.503 21.188 44.713 16.016 43.195 12.954 39.891 11.420 34.289 12.732 29.450 16.495 25.853 21.712 24.648 26.647 26.181 30.202 29.937 31.227 36.554 29.134 40.928 24.928 43.922 19.454 44.459 14.963 42.265 11.957 38.060 11.555 32.551 13.963 27.973 17.972 25.318 23.274 24.806 27.860 27.163 30.964 31.517 30.660 38.205 27.808 42.317 22.922 44.478 18.096 44.126 13.513 40.770 11.578 36.186 12.162 30.919 14.615 27.141 19.971 24.728 24.441 25.166 28.981 28.244 31.105 32.743];
result1 = check_circle(data1);
disp(result1);
注意,以上代码仅适用于本题,对于其他的圆形工件检验可能需要重新设置判定标准
原文地址: http://www.cveoy.top/t/topic/fsLA 著作权归作者所有。请勿转载和采集!