2012年12月6日 星期四

感測器接法與校正(Sensor using and Calibration)

  大部分的感測器接的方法就是下列這三種:
(1) 分壓接法
  如圖所示,這是最簡單的接法,給個電壓從中間拉分壓出來就好,但是你有可能碰上電阻阻值變化很小,輸出變化也很小,所以你可能採取以下的接法。

(2) 橋式接法
橋式接法op另外一端接的是一個固定的分壓,兩者相減後輸出,由上一篇運算放大器(OP)一次就上手得知,這裡的op指的是儀表放大器,這似乎是個好辦法,但是儀表放大器本身有3個op你老闆要cost down,可能有時候不同意就要你不要用這麼多op,所以要具有訊號放大再加上op數量少你可能會做以下的接法。

(3)正向放大接法

  這個接法跟反相放大一樣,只差在一個負號,看你的需求,這樣就可以達到將sensor抓取電壓放大的目的,但是最重要的是,假設你要感測的環境變量(溫度 濕度....等)與你的電阻成正比,可是你實際去算以上三個電路,你才知道,你輸出的電壓跟環境變量根本就是個曲線!

這個應該不用算給大家看了,接下來curve fitting才是挑戰的開始,曲線的擬合你可以用二次方程式,三次方程式,做到R^2=0.999,可是還是不準,sensor本身有再現性的問題,狀況一樣嗎? 到頭來才知道實際上輸出是 V(濕度,溫度,壓力,頻寬,氣體慣性),用一些濾波器的方式降低頻寬讓它穩定下來,變異係數控制在3%,最後發現,每個sensor都有差,那豈不是每個sensor你都要在出廠前給它做一次curve fitting,請問你怎麼量產,工廠的產線不容許你這樣做的。

  我也試過用初始值當做校正的依據,但是後來發現初始值相同的兩個sensor表現不一樣,那這不能拿來當校正依據,fuzzy似乎在這上面變得很好用,但是要怎麼運用..怎麼校,才可以大量生產?在學校你只要會接,隨便校正一下,一個準了就好,請問1000個你怎麼做,原來,這才是最難的東西,現在的做法是你要做出測試波形,接著只要跑一次,就可以將sensor做分類,再套用到那一類sensor的公式,要分幾類就只能做實驗才知道了。



1 則留言:

  1. 不過 fuzzy Table 不太好建 大部分應該都依賴實驗
    跟經驗~~~

    不過 曲線擬合 除了文中所呈現的問題外,還有另外
    一個討厭的問題就是 演算法,知道怎麼算是一回事
    怎麼算的快又是另外一回事~~~~~ ; 真是罩 你
    Run 曲線擬合演算法時,可能要考慮速度問題;

    例如 將程式要用的數據完全用 Fixed-point 處理

    Fixed-point就是說 把小數點隱藏在整數裡面
    例如說 你用 20 30 代表 2.0 3.0 這樣表示 你的
    小數點後面一定只有一位 這就稱為 定點
    這樣的好處就是 (20 + 30) >> 1 = 25 表示 2.5
    可以用 >> 1 取代 除以 2

    我印象最深刻的就是 以前我用 AT89C51 產生 1K PWM
    程式裡面來個 開平方,程式當場掛掉 只剩 330Hz

    當然假如你的晶片有內建 浮點運算硬體
    (像 x86 DSP ARM or 一些高級的單晶片)
    恩 就可以忽略這個問題~~~

    還有寫程式上有一點要注意的事情在於
    假如你正在對你的 data 作忙碌的運算處理時
    像 你文中講的 要 curve fitting 等等
    作之前 一定先把 AD 中斷 Disable 在 Run 演算法
    才不會做到一半 結果 AD 中斷發生程式跑去做其他事情
    這樣往往會發生算出一些奇怪的錯誤結果
    等算完 又 Enable AD 中斷

    這些給你參考看看囉 ~~~ 也許你目前也沒這些問題 :)

    哈哈 這個讓我想起 地獄輪椅的主人 以前搞這個被 Boss 罵的很慘 ~~~ 0.0

    假如我到地獄,我要確認兩件事:
    要有 那台輪椅 跟 輪椅的主人 要不然就是走錯地方了

    回覆刪除