Jump to content

John Cox

Seeq Team
  • Posts

    14
  • Joined

  • Last visited

  • Days Won

    6

John Cox last won the day on April 20

John Cox had the most liked content!

Personal Information

  • Company
    Seeq
  • Title
    Analytics Engineer
  • Level of Seeq User
    Seeq Intermediate

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

John Cox's Achievements

Newbie

Newbie (1/14)

  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

9

Reputation

  1. Hi Sivaji, While this isn't easy to do in the current Seeq scatter plot view, below are two related forum posts that I would suggest you read. These may help with workarounds. Please note that your request (scatter plots with signals from multiple assets) is already a feature request in our system, and it will be added to the software at some point in the future.
  2. Hi Clinton, I would suggest you come to one of Seeq's open Office Hours and discuss this with one of our Analytics Engineers. They can likely get you started or make suggestions on how to approach this analysis. There are Office Hour slots available each day of the week. Please read more at this link: Seeq Office Hours
  3. Hi Muhammad, I would suggest that you start by searching for "steam" in the Seeq Formula documentation inside of Workbench. Please see the screenshot below. There are many Formula functions for doing steam table calculations.
  4. As another variation, in some cases the user may want to see the number of overlapping capsules at any point in time. In this case, the .fragment() Formula function may be helpful: $EventCondition.fragment() The .fragment() function creates a non-overlapping condition representing all the boundaries of capsules in an overlapping condition. You can see a comparison of the conditions generated using .merge() and .fragment() below. Where there are overlapping capsules, the .fragment() function creates a series of capsules touching each other. For example, note that there are 5 green capsules in the Event Condition (fragment) shown on the far right of the trend.
  5. FAQ: How do I identify time periods where I have overlapping capsules within the same condition? I may want to keep only the capsules (time periods) where capsules overlap. I may also want to keep the times where a certain number (2, 3, or more) of capsules overlap. In this example, we will find time periods where there are at least 2 overlapping capsules which make up the Event Condition. In the screenshot below, you can see there are 3 separate time periods where the Event condition capsules overlap: Step 1: Merge any overlapping capsules together using the merge() function in Formula: Now, we have a time period basis (Event Condition (merged)) over which we can count the total number of overlapping capsules. Step 2: Count the number of overlapping capsules using the count of the original Event Condition capsules over each Event Condition (merged) capsule: This creates a new signal as shown in the trend below. We can see that the new signal values (where > 1) correctly identify the 3 time periods where there are overlapping capsules in the original Event Condition. Step 3: We use Formula to find where the Event Condition (merged) capsules touch a time period where the Number of Overlapping Events signal (created in Step 2) is > 1. Note that we could test for varying number of overlapping capsules (> 2, > 3, etc.) depending on the goals of our analysis. We could also break Step 3 into 2 steps (a Value Search to find where the Number of Overlapping Events is > 1, followed by a Composite Condition to do the touches logic). This generates the final results where the Overlapping Events condition correctly identifies our time periods of interest:
  6. Hi Steve, As a follow-up to your "ability to do a first order filter in Seeq" question from earlier this year, I wanted to mention that the latest version of Seeq (R50) now includes an exponentialFilter() function in the Formula tool. This new function does the first order filter (or first order lag response) that you are interested in. You can see an example below where 3 first order filters were created with different tau values, to filter the raw signal. If you need any help testing this out, don't hesitate to let us know!
  7. A common analytics need is to calculate changes in a signal's value over different time periods (such as hourly or daily). One example is calculating the change in a tank level signal as a way to infer flow rates, production, amount transferred, etc. While the Seeq Formula derivative() function is often useful in these situations, in some cases the user may want to simply calculate the signal change over a specified time period (perhaps once/hour). While there are many ways to do this in Seeq, two efficient ways are: 1) using the Delta statistic in Signal from Condition and 2) using $signal-$signal.delay() in Formula. Here is an example to illustrate: We have a tank level signal shown in lane 1 and we have calculated the hourly change in the tank level by two different methods (the results are shown in lane 2): The first method to calculate the level change per hour uses an Hourly condition (created using the Periodic Condition tool to generate the green capsules). Then, Signal from Condition is used to generate the Hourly Level Change (Signal from Condition) in lane 2, by selecting the Delta statistic over the Hourly bounding condition: The second method uses the delay() function in Formula, subtracting the one hour delayed level from the current value of the level signal. This generates the Hourly Level Change (Formula Delay Function) in lane 2 Note that this approach creates an hourly level difference for each sample point, where the first approach generates a level difference result once per hour. Also note that the user could choose to filter (smooth) the level signal and then apply the level difference calculations, if they desire a more smoothed calculation result. There are several filtering options in Seeq. The agileFilter() function would work well for the level signal in the example.
  8. Beginning in the R21 release of Seeq, administrators can modify scorecard threshold colors, names, and levels (priorities) using the Seeq API Reference. The screenshot below shows an example of the parameters that can be customized: Please contact Seeq support for further details if you are interested in doing this.
  9. In some cases you may want to do a calculation (such as an average) for a specific capsule within a condition. In Seeq Formula, the toGroup() function can be used to get a group of capsules from a condition (over a user-specified time period). The pick() function can then be used to select a specific capsule from the group. The Formula example below illustrates calculating an average temperature for a specific capsule in a high temperature condition. // Calculate the average temperature during a user selected capsule of a high temperature // condition. (The high temperature condition ($HighT) was created using the Value Search tool.) // // To prevent an unbounded search for the capsules, must define the search start/end to use in toGroup(). // Here, $capsule simply defines a search time period and does not refer to any specific capsules in the $HighT condition. $capsule = capsule('2019-06-19T09:00Z','2019-07-07T12:00Z') // Pick the 3rd capsule of the $HighT condition during the $capsule time period. // We must specify capsule boundary behavior (Intersect, EnclosedBy, etc.) to // define which $HighTcapsules are used and what their boundaries are (see // CapsuleBoundary documentation within the Formula tool for more information). $SelectedCapsule = $HighT.toGroup($capsule,CapsuleBoundary.EnclosedBy).pick(3) // Calculate the temperature average during the selected capsule. $Temperature.average($SelectedCapsule)
  10. I have created a daily condition in Seeq using the Periodic Condition tool. Why don't the capsules start at midnight? For example, in the screenshot below the "Daily" capsules start at 11:00PM (see the Capsules pane) instead of midnight (12:00AM). This results when the user interface (UI) time zone does not match that of the Seeq Server. In this example the Seeq Server time zone is US/Eastern but the UI time zone is US/Central. To make the UI time zone match, the user can click on the UI time zone link (noted by the red box in the screenshot: trend display, x-axis, right of timestamp): The user can then set the "Always use:" option to US/Eastern (in this example the Seeq Server is on US/Eastern) as shown here: The daily capsules now start at midnight:
  11. There are various methods to do this. The easiest method is by using the max() or min() functions in the Formula Tool, which are available beginning in Seeq release R21.0.40.05. Here is an example for creating a new signal which is the maximum of 4 other signals: $a.max($b).max($c).max($d) You can also see additional information in this related forum post.
  12. A common analytics need is to create a signal with numerical values that are based on an existing condition. Users often want to translate a condition (on/off, good data/bad data, running/down, etc.) to a numerical value to be used in calculations. For example, a user may want to multiply a process signal by a 0/1 value based on when the process is down/running. This technique can also be used to replicate "if" logic or "if / else" logic, where different values are returned depending on if the condition is true/false. Converting a condition to a signal value can be easily accomplished in Seeq using the Formula Tool and the splice function. Here is an example where we convert a condition to a signal of 0s and 1s: 1. Use the Value Search Tool to create a HOT condition for time periods when the Temperature signal is > 90 degrees F: 2. Use the Formula Tool to convert the HOT condition to a 1 (when condition is true) and a 0 (when condition is false): 3. View the results in the trend. The new signal in lane 2 has a value of 1 when the HOT condition is true. Otherwise the signal is 0. Additional Information Using Conditions and the Splice Function to Replace If Statements
  13. Hi Ted, The answer is yes, there are! One of the easiest ways uses the Seeq Formula editor. The runningDelta() and interval() functions provide methods for calculating changes in sample values (and the actual sample time) from one sample to the next. For example, the change in a tank level can be calculated using this approach: Giving this result: This next example demonstrates the interval() function for calculating the actual sample time for each sample in a signal. The sample time interpolation and units are modified to improve visualization: With the results displayed for a process sample that is collected intermittently: I hope this covers all the bases for your question, Ted! Please let me know if you have any follow-up questions. John
  14. Hi Ted, In the Seeq Formula editor, the transform() and filter() functions provide ways to loop over all the samples in a signal as well as all the capsules in a condition. For example, a 2 sample running average of a signal can be calculated as shown here, by looping over each sample in the Temperature signal: Giving this result: As an example of looping over all the capsules in a condition, high temperature capsules lasting longer than 4 hours can be identified with this formula: As shown in the trend view, only the temperature excursions longer than 4 hours are included in the “Extended High T Periods” condition: I hope these examples are helpful! Please let me know if you have further questions. John
×
×
  • Create New...