跳轉到主要內容
Beplay体育安卓版本平台的博客

現代工業物聯網對Azure的分析——第3部分

beplay体育app下载地址客戶利用Azure磚工業物聯網的分析
分享這篇文章

第2部分在Azure的包含三部分的係列文章的數據分析對現代工業物聯網(IIoT)應用程序中,我們從現場設備實時攝取IIoT數據到Azure和執行複雜的時間序列處理的數據直接湖。在這篇文章中,我們將利用機器學習預測維護和風力渦輪機的收入最大化同時最小化停機時間的機會成本,從而最大化利潤。

我們的模型訓練和可視化的最終結果將是一個權力BI報告如下所示:

Azure的磚的IIoT數據分析,您可以使用輸出產生強大的實時BI儀表板。

端到端架構如下所示。

IIoT數據分析架構,Azure的數據存儲和湖三角洲存儲格式提供數據團隊的最佳處理時間序列流數據的平台。Beplay体育安卓版本

機器學習:優化功率輸出和剩餘壽命

優化工具,有生之年,和工業資產運作效率就像風力渦輪機中也有許多的收入和成本效益。在本文中,我們探索的現實世界的挑戰是風力渦輪機的收入最大化同時最小化停機時間的機會成本,從而最大化我們的淨利潤。

淨利潤=發電收入-成本增加的壓力設備

如果我們推動渦輪機更高RPM,它將產生更多的能量,因此更多的收入。然而,增加渦輪壓力會導致經常失敗,引入成本。

為了解決這個優化問題,我們將創建兩個模型:

  1. 預測渦輪機的發電給定一組操作條件
  2. 預測的剩餘生活渦輪機給定一組操作條件

使用Azure磚IIoT應用程序的數據分析來預測剩餘的風力渦輪機的生活。

我們可以產生利潤曲線來確定最優操作條件,最大化收入同時最小化成本。

使用Azure磚與黃金三角洲的表,我們將執行功能工程提取感興趣的領域,培養兩個模型,最後將模型部署到Azure托管機器學習。

IIoT的Azure磚機器學習模型的生命周期數據分析用例

計算每個風力渦輪機的剩餘有用的一生,我們可以用我們的維修記錄,顯示每個資產時更換。

