接下來的一組實驗將教會你在熱動態平衡中如何利用上述控制模型。在這裡所學到的原則適用於多種控制系統,不管控制目標是仿人機械人還是其他機械電子裝置。
我們首先使用乙個類似於圖3-3所示的簡易熱交換系統。假設你手頭沒有可以安裝熱水儲槽的仿人機械人軀幹,我們就用分散的零件做形式上的模擬。這種方法的好處是能夠對初始設定進行快速修改,並且使熱平衡過程的視覺化。
為了建立基礎的熱平衡模擬器,你將要用到以下器材:
與之前的專案類似,你可以隨意更換更便宜和更容易獲得的器材。例如,用浸入式加熱器加熱儲槽中的熱水是一種方便的方法,但是來自於水龍頭的熱水同樣可以。同時,對1加侖儲槽也沒有特殊要求。對於我們的實驗目的,用毛巾或者氣泡包裹的不鏽鋼或者鋁合金的罐子跟實驗室中那種帶玻璃纖維的燒杯效果是一樣的。在除錯系統時,密封的油漆桶可以作為廉價的替代儲槽。
在上述清單中,最關鍵的是低壓***幫浦、水管和相關接頭。低壓直流電源既安全又便於控制。檢查可用的***幫浦,可採用浸沒於水中的水幫浦,或者是帶輸入輸出連線頭的、用於船底排水和小噴泉的那種水幫浦。如圖3-8所示,我們使用浸入式、12vdc、額定1.2a、350gal/h的船底排水幫浦,大概16美元。儘管350gal/h的輸出量對我們的實驗來說可能偏大不少,但是你至少要每分鐘從10英呎長、3/16英吋粗的管子中抽走1~2l水。
如圖3-8所示,器材包括直徑3/16英吋的矽橡膠管、乙個帶接線柱的mosfet擴充套件板、乙個通用管徑介面卡和兩個熱電偶探頭,其中乙個是自製的,另乙個是採購的。銅管可以用來替代矽橡膠水管,紅外溫度計最好有,儘管不是必需的。溫度計能夠幫助你快速了解各器件的溫度,而不需要直接接觸器件。
我們用矽橡膠管製作熱輻射器。誠然,矽橡膠不是熱交換的最佳材料,但是它很便宜且比銅管更容易製作。除非知道怎麼做,否則你將會在製作間裡為尋找合適的銅接頭而花費整個下午。然而,如果你已經有銅管或者鋁管,並且知道怎麼使用,那就不用矽橡膠管了,這樣系統的響應時間會更快。
因為arduino介面的驅動能力只有40ma,所以我們需要乙個更大功率的電晶體或者h橋來驅動水幫浦。圖3-9展示了一些基於mosfet管和整合橋電路的可選方案。位於左邊的sparkfun電機擴充套件板採用6個mosfet提供6個大電流通道,位於右邊的grove擴充套件板利用l298n雙橋驅動。單個帶內部二極體保護的多通道mosfet(比如fairchild公司的rfp30n06le),與散熱片、pcb和輸入輸出接頭組合在一起是最緊湊且最容易獲得的單個電機驅動方案,如圖3-9中部所示。如果你決定使用單個mosfet管,請使用pcb和大負載的接頭。如果使用麵包板,那麼你可能會燒壞線路。
如圖3-10所示,電路由arduino控制器(帶多通道mosfet、12vdc幫浦驅動介面)和熱電偶探頭(提供模擬訊號輸入)組成。熱電偶與10kω阻值電阻r1串聯分壓,使得當溫度上公升時,埠a0的輸入電壓更高。回想一下,熱電偶的溫度係數是負的,所以阻值隨溫度增加而下降。因此,隨著溫度上公升,r1兩端的電壓增加,從而引起arduino讀數增加。
從原理圖中就可以看出,連線電子器件的工作量不大。如果選用10kω熱電偶作為溫度探頭,那麼你需要做防水安裝。將熱電偶插入1英呎的管子中,用矽膠密封確保電路連線乾燥。採用足夠的熱縮管包住線頭和焊接接頭,避免因水和蒸氣的原因造成短路。圖3-11展示了用於製造防水熱電偶探頭的主要材料。
橡膠或者塑料帽的密封性更好,但是會犧牲響應時間,靈敏的溫度感測器對於精確控制系統非常關鍵。用防水且不導電的材料包裹熱電偶,其溫度變化會滯後於水溫,這與包裹材料的質量和熱傳導特性有關。如果不自己製作溫度探頭,那麼可以買預先標定好的防水探頭,探頭帶有薄的熱傳導帽,響應時間短。完整的自製熱電偶探頭和商用熱電偶探頭如圖3-8所示。
真正的挑戰在於管路製作,包括支撐平台製作。理想情況下,管子是埋在**薄膜下的,以模擬突起的靜脈。為了達到說明問題的目的,我們採用廉價的服裝模特頭部,並將矽橡膠管像髮帶一樣纏繞起來,如圖3-12所示。管子上可覆蓋一些假髮,使得外觀更加自然。
另一種可選方案是利用銅管纏繞在服裝模特頭部或其他平台上,這樣導熱和輻射效果更好。例如,如圖3-13所示,將銅管纏繞在運動輥上。注意連線到幫浦上的是彈性氣管。不管採用什麼形式的管子和支撐平台,你都將發現,構造工作最困難的部分就是把水管連線到水幫浦上。例如,如果幫浦的出口外徑(od)與管子的內徑(id)不匹配,那麼你可能需要管徑變換器,如同本章開始展示的那種。
如程式清單3-1所示,我們首先建立最基本的**,實施閉環和負反饋開關控制器。
清單3-1 arduino**,用於幫浦速開關控制的熱平衡
這個例子主要依賴於通過serial.println()函式送到串列埠監視器中的資料。如果熱電偶的讀數顯示溫度高於setpoint的溫度,那麼幫浦就會開啟,將水送到熱輻射器中迴圈,在那裡水的熱量被釋放到環境中。當熱電偶顯示溫度達到setpoint或者更低時,幫浦停止工作。
setpoint和pumpspeed的最佳值取決於初始設定。在我們的實驗中,setpoint取值600,大約位於冷水管和熱水管中水溫的中間值。pumpspeed的最佳值取決於系統設計和預期響應時間。如果選用的是大流量的幫浦,那麼選用較小的pumpspeed值將會更加安全。
假設連線正常,幫浦可以在全速下工作,那麼核心溫度應快速下降。然而,也很有可能會出現setpoint溫度超調。相反,如果將幫浦速調到很小,熱量從儲槽中散失就需要更長的時間,setpoint溫度超調的可能性也更小一些。顯然,多次嘗試和失敗是必不可少的。
接下來要做的事情是,要麼用熱水裝滿儲槽,要麼用浸入式電加熱器把水加熱。不管用哪種方法,儲槽中水的溫度必須要比設定值高一點兒。另外,你應該賦給變數setpoint乙個合理的溫度值,例如,一方面你當然不想融化幫浦上的塑料零件;另一方面你要把水溫設定得比外部溫度高一大截,否則熱輻射器就輻射不了多少熱量。
如果使用浸入式電加熱器而不是熱水,那麼紅外溫度計或者直接接觸式溫度計都有助於確定何時拔掉加熱器。你當然不想讓水幫浦都「沸騰」起來。除了防止過度高溫,沒有必要測量絕對溫度。我們的目的是突出熱電偶讀數的變化趨勢,以便與其他更先進的控制演算法的結果相比較。
如果系統遇到這樣或那樣的困難,你可以在空氣中而不是在水中除錯,從而節省時間。將熱電偶從儲槽中拔出,待其乾燥。接著,修改變數setpoint的值,使其剛好比外界溫度高一點兒。用手擠壓探頭,將探頭的溫度公升到高於變數setpoint的值,並用壓縮空氣降溫。檢查幫浦的連線和熱電偶的完整性。如果你沒有做好熱電偶的密封,那麼線頭上的水可能會造成不正常的實驗結果。
確定探頭和相關電路都工作正常後,再把變數setpoint改為原來的值。如果仍然有問題,那麼請檢查幫浦和相關電路。注意:如果你在除錯水幫浦,那麼某些浸入式器件必須與水長期接觸,便於潤滑和帶走熱量。
《仿人機械人原理與實戰》一3 4 熱平衡實驗高階
你應該能夠依據真實溫度和目標溫度差值的函式來改變幫浦速,以避免setpoint的值明顯超調。程式設計如清單3 2所示,系統的arduino 使用標準map 變換函式給變數pumpspeed賦值。需要修改map函式中的變數值,以便符合你的系統。例如,在我們的實驗系統中,從熱水管中得到的熱水溫度變數ho...
《仿人機械人原理與實戰》一1 1 反射弧生物學基礎
當內部或外界事件發生時,體會反射過程似乎是一件困難的事,因為在某些事件發生之前,有些反射是沒有被啟用的。我們不妨援用下面的故事來解釋這一過程。設想身處舊金山普雷西迪奧的你正漫步在桉樹林中,此時,乙隻75磅的碩壯的猴子突然跳到你的背上。如果你姿勢不錯,那麼你還能保持直立,然後把它從脖子上抓下來,在它戳...
仿人機械人的跑步研究學習筆記1之機械人的基礎知識
1.仿人跑步機械人穩定性 在起跳級階段,由於機械人乙隻腳著地,根據d alembert原理推出,機械人的zmp必須位於支撐腳底和地面接觸面內,在飛行階段,機械人雙腳離地,為了不使機械人,在空中翻轉,必須是機械人在支撐腳離開地面時,身體各個部分的對機械人整體質心的動量矩之和為零或接近零。詳細參考黃強的...