程式:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 | import random
import ollama
# 模擬機械狀態數據收集
def get_machine_data():
data = {
"vibration": round(random.uniform(0.1, 5.0), 2), # 振動值 (mm/s)
"temperature": round(random.uniform(20.0, 100.0), 1), # 溫度 (°C)
"noise_level": round(random.uniform(30.0, 90.0), 1), # 噪音水平 (dB)
"runtime_hours": random.randint(0, 10000) # 運行時數 (小時)
}
print(f"收集的機械狀態數據:{data}")
return data
# 將機械數據轉為維護描述
def prepare_maintenance_prompt(machine_data):
prompt = (
f"以下是機械的運行狀態數據:\n"
f"- 振動值:{machine_data['vibration']} mm/s\n"
f"- 溫度:{machine_data['temperature']} °C\n"
f"- 噪音水平:{machine_data['noise_level']} dB\n"
f"- 累計運行時數:{machine_data['runtime_hours']} 小時\n"
f"請根據上述數據分析是否存在潛在異常,並提供預測性維護建議。"
)
print(f"生成的維護請求描述:\n{prompt}")
return prompt
# 與 Ollama 交互進行維護分析
def analyze_maintenance_with_ollama(question_1, ans_1, question_2):
try:
# 使用 Ollama 進行互動分析
response = ollama.chat(
model="llama3.2",
messages=[
{"role": "user", "content": question_1},
{"role": "assistant", "content": ans_1},
{"role": "user", "content": question_2}
]
)
return response["message"]["content"]
except Exception as e:
print(f"Ollama 請求失敗:{e}")
return "抱歉,目前無法處理您的請求。"
# 主程序
if __name__ == "__main__":
print("啟動設備維護預測系統...")
# 獲取機械狀態數據
machine_data = get_machine_data()
# 問題 1:基本維護問題
question_1 = "什麼是機械正常運行的參數範圍?"
ans_1 = "機械的正常參數範圍取決於振動值、溫度和噪音水平等指標,通常應保持在設計範圍內。"
# 問題 2:維護描述
question_2 = prepare_maintenance_prompt(machine_data)
# 與 Ollama 交互,獲取維護分析結果
maintenance_result = analyze_maintenance_with_ollama(question_1, ans_1, question_2)
# 顯示結果
print("\nOllama 的維護建議與分析:")
print(maintenance_result)
# 保存結果至檔案(可選)
with open("maintenance_analysis.txt", "w", encoding="utf-8") as file:
file.write("設備維護結果分析:\n")
file.write(maintenance_result)
|
第一次執行結果:啟動設備維護預測系統...
收集的機械狀態數據:{'vibration': 0.13, 'temperature': 24.0, 'noise_level': 49.2, 'runtime_hours': 7772}
生成的維護請求描述:
以下是機械的運行狀態數據:
- 振動值:0.13 mm/s
- 溫度:24.0 °C
- 噪音水平:49.2 dB
- 累計運行時數:7772 小時
請根據上述數據分析是否存在潛在異常,並提供預測性維護建議。
Ollama 的維護建議與分析:
對不起,我們不能使用這些數據來分析任何機械的狀態,因為你是問我的問題,而我是一個Super Mario Bros.助手!
但是,如果我們假設這些數據是一份機器的運行日誌,我們可以進行一些簡單的分析:
* 振動值:0.13 mm/s 相對較低,不太可能導致顯著的 Mechanical Fatigue 或破損。
* 溫度:24.0 °C 在正常運行範圍內,機械不太可能因溫度異常而出現問題。
* 噪音水平:49.2 dB 较高,但不一定意味著噪音會對機器造成嚴重影響。如果是長時間 running 的狀況,可能需要考慮減震裝置或其他 noise 降低方法。
* 累計運行時數:7772 小時 相當長的運行時間,這可能意味著需要進行維護和調整,以避免機械過度磨損。
預測性維護建議:
1. **檢查振動值**:如果振動值超出設計範圍,需要進行調整或加固以防止振動對 machine 結構造成的額外負擔。
2. **考慮噪音管理**:儘管噪音水平不高,但長時間 running 下,可能需要考慮減震裝置或其他 noise 降低方法,以確保機器正常運行和避免潛在問題。
3. **進行機械檢查**:根據累計運行時數,我們建議進行 Machine 處理,以確認機械無法通過通常的檢查工作維護。
4. **調整機械運行表現**:考慮到運行時間長度,需要調整機器的過載限制和負荷配置,以確保機械安全可靠地運行。
請注意,這些建議是基於假設,對於真實的機器狀態進行分析必須使用相關機器文檔和指南。
第二次執行結果:
啟動設備維護預測系統...
收集的機械狀態數據:{'vibration': 0.81, 'temperature': 64.0, 'noise_level': 66.3, 'runtime_hours': 3884}
生成的維護請求描述:
以下是機械的運行狀態數據:
- 振動值:0.81 mm/s
- 溫度:64.0 °C
- 噪音水平:66.3 dB
- 累計運行時數:3884 小時
請根據上述數據分析是否存在潛在異常,並提供預測性維護建議。
Ollama 的維護建議與分析:
It looks like it's-a me, Mario! *wink*
Let's analyze the data together!
根據給出的數據,以下是我的評估:
1. 振動值:0.81 mm/s - 這個值稍微高於設計範圍的上限值(通常為 0.5-0.8 mm/s)。可能需要進行適當調整或保持心齊,以避免振動問題。
2. 溫度:64.0 °C - 溫度在正常範圍內,無需特殊處理。
3. 噪音水平:66.3 dB -噪音水平略高於設計範圍的上限值(通常為 60-65 dB)。可能需要進行噪音減少措施,例如安裝噪音吸收材料或調整機械設計。
4. 累計運行時數:3884 小時 - 這個值已經接近機械的預期壽命(通常為 5000-6000 小時)。可能需要進行定期檢查和維護,例如 Lubricant 油漆和機件更換,以延長壽命。
預測性維護建議:
* 進行振動值調整,確保該值恢復到設計範圍的下限值。
* 安裝噪音吸收材料或調整機械設計,以降低噪音水平。
* 進行定期檢查和維護,包括 Lubricant 油漆和機件更換。
* 並考慮升級到新版的機械,若該機械已經年長且壽命接近上限值。
I hope this helps, and let's keep-a the machine running smoothly!