Jump to content
  • To Search the Seeq Knowledgebase:

    button_seeq-knowledgebase.png.ec0acc75c6f5b14c9e2e09a6e4fc8d12.png.4643472239090d47c54cbcd358bd485f.png

Search the Community

Showing results for tags 'boundaries'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Community Technical Forums
    • Tips & Tricks
    • General Seeq Discussions
    • Seeq Data Lab
    • Seeq Developer Club
    • Seeq Admin Forum
    • Feature Requests

Categories

  • Seeq FAQs
  • Online Manual
    • General Information

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Company


Title


Level of Seeq User

Found 4 results

  1. Summary: Many of our users monitor process variables on some periodic frequency and are interested in a quick visual way of noting when a process variable is outside some limits. Perhaps you have multiple tiers of limits indicating violations of operating envelopes or violations of operating limits, and are interested in creating a visualization like that shown below. Solution: Method 1: Boundaries Tool One method to do this involves using the boundaries tool. This tool is discussed in Step 3 of this seeq.org post, and results in a graphic like that shown below. Some frequently asked questions around the above method are: Is there a way to make the different levels of boundaries different colors? Is there a way to color the section outside of the limits rather than inside of the limits? Method 2: Scorecard Metrics in Trend View Step 1. Load the signal you are interested in monitoring as well as the limits into the display pane. The limits can be added directly from the historian, or if they do not exist in the historian they can be created using Seeq Formula. Step 2. Open a new Scorecard Metric from the tools panel, create a simple scorecard metric on your signal of interest, with no statistic. Click the "+" icon to optionally enter thresholds, and add the threshold color limits that you are interested in visualizing. Note that the thresholds input in the boundary tool can be constant (entering a numeric value) or variable, selecting a signal or scalar.
  2. Overview Often times two (or more) units that the same products and unit procedures. This is common in continuous processes that are running a specific "grade"; also in batch processes that are manufacturing the same product ID. Since they are identical pieces of equipment or units, the “profiles” of critical process parameters are similar and we want to use profiles from multiple units for our reference profile. In this example we will create a profile from 2 units - the same process can be applied for additional units ad infinitum. Then we will apply this profile to a running batch to look for deviations in near real-time. Step 1: Add Signals and Conditions to Display Add the signals for profiling. Then specify the modes of operation, or unit procedures, using Seeq's Condition logic to create capsules - there are various ways to do this using Seeq's Capsule logic Formula, Value Search, Custom Condition, Composite Condition, etc. Shown below are temperature signals for two units R-401 and R-402, along with their corresponding unit operations. Note that some capsules are overlapping in time, but don't worry, Seeq will handle this just fine. Step 2: View the signals in Capsule Time Here we use the Seeq trending tools to examine the profiles. Capsule Time is a great way to do this. The 'Group' button in the menu can select the appropriate capsules to overlay the signals - and handle those pesky overlapping capsules on the different units. We can filter out additional capsules if we want; but let's use them all in this example. Here are the profiles we’ll use to make our reference profile: Step 3: Build the Reference Profiles The key to building a reference profile with multiple signals and conditions is to use the Formula Tool. The Reference Profile Tool in the Tools Pane provides a nice user experience for a single signal with a single condition - that approach won't work for us here. We will create two unique profiles, upper and lower, but we’ll need 4 formulas so we can repeat the profile over both the R-401 unit procedures and the R-402 unit procedures. We “selected” each capsule in the formula by creating a bunch of capsule groups that just contained a single capsule. This approach works in all cases including overlapped capsules. Here’s the formula for the upper profile, +3 Standard Deviation, repeated over R-401 and we plotted the reference profile in capsule view. Below is the Formula that we used, for easy cutting/pasting. *Pro Tip* - Use the Start and End times from the Capsules Pane to define the capsule() times in the toGroup() function. The times do not have to match the exact times of the capsule - they only need to fully enclose the single capsule. Usually this gives us a little wiggle-room on the times. This formula uses the referenceTable() function to build the profile across the 2 units and 2 signals. We specified each capsule and each corresponding signal in each capsule then added them using addRows() to the referenceTable(). Then we told Seeq which condition to draw the reference profile using repeatOver() along with the statistic to calculate, +3 StdDev, in this case. Important! The referenceTable() function must include Bounded Capsules, i.e. those with specified maxDurations, otherwise you will get an error suggesting to use the removeLongerThan() function. Make sure that the $c401 and $c402 conditions are either bounded or were created with the removeLongerThan() function. $R401_1 = $c401.toGroup(capsule('2019-10-07T05:00-06:00', '2019-10-07T07:00-06:00')) $R401_2 = $c401.toGroup(capsule('2019-10-07T09:00-06:00', '2019-10-07T11:00-06:00')) $R401_3 = $c401.toGroup(capsule('2019-10-07T15:00-06:00', '2019-10-07T16:30-06:00')) $R401_4 = $c401.toGroup(capsule('2019-10-07T16:30-06:00', '2019-10-07T18:00-06:00')) $R401_5 = $c401.toGroup(capsule('2019-10-08T00:00-06:00', '2019-10-08T02:00-06:00')) $R402_1 = $c402.toGroup(capsule('2019-10-07T05:30-06:00', '2019-10-07T07:30-06:00')) $R402_2 = $c402.toGroup(capsule('2019-10-07T11:00-06:00', '2019-10-07T13:30-06:00')) $R402_3 = $c402.toGroup(capsule('2019-10-07T14:00-06:00', '2019-10-07T15:15-06:00')) $R402_4 = $c402.toGroup(capsule('2019-10-07T15:20-06:00', '2019-10-07T16:40-06:00')) $R402_5 = $c402.toGroup(capsule('2019-10-08T00:30-06:00', '2019-10-08T02:30-06:00')) $rt = referenceTable (2min) .addRows ($t401, $R401_1) .addRows ($t401, $R401_2) .addRows ($t401, $R401_3) .addRows ($t401, $R401_4) .addRows ($t401, $R401_5) .addRows($t402, $R402_1) .addRows($t402, $R402_2) .addRows($t402, $R402_3) .addRows($t402, $R402_4) .addRows($t402, $R402_5) .repeatOver($c401 , ReferenceTableStat.StdDev, 3 ) $rt Repeat the above process for the R-401 lower profile. *Pro Tip* - Use the 'Duplicate' functionality by clicking on the 'Item Properties' i-icon in the Details Pane. Then we only need to change the "3" to a "-3" at toward the end of the formula to do a -3 Standard Deviation. Repeat this process 2 more times for the R-402 upper and lower profiles. We only need to change the parameter in the repeatOver() function from $c401 to $c402. Here is everything plotted in Calendar Time as Reference Profiles and then as Boundaries after using the Boundary Tool. And now with Boundaries: Step 4: Apply Boundary to Running Unit Lastly, let's apply this boundary to a currently running mode of operation or batch. Let's focus on unit R-401 at the moment. All that we need to do is add the currently running capsule to the existing 'R-401 Unit Procedure - Product X' Condition. This can be done in a variety of ways using Seeq's Formula functions for modifying conditions. Here I'll simply add a Capsule by drawing it using the Custom Condition tool. Note, the result is a capsule that shows the boundary of the running batch, projected into the future. This same approach can be applied to unit R-402. Seeq is able to handle any arbitrary amount of units, signals, overlapping or not to create your reference/golden profiles.
  3. 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 Scorecard Metric to connect the process variable and upper and lower limits. Select Temperature as your item to measure. Add threshold for your upper and lower limits. Default is to add a fixed value. By clicking on the scalar icon to the left of the green "x", you can select a signal as your threshold limit. You can change the colors of the different threshold or color only the area between the threshold as shown below. Once you click execute, you will see a new scorecard metric with the shaded area between the boundaries and the original signal. Step 4 - Create Capsules when Outside the Boundary Using the Value Search tool, create a condition for when the signal is outside the limit signals. Name your new condition, select temperature as the input signal, select <> not between, click on the scalar icon to select a signal as your limit, and use the upper and lower limit signals as your upper and lower limit, respectively. 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. Content Verified DEC2023
  4. Use Case Background Commonly, engineers are interested in calculating limits on a signal based upon the average and standard deviation. Additionally, there may be different modes of operation during which the performance - and limits - is different. This post describes how to develop mode based boundaries for a process signal to identify deviations from the normal or expected behavior. Mode Conditions In this example, I am interested in calculating boundaries on a Compressor Power signal based upon the mode of operation in a Compressor Stage Signal. (Note: These signals are from Example>Cooling Tower 1> Area A of the Example data shipped with each Seeq installation.) The first step is to identify the 3 stages of operation (Off, Running 1 Compressor, Running 2 Compressors) by performing a Value Search on the Compressor Stage signal: Average Compressor Power using Formula Next, I can use the Formula tool to calculate an Average Compressor Power signal, using the following variables and syntax: Variables Name Item Type $Series Compressor Power Signal $High Compressor High Condition $Low Compressor Low Condition $Off Compressor Off Condition Formula // Identify a reference capsule over which the statistic is calculated. You can think of this as the golden batch period or the period in time that we know that the system was operating properly. $refPeriod = capsule("2016-04-01T00:00:00Z","2016-05-01T00:00:00Z") //Cut the single continuous time series signal (Compressor Power) into sections which correspond to the different modes of operation. This gives us three intermediate time series signals which only contain data for the three distinct modes of operation. $highSeries = $series.within($high) $lowSeries = $series.within($low) $offSeries = $series.within($off) // Create three intermediate time series signals, one for each mode of operation. Find the average value of the time series signal during the reference time period for each mode of operation, and then turn that scalar into a time series signal which only exists in the appropriate mode of operation $highAve = $highSeries.average($refPeriod).tosignal().within($high) $lowAve = $lowSeries.average($refPeriod).tosignal().within($low) $offAve = $offSeries.average($refPeriod).tosignal().within($off) // Splice together the three time series signals into a single signal and step interpolate the $finalSeries $finalSeries = $highAve.splice($lowAve,$low,false).splice($offAve,$off,false).toStep() return $finalSeries Boundaries Using Formula To start, let's calculate the upper boundary as the average + 3 std dev. I can use the Formula tool to calculate this upper boundary using the following variables and syntax. Variables Name Item Type $Series Compressor Power Signal $High Compressor High Condition $Low Compressor Low Condition $Off Compressor Off Condition Formula $refPeriod = capsule("2016-04-01T00:00:00Z","2016-05-01T00:00:00Z") $highSeries = $series.within($high) $lowSeries = $series.within($low) $offSeries = $series.within($off) $highAve = $highSeries.average($refPeriod).tosignal().within($high) $highStdDev = $highSeries.standarddeviation($refPeriod).tosignal().within($high) $highBoundary = $highAve + $highStdDev*3 $lowAve = $lowSeries.average($refPeriod).tosignal().within($low) $lowStdDev = $lowSeries.standarddeviation($refPeriod).tosignal().within($low) $lowBoundary = $lowAve + $lowStdDev*3 $offAve = $offSeries.average($refPeriod).tosignal().within($off) $offStdDev = $offSeries.standarddeviation($refPeriod).tosignal().within($off) $offBoundary = $offAve + $offStdDev*3 $finalSeries = $highBoundary.splice($lowBoundary,$low,false).splice($offBoundary,$off,false).toStep() return $finalSeries Similarly, I can calculate the lower boundary as average - 3 std dev using the following variables and Formula syntax. Variables Name Item Type $Series Compressor Power Signal $High Compressor High Condition $Low Compressor Low Condition $Off Compressor Off Condition Formula $refPeriod = capsule("2016-04-01T00:00:00Z","2016-05-01T00:00:00Z") $highSeries = $series.within($high) $lowSeries = $series.within($low) $offSeries = $series.within($off) $highAve = $highSeries.average($refPeriod).tosignal().within($high) $highStdDev = $highSeries.standarddeviation($refPeriod).tosignal().within($high) $highBoundary = $highAve - $highStdDev*3 $lowAve = $lowSeries.average($refPeriod).tosignal().within($low) $lowStdDev = $lowSeries.standarddeviation($refPeriod).tosignal().within($low) $lowBoundary = $lowAve - $lowStdDev*3 $offAve = $offSeries.average($refPeriod).tosignal().within($off) $offStdDev = $offSeries.standarddeviation($refPeriod).tosignal().within($off) $offBoundary = $offAve - $offStdDev*3 $finalSeries = $highBoundary.splice($lowBoundary,$low,false).splice($offBoundary,$off,false).toStep() return $finalSeries Final Results Executing these 3 formulas results in 3 new time series signals: Average Compressor Power, Compressor Power +3sd and Compressor Power -3sd. The Customize menu in the Details Pane can be used to adjust how these signals are visualized on the screen: Content Verified DEC2023
×
×
  • Create New...