统计模型精密仪器校准法

我今天介绍一种快书精准的仪器校准方法。通过用观测到的数据,对照真实值,拟合回归模型,估测矫正曲线,从而提高测量仪器的使用精准度。 我还将演示如何使用开源的R软件完成计算和作图。用到的所有数据和代码都可以在文后链接下载。

在制备纯硅晶用于生产集成电路时,碳原子会随机在硅晶体轴的两端形成,难于彻底清除。碳原子的多少会影响集成电路的性能,所以必须精确地测量出提炼出的硅晶中的碳含量,以便选择相应的处理方法。测量碳含量要用到的测量仪器叫傅立叶变换红外光谱仪,或FTIR光谱仪。 它的工作原理是根据被测量物质在红外光谱各个频段的吸收强度,判别某一种物质的含量。但由于精度要求极高,一般新仪器在使用前需要校准.

收集好的数据是这样的。左面是对一致碳含量的标准警惕样本,在FTIR侧联谊上测得的碳含量之,一共有五种含碳硅晶样本,覆盖一般常用范围,并侧重地碳含量,有A和B 两种地含量样本。每天每种测量五次。

表中每行就是每一次测量样本获得的碳含量,每天,连续十天,一共50行数据。值得提到的是,控制图分析表明仪器供桌状态是受控的:所以这些数据时可以作为典型数据来用的。如果不受控的话,使用者应该先找到愿因,调整仪器,使其工作状态先受控。右面的标识样本一致的真实的碳含量。再看一下校准线的回归统计模型。其中相应变量Yi就是观测到的碳含量,Xi是样本真实碳含量,Ei 食宿及独立正态误差。 Beta0 和Beta1 是要估测的模型参数, 将用来调整光谱仪, 也可以用来直接用反回归法直接读取真实碳含量值。

现在看一下拟合好的矫正曲线:纵轴是实际观测值,横轴是实际值,共有A, B, C, D, E五种硅晶样本。 为侧重地碳含量的精准度,用了两个低碳含量样本A和B。 你和实际与么中每天五个观测值得平均数。 最后选用的是三级多向时,与直线略微幼雏润,不大。绿色区域是95%置信区间带。

根据这个矫正模型,在实际使用中,如果读到一个值,比如1.0 PPMA, 那末相应的真实碳含量应该是多少哪?这就要用到一个模型方法叫逆拟合,也就是已知Y, 去求X,并给出X的置信区间。 这里X是一个统计变量,而不是常数。通过R语言的一个功能库, 我们计算出当Y=1时,相应的X, 也就是真实的碳含量应该是1.137, 95%的值行区间是介于1.116和1.159之间,也就是这台仪器实际上低估了真实的碳含量。我们可以依据这条假证曲线来推导未来的读取值。当然,另外一种方法就是调整正态仪器的功能参数,使校正曲线最大限度地接近45度直线。

我们可使用矫正曲线参数beta0 和beta1等直接调整测量仪,就更方便快捷了。

现在我们看一下如何通过R语言来完成模型拟合和画图。我之间主要节点演示一下,大家可在本文网址下载详细代码,阅读细节部分。 没有安装R和RStudio的可以在百度上搜,免费下载,并安装需要的功能库。

读入数据文件,处理成必要的R数据文件格式。

首先用R的基本功能你和一个单因素线性模型,叫Mod。 这个模型就是我们需要得到的矫正线。可以用plotFit()观看一下拟合好的情况。这里显示的是拟合好的矫正线及95%置信区间。 我们看到直线基本可以,但中间一组,也就是样本D组稍微偏低,似乎多项式曲线模型更合适一点。

下面我们选用一个三级多项式作为拟和模型。

依然用lm()功能,看一下拟合好后的结果。这个新模型与数据更接近一些。那末我们如何使用拟合好的曲线哪?比如说我们用光谱仪观测到硅晶的碳含量是1.0  PPMA,也就是Y的值,要知道真实的碳含量,我们可以依据校正曲线反向找X的值。用R功能库里的Invest()功能可以一步完成。只要引用拟合好的Mod模型,设置Y0 为1.0,我们看到,X是1.136981, 以及95%置信区间。我们还可以在图上画出位置来。

其它代码细节可在本频道网址下载后查看。

