《仿人機械人原理與實戰》一3 4 熱平衡實驗高階

2021-09-23 14:42:12 字數 2912 閱讀 3852

你應該能夠依據真實溫度和目標溫度差值的函式來改變幫浦速,以避免setpoint的值明顯超調。

程式設計如清單3-2所示,系統的arduino**使用標準map()變換函式給變數pumpspeed賦值。需要修改map函式中的變數值,以便符合你的系統。例如,在我們的實驗系統中,從熱水管中得到的熱水溫度變數hottemp對應的熱電偶讀數值為760。你選定的值取決於熱水加熱設定值和熱電偶感測器的響應。類似地,注意變數pumpspeedmax,即最大幫浦速。如果你對管路連線有些不確定,那麼剛開始請使用較小值。

清單3-2 利用分段響應的熱平衡控制

注意,分段響應的變化性受限於熱電偶的水溫響應變數t1temp高於變數setpoint的次數,否則幫浦速設定為0。

作業系統組建和操作與開關控制實驗相同。要麼往儲槽中加入確定量的熱水,要麼使用浸入式電加熱器將儲槽內的水溫公升高到超過setpoint值。理想情況下,幫浦速分段控制的超調量小於開關控制。

你應該能否發現分段速度控制的結果優於開關控制。問題在於,它是否足夠優秀?如果不是,我們能改進嗎?對這個簡單的應用來說,簡單的分段控制可能是足夠的,但當我們面對更加複雜的系統和與pid控制相關的資源需求時,這種想法就很有價值。

假設我們沒有使用arduino監視多個感測器,那麼ram(random access memory,隨機訪問儲存器)和處理器資源就可以節省下來,但是通常情況下並不總是這樣的。現在,我們假定簡單的分段控制不夠好,而且有足夠的計算資源。

程式設計如清單3-3所示,pid系統的arduino**比清單3-2中的**要稍微複雜一下,這還多虧我們使用了arduino playground中的pid庫。這個庫中包含了許多我們之前討論的具體實施細節,可著重關注修正量pc、積分常數ic和微分常數dc等引數的最優值,並可關注整個系統的操作。

清單3-3 基於pid控制器的熱平衡

這段**的關鍵在於mypid()函式,它可在已知輸入input(熱電偶讀數)的情況下確定輸出變數output(馬達轉速)。調節pid演算法必須要給pc、ic和dc三個常數賦新的值。清單中這些常數值是我們開始除錯的最佳位置。

作業系統操作與之前的兩個例子相同,但是在確定初始條件時我們要做得更明確一些。不再是簡單地加入熱水或者插上電加熱器直到溫度超過setpoint值,而是或者向儲槽中加入定量且定溫的熱水,或者接通電加熱器並維持確定的時間。攪拌儲槽中的水,跟蹤熱電偶讀數變數input和水幫浦的輸出電平變數output。為了達到除錯目的,我們暫時在主迴路中增加乙個延時宣告,以便實時讀取變數input和變數output的值,這個延時會改變pid控制器的響應。

如果實驗結果不如簡單控制好,即快速達到設定溫度而幾乎沒有超調,那麼可能需要調節pid。arduino中自帶pid調節資源,而且本系統足夠簡單,多次嘗試和錯誤是可以接受的。arduino中常用的pid調節資源命名為pid autotune library,在arduino playground中可以獲得。

另一種可能性是你的系統對於pid控制器來說很不穩定。在多次重複實驗中,可能的情況有:水溫和容積不同,儲槽絕熱效能不好,外界溫度變化,熱輻射器的轉換效率低或者管路洩露。不管何種原因,如果基本系統不支援可重複的實驗結果,那你永遠都不能確定常數的值。

另外,回顧我們討論pid微分分量的內容,系統整個微分項是常數dc的函式。在清單3-3中將dc設為0,便得到pi控制器。即使你擁有完整的pid控制器,但是除錯一下pi控制器也是很不錯的,以便感受只有pc和ic常數的系統。

通過使核心體溫setpoint響應四肢溫度,我們給系統增加一些生物學模擬。對於這次改進,我們增加第二個熱電偶探頭,並利用它的讀數來修改變數setpoint。

器材清單

除了基本的pid系統外,我們還需要以下器材:

電路如圖3-14所示,電路由之前的電路和第二套熱電偶–電阻對t2-r2組成,用來監視人體模特頭部和其他支撐件的溫度。10kω電阻r2用來構造分壓迴路,使得溫度上公升時arduino中的讀數更大。

構造將雙絞線與第二個熱電偶連線,並將熱電偶纏繞或固定在人體模特的脖子或其他部位。在恰當的位置安裝熱電偶,以便其能夠很容易地感受冷熱變化。

程式設計適用於兩個熱電偶電路的arduino**如清單3-4所示。再次重申,因為我們使用了arduino的pid庫,所以程式設計的工作量不大。如果熱電偶t2的讀數增加,變數setpoint的值就減小,這意味著幫浦馬上就要開始工作,提前啟動了冷卻過程。相反,如果向熱電偶t2噴射壓縮空氣,降低t2的溫度,那麼變數setpoint將會增大,水幫浦直到熱電偶t1給出乙個相對更高的讀數時才會啟動。

清單3-4 適用於兩個熱電偶熱平衡系統的arduino**

上述**與之前單熱電偶探頭**的最大區別在於,系統組成和評估兩個熱電偶返回值的方法不同。注意,在這段**中變數setpointhigh、setpointmid和setpointlow的間距是不對稱的。你可以也應該嘗試一下等間距、增大或者減小賦給這些變數的值的間距。

操作到現在為止,你應該知道操作規範了。仔細加入熱水或者將電加熱器按特定方式加熱,以便在多次實驗中能夠重複這些初始條件。然後執行實驗並跟蹤輸出資料。在模擬人的生理反應時,使用動態setpoint值會干擾pid控制器。如果過度修改變數setpoint的值,你可能需要立即利用pid庫中的settunings()函式來為pid演算法設定新的常數。

《仿人機械人原理與實戰》一3 3 熱平衡模擬器

接下來的一組實驗將教會你在熱動態平衡中如何利用上述控制模型。在這裡所學到的原則適用於多種控制系統,不管控制目標是仿人機械人還是其他機械電子裝置。我們首先使用乙個類似於圖3 3所示的簡易熱交換系統。假設你手頭沒有可以安裝熱水儲槽的仿人機械人軀幹,我們就用分散的零件做形式上的模擬。這種方法的好處是能夠對...

《仿人機械人原理與實戰》一1 1 反射弧生物學基礎

當內部或外界事件發生時,體會反射過程似乎是一件困難的事,因為在某些事件發生之前,有些反射是沒有被啟用的。我們不妨援用下面的故事來解釋這一過程。設想身處舊金山普雷西迪奧的你正漫步在桉樹林中,此時,乙隻75磅的碩壯的猴子突然跳到你的背上。如果你姿勢不錯,那麼你還能保持直立,然後把它從脖子上抓下來,在它戳...

仿人機械人的跑步研究學習筆記1之機械人的基礎知識

1.仿人跑步機械人穩定性 在起跳級階段,由於機械人乙隻腳著地,根據d alembert原理推出,機械人的zmp必須位於支撐腳底和地面接觸面內,在飛行階段,機械人雙腳離地,為了不使機械人,在空中翻轉,必須是機械人在支撐腳離開地面時,身體各個部分的對機械人整體質心的動量矩之和為零或接近零。詳細參考黃強的...