Injection Molding, Process Control, Monitoring, and Optimization

阅读 Injection Molding, Process Control, Monitoring, and Optimization过程中的笔记。言语粗糙,非常混乱,只是疏通自己的思路。

1.1.4.3 Visco-elastic model(P19)

其实这个最重要的不是这个数学表达,而是这个dual nature,又有spring的特点,又有damper的特点

然后这个ode的sum那边是0,另外一边就变成了可以解的ode

Maxwell和Voigt的两个model的区别在于串联还是并联spring和damper。两个都可以用ODE解出来

2.3.1 Model Estimation (P45)

前面讲到了adaptive control里面的self-tuning regulator

补充一下ARX model (AutoRegressssive with EXtra input)(linear)还有non linear ARX model

这里上面介绍了ARX model,下面介绍了怎么根据这个model进行adaptive control

简单来说就是通过最小化 $e(t)^2$ (最小二乘法),然后得出了θ, K, P三个套娃表达式,套娃又有ROT的解法

下面就是具体的pole-placement design(说实话我还不太理解这个是啥)

作为一个perfect controler:

input: $U_c$ (target), $y$ (feed back output),
output: u是controller output,
target: 找到最好的R, T, S,通过计算 $Ru=TUc-sy$ 和输出u,使得y接近我们设定的 $u_c$

方程可以写成AR+BS=Ac(Ac可以说是Uc的另外一种写法,结合了Process dynamic)

这事实上变成一个丢番图方程,需要用到欧几里得法(辗转相除法)。


另外一个问题:刚刚我们讨论是perfect controller,但是我们的controller逃不开PID,PID里的I有一个integral windup问题需要解决。

对策:update when there is excitation。比如说 $θ(t)=θ(t-1)+$ blablabla

2.3.4.2 Adaptive feed forward control

前面的方法有一个问题就是slow response,但是feed forward就可以解决这个问题

然后给出了2.31这个feed forward controller这个式子,一个input是 $Uc$ (set point),output是 $u{ff}$ ,中间的参数叫feed forward proportional gain $Kf$。简单来说就是 $u{ff}=K_fU_c$(然后还要考虑个time delay nd)。

这样可以把原来的100ms的delay缩短到10ms。

这里有injection molding的一个特殊性,比较与纯粹的adaptive feed back control,我们有预先设置好的set point, 所以我们可以每次改变set point之后刚刚开始运转的时候用feed forward来减少delay。

2.4 Model Predictive Control (MPC)

介绍了另外一种控制模型叫做MPC,MPC大概的方法就是根据过去的表现来最优化将来的控制。

详细介绍了一种分支叫做GPC。

只要使得cost function最小化的u就是我们要的output。这让我联想到了image processing里面的snake还有expectation maximization。

和上面说的pole placement control( with feed forward to compensate initial slow response)对比,GPC有这些特点:

  • GPC需要决定三个参数还有控制范围(horizon),但是这些参数的决定没有很系统的方法,只有经验的ROT
  • GPC计算时候需要计算矩阵的逆,矩阵大小会影响反应时间
  • GPC可以用于复杂的模型,对nonlinear、multivariable也很适用

对比pole placement control的优点

  • pole对mismatch很敏感(例如对time delay的mismatch,一错就玩完),但是GPC相比起来比较robust(对各种温度各种材料都非常适用)

2.5 Fuzzy Systems

一个关于Fuzzy logic的介绍视频

很多时候信息不是越多越好,为了最优化做出决断的效率,把信息模糊化也是一个手段。

这里用来V/P作为一个例子,先把pressure signal拉进来经过low pass filter,然后进行求导,可以组合出两个input给到controller,而controller可以直接从表格mapping出来一个output,这个output直接了断的告诉说现在这个情况是太大太小还是刚刚好。

这里还需要注意的一个问题是false detection。

3 Learning type control

简单来说就是把error放在u(t)表达式里面,用PID来iteration不断减小e(也需要添加time delay,会多 $t_d$ ,ξ,$h$这些参数)