我们顺利地建立了红外光谱仪的矫正曲线,探明了观测值和实际值的关系,并可以在未来的使用过程中获得更精准的测量值。在试验之前要注意的是, 为保证收集到的数据的有效性,必须用控制图方法,确认收集到的数据符合均值和范围变量稳定可控的统计特征。具体方法请参考有关文献或关注本频道。

科学技术是提高产品竞争力的法宝。量化分析方法可以加快研发速度。希望大家关注本网,今后会有更多技术量化分析方法介绍。大家可在以下链接下载代码和数据。

下载数据和R代码:

通过实验设计迅速掌控5 纳米晶片刻蚀机性能

我们平常做工农业实验,最忌讳的就是盲目选择实验点,或者一次只改变一个变量。因为如果要验证的因素很多的话,所要做的是实验会成倍增加, 浪费财力物力不说,还可能找不到需要的因果关系。另外一个要注意的是,试验要分步进行,逐步添加试验。不要一上来就做全因子实验。 因为不是所有因素都和输出变量有紧密关系的。也就是说,最好把实验分为两步做,既 可以节省原材料和工作时间, 又可以精确命中目标。第一步是筛选实验,用部分因子实验从众多因素中筛选出比较重要的几个。第二步是优化实验,为筛选出来的几个因素寻找选最佳工作区间。大家经常听说的中心组合试验设计,和Box-Bhnken 等响应面试验就是常用的优化实验设计。

好的实验设计,要能做到用尽可能少的试验次数,准确地发现各因素的主作用,交互作用以及如何影响相应变量的。

今天我要演示的是集成电路硅晶圆加工过程的一个实际案例。我们知道在硅晶片加工中有一个重要步骤,就是硅晶片表面的氧化刻蚀工序。目前,无论多么高端的硅晶片,无论多么复杂的2D, 3D纳米级集成线路结构,都要经过硅晶氧化刻蚀这道工序。

具体来讲,就是通过光刻机在硅晶片表面把电子线路的反光膜刻出痕迹后,暴露下面的二氧化硅层,再刻蚀二氧化硅层。刻蚀二氧化硅层要用很精密的仪器,因为二氧化硅层只有5-20纳米。一个纳米是一毫米的百万分之一,所以 非常非常的薄,肉眼一般无法看见。不同颜色的硅晶片,就是由不同厚度的表面氧化层反光频率不同造成的。刻蚀硅氧化层有干和湿两种刻法,目前比较通用的是干刻法。干刻法须把硅晶片放入一个封闭的金属室中。晶片放在一个旋转的托盘上, 氮气,氮气和水汽的混和气体被吹入封闭的室内,并吹入氟化氢气体,根据时间的长短控制刻蚀的深度。刻蚀机性能好坏的一个重要指标就是在晶片表面刻蚀的均匀度, 或一致性。均匀一致性越高,生产出来的芯片的质量就越好,良品率就越高。下面我们设计一组试验来验证一台新300mm硅晶片刻蚀机的均匀一致性水平,并找出最佳的工作区间。

现有研究表明,影响刻蚀机一致性有六个可能因素,分别为;

A:            托盘转速 (高 : +1,低:  -1)

B:            灼蚀前氮气和氮水混合气总气流量 (高 : +1,低:  -1)

C:            灼蚀前水气雾流量 (高 : +1,低:  -1)

D:            氮气和氮水混和气总气流量 (高 : +1,低:  -1)

E:            灼蚀气体流速 (高 : +1,低:  -1)

F:            氧化硅灼蚀厚度 (200 Angs.: +1, 50 Angs.: -1)

要得知被影响的一致性, 一般先要在圆晶表面选九个点,测量晶片每个点在刻蚀氧化层之前和之后高度的差。然后再用九个差的标准差除以其平均值,再取对数,就得到一致性。这个也就是统计学中经常提到的变异系数的对数。测量厚度要用极精密的仪器,因为氧化层一般只有几个纳米, 一毫米的百万分之一。

六个因素,因为每值只取高和低,全因子试验要做2^6=64个试验, 这是很多的试验,而且会浪费很多昂贵的硅晶片。但实际情况,不是所有因素都一定与一致性相关,所以 我们可以先用部分因子试验筛选出几个比较重要的,然后再集中研究这几个重要的因素。部分因子试验可以比全因子试验成倍地减少试验次数,这样我们既筛选了因素,又能优化过程,很经济划算。

