Jump to content

Krista Novstrup

Seeq Team
  • Posts

    10
  • Joined

  • Last visited

  • Days Won

    6

Everything posted by Krista Novstrup

  1. In Step 4 of the Original Post, the formula used for creating a signal with values from the Condition properties, 'Intercept' and 'Slope', was... $signal=$Condition.transformToSamples( $cap -> sample($cap.getmiddle(), $cap.getProperty('Intercept').toNumber()), 1min) $signal.aggregate(average(),$Condition,durationKey()) This complex formula has been simplified and can now be written as... $Condition.toSignal('Intercept',durationKey()) If the condition is unbounded you may have to modify slightly... $Condition.removeLongerThan(40h).toSignal('Intercept',durationKey())
  2. Hakan, Please check out Seeq's partner Amitec. Here is a link to more info... https://www.seeq.com/about/partners/system-integrators/amitec Cheers, Krista
  3. Question: How do I normalize a signal in Seeq? Sometimes it can be helpful to view data on a normalized scale or used normalized inputs in a model. Solution: This solution is posted using R22.0.47 but is applicable to earlier versions. Slight modifications of the formula may be required for earlier versions. 1. Let's start by loading our signal... 2. Next we'll use Formula to create a normalized signal. In Formula we do the following steps Define the time period over which we will do the normalization Calculate the min and max values which occur during that time period Calculate the delta between the min and max Finally, calculate the normalized signal Here is the code snippet if you'd like to copy and paste... $timePeriod = capsule('2019-01-01T00:00-05:00', '2020-01-01T00:00-05:00') $max = $signal.maxValue($timePeriod) $min = $signal.minValue($timePeriod) $delta = $max - $min ($signal - $min) / $delta 3. View the results in Seeq. Note that I optionally created scalar boundaries at 0 and 1 to highlight the normalization of my signal...
  4. This Use Case became simpler in R21.0.41 with the addition of the now() function in formula. You no longer need to do the first two steps of defining a search window for now and then using a signal to identify the last measured time stamp. Instead you just need to use the now() function to define the capsules and create your condition... //Create conditions representing the last 7, 14, and 365 days $Last7DayCapsule = capsule($now()-7d, $now()).setProperty("Time","Last 7d") $Last14DayCapsule = capsule($now()-14d, $now()).setProperty("Time","Last 14d") $Last365DayCapsule = capsule($now()-365d, $now()).setProperty("Time","Last 365d") condition(370d,$Last7DayCapsule,$Last14DayCapsule,$Last365DayCapsule)
  5. Seeq Version: R21.0.43.03 but the solution is applicable to previous versions as well. The Profile Search Tool is great for specifying a profile in Signal A and then looking for occurrences of that profile throughout time. In the screenshot below I've used Profile Search to identify when the Compressor Power Area A resembles the shape of a chair. For basics about how to use the tool check out the Seeq KB article Profile Search. However, what if I want to look for that same profile on another signal? In the screenshot below, I've added a second signal, Compressor Power Area G. I'd like to identify when the "chair" profile I previously specified for Compressor Power Area A is present in Compressor Power Area G. I can do this by using the profileSearch() function in Seeq Formula. Here is how... 1. Start with the Chair in Area A condition I previously made and use Duplicate to Formula. The duplicated formula looks like (note that $cpA refers to Compressor Power Area A): profileSearch($cpA, toTime("2019-09-02T15:43:30.135Z"), toTime("2019-09-03T06:28:09.629Z"), 98, 0.5, 0.3, 0.3) 2. Modify the formula to add $cpG (Compressor Power Area G) to the start of the function. This is an optional argument in Profile Search which allows us to use the profile identified on signal $cpA and look for when it occurs on signal $cpG. For more information on the Profile Search function, check out the documentation available in the Formula Tool. $cpG.profileSearch($cpA, toTime("2019-09-02T15:43:30.135Z"), toTime("2019-09-03T06:28:09.629Z"), 98, 0.5, 0.3, 0.3) Here is a screenshot of what it looks like in the Formula Tool: 3. View the final result. In this example two "chairs" where identified in Area G.
  6. In the course of building an analysis and experimenting you may create multiple signals and conditions you don't need. Clicking the 'x' in the Details pane will only remove them from the list but not from Seeq. As a result, when you go to create a new signal/condition and give it the same name you'll see the message 'An item with this name already exists.' This inevitably leads to the following two questions... How do I find the item? All signals and conditions can be searched for from the Data tab. Here are a few helpful hints to remember... Make sure to hit the Reset button to clear all filters and make sure you are searching from the top level and not within an asset tree. With the help of regex you can return only exact matches.... /^TAG NAME$/ For more information check out the Seeq Knowledge Base article Basic Searching and Filtering. How do I delete the item? One you find the item, add it to the Display. You can then select Item Properties and the red trash can. For more information on Item Trash check out the Seeq Knowledge Base article Item Trash.
  7. Jitesh, Seeq offers a number of functions for cleansing data before it is used in a regression model. This can be an important step because bad data has a negative impact on regression quality as you are observing. Without seeing the raw data it's hard for me to assume what type of cleansing is most appropriate. There are a couple posts already on Seeq.org you might find interesting: Delaying or Shifting the Time of a Signal - This helps if the various meters are located at different points in the process Signal Smoothing - This gives an example of the removeOutliers function To see a full list of Signal Cleansing options checkout the Formula documentation in Seeq by selecting Signal Cleansing as seen in the screenshot below. In addition, my screenshot shows an example of agileFilter(). This is one of my go-to functions for smoothing data before subsequent use in other analysis. If you feel comfortable sharing what your raw data looks like (either a description or screenshot), then I can give you more specific advice. Cheers, Krista
  8. One limitation to the method mentioned above is if one of the signals doesn't have any values, then no answer is returned. If you still want the value even if one signal is missing than you can try the alternative formula described below. This method works for versions prior to R21.0.40.05. Here is the formula for 2 signals as shown above: $signal1.zipWith($signal2, ($s1, $s2) -> max($s1.getValue(), $s2.getValue())) If you have more than 2 signals, then add additional zipWith() statements: $signal1.zipWith($signal2, ($s1, $s2) -> max($s1.getValue(), $s2.getValue())) .zipWith($signal3, ($s1, $s3) -> max($s1.getValue(), $s3.getValue())) .zipWith($signal4, ($s1, $s4) -> max($s1.getValue(), $s4.getValue()))
  9. Analysis Steps 1. Use the Value Search tool to create a condition for the peaks. 2. Use the Signal from Condition tool (twice) to calculate the maximum value of each signal during the Peaks condition. Be sure to place the timestamp of the statistic at the point of maximum value. 3. Finally, use the following syntax in Formula to calculate the offset between each set of peaks. The result of this Formula is a new time series signal with a sample reporting the offset for each pair of peaks. Analysis Steps IF you already have a conditions for the max of the peaks: If you already have conditions with capsules that start (or end) at the peak max then you can use a Composite Condition followed by Signal from Condition. Here is how... 1. Use Composite Condition to join the two capsules. In this example the capsules start at the peak max so the join will be inclusive of A but not inclusive of B. 2. Use Signal from Condition to calculate the duration of the Peak-to-Peak capsules. Content Verified DEC2023
  10. I have a batch operation characterized by two conditions: The first condition represents the start of the batch and the second condition contains the end of the batch. Each capsule has the batch ID as a capsule property. How can I make a single condition that represents the duration of the batch by joining the start and end conditions?
×
×
  • Create New...