自整定

在控制理论中，自整定（self-tuning）可以在滿足最大化或是最小化的情形下，將其內部運行參數進行最佳化，一般會是進行效率的最大化，或是錯誤的最小化。

自整定及自動整定（auto-tuning）有時會指同一個概念，許多軟體研究群體認為auto-tuning是較正確的名詞。不過在變頻器領域中，自動整定（auto-tuning）有時只是馬達參數自學習，利用測試信號及演算法量測馬達參數，不一定包括內部運行參數的最佳化。

自整定系統一般會包括非線性自适应控制。數十年以來，自整定系統已經是航太產業中的標誌，這類的反饋在非線性過程的非常重要。在電信產業中，常使用，其中會動態的調整系統參數，讓效率及強健性都可以最大化。

例子
在運算上的自整定範例包括：
传输控制协议 （Transmission Control Protocol，TCP）
Microsoft SQL Server（較新的版本才支援）
（西方最快速的傅里叶变换）
（自動整定的線性代數軟體）
libtune（Linux的可整定函式庫）
PhiPAC（精简指令集的自整定線性代數軟體）
（以機器學習為基礎的自整定編譯器）

自整定的性能優勢非常的大。美國電腦科學家Jack Dorr認為自整定提昇性能的數量級大約會是三倍左右。

數位自整定控制器是硬體層次自整定系統的例子之一。

架構
自整定系統一般包括四個元素：預期、量測、分析及動作。預期會描述系統在給定exogenous條件下應有的行為。
量測會搜集有關條件及系統行為的資料。分析會判斷系統行為是否符合預期，後續應該進行哪些行動。常見的動作是搜集資料，並且動態調整系統的組態。

自整定（自適應）的自動控制系統是可以適應隨機變化條件的系統，其作法是自動調整其參數，或是自動決定其最佳組態。在不是自整定的自動控制系統中，有許多參數會影響系統穩定性及控制品質，可以手動進行調整。若在運作條件大幅變化時（例如輸入訊號或是受控體特性改變時），參數仍維持相同的值，其控制性能可能會退化，甚至不穩定。手動的參數調整很麻煩，而且有時是不可行的。這種情形下使用自整定的自動控制系統，不但有在經濟上或使用方便性的考量，這也是唯一可以實現強健控制的方法。自整定系統可以包括參數測定（parameter determination），也可以不包括參數測定。

在有參數測定的控制系統中，控制水準是靠自動尋找一組最適的參數值來實現的。控制水準是一個概略性的特徵，多半不太能表示成基本參數的函數，就算有，也可能是一個複雜函數，甚至沒有已知的函數可以表示。此特徵可能會用直接量測的方法來取得，也可能根據基本參數再作計算而得。之後會暫時變化這些參數，利用參數變化後產生的控制水準震盪來找出有關參數最適值（也就是讓控制水準出現極值）的資訊。若控制水準的值已不在理想的極值上，需要再調整參數使控制水準回到極值，或是可以到不同條件下的極值。有有參數測定的控制系統就算外部環境變化很大，也可以可靠的運行。

在實際系統中，若控制系統有參數測定機能，需要一段時間才能找到最佳的調整值，因此其需要的時間會比較長，可能會比實際應用可接受的時間要長。若是系統沒有參數測定機能，就沒有這個缺點。這類系統會使用一些量測控制水準的方式（例如某控制參數的一階時間微分）。利用自動整定讓控制水準維持在一定範圍內。有一些方式可以在不測定參數的情形下進行自整定，主要是以控制暫態過程，頻域特性等為主。這些都是閉迴路自整定系統的例子，若控制水準偏離允許範圍，系統會自動修正參數來調整控制水準。相反的，開迴路自整定系統是有些參數補償的機能，其輸入訊號是受控的，依照一定程序來調整系統參數，這類的自整定可以接近即時動作。不過為了要實現自整定，仍需要去瞭解系統運作的環境，並要對環境對控制系統的影響有足夠的瞭解。

實務上，自整定會有用特殊的硬體或是適應性軟體演算法來實現。以下是一些自整定（適應性）軟體的特點：

幫助控制系統的關鍵流程
達到最佳運行的條件
促进控制系统的设计一致性
縮短系統測試及調適的時間
在讓系統更加強健的過程中，讓技術協助支援的比例可以下降
節省系統調適需要的人員及時間

相關條目
自適應控制
PID控制

腳註

文獻
 Big Soviet Encyclopedia, Self-Tuning Systems

外部連結 
 Using Probabilistic Reasoning to Automate Software Tuning
Frigo, M. and Johnson, S. G., "The design and implementation of FFTW3", Proceedings of the IEEE, 93(2), February 2005, 216 - 231.   .
 A Collaborative guide to ATLAS Development 
 Optimizing Matrix Multiply using PHiPAC: a Portable, High-Performance, ANSI C Coding Methodology 
 Faster than a Speeding Algorithm
 Rethinking Database System Architecture: Towards a Self-tuning RISC-style Database System 
 Self-Tuning Systems Software 
 Microsoft Research Adds Data Mining and Self-tuning Technology to SQL Server 2000
 A Comparison of TCP Automatic Tuning Techniques for Distributed Computing
 Tunables library for Linux 
 Digital Self-tuning Controllers

控制工程
控制理论
电子反馈