现在我演示一下如何用R软件设计这个实验。R软件是免费开源的,可以在百度上搜并下载。R的软件包几乎可以设计和分析任何类型的试验, 所以推荐大家学习。

我们要先引入两个功能库,FrF2和daewr。后面分析还会用到另外 几个,具体请参考详细代码, 可以在片后网址下载。

我们需要设计一个解析度四级的试验,以保证精确度,2^(6-2)=16  个的部分因子设计就可以。主因子混淆关系用E=ABC and F=BCD,因为三个因子的交互基本可以忽略不计,所以用这种混淆可以保证E和F的可靠性,E和F是比较重要的因子。

现在看一下设计好的试验计划。这个计划可以存为EXCEL文件,研究人员可以拿去做试验并记录数据。看一下因素混淆结构,只有二次混淆,一级主因素都清楚的。再看一下一和二级的主因素相关分析图,一级之间都是白的,也就是0; 二级交互因素之间有部分混淆, 因为是部分因子设计。但如果是全因子设计,级交互因素也都是清晰的。

再在试验中心加上两个中心点,用来估测纯测量误差,最后一共18个试验点。

试验做好输入均匀一致性数据后,我们还用R来分析结果。拟合主因素加二级交互的模型,我们应注意到只有部分二级交互作用可以估测到, 其它的未估测到的,是和估测到的混淆在一起的。所以要搞清这些显著的二级交互作用到底是哪个, 按常规至少要再加做16 个试验,也就是翻倍。但我们注意到混淆的结构,其实再做8个,也是翻一半倍就够了。 只要把含有A, E, 和F的二级交互解开即可。圆晶很贵,时间也宝贵,所以再加八个当然比加16个好了。但如果不受财力限制,多做16个试验也可以。多做会提高一点精度。

用R软件再加八个试验,然后做试验,收集数据,把数据重新引入R,拟合模型,我们看到 原来混淆的二级交互估测值已经清楚了。显著相关的两个主因素是E:  灼蚀气体流速 ,和F: 氧化硅灼蚀厚度(含5  nano meter 和20 nano meter两个种类),交互作用包括,A:F,  B:C,  和稍微弱一点E:F。

这是在最佳取值位二维的试验结果和拟和线。纵轴是刻蚀一致性,数值越小一致性越好。横轴是因素位值从低到高。 这里我们看到, 在其它因素都取最佳值时,因素E,刻蚀气体流速与刻蚀的一致性成正比。所以刻蚀气体流速越高,刻蚀的一致性就越好。因素F取低值-1,也就是刻蚀5纳米厚的氧化层时,刻蚀的一致性要好于刻蚀高值位, +1,也就是20纳米厚时。

在交互作用方面,在试验取值范围内,因素A: 托盘转速 和F: 氧化硅刻蚀厚度有交互影响。具体就是,对于刻蚀厚度在5纳米厚度时,托盘转速越高一致性越好。 但当刻蚀厚度在20纳米厚度时,托盘转速越低一致性越好。同样,因素B: 刻蚀前氮气和氮水混合气总气流量,和因素C:刻蚀前水气雾流量 也有交互作用。也就是,当刻蚀前水气雾流量高的时候,刻蚀前混合气总气流量越高,反应一致性越好。相反,当刻蚀前水气雾流量低的时候,刻蚀前混合气总气流量越低,反应一致性越好。 同样,我们也会看到因素E和F也存在这种相对微弱一点的交叉关系, 即虽然刻蚀气体流速越高,一致性越好,但在刻蚀层薄的5纳米刻蚀改进程度要好于厚层的20纳米,也就是刻蚀气体对薄层刻蚀的影响率大于对厚层刻蚀的影响率。

综合各种因素,根据前后共24个试验拟合好的统计模型,我们知道了在什么情况下,刻蚀的一致性达到总体最好,也就是本机器各操作相关系数最佳的取值点。这是实际生产过程中重要的一步, 对提高半导体集成电路芯片的质量至关重要。

通过演示这个实例,我向大家介绍了如何使用部分因子试验做因素筛选,并按需要扩展试验点的方法。我们还一同了解了如何用开源的R软件设计和分析试验,搞清了几个机器设置参数与刻蚀一致性的关系。

欢迎大家观看根据本文制作的视频。点击以下链接,下载本文用到的R相关代码。

Click link below to download a text file containing the R codes used in the article. 

