?

一種光譜擬合系統的設計與實現

2024-03-27 16:21劉錦濤余向陽蔡燁帆洪偉檳
現代計算機 2024年1期
關鍵詞:驅動電流上位串口

劉錦濤,羅 莉*,余向陽,蔡燁帆,洪偉檳

(1. 廣東工業大學物理與光電工程學院,廣州 510000;2. 中山大學物理學院光電材料與技術國家重點實驗室,南昌研究院,廣州 510000;3. 廣州光信科技有限公司,廣州 510000)

0 引言

在傳統的光譜分析中,操作者通常需要獲得光譜數據文件,并將其導入專用的光譜軟件做進一步的分析。這些光譜數據文件通常以文本或數字形式存在[1],并且不同的分析軟件可能對文件格式有不同的要求。這些文件能夠提供各個波長處的光譜響應數據,但是需要一些額外的處理才能得出直觀的結果。相比于光譜數據文件,光譜曲線圖像具有更好的可視化效果。光譜曲線圖像能夠直觀地展示不同波長下的光譜響應強度差異,更容易觀察到峰值、谷值或其他特征。

目標光譜曲線的合成主要基于光譜疊加原理。多個不同的LED 混光后得到的光譜曲線為每個LED 的光譜曲線的線性相加之和[2]。因此,可以通過控制不同波長光的強度和比例來調整合成光譜的形狀和特征。在LED 的最大工作電流以內,其光強值與驅動電流值呈正相關關系。針對目標光譜的匹配,主要是通過求解各組合的LED 的光強比值,即改變其驅動電流的大小來實現。

這一過程通常涉及到優化算法和數學模型的應用。通過建立光譜響應與LED 驅動電流之間的關系,可以將光譜匹配問題轉化為一個求解最優參數的數學優化問題。在參數空間中搜索最佳解,找到使得合成光譜最接近目標光譜的LED 光強比值。通過調整LED 的驅動電流,改變光強度比例來逼近目標光譜,最終可以獲得使合成光譜與目標光譜相匹配的LED 光強比值,從而實現目標光譜的擬合。

目前,國內已有許多對光譜合成方面的研究。朱繼亦等[3]采用修正非對稱高斯函數擬合單個LED 的光譜分布,并以該模型為基礎,使用多個不同峰值波長的單色LED 實現對任意光譜的擬合;滿國福[4]采用高斯分布加洛倫茲分布組合的分段函數擬合單色LED 光譜分布函數;唐帆[5]使用LM 算法求解超定方程組的非負最小二乘解,得出擬合AM1.5 太陽光譜曲線的最優單色LED 參數。以上的研究對于單色LED 的光譜分布都是使用數學模型擬合,但由于LED 的種類繁多,盡管研究人員對模型一直在更新優化,但并非所有的LED 都適合同一種模型。因此,找到組合中LED 適用的數學模型工作量大且算法復雜。

綜上所述,提出一種基于目標光譜曲線圖像與實測光譜數據的光譜擬合方法。首先對將采用的LED 進行實際測量建立光譜數據庫,使用編程語言對導入的目標光譜曲線圖像進行數據提取,通過算法獲取最接近目標光譜的合成光譜中各LED 的驅動電流系數。該系數結果可直接應用于實際硬件電路中,更加切合實際。相較于傳統光譜分析中將數據文件導入專用光譜分析軟件的操作,這種方法可以提供更大的自由度和靈活性,減少對特定軟件的依賴性,對健康照明、植物照明等領域有一定的實踐意義。

1 系統總體方案設計

本系統的總體目標是實現由上位機計算出的LED 光源驅動電流系數的傳輸和實際光源驅動。為了實現這一目標,系統采用上位機、主控模塊、串口通信模塊、PWM 輸出模塊、驅動模塊等組成。

