孫立書
摘 ?要: 針對傳統(tǒng)吹風系統(tǒng)不能根據(jù)環(huán)境溫度和光照強度實現(xiàn)智能化多檔位調(diào)整的缺點,設(shè)計一款基于奇異值分解的樣本學習的新型多檔位自動調(diào)節(jié)智能吹風系統(tǒng)。該系統(tǒng)以STM32F407ZGT6最小系統(tǒng)為控制核心,采用溫度傳感器和光敏二極管實時采集環(huán)境溫度和光照強度。利用奇異值分解的最小二乘算法,根據(jù)周圍的溫度與亮度參數(shù),利用最小二乘方法做線性擬合,預(yù)測出當前所需要的電機轉(zhuǎn)速。實驗結(jié)果表明,該系統(tǒng)能夠根據(jù)用戶習慣,隨著環(huán)境溫度和光照強度,實現(xiàn)多檔位智能調(diào)速,以滿足不同用戶的需求。
關(guān)鍵詞: 智能吹風系統(tǒng); 奇異值分解; 多檔位調(diào)整; 最小二乘算法; 樣本學習; 線性擬合
中圖分類號: TN915?34 ? ? ? ? ? ? ? ? ? ? 文獻標識碼: A ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號: 1004?373X(2019)10?0171?04
Design of intelligent embedded blowing system based on SVD sample learning
SUN Lishu
(Jiangsu University of Science and Technology, Zhangjiagang 215600, China)
Abstract: In allusion to the disadvantage that the traditional blowing system cannot realize intelligent multi?switching adjustment according to the environmental temperature and illumination intensity, a new multi?switching automatically?adjusted intelligent blowing system based on sample learning of singular value decomposition (SVD) is designed. In the system with the STM32F407ZGT6 minimum system as the control core, the ambient temperature and illumination intensity are collected in real time by using the temperature sensor and photosensitive diode. In accordance to the ambient temperature and luminance parameters, linear fitting is conducted by using the least squares algorithm based on SVD, so as to predict the currently?needed rotation speed of the motor. The experimental results show that the system can realize multi?switching intelligent speed adjustment with variation of ambient temperature and illumination intensity according to user habits, so as to meet the needs of different users.
Keywords: intelligent blowing system; singular value decomposition; multi?switching adjustment; least squares algorithm; sample learning; linear fitting
0 ?引 ?言
隨著人工智能技術(shù)的發(fā)展,人們對家用電器設(shè)備的使用要求越來越高,不僅要功能強大,而且要更加智能化、節(jié)能。針對以往家用電吹風系統(tǒng)功能單一,不能根據(jù)環(huán)境溫度和光照強度實現(xiàn)智能化多檔位調(diào)整的缺點,設(shè)計一款基于SVD樣本學習,能根據(jù)環(huán)境溫度和光照強度實現(xiàn)多檔位自動調(diào)節(jié)的電機轉(zhuǎn)速系統(tǒng),從而實現(xiàn)智能吹風系統(tǒng)的設(shè)計?;跍囟群土炼瓤刂频闹悄苷{(diào)速吹風系統(tǒng),即電機的轉(zhuǎn)速是由外界實時溫度和太陽光亮度進行智能調(diào)節(jié)。將外界溫度、太陽光的亮度與電機轉(zhuǎn)速的對應(yīng)關(guān)系表示成:V(電機轉(zhuǎn)速)=F(T&BRI)。
在以往的設(shè)計中這種對應(yīng)關(guān)系是設(shè)計者在軟件設(shè)計時就設(shè)定好的,無法更改。比如設(shè)置溫度 29~38 ℃之間平滑對應(yīng)電機速度的1~10檔,自動調(diào)速。但是這種智能調(diào)速方式不一定適用于所有人(有的人可能在 33 ℃就希望電機打到10檔),如果采用手動方式調(diào)節(jié)電機轉(zhuǎn)速,就顯得不智能。因此設(shè)計開發(fā)一套能夠根據(jù)用戶習慣,隨著環(huán)境溫度和光照強度,實現(xiàn)多檔位智能調(diào)速,以滿足不同用戶需求的吹風系統(tǒng)就顯得非常的必要。為了能夠讓溫度與電機速度的對應(yīng)關(guān)系能夠智能適應(yīng)各種用戶需求,就必須采用一種算法使得電機轉(zhuǎn)速和溫度的對應(yīng)關(guān)系是根據(jù)用戶習慣來確定的(機器學習)。
1 ?系統(tǒng)設(shè)計原理
本系統(tǒng)通過機器學習[1],即概率的方式,運用隨機樣本建立起一個待求參數(shù)的數(shù)學映射模型,運用此模型來預(yù)測輸出空間的值。機器學習包含回歸分析、分類器等算法,本文采用機器學習中的回歸分析。其采用基于SVD(奇異值分解)的最小二乘算法,根據(jù)周圍的溫度與光照強度參數(shù),并利用最小二乘的方法做線性擬合,從而預(yù)測出當前所需要的電機轉(zhuǎn)速。即外部溫度與光照強度到電機 PWM 占空比的映射,則是通過奇異值分解(Singular Value Decomposition)實現(xiàn)的最小二乘方法(Ordinary Least Square)。建立針對符合樣本特征的模型,通過建立的模型進行電機轉(zhuǎn)速預(yù)測。此系統(tǒng)僅僅利用線性映射做高維的線性擬合,模型選擇線性函數(shù)。對于不同溫度以及不同時段(光照強度)下每個人喜歡的吹風系統(tǒng)速度不同,這個抽象的特征則可以通過調(diào)節(jié)人給定的樣本大體反映,可以保證樣本的有效性。該系統(tǒng)的溫度通過溫度傳感器來采集,亮度通過光敏二極管來采集,電機的轉(zhuǎn)速(V)通過PWM控制。設(shè)電機轉(zhuǎn)速和溫度以及亮度之間的表達式滿足:
[PWM=θ0+θ1·Temp+θ2·Brig] ?(1)
式中,[θ0,θ1,θ2]三個參數(shù)是由用戶操作后通過 SVD 最小二乘算法確定的。此系統(tǒng)利用機器學習算法,達到了智能化控制的目的。預(yù)測的主要過程分為兩個階段:學習過程與執(zhí)行過程。
1.1 ?學習過程
該系統(tǒng)模型是三維空間的一條超直線,由線性代數(shù)可知,當樣本數(shù)量大于參數(shù)數(shù)量時,沒有標準解,但存在最優(yōu)解,也就是最優(yōu)的系數(shù)[θi],包含這幾個系數(shù)的確定模型,在給定樣本輸入空間的參數(shù)后,能最近似地表示出樣本輸出空間。通過回歸方法,以及從每個人的喜好中獲得以下形式的樣本,如下:
[Tempi,Brigi,PWM(i)] ? (2)
式中,上標i表示第i個樣本,i的個數(shù)一定要大于參數(shù)個數(shù)。學習出以下線性模型中[θ0,θ1,θ2],如下:
[P=PWM=θ0+θ1·Temp+θ2·Brig] ?(3)
不同的樣本學習出的參數(shù)不同,學習出的常量參數(shù)記為[θ0,θ1,θ2]。全局最近似是m個樣本根據(jù)模型預(yù)測的輸出空間值和樣本輸出空間值之間誤差的歐氏距離最小,[Dglobal=b-Aθ=i=1m(P(i)-f(xi))2]。其中[b=P(1)P(2)P(3)…P(m)T] , [A=1Temp(1)Brig(1)???1Temp(m)Brig(m)] , [θ=[θ0,θ1,θ2]T],[x(i)=[Temp(i),Brig(i)]] 。要使[Dglobal]最小,根據(jù)向量求導法則,且根據(jù)凸函數(shù)的性質(zhì),所求極值點為最小值點,即[?Dglobal?θ=0],可以導出:
[θ=(ATA)-1ATb] (4)
則可以求出最優(yōu)值[θ]。
1.2 ?執(zhí)行過程
該過程是利用[θ0,θ1,θ2]這3個參數(shù)以及當前的溫度亮度狀態(tài),得出經(jīng)過預(yù)測的 PWM 的占空比,進而調(diào)節(jié)電機的轉(zhuǎn)速。
[PWMnow=θ0+θ1·Tempnow+θ2·Brignow]
式中:[PWMnow]指通過學習出參數(shù)的模型預(yù)測出的占空比;Tempnow指當前周圍的溫度;Brig now指當前周圍的亮度, 此學習系統(tǒng)輸入空間是二維,分別是溫度與亮度,輸出空間是一維,是 PWM 的占空比。在不同的樣本下,會出現(xiàn)不同的[θi]的組合,進而在一個三維空間中,PWM 的占空比按著學習出的模型參數(shù),以及外部的溫度與亮度的參數(shù)變化而變化,從而達到了根據(jù)環(huán)境的變化(輸入空間值)以及人為的樣本學習(參數(shù))來預(yù)測最終的電機速度,實現(xiàn)了簡單的智能化。
1.3 ?最優(yōu)值[θ]的求解
利用最小二乘法求[θ]的最優(yōu)值。由于數(shù)學運算和數(shù)值計算之間的差別,導致算法精度降低,因此使用奇異值分解計算偽逆[2?4]。利用偽逆計算最小二乘法[3],[θ=VΣ-1UTb],其中,[U,Σ,V]是奇異值分解A得出來的3個矩陣,[Σ-1]是[Σ]的偽逆矩陣。根據(jù)此公式,利用矩陣乘法運算,即可計算出最優(yōu)值。文獻[2]中給出奇異值分解的多種算法,在此,選取兩個過程來計算奇異值分解(“+”為非零元素):
1) 首先將任意m×n矩陣A通過左右 Householder變換[5?6] ,變換成雙對角矩陣J。其中[PprodAQqrod=J],[Pprod]與[Qqrod]均為單位正交矩陣,因此:
[A=PTprodJQTprod] (5)
式中:[A=+++++++++];[J=++00++00+]。
2) 計算JTJ與JJT,這兩個矩陣都是三對角矩陣,且是對稱陣。
利用旋轉(zhuǎn)變換[7?10]的算法,計算出JTJ與JJT的特征值與特征向量[11?14],并從大到小進行排序,JTJ與JJT的特征值相同,JTJ的特征向量是J的右特征向量V1,JJT的特征向量是J的左特征向量U1。對奇異值矩陣的對角線進行排序,并且同時改變左右特征向量的順序,與之前的 Householder 變換矩陣相乘,得到雙對角矩陣的 SVD:
[J=U1ΣVT1] (6)
3) 將式(6)代入式(5)得到:[A=PTprodU1ΣVT1QTprod] ,令 [U=PTprodU1],[V=QprodV1],則:
[AI=VΣUT] (7)
根據(jù)奇異值分解的結(jié)果做偽逆,如下:
[θ=AIb=VΣUTb] (8)
詳細證明在文獻[2]。
2 ?系統(tǒng)硬件設(shè)計
該系統(tǒng)主要包括電源部分、系統(tǒng)控制核心和顯示部分、傳感器部分、電機驅(qū)動與電機部分。電源部分包括7.2 V電池、LM1117?5 線性穩(wěn)壓芯片(將7.2 V電源轉(zhuǎn)換成5 V電源)、LM1117?3.3 線性穩(wěn)壓芯片(將7.2 V電源轉(zhuǎn)換成3.3 V電源)。系統(tǒng)采用2.8寸TFTLCD液晶屏作為GUI 界面顯示,采用STM32F407ZGT6作為控制核心,選用F4系列主要為了打開FPU模塊加快浮點運算[15],采用溫度傳感器 DS18B20采集溫度,采用光照傳感器光敏二極管采集光照亮度信號,采用BTN7971驅(qū)動芯片,直接驅(qū)動大電流電機RS540?SH。系統(tǒng)硬件實物圖如圖1所示。系統(tǒng)I/O分配表如表1所示。
3 ?系統(tǒng)軟件設(shè)計
從機器學習原理來看,該系統(tǒng)的主函數(shù)包括學習過程與執(zhí)行過程。學習過程即先進行學習,學習出[θ],再利用學習出的模型進行結(jié)果預(yù)測,對應(yīng)主程序流程圖為圖2的左側(cè)分支;執(zhí)行過程是直接使用系統(tǒng)中給出的樣例[θ]求結(jié)果,對應(yīng)主程序流程圖為圖2的右側(cè)分支。
圖2 ?程序主程序流程圖
4 ?系統(tǒng)調(diào)試與實驗結(jié)果
打開電源,校正電阻屏幕,出現(xiàn)模式選擇界面,選擇執(zhí)行模式,利用樣例預(yù)測 PWM。樣例一模型的特征是當溫度和光照強度變大的時候,電機轉(zhuǎn)速變快;樣例二模型的特征是當溫度和光照強度變小時,電機轉(zhuǎn)速變慢。按下 Pause暫停,自由選擇 Sample1 或Sample2 來改變模型參數(shù);然后按下 CONT 繼續(xù)執(zhí)行程序,使得電機轉(zhuǎn)速跟著當前環(huán)境的溫度與光照強度進行變化,如圖3所示。返回模式選擇界面,選擇學習模式,如圖4所示,上方Temp為實時溫度,Brig是實時光照強度,PWM 通過下方的進度條進行調(diào)節(jié)。給定樣本的輸出空間參數(shù),當參數(shù)合適,按下Record按鈕記錄下當前的數(shù)據(jù),并且此時只有按下 CONT 按鈕,才能繼續(xù)進行記錄與擦除。當記錄數(shù)據(jù)不當時,可以按下Erase按鈕消除最近一次的記錄,同時也要按下CONT鍵才能繼續(xù)記錄與擦除。調(diào)節(jié)傳感器狀態(tài),調(diào)節(jié)PWM進度條,給定4個樣本,經(jīng)過多次記錄與擦除修改,給出有一定線性關(guān)系的樣本,如圖5所示。當4個樣本輸入結(jié)束后,進行最小二乘運算,結(jié)束后顯示COMPLETE字樣,自動進入執(zhí)行模式,利用樣本學習出的模型參數(shù)進行預(yù)測,Temp是當前的溫度值,Brig是當前的亮度值,PWM是當前通過樣本學習預(yù)測出的占空比,而中間的式子是初始模型。預(yù)測界面如圖6所示。根據(jù)系統(tǒng)實驗結(jié)果可知,系統(tǒng)最終給定的樣本有四種大體特征,即:溫度升高,光照強度增強,電機轉(zhuǎn)速變快;溫度升高,光照強度減弱,電機轉(zhuǎn)速變;溫度降低,光照強度增強,電機轉(zhuǎn)速變快;溫度降低,光照強度減弱,電機轉(zhuǎn)速變慢。每種特征都對應(yīng)無窮多種小特征,即溫度或光照強度的變化率對應(yīng)電機轉(zhuǎn)速變化的趨勢,即靈敏度。這是一般吹風系統(tǒng)做不到的,即該系統(tǒng)能根據(jù)用戶習慣,隨著環(huán)境溫度和光照強度的變化,實現(xiàn)多檔位智能調(diào)速。這也正是此吹風系統(tǒng)的優(yōu)勢所在。
5 ?結(jié) ?論
本文主要利用奇異值分解的最小二乘算法做線性擬合,根據(jù)當前環(huán)境溫度和光照強度,預(yù)測當前需要輸出的PWM的占空比,進而控制電機的輸出轉(zhuǎn)速。實際測試表明,該系統(tǒng)能夠根據(jù)用戶習慣,隨著環(huán)境溫度和光照強度的變化,自動實現(xiàn)電機轉(zhuǎn)速的調(diào)整,以滿足不同用戶的需求。
圖5 ?給入樣本的學習模式界面
圖6 ?預(yù)測界面
參考文獻
[1] Anon. UFLDL tutorial. [2013?04?07]. http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial.
[2] GOLUB G H, KAHAN W. Calculating the singular values and pseudo?inverse of a matrix [J]. SIAM journal on numerical analysis, 1965, 2(2): 205?224.
[3] KALMAN D. A singularly valuable decomposition: the SVD of a matrix [J]. The college mathematics journal, 1996, 27(1): 2?23.
[4] GOLUB G H, LOAN C F V. Matrix computations [M]. 3rd ed. Baltimore: John Hopkins University Press, 1996.
[5] PRESS W H, FLANNERY B P, TEUKOLSKY S A, et al. Numerical recipes in C [M]. Beijing: Publishing House of Electronic Industry, 1992.
[6] PRATA S. C primer plus [M]. 6th ed. London: Pearson, 2014.