通过维护电力变压器学习预防性维护方法(之一)

预防性维护是现代工业技术中一种高效的维护方法。借助历史数据和统计模型,可以快速辨别即将损坏的设备,可以大幅降低运营成本。借助开源R软件包,上手简单,方法易学,本文教你分快速入门。

关键词

统计模型,预防性维护方法,相关性距阵图,直方图,电力变压器,设备爆炸的预防,输电线网,供电线路稳定,现代工业加速器,故障概率,统计分析R软件。

一.

普普通通的电力变压器在输电线网中,将高压电降为低压电后传送到普通用户。但是如果不及时维修,它就会爆炸。这是为什么哪?在变压器内,里面装满了散热油。如果没有油,降压产生的巨大热量会让变压器立刻烧毁。但是在高压电环境下,油料会发生化学反应,生成甲烷,乙烷,乙烯,乙炔,氢气,一氧化碳等气体。当这些气体囤积到一定程度时就会引发爆炸。为了保证供电线路稳定,电力公司要在事故未发生时,及时地对变压器检修。 但是,要在成千上万的变压器中找到需要检修的并不容易,不是所有年龄到了的变压器就需要检修。现在我就给大家介绍一种现代工业维护加速器,预防性维护方法。

要研究就一定要有数据。 我们拿到了美国某大电力公司31,031台变压器的检修记录。这些数据记录了变压器的使用时间,是否发生过故障,故障的种类,以及变压器缸中气体的含量。现代仪器可以只提取一点改变压器内部的气体,快速分析出其中的各种气体含量。我们通过分析,要找出哪种气体,或者哪几种气体和变压器故障高度相关。我们还要估测故障概率是如何随时间,随每种气体的变化,而变化的。这可以帮助我们有选择地维修变压器, 而不是只按年龄维修。因为许多变压器即使年龄很高,但只要内部气体还没有达到一定的量,也没有损坏的风险的。

用开源统计分析R软件的“corrplot”包,我们可以很轻松的画一个直观的二位相关系数距阵图。具体的指令可见在结尾下载的R文件。

在这张相关性距阵图上,深蓝色表明正相关,深红色表明负相关。相关的一对变量分别标在对应的行和列上。我们首相应该注意的是与第二行“变压器是否损坏”相关比较高的变量。这几个分别是甲烷,氢气,乙烷和全部气体,也就是说,甲烷,氢气,乙烷和全部气体与变压器损毁正相关性较强。反之,乙烯,乙炔,一氧和二氧化碳含量与变压器是否损毁没有相关性。另外,在各种气体之间,我们也注意到比较高的正相关性。这个土可以很直观地揭示潜在的导致变压器损毁的气体

#################### Readin Rds data
Transformer <- readRDS("data/Transformer.RDS")
my_data <- Transformer[, c(6, 12:19)]

#################### Calculate and display the correlation in correlogram
par(mfrow=c(1,1))
res <- cor(my_data, use = "complete.obs")
corrplot(res, type = "upper", order = "hclust", tl.col = "black", tl.srt = 45)

下面我们再用直方图分析各种气体含量的分布。这里,我们比较一下各种气体含量在损坏变压器和完好变压器中分布的差异。如果哪种气体差异大,那么就说明这种气体可以帮助找到要出故障的变压器。这里红色的是出了故障的变压器,蓝色的是完好的变压器。我们另外画了拟合的密度线来帮助辨识。

#################### histograms of gas levles of transformers (Hydrogen only)
failure <- unlist(my_data %>% filter(Eventual_Failure == 1) %>% select(Hydrogen))
operational <- unlist(my_data %>% filter(Eventual_Failure == 0) %>% select(Hydrogen))

log_failure <- log(failure+2)
log_operational <- log(operational+2)

hist(log_operational, freq=FALSE, col='skyblue', border=F, xlim=c(0, 15), ylim=c(0, 0.4),
     ylab="密度", breaks=seq(0, 15, length.out=16),
     main = "", xlab="log(氢气)")
hist(log_failure, freq=FALSE, add=T, col=scales::alpha('red', 0.25), border=F, 
     breaks=seq(0, 15, length.out=16))
y1 <- density(log_operational, bw=0.7)
y2 <- density(log_failure, bw=0.7)
lines(y1, col = "blue", lty=2, lwd=2)
lines(y2, col = "red", lty=2, lwd=2)
title(main="氢气 (Hydrogen)")