但是这个方法有缺陷,就是要调节learning rate,学太快怕太sensitive,学太慢收敛时间太长,所以就有optimal iterative learning control

optimal的方法真的没怎么看懂,感觉顺序有点乱,大概的思路还是和前面的costing function类似,定义了一个quadratic performance index $J$,然后就求$J$关于$u$的偏导,得到一个$u$的表达式,

最乱的最看不懂的地方是causal algorithm,先说明了一下求出来的这个表达式not causal,然后又说如果引入了x和y就causal了(但是我也不明白causal不causal对这个算法有什么影响,或许是为了整个理论数学上的严谨)。

这里要注意的是,J和u的表达式中有weighting matrices R和Q是arbitrary matrices,两个对应的eigenvalue,λ和μ的比值ρ是影响这个系统的关键。如果ρ大就说明:

  • first trial e0 reduce, quick convergence
  • stronger feed forward action, less sensitive to variation of output

另外注意λ和μ比较平行同增同减

4 2D Control

2D说的是时间和批次两个维度,一般的2D都是网状的(比如在学Heat and Mass Transfer的时候做的2D Plate Heat Transfer),但是这个2D是S形蔓延的,所以有不同的处理方式。这里介绍了两个方法:

  1. 2D Generalized Predictive Iterative Learning Control

  2. 2D dynamic matrix control

简单来说就是综合利用之前的信息来对下一个操作进行预测和判断来进行操作的。这个方法主要是运用多项式,而下面的2D dynamic matrix control则是用matrix。

最后都是最小化cost function来进行controler design。

5 Statistical Process Monitoring

Process Monitoring就是诊断和抓虫。怎么判断是虫,就要我们的model根据过去的数据建模然后对新数据进行判断,在不在我们的合理区间内。

最早把统计方法引入Process Control的人是Shewhart,他弄了一个Shewhart Chart,其实就是横坐标是sample number纵坐标是data然后列出来,但是因为注塑变量很多,所以单变量不好使,于是双变量就可以搞出来2D的multivariate Chart,以此类推。

数学上的方法是Principla Component Analysis(PCA) & Partial Least Square(PLS)。我们的data point可以存进叫做X的matrix里面,然后我们decompose一下这个matrix,有

这里t和p是orthogonal的,$t_j,p_j$ 其实就相当于 $X$ 的eigenvalue和eigenvector。如果按照大小顺序排列的话,eigenvalue比较大(e.g. $t_1$ )的其实就是所谓是Principal Component(PC),eigenvalue比较小的其实只是noise,所以我们可以关注最大的。

这个概念其实在学image processing的face recognization的时候也有讲过。这个视频也解释得不错。

PLS就是把$X,Y$两个变量的PC拿出来做最小二乘,这样来建立两个set之间的联系。

实际应用上,上面2D Control是2D,这里我们从2D到了3D,而这里除了批次和时间的第三个维度,就是不同的变量。 然而直接处理3D数据也很麻烦,所以我们还是展开到2D,用的是batch-wise unfolding(每一行都是一个batch的完整数据)

6 Phase-Based SPM

在上面的SPM的基础上,我们注意到注塑的流程是分不同阶段的,不同阶段需要控制的变量也不一样,也就是说在同一个批次内我们还要再分阶段。但是不同阶段的时间长度也可能不一样,那么我们要怎么样判断我们的data point是在哪个阶段呢。这里用的就是 k means clustering algorithm,这个介绍视频很清楚地介绍了这个方法。

然后介绍了区分错误的几种可能。材料、传感器、check-ring(注塑机的前端的一个阀门)出现问题都会影响数据。

另外一个问题是,如果每个batch的对应phase长度不一样怎么办。整体上来说是两个办法,一个是切短,一个是补长(投影),当然注意要每个phase单独拎出来看。

这里有一个概念是NM normalization, 是Nomikos 和 Macgregor剔出来的一个 MPCA based process monitoring strategy,其实就是 $\tilde{x}{i,j,k} = \frac{x{i,j,k} - \bar{x}{j,k}} {s{j,k}}$ ,其中x bar是算术平均值,s是标准差