上位機的功能是對導入的目標光譜曲線圖像進行處理計算,得到各LED 的驅動電流系數并傳輸至硬件電路。主控模塊使用STM32 微控制器作為系統的核心芯片,它具備豐富的性能和功能選項,通過串口模塊與上位機進行數據傳輸,并支持I2C 總線通信協議與外部從設備進行通信。主控模塊接收串口通信模塊傳輸的驅動電流系數,并發送PWM 信號給驅動模塊,以調整LED 光源的光強值。串口通信模塊通過設置合適的串口參數實現上位機與主控模塊之間的數據傳輸。PWM 輸出模塊采用具有16個通道的PCA9685 芯片,可實現對16 路LED 的獨立控制。通過與主控模塊的I2C 通信,可以接收PWM 信號設置LED 的占空比,能充分節省主控模塊的IO 口。驅動模塊采用PT4115 恒流源芯片,通過調整輸入的PWM 信號,調節LED 的平均電流值,以實現對光源光強的調節控制。

2 上位機設計

2.1 選擇合適的編程語言和環境

為光譜曲線分析和匹配設計方法時,選擇合適的編程語言和環境對于高效、靈活地實現任務非常重要。Python 是一種開源的、易于學習和使用的編程語言,具有豐富的科學計算和數據處理庫,可以高效地進行矩陣操作、數值計算和統計分析[6]。此外,Python還有許多用于繪圖和可視化的庫,可以方便地顯示和分析光譜數據。PyCharm 是一款專門針對Python開發的強大工具,提供了豐富的功能和工具,還支持各種插件和擴展,可以根據項目需求進行個性化配置,并且具有直觀友好的用戶界面,適合進行光譜曲線分析和匹配的代碼編寫和調試工作。綜上所述,使用Python 作為編程語言,并搭配PyCharm 作為開發環境,是一種高效、靈活且方便的選擇。

2.2 數據預處理和光譜曲線分析

使用光譜儀對選定的16 顆LED 光源在額定驅動電流條件下進行光譜采集,然后根據目標光譜范圍截取所需波段。為了方便后續的數據處理,需要對波長進行等間隔插值,以獲得均勻分布的波長數值以及所對應的光強值。由此構建一個由該16 顆LED 共同組成的光譜數據庫。

在導入目標光譜曲線圖像時,首先需要計算原圖像的寬度和高度,然后根據波段范圍調整圖像的橫軸尺寸。對于圖像的縱軸尺寸,將光譜數據庫中光強最大值作為參考,并在后續光譜匹配過程中進行循環調整。通過這樣的調整,能夠確保光譜數據與設定的波段范圍一致,以及所有LED的驅動電流系數在1以內。

為更好地提取數據,需要對圖像進行二值化處理。通過設定的閾值,將目標曲線和背景的像素值分別轉換為1 和0。處理后得到的二值圖像突出了目標曲線的特征,并且簡化了后續計算和分析的復雜度,從而提高了數據提取的效率。鑒于導入的曲線線條寬度受各繪圖軟件影響而不一致,可以在曲線的同一橫坐標所對應處取平均值作為該點的縱坐標值。

2.3 光譜匹配算法設計和實現

對于目標光譜曲線,將其按照光譜數據庫中各光強值對應的波長在目標光譜分布中離散化取值,得到目標光譜數據組:

數據庫中LED數據表達為

各LED的驅動電流系數矩陣為

可得光譜匹配公式為

由于離散數據點數量遠大于LED 數量,因此匹配公式為超定方程組。超定方程組是一種不存在解的矛盾方程,但可以使用最小二乘法得到其近似解[7]。最小二乘法是光譜合成領域一種常用的數據處理和分析技術。通過最小二乘法對方程組求解非負解,使合成光譜與目標光譜盡可能接近,從而實現光譜合成的目標。為比較擬合光譜與目標光譜的匹配程度,通常使用擬合優度R2作為評價參數。R2的取值范圍在0至1之間,且越接近1表明兩者的相似程度越高。

由于光譜數據庫中各LED 光源的最大光強值不盡相同,在求解各LED 光源驅動電流系數時,得到可能存在大于1的解,即超過額定電流的情況。因此,如上2.2 節描述,將通過建立一個檢測循環,動態調整目標光譜曲線圖像的縱軸尺寸來處理。

當有驅動電流系數大于1的情況出現,縱軸尺寸將減少系數y,重新求解方程,直至所有驅動電流系數都不超過1。盡管光譜曲線各處的縱坐標值隨圖像的縱軸尺寸發生改變,但曲線各處的縱坐標比值不變,因此方程求解得到的各驅動電流系數比值不變,保證了在得到擬合程度最高前提下按比例調整的驅動電流系數,此時解為最優解。

