anyone who has tried to make dynamic time warping of PI signals using VB.NET or PI Processbook (with or without chart add-in)?
This is for showing batch trends relative to each other (could be part of PI batchview).
I haven't seen previous discussions on dynamic time warping of PI data, so perhaps others can chime in here! How would you like to represent/display your DTW results?
Another possibility is to use R or MATLAB to do the computing, since there are many existing resources and projects about DTW in both. If you are interested, you might want to check out our white papers on:
PI BatchView allows to overlay different Batches for comparison. It's also possible to select a Golden Batch as reference. As Daphne, I am facing the term "Dynamic Time Warping" the first time today but maybe PI BatchView offers the functionality that you are looking for.
Please download the recent version of PI BatchView User Manual
Thanks Gregor, I’m already a user of PI batchview – I want to do more: not all batches, or steps in batches, have the same time length and I want to align the signals by “warping” the time. This will show deviations easier.
This is a technique originating from speech recognition.
What I have done before is put a chart control in a PI Processbook display. For example for showing bar and pie charts based on calculations of PI data. Microsoft has several versions of chart controls from simple to very flexible.
The dynamic time warp algorithm is not that difficult when you use evenly spaced time steps and only 2 signals: a reference and the second one. I’m looking into multiple signals. I‘m also looking if you could feed PI data directly into the algorithm, without the interpolation, using time stamps instead.
I’m using Matlab right now for the algorithm tests, but not everyone has Matlab and I want the display to be used by more people. The Matlab code I have now is still translatable in VBA code.
It makes sense that you would like to display on a platform that is accessible to a lot of users. If ProcessBook is your desired platform and you are developing a new application, I would encourage using the "AF SDK Wrapper for PI ProcessBook", which is a PI ProcessBook .NET add-in that exposes parts of PI AF SDK (a .NET library) to COM (PI ProcessBook's VBA). It is available for download in the Tech Support Download Center. It is likely that you will find functionality within PI AF SDK to get the PI data you need for the algorithm.
Please let us know if you consider the answers to your question sufficient. Optimally, please mark the "correct answer".
I have applied DTW on batch profiles using MATLAB and it works well.
Algorithm development is much easier in MATLAB compared to other programming languages due the large number of out-of-the-box functions.
The PI data can be pulled by the OSIsoft SDK's or API's and there is a white paper about that.
From my experience COW works much better than DTW on process signals. Here is a reference:
Dynamic Time Warping (DTW) and Correlation Optimized Warping (COW) | Plant Food Science group & Spectroscopy and Chemome…
In terms of deployment I would recommend PI-ACE. You could either call MATLAB directly and use the exiting code or develop a .NET library.
I used the first approach: 2007 - User Conference - Monterey
Hope this helps
Retrieving data ...