浏览一下我们会发现,有几种气体差异还是比较大的。比如甲烷,发生故障的变压器甲烷含量多介于7-9之间,而完好的多介于0-5之间;又比如乙烷,损坏的变压器乙烷含量多介于5-9之间,而完好的基本小于5。氢气,乙炔和总气体也略微可以分出区别。而一氧化碳,二氧化碳,乙烯,乙炔好像区别不大。这样电力公司只要测量一下甲烷,乙烷,氢气的含量,就可以大概知道变压器是否需要维修了。比如甲烷,如果含量在7-9之间,就应该维修。如果是乙烷,在5-7之间就应该检修了。

总结

但是这样做比较笼统,不够精确。比如,有的变压器即使甲烷含量比较高但依然可以正常工作,乙烷大于5也没有损坏。相反,不少变压器还没有达到某气体的危险程度就已经坏了。有一个重要因素我们还没有考虑进去,这就是变压器本身的使用年龄。在接下来的视频中,我们将介绍如何通过一个统计模型,同时使用年龄和各种气体含量,来更准确地估测设备的故障概率。

Design of Experiment (DOE) Response Surface Methods (RSM) to Optimize Wafer MOSFET Polysilicon Gate Etching Production with R in 10 Minutes

In integrated circuit (IC) manufacturing, engineers need to ensure the polycrystalline lines on the wafer are perfectly straight up. There are millions and millions of these tiny lines with a square millimeter area, and these billion lines are created together in a plasma chamber. Today we will introduce an experiment method to find the best equipment settings, the method of Response Surface.

Reactive-ion etching (RIE) is a microchip silicon wafer etching technology in chip fabrication. It uses chemically reactive plasma to remove patterned silicon dioxide “film” deposited on wafers. The plasma is generated under a low-pressure vacuum by Radio Frequency electromagnetic field, with chemical gas vapor injected in. The right combination of Radio Frequency (RF) electric field power, the pressure of the vacuum, and hydrogen bromide (HBr) gas injected into the etch chamber are the key factors lead to the quality silicon wafer. Engineers will need to ensure the profile of the polycrystalline silicon gates isotopic, that is, the walls of the etch lines should be vertically perpendicular to the substrate in all directions.

In this study, the engineers would like to find the right processing settings for this etching equipment. As this is a million-dollar business, we are going to help them, using design of experiment methods.

Data and sample R commends (user needs to load data to R)

View the video

Data Analysis Tools that Facilitate Knowledge Discovery – New Data Processing Capabilities based on R

2019-10-06


Regular Expression and Text Pattern
    • Working with “Regular Expression” (regex) is mostly “Pattern Matching”
    • Regex used in R may be found using “?regex” in R

 


dplyr

The “grammar of data manipulation”, a very useful extended basic functionality from basic R, worth very careful and skillful use of it, here is the link to the package doc.


tibble
  • Filter, Select, Create (mutate), Arrange (order by) columns, very much similar to Excel GUI process, consistent and easy to follow
R and Machine Learning
  • Best Machine Learning Packages in R (2016-06), introduces some basic stellar features of popular R packages. Author mentioned packages

    dplyr, ggplot2, reshape2 as data scientist basic tools. “reshape2” mostly a data set transformation into usual analytical format, where SAS had been addressing for decades, see here for a basic intro.


Practical Challenges in Workforce Analysis
  • Search multiple Excel files, export rows containing particular regex (words group pattern) in any variable; also create a column that has the name of the Excel file so checks can be made if correction or further study are needed.
  • Select a column of a tibble based on regex pattern
  • Construct a meta data base with the basic identifier and all essential analysis variables. Or any variables that may be of interest for certain modeling requirement. This may be done by getting the file names (fileNames <- Sys.glob(“*.csv”)), then process the file by searching column names using regex
  • Challenges in creating these regex:
    • race status with variations of spelling, such as “White” vs “W”
    • keywords used in job title, or any classification similar to job title, such as job group, job function, but not department, i.e., “Research associate”
    • variable name that may indicating base salary, such as “Salary”, “Annual Salary”
  • Regex for
    • E-mail Addresses
    • Postal Codes
    • Telephone Numbers
    • Dates and Times
    • Social Security Numbers: this may be helpful, a little complicated