3 下位機設計

3.1 下位機硬件設計

硬件電路主要由主控模塊、串口通信模塊、PWM 輸出模塊、驅動模塊及電源模塊組成。驅動電流系數由串口通信模塊接收,主控模塊根據接收的系數發送PWM 信號到驅動模塊,由驅動模塊調整輸出的平均電流值以調整光源的光強值。

圖2 下位機原理示意圖

3.1.1 主控模塊

STM32 是由意法半導體(STMicroelectronics)推出的一系列32 位ARM Cortex-M 微控制器。它提供了廣泛的性能和功能選項,適用于各種應用領域[8]。STM32 微控制器具備多個串口(如USART、UART 等)模塊,可用于與上位機進行雙向數據傳輸;并且支持I2C 總線通信協議,可以作為I2C 主設備與外部從設備進行通信。STM32 具備強大的中斷控制和管理功能,能夠實時響應和處理外部事件,因此能作為本應用的主控芯片并進行功能開發。

3.1.2 串口通信模塊

串口通信是一種被廣泛應用于數據交換和控制連接的數據傳輸方式,在本應用中用于上位機與下位機STM32 之間的數據傳輸,將在上位機求解得到的驅動電流系數以從串口形式傳遞至主控芯片。使用相關的串口庫函數,設置串口的波特率、數據位、停止位和校驗位等參數[9],并確保配置的參數與上位機一致,使數據傳輸有效、可靠。

3.1.3 PWM輸出模塊

主控芯片需要將接收到的驅動電流系數作為各路LED 的PWM 占空比信號傳遞至驅動模塊,由于LED 共有16 路,因此使用一款多通道控制芯片對節約主控芯片GPIO 資源是有必要的。PCA9685是一款常用的16通道PWM 控制器芯片,它采用I2C 總線接口,只需2個接口(SDA和SCL)就能實現與主控芯片通信,實現多通道的PWM 信號輸出。每個通道都可以單獨配置占空比,因此能夠方便對各LED 進行獨立控制。此外,PCA9685 支持12 位分辨率的PWM 輸出,可以提供更平滑、更準確的LED亮度控制效果。

3.1.4 驅動模塊

XL3001 是一款降壓型LED 恒流驅動芯片,內部集成高壓、大功率MOSFET 開關管,內部集成過溫保護、過流保護、短路保護等全套可靠性保護電路,兼容外置PWM 信號調光功能,可實現輸出電流隨占空比線性變化。根據各路LED額定電流的不同,由下式:

可計算各路采樣電阻RCS 的阻值。PWM 脈沖信號被電容C6 濾成直流后對CS 引腳進行補償,可使輸出電流更加穩定。

圖3 驅動模塊示意圖

3.1.5 電源模塊

硬件電路中,主控芯片STM32、PWM 輸出模塊PCA9685 和驅動模塊XL3001 的工作電壓分別是3.3 V、5 V 和12 V,因此需要將輸入電壓12 V分別調整適應各模塊工作電壓要求。

圖4 電源模塊示意圖

3.2 下位機程序設計

下位機程序主要包括串口程序和I2C 通信程序。其中串口程序負責接收上位機計算得到的驅動電流系數,I2C 通信程序負責與PCA9685 進行通信。

3.2.1 串口程序

該部分將使用串行數據傳輸接口USART 實現與上位機的通信。首先,對USART 進行初始化,包括使能時鐘,配置RX 接收引腳的輸入模式,以及設置USART 的波特率等參數,并使能接收中斷。其次,定義一個全局數組用于存儲接收的數據,以及一個全局變量用于記錄已接收的字節數。最后,在中斷處理函數中及時處理接收到的數據。通過串口部分的程序設計,實現串口的初始化和數據接收功能,為上位機和下位機的可靠通信提供基礎支持。

3.2.2 I2C通信程序

在使用I2C 協議前,需要對其進行初始化,包括配置引腳工作模式,并使能相關時鐘,為后續I2C 通信做好準備。其次,對I2C 所控制的PCA9685 芯片進行PWM 頻率的設置。需要在芯片進入休眠模式后,將預分頻系數寫入PCA9685 的寄存器,而后退出休眠模式。在芯片的正常工作模式下,將所期望的各通道的PWM 占空比數據分別寫入各通道所對應的兩個10 位寄存器,確保每個通道的PWM 輸出符合預期。