%sql——計算每台風力機的時代,剩下的日子的生活創建取代視圖turbine_age作為reading_dates作為(選擇截然不同的日期,的deviceidturbine_power),maintenance_dates作為(選擇d。*datediff (nm。日期、d.date)作為datediff_next datediff (d。日期、lm.date)作為datediff_lastreading_dates d加入turbine_maintenance納米(d.deviceid=nm.deviceidd.date=lm。日期)選擇日期的deviceid,最小值(datediff_last)作為的年齡,最小值(datediff_next)作為remaining_lifemaintenance_dates集團通過的deviceid,日期;

預測輸出功率在六小時的時間地平線,我們計算時間序列變化使用火花窗口的功能。

創建取代視圖feature_table作為選擇r。*、年齡、remaining_life、——計算能力提前6小時使用火花窗口,建立一個feature_table喂到我們毫升模型(權力,6、電力)(分區通過r.deviceid訂單通過time_interval)作為power_6_hours_aheadgold_readings r加入turbine_age一(r.date=a.dater.deviceid=a.deviceid)在哪裏r.date
#創建一個火花Dataframe包含的特性標簽我們需要feature_cols=(“角”,“轉”,“溫度”,“濕度”,“風速”,“權力”,“年齡”]label_col=“power_6_hours_ahead”#讀我們的功能選擇興趣feature_df=spark.table (“feature_table”)#創建一個熊貓UDF訓練XGBoost回歸量每一個渦輪的數據@pandas_udf (feature_df。模式,PandasUDFType.GROUPED_MAP) def train_power_model (readings_pd): mlflow.xgboost.autolog() #自動對數XGB參數、指標、模型和工件mlflow.start_run(): #訓練數據上的XGBRegressor渦輪alg = xgb.XGBRegressor () train_dmatrix = xgb.DMatrix (data = readings_pd [feature_cols] .astype ('浮動”),標簽= readings_pd = xgb [label_col])模型。火車(dtrain=train_dmatrix, evals=[(train_dmatrix, '火車'))返回readings_pd #運行熊貓UDF對特征數據集power_predictions = feature_df.groupBy(的的deviceid”)蘋果(train_power_model)

Azure的磚的IIoT數據分析,可以預測,例如,特定的風力渦輪機的功率輸出和顯示結果的時間序列可視化。

Azure磚會自動跟蹤每個模型的訓練與托管MLflow實驗。XGBoost回歸,MLflow將跟蹤任何參數傳遞到參數論證,RMSE度量,渦輪這個模型訓練,以及由此產生的模型本身。例如,預測能力的RMSE的deviceid WindTurbine-18是45.79。

玩這個視頻,請點擊這裏,接受餅幹

我們可以訓練一個類似的模型剩餘生命的風力渦輪機。的渦輪機的實績和預測如下所示。

Azure的磚的IIoT數據分析,可以預測,例如,風力渦輪機的剩餘壽命和生成時間序列可視化比較預測現狀。

模型部署和托管

Azure磚是集成Azure的機器學習模型的部署和得分。直接使用Azure毫升api磚,我們可以為每個模型來自動部署一個圖像被托管在一個快速、可伸縮的容器服務由Azure毫升(ACI或部)。

#創建一個模型在AzureML形象model_image azure_model = mlflow.azureml.build_image (model_uri =路徑,工作區=工作區,model_name =模型,image_name =模型,描述=“XGBoost模型預測輸出功率”同步= False)#將web服務部署到宿主模型作為一個REST APIdev_webservice_deployment_config = AciWebservice.deploy_configuration ()dev_webservice = Webservice.deploy_from_image (name = dev_webservice_name,形象= model_image,工作區=工作空間)

一旦部署模型,它將顯示在Azure毫升工作室,我們可以通過REST API調用來得分的數據交互。

玩這個視頻,請點擊這裏,接受餅幹

#構造一個有效負載發送的請求有效載荷= {“角”:12,“轉”:10,“溫度”:25,“濕度”:50,“風速”:10,“權力”:200年,“年齡”:10}defscore_data(uri,有效載荷):rest_payload = json.dumps ({“數據”:【列表(payload.values ()))})=響應請求。帖子(uri, data = rest_payload header = {“內容類型”:“application / json”})返回json.loads (response.text)打印(f 'Predicted權力(千瓦時)從模型:{score_data (power_uri,有效負載)})打印(f 'Predicted剩餘期限(天)從模型:{score_data (life_uri,有效負載)})

現在電力優化和荷重軟化模型作為預測部署服務,我們可以利用兩個優化淨利潤從每個風力渦輪機。

假設1美元每千瓦時,年收入可以簡單地計算,預計每小時功率乘以24小時,365天。

年度成本可以通過每日收入乘以計算渦輪需要維護的次數一年(365天/剩餘壽命)。

我們可以簡單地通過多個迭代的分數不同的操作參數調用我們的模型在Azure托管毫升。通過可視化的預期利潤成本不同的操作參數,我們可以確定最優RPM利潤最大化。

Azure的磚IIoT數據分析,你可以反複分數不同操作參數通過調用模型在Azure托管毫升。由此產生的視覺分析,例如,預期利潤成本的各種操作參數可以幫助確定最優RPM利潤最大化。

數據服務:Azure Explorer和Azure突觸分析數據

在ADX運營報告

Azure Explorer (ADX)提供實時數據運營分析在流時間序列數據。IIoT設備數據可以從物聯網中心,直接流到ADX或從Azure推磚使用Kusto火花連接器從微軟如下所示。

stream_to_adx = (spark.readStream。格式(“δ”).option (“ignoreChanges”,真正的).table (“turbine_enriched”).writeStream。格式(“com.microsoft.kusto.spark.datasink.KustoSinkProvider”).option (“kustoCluster”,kustoOptions [“kustoCluster”]).option (“kustoDatabase”,kustoOptions [“kustoDatabase”]).option (“kustoTable”,kustoOptions [“kustoTable”]).option (“kustoAadAppId”,kustoOptions [“kustoAadAppId”]).option (“kustoAadAppSecret”,kustoOptions [“kustoAadAppSecret”]).option (“kustoAadAuthorityID”,kustoOptions [“kustoAadAuthorityID”]))

PowerBI可以連接到Kusto表創建一個真正的實時操作儀表板輪機工程師。

ADX還包含本地時間序列分析預測和異常檢測等功能。例如,下麵Kusto代碼發現異常點數據流的RPM讀數。

turbine_raw|在哪裏rpm>0|使- - - - - -係列rpm_normal=avg(轉)默認的=0todatetime (時間戳)範圍(datetime (2020年-06年-30年00:00:00)、日期時間(2020年-06年-30年01:00:00),10s)|延長異常=series_decompose_anomalies (rpm_normal0.5)|渲染anomalychart(anomalycolumns=異常、標題=“RPM異常”)

Azure的磚IIoT數據分析,機器的數據可以直接流到ADX從物聯網中心,或從Azure推磚,生成實時操作對時間序列數據流的分析。

分析報告在亞撒

Azure突觸分析(ASA)是新一代數據倉庫從Azure本機利用ADLS創2與Azure磚,使無縫集成這些服務之間的數據共享。

雖然利用Azure磚和Azure突觸,使用最好的工具來工作,鑒於您的團隊的要求。

而利用突觸的功能和Azure磚,推薦的方法是使用最好的工具來工作給你的團隊的需求和訪問數據的用戶角色。例如,數據工程師需要δ的性能優勢和數據科學家需要協作,豐富和靈活工作空間將被引入Azure磚。beplay娱乐ios分析師需要攝取low-code或SQL數據倉庫環境中,處理和可視化數據將被引入突觸。

Azure的突觸流連接器磚允許我們流的黃金渦輪機直接到突觸的SQL數據池報告。

spark.conf。(“spark.databricks.sqldw.writeSemantics”,“複製”)#使用複製到更快的加載
              write_to_synapse = (spark.readStream。格式(“δ”).option (“ignoreChanges”,真正的).table (“turbine_enriched”)#讀金渦輪讀數.writeStream。格式(“com.databricks.spark.sqldw”)#寫突觸.option (“url”dbutils.secrets.get (“物聯網”,“synapse_cs”))# SQL池JDBC (SQL Auth).option (“tempDir”SYNAPSE_PATH)#臨時ADLS路徑.option (“forwardSparkAzureStorageCredentials”,“真正的”).option (“數據表”,“turbine_enriched”)#表在突觸寫.option (“checkpointLocation”CHECKPOINT_PATH +“突觸”)#流檢查點.start ())

另外,Azure數據工廠可以用來讀取數據從三角洲格式編寫成突觸SQL池。可以找到更多的文檔在這裏

現在數據是幹淨的,處理,和可用的數據分析師的報告,我們可以構建一個生活PowerBI儀表板與實時數據以及預測從我們毫升模型如下所示。

玩這個視頻,請點擊這裏,接受餅幹

總結

總而言之,我們已經成功:

  • 攝入從現場設備實時IIoT數據到Azure
  • 直接執行複雜時間序列處理數據湖上
  • 訓練和部署毫升模型來優化我們的風力渦輪機資產的利用率
  • 服務工程師的數據操作報告和數據分析師的分析報告

大數據技術聯係在一起的關鍵是三角洲湖。三角洲在ADLS提供可靠的流媒體數據管道和高性能數據科學分析查詢大量的時間序列數據。最後,它使組織能夠真正采用Lakehouse模式通過將最好的品種Azure工具寫一次,經常訪問數據存儲。

接下來是什麼?

嚐試的這裏筆記本了,了解更多關於Azure磚係列培訓看看如何創建現代數據架構在Azure上出席這個網絡研討會

免費試著磚

相關的帖子

看到所有產品的帖子
Baidu
map