Search the Community
Showing results for tags 'deviation search'.
I'm trying to create a Value Search to only return deviations/outliers in my dataset, but can't think of a way to do so. For instance, the Value Search for the image below would return the date ranges of Jan 1 - Jan 11 and Apr 6 - May 11. I've tried creating a Reference Profile and Custom Conditions, but it's tricky because this variable can move up or down "smoothly", while these violent deviations/outliers can show up at any point. Most documentation and forum threads seem to cover filtering outliers, and not identifying them. Any help would be appreciated. Thanks!
Overview This method will provide a simple visualization of externally determined control limits or help you accurately calculate new control limits for a signal. Using these limits we will also create a boundary and find excursions for how many times and for how long a signal deviates from the limits.These created signals can be used in follow-on analysis search for periods of abnormal system behavior. In this example we will be creating average, +3 Std Deviation and -3 Standard Deviation boundaries on a Temperature Signal. Setup Signals In the Data tab, select the following: Asset → Example → Cooling Tower 1 → Area A Signal → Temperature Option 1: Manually Define Simple Control Limits From the Tools tab, navigate to the Formula tool. The Formula can be used to easily plot simple scalar values. If you already have calculated values for the upper and lower limit just enter them in the formula editor with their units as shown in the screenshot below. Formula - Simple Upper Limit 103F Formula - Simple Lower Limit 70F Option 2: Calculate The Control Limits From the Tools tab, navigate to the Formula tool. In formula we are going to define the time period over which we want to calculate our control limits as well as the math behind those limits. Step 1 - Calculate the upper limit Variables Name Item Type $Series Temperature Signal Formula $calcPeriod = capsule("2018-01-01T00:00:00-06:00","2018-05-01T00:00:00-06:00") $tempAve = $Series.average($calcPeriod) $tempStdDev = $Series.standardDeviation($calcPeriod) $tempAve + 3*$tempStdDev Description of Code $calcPeriod → This is the time range over which we are going to calculate the average and standard deviation of our signal. The start and end time of our period must be written in ISO8601 format (Year - Month - Day "T" Hour : Minutes : Seconds . Fractional Seconds -/+ Timezone) $tempAve → Intermediate variable calculating the average of the temperature signal over our calculation period $tempStdDev → Intermediate variable calculating the standard deviation of the temperature signal over our calculation period $tempAve + 3*$tempStdDev → Example control limit calculation Step 2 - Duplicate your formula to calculate the lower limits Click the info icon in the details pane next to your calculated upper limit signal. From the info panel select duplicate to create a copy of the formula. With this copy simply edit the formula to calculate the lower limit. $calcPeriod = capsule("2018-01-01T00:00:00-06:00","2018-05-01T00:00:00-06:00") $tempAve = $Series.average($calcPeriod) $tempStdDev = $Series.standardDeviation($calcPeriod) $tempAve - 3*$tempStdDev **Alternate method number three -- if you wanted $calcperiod to actually changed based on the previous month or week of operation you could use signal from condition based off a periodic condition to achieve this solution. Step 3 - Visualize Limits as a Boundary Using the Boundary Tool to connect the process variable and upper and lower limits. Select Temperature as your primary signal and select "New" Select Boundary under relation type, name your new boundary and select the signals for your upper and lower limit. Click save to visualize the boundary on the trend. Using this same method you can create and visualize multiple boundaries (simple and calculated) at the same time Step 4 - Create Capsules when Outside the Boundary Using the Deviation Search tool create a condition for when the signal crosses the boundary. Name your new condition, select temperature as the input signal, select outside a boundary pair and the upper and lower signals. Estimate the maximum time you would expect any one out of boundary event to last and input that time in the max capsule duration field. Step 5 - Create a Scorecard to Quantify How Often and How Long Boundary Excursions Occur Create a Scorecard to count how many and how long and what % of total time these excursions are occurring. Create each metric using the Scorecard Metric tool and the Count, Total Duration and Percent Duration statistics. Use a Condition Based scorecard to get weekly or monthly metrics. Step 6 - Plot how these KPIs are Changing Over Time By creating a signal which plots these KPIs over time we can quantify how our process variable is changing relative to these limits. To begin, determine how often you would like to calculate the KPI per Hour/Day/Week/Month and create a condition for those time segments using the Periodic Condition tool. In the screenshot below we are creating a weekly condition with capsules every week. Using the Signal from Condition Tool count the number of Outside Simple Boundary capsules which occur within each weekly capsule. This same methodology can be used to create signals for total duration and % duration just like in the scorecard section above. For each week the tool will create a single sample. The timestamp placement and interpolation method selections will determine how those samples are placed within the week and visualized on the chart. The scorecard metrics that you created above can also be trended over time by switching from Scorecard View to Trend View.
Hi Everyone, I have a case scenario where we would like to predict the number of days before a parameter reaches a set limit. For example, I wanted to see in my trend a dash line where my Tank Level would reach 80%. Correct me if I am wrong but the Predictive Tool for Seeq uses co-variance signals to generate a forecasted signal. What I wanted to achieve is to forecast the predictive value of a signal in the next succeeding days or hours. Am I able to do so in SEEQ? Regards, Ricky
This use case came up while working with a customer last week, and I thought it was worth sharing on the forum, since other users may be interested. The user I was working with was interested in creating limits for a signal. The limits would be calculated based upon the average and standard deviation of the previous 4 hours of operation; essentially the user wanted to create a rolling 4 hour boundary. We worked out the following solution: 1. Create a periodic condition for the time period that you would like to use for this rolling window. Here I created 4 hour periods: 2. Next, use signal from condition to calculate the average of the signal during each of these 4 hours periods: 3. Use signal from condition again to calculate the standard deviation of the signal during each of these 4 periods. 4. Now use Formula to calculate the upper and lower boundaries based on the average and standard deviation. Here I’m creating boundaries that are +/- 2 standard deviations. Note that the ‘.delay(4h)’ is needed to shift the boundary signals so that the PV signal is being compared to the upper and lower boundaries calculated in the previous 4 hours. 5. Once the upper and lower boundaries are identified, use Deviation Search to determine when the signal is outside of these boundaries.