4 實驗

4.1 光譜與功率調節性能評估

將恒流驅動模塊與LED 連接,使用萬用表作為電流測量儀器,在黑暗環境下使用光譜儀采集LED光譜。

圖5 實驗測試

4.1.1 PWM占空比與驅動電流

設置PWM 占空比從100%到0%遞減,記錄電流大小并計算各步長占空比與最大占空比的電流大小比值,以評估功率調節性能,即在不同電流輸出需求下,模塊是否能夠準確地提供穩定的輸出電流。得到各路恒流驅動模塊PWM占空比與驅動電流比值的關系曲線如圖6所示。

圖6 PWM占空比與驅動電流比值關系曲線

各路實際輸出的驅動電流與理想情況的驅動電流的R2均在0.99 以上,表明可以通過調節PWM占空比使模塊準確輸出穩定的電流。

4.1.2 驅動電流與光譜曲線峰值

同時,光譜儀同步采集各驅動電流下的光譜,以評估驅動電流對光譜強度的調控效果。繪制工作電流與光譜曲線峰值的歸一化關系曲線,如圖7所示。

圖7 驅動電流與光譜曲線峰值關系曲線

驅動電流與光譜曲線峰值之間存在正相關關系,但正相關關系較差,線性關系不明顯。使用多項式公式對各條曲線進行擬合調整,由光譜曲線峰值求解所需的電流。根據期望光譜峰值計算得到的電流值驅動LED,使用光譜儀再次測量光譜曲線峰值,繪制調整后的期望光譜峰值與實際光譜峰值的歸一化關系曲線,如圖8所示。

圖8 期望光譜峰值與實際光譜峰值關系曲線

調整后的各路期望光譜峰值與實際光譜峰值的R2均在0.99 以上,存在著非常強的線性關系,可以實現精確的光譜調節,能夠為調光提供支持。

4.2 光譜數據庫

將所有LED 分別調至額定電流工作狀態,使用光譜儀采集LED 光譜,得到以下16 顆LED的光譜曲線,并通過插值獲取預設采集點處的光譜響應值,組成光譜數據庫,如圖9所示。

圖9 光譜數據庫中各光源的光譜輻射強度分布

4.3 實際光譜驗證

將程序燒錄進下位機后,分別以AM1.5 光譜[10]截取目標波段曲線,如圖10(a)所示,和手動繪制曲線,如圖10(b)所示,作為目標光譜曲線示例導入上位機,使用光譜儀采集實際輸出光譜曲線并評估擬合效果。

圖10 實際光譜與目標光譜對比

由圖10 可以看出,由于目標光譜與光譜數據庫中的白光光源在500~600 nm波段內光譜變化都比較平緩,因此在該波段內能較好逼近。在其余波段的實際光譜擬合出現驟升或驟降,是因為光譜數據庫中LED 的峰值間隔較大以及FWHM 較小,造成擬合效果欠佳的現象。從整體觀察,圖10(a)中的目標光譜曲線與實際光譜曲線的擬合優度為0.69,圖10(b)中的目標光譜曲線與實際光譜曲線的擬合優度為0.77,實際光譜曲線能較好地反映目標光譜曲線的變化趨勢。

5 結語

設計了一款基于PyCharm 開發環境和STM32 微控制器的光譜擬合系統。通過輸入目標光譜曲線圖片,由上位機計算得到光譜數據庫中各組合LED 的驅動電流系數的匹配最優解,并以該電流系數數組作為各路LED 的PWM 信號占空比,通過硬件電路驅動點亮LED,實現對目標光譜的擬合。結果顯示,能夠達到較好的匹配度。

猜你喜歡
驅動電流上位串口
淺談AB PLC串口跟RFID傳感器的通訊應用
特斯拉 風云之老阿姨上位
電動機驅動電流依賴于可觀測量的數學模型
“三扶”齊上位 決戰必打贏
基于ZigBee和VC上位機的教室智能監測管理系統
核電廠控制棒失步的判斷方法
USB接口的多串口數據并行接收方法探索
基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
SiCl自由基X2Π和A2Σ+態的光譜性質
全光纖電流互感器光源控制
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合