Velg en side

Svennestykket: Min første maskinlæringsbaserte anomalideteksjonsmodell for prosessindustrien basert på SCADA-data og LIMS-data

5. nov. 2020 | Blogg

Vi har begynt et samarbeid med Intelecy, Oslo om å tilby utvalgte kunder Intelecy som maskinlæringsplattform for integrasjon av prosessdata i SCADA-systemer med labdata/kvalitetsdata i LIMS.

Vi i Nemko Norlab har begynt et samarbeid med Intelecy, Oslo om å tilby utvalgte kunder Intelecy som maskinlæringsplattform for integrasjon av prosessdata i SCADA-systemer (Supervisory Control and Data Acquisition) med labdata/kvalitetsdata i LIMS (Laboratory Information Management System). I denne bloggartikkelen vil jeg beskrive hvordan jeg som utviklingssjef i Nemko Norlab lærte meg systemet og bygde min første multivariate anomalideteksjonsmodell for prosessindustri på rundt 6-8 timer, fra hjemmekontor. Fordi det handler om å ta sin egen medisin.

Maskinlæring for enkle datastrukturer, som 1D vektorer (f.eks. kredittverdighet, medisinsk diagnose) eller 2D bilder (f.eks. bilskilt, billedbasert diagnose), er i dag stort sett et løst problem, og det finnes et antall rammeverk for å bygge gode maskinlæringsapplikasjoner for slike strukturer, ofte basert på GUI-baserte tilnærminger (f.eks. RStudio) eller skriptbaserte tilnærminger (f.eks. R eller Python).

Gode konseptuelle tilnærminger til maskinlæring for tidsserier, tenk SCADA med sampling hvert sekund og 1 000vis av tags, har derimot vært et mindre etablert felt. Man har selvsagt gammeldags tidsserieanalyse, som ARIMA (Autoregressive Integrated Moving Average) eller Kalman-filtrering, men disse tilnærmingene har i mindre grad vært egnet for kobling av tidsseriedata med kvalitetsdata, i vårt tilfelle labdata i LIMS.

Labdata / kvalitetsdata er også tidsserier, men representer en separat utfordring, med sampling på irregulært grid (tidsstemplet, men bare omtrent på stipulert tid), sjelden (kanskje et par ganger om dagen), asynkront med prosessdataene, og tidsforsinket relativt prosessdata (grunnet lange forsinkelser i prosessen og i målingene).

I denne bloggartikkelen vil jeg beskrive min personlige reise, fra helt nybegynner og å ikke kunne noe om maskinlæring for prosessdata, til å lage en maskinlæringsbasert multivariat anomalideteksjonsmodell fra scratch, med prosessdata fra et SCADA-system som input tags og labdata som output tag. Jeg brukte Intelecy fra selskapet med samme navn som plattform. For mer om Intelecy, se https://www.intelecy.com/.

Rett på sak, i dette tilfelle brukeropplevelsen: Når man logger inn på systemet, får man en meny som vist til venstre.  Nå man skal lage en modell, velger man modelltype (prediksjon eller anomalideteksjon), input tags (fra alle lagret i systemet) og output tag (igjen fra de lagret i systemet).  Så velger man læringsperiode, kanskje typisk 1-12 måneder.  Og så setter man systemet til å regne, mens man tar en kaffe eller fem.  Fordi dette tar litt tid.  Det er store datamengder som skal kalkuleres, selv om alt av pre-prosessering, data engineering og datavasking skjer automatisk i bakgrunnen, på GPUer (Graphics Processing Unit, en type prosessor) i skyen.  Når man har lært opp systemet, kan man kjøre det i sanntid for prediksjon, eller anomalideteksjon.

Jeg har sammen med mine kollegaer diskutert typiske use case’r for våre labkunder: i) anomalideteksjon: prosessen viser en uventet oppførsel (prediktert kvalitet <> målt kvalitet, av måletekniker eller online sensorikk), typisk grunnet uønsket hendelse i prosessen eller målefeil; ii) prediksjon: hva er forventet kvalitet (om 1-4 timer) med gitte input tags; og iii) optimalisering: hvordan bør prosessen kjøres for å få en gitt kvalitet.

