MMSE与PI控制器在过程质量控制中的应用研究

需积分: 0 0 下载量 80 浏览量 更新于2024-09-09 收藏 194KB PDF 举报
"这篇论文探讨了在过程质量控制中应用MMSE(最小均方误差)控制器和PI(比例积分)控制器的方法。作者是王海宇、徐济超和杨剑锋,分别来自西北工业大学管理学院和中原工学院系统与工业工程研究中心。论文发表于2006年6月的《系统工程理论与实践》期刊,文章编号100026788,属于T类中图分类号,文献标识码为A。 在摘要中,作者指出他们研究了这两种控制器用于自动过程调整后的监控问题。通过对过程输出和调整量两种数据流建立的控制图进行比较分析,他们得出了针对每种控制器的最优监控策略。控制图是质量控制中的重要工具,用于检测生产过程是否偏离预定标准。MMSE控制器是一种优化算法,目标是最小化预测误差的平方和,而PI控制器则是一种常见的闭环控制系统,结合了比例和积分作用以改善系统的稳定性。 论文的关键点可能包括: 1. **自相关过程**:在实际生产过程中,输出值往往具有一定的自相关性,即当前状态受到过去状态的影响。理解和处理这种自相关性是设计有效监控策略的基础。 2. **平均运行长度(ARL)**:这是控制图性能的一个关键指标,表示在没有真正变化的情况下,平均需要多长时间才会触发错误的信号。较高的ARL意味着更少的假阳性,但可能导致真正的异常被忽视;较低的ARL则可能导致频繁的误报警。 3. **MMSE控制器**:在质量控制中,MMSE控制器可以提供最佳的预测性能,通过最小化预测误差的均方值来优化过程参数。 4. **PI控制器**:PI控制器是一种经典的控制策略,通过比例系数调整即时响应,积分项消除稳态误差,适合许多工业过程的控制需求。 5. **监控策略**:论文中提出的最优监控策略可能涉及如何根据MMSE和PI控制器的特性,选择合适的控制图类型和参数设置,以提高监控效率和准确性。 6. **实例分析**:论文通过一个简单算例展示了这些理论概念的实际应用,帮助读者理解如何在具体情境下运用这两种控制器及其对应的监控策略。 这篇论文对过程质量控制领域具有重要价值,为使用MMSE和PI控制器的工业过程提供了有效的监控方法,有助于提升生产效率和产品质量。"

clear all; Tx_n = 2; Rx_n = 2; %---------------SNR vector------------- SNRindB = 2:1:10; SNR = 10.^(SNRindB/10); %------------modulation----------------- L = 20000; BitPerSymbol = 2; s0 = randi(1,1,L); h_1 = pskmod('M',2^BitPerSymbol,'gray','InputType','Bit'); s = modulate(h_1,s0.').'; %-------------seperation-------------- s1 = zeros(Tx_n,length(s)); for ii = 1:Tx_n:(length(s)-1) %stbc s1(1,ii) = s(ii); s1(2,ii) = s(ii+1); s1(1,ii+1) = conj(s(ii+1)); s1(2,ii+1) = -conj(s(ii)); end L1 = length(s1(1,:)); %----------noise and channel-------------- S = zeros(2, 2); S1 = zeros(1, L1); rx = zeros(L, 1); BER = zeros(length(SNR), 1); SER = zeros(length(SNR), 1); for ii = 1:length(SNR) sigma = 1/(sqrt(2*SNR(ii))); for iii = 1:2:L1-1 noise = sigma*(randn(Rx_n,1)+1i*randn(Rx_n,1)); H = sqrt(0.5)*(randn(Rx_n, Tx_n) + 1i*randn(Rx_n, Tx_n)); %----------add noise------------------------ R1 = H*s1(:,iii)+noise; %接收信号1,Rx_n * 1 R2 = H*s1(:,iii+1)+noise; %接收信号2,Rx_n * 1 %----------receive MMSE------------------- hh = H(:,1).*conj(H(:,1)) + H(:,2).*conj(H(:,2)); S_t1 = conj(H(:,1)).*R1-H(:,2).*conj(R2); S_t2 = conj(H(:,2)).*R1+H(:,1).*conj(R2); S(:,1) = S_t1./hh; S(:,2) = S_t2./hh; for si = 1:1:Rx_n S1(1,iii) = S1(1,iii) + S(si,1); S1(1,iii+1) = S1(1,iii+1) + S(si,2); end S1(1,iii) = S1(1,iii)/Rx_n; S1(1,iii+1) = S1(1,iii+1)/Rx_n; end h_2 = modem.pskdemod('M', 2^BitPerSymbol,'SymbolOrder','gray', 'OutputType', 'Bit'); rx = demodulate(h_2,S1.'); remod = modulate(h_1, rx); %------------calculate ber--------------------------- SER(ii,:) = symerr(remod.',s)/L1; BER(ii,:) = biterr(rx.',s0)/L; end semilogy(SNRindB,BER,'g-^'); hold on; semilogy(SNRindB,SER,'m-^'); grid on; xlabel('SNR(dB)'); ylabel('BER'); title('STBC SNR-BER curve'); legend('BER 2x1','SER 2x1','BER 2x2','SER 2x2');代码有误,帮忙修改一下

2023-05-30 上传