Systemet har også funksjonalitet for alarmer, anomalier og for modellering av assets.  Alarmhåndtering er iht. ISA 18.2–Management of Alarm Systems for the Process Industries, og tillater filtrering på alvorlighetsgrad og asset.  Det er støtte for samhandling rundt anomalier og alarmer, men kanskje litt grunnere funksjonalitet enn i typiske moderne samhandlingsverktøy.

Så kan man lure på hvor dataene kommer fra.  Svar: De hentes typisk fra historian, gjennom MS Integration Runtime (jeg har skjønt at nye kunder også tilbys Intelecy Gateway for økt sikkerhet og ytelse), gjennom brannmur, og så kryptert over til Intelecy Cloud.  Se figur fra dokumentasjonen, over artikkelen.  Dokumentasjonen (se https://docs.intelecy.io/) er for øvrig ganske enkel å finne frem i, men kunne kanskje vært litt grundigere.

På dette tidspunktet følte jeg et behov for å ta et steg tilbake, ikke minst for virkelig å kunne kommunisere forretningsmessige gevinster ved bruk av Intelecy til våre labkunder i tungindustrien.  Jeg ringte Espen Davidsen, COO i Intelecy.  Han ga meg figuren til høyre.  Kanskje litt mye markedsføring, men figuren illustrerer godt hele konseptet med automatisert data pipeline samt samspillet mellom prosessoperatør og prosessingeniør i denne kjeden.

Det er et par områder der systemet ikke er helt polert enda, dette gjelder spesielt input av ikke-SCADA data, i dette tilfelle LIMS-data.  Jeg måtte improvisere i dette case’t, med hjelp fra Intelecy, men representanter for Intelecy har indikert for meg at man vil tilby en generell ODBC connection til SQL-baserte LIMS-databaser i løpet av K4 2020 (ikke endelig bekreftet).  Jeg forventer vel også at man vil ytterligere raffinere konseptet for maskinlæring for asynkrone tidsserier og kvalitetsdata.

Så kan man si at maskinlæring er en ganske dum tilnærming til prosessmodellering ift. modellbaserte teknikker. Til det kan jeg si at vi i Nemko Norlab leverer labtjenester til et antall industrier der sammenhengen mellom råvarekvalitet, prosess-settinger, og produktkvalitet rett og slett ikke er godt nok forstått til å lage selv en bare nokså god modell.  Dette gjelder f.eks. metallurgisk industri og næringsmiddelindustrien.  Derfor maskinlæring som et attraktivt alternativ.

Jeg har hatt diskusjoner om våre erfaringer fra dette case’t med flere av mine kollegaer i Nemko Norlab, inkludert med Linda Heian, Avdelingsleder Industri og Kjemi og ansvarlig for de fleste av de største industrikundene våre (og kjemiker, ikke teknologientusiast).  Her er hva hun sa:

«Maskinlæring er ikke mitt felt, men både vi og mine kunder ser at koblingen maskinlæring med labdata er attraktiv.  Dette handler fremfor alt om bedre utnyttelse av labdataene og integrasjon av labdata med sanntids prosessdata, men også om prediksjon, automatisering, og konsistens i tolkningen.  Det har vært moro å jobbe med Espen [Davidsen] for å finne gode bruksområder for denne teknologien.  Vi gleder oss til å se arbeidsflyter bygd på maskinlæring og Intelecy realisert hos våre større industrikunder.»

Espen Davidsen, COO i Intelecy, har som indikert over gitt meg hjelp med finpussen på denne bloggartikkelen. I tillegg fikk jeg assistanse av Tom Van de Wiele, Chief Data Scientist og Jonathan Camp, Chief Security Officer samme sted. Takk til alle fra Intelecy.  Jeg må videre innrømme at jeg har tidligere jobbet som forsker på kunstig intelligens i ledende forskningsmiljøer i inn- og utland, men tredve år tilbake.  Det sagt, modellutvikling i Intelecy synes helt håndterbart for enhver prosessingeniør med nogenlunde forståelse for numerikk. Til våre labkunder: Ta gjerne kontakt med Espen, på espen.davidsen@intelecy.com, eller meg, på grim.gjonnes@nemkonorlab.com, hvis du ønsker en prat om hvordan ta i bruk Intelecy for å tolke kombinasjonen av SCADA-data og LIMS-data.

Grim Gjønnes
Utviklingssjef, Nemko Norlab