Jump to content

Nick Gigliotti

Seeq Team
  • Posts

  • Joined

  • Last visited

  • Days Won


Nick Gigliotti last won the day on September 20 2019

Nick Gigliotti had the most liked content!

Personal Information

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

Recent Profile Visitors

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

Nick Gigliotti's Achievements


Newbie (1/14)

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

Recent Badges



  1. It is often useful to create a scorecard metric that displays a signal name for use in Organzier Topics. This is relatively simple using Formula and the toSignal() function. This Formula creates a string signal that has a value of "Signal Name" for all of time. After I have my string signal, I can use a simple scorecard metric with no statistics to create a scorecard that just displays the value of this string. I have changed the header to only display the end time. Now, I can use this scorecard in an auto-updating Organizer Topic that will always show "Signal Name". This functionality is very useful if you want to create a string signal that has more than one value. For example, say that I have three signals. I want to create a scorecard metric that tells me which of these three signals is the largest at any point in time. I will start by creating conditions for when each signal is larger than the other two. First, I use Deviation Search to find when Signal 1 > Signal 2 and for when Signal 1 > Signal 3. Then I use Composite Condition (logic: intersection), to find when Signal 1 is max. I repeat this process for Signal 2 - Deviation Search to find Signal 2 > Signal 1 and Signal 2 > Signal 3 + composite condition. Finally, I use Formula to find when Signal 3 is max by using union() and inverse() to find when Signal 1 or 2 are not max : $1max.union($2max).inverse(). Now I have 3 conditions which should cover the whole time series, which are true when each Signal is the maximum of the 3 at any point! I'm now ready to create the string signal. Just like I did for a single string, I will essentially be creating new signals with toString(), but this time, I will use splice() to splice in the different strings ("1 is max", "2 is max", or "3 is max") when each condition is present. This works because my "X is max" conditions will never overlap. The result is a string signal that equals whatever signal is the maximum at every point in time! Finally, I'll use Simple Scorecard again to create a metric that displays this Max Signal for use in Organizer Topics.
  2. Hi Jitesh, Say that the condition you used to remove the data from "$signal" is called "$condition." If I understand correctly, you want your signal to display the mean or median value during condition. First you must calculate the mean or median value. There are multiple ways to do this, I will share two: Zoom out in the display range to a period over which you want to find the mean/median. Use Simple Scorecard Metric to calculate mean or median during this period. Say the mean was 2.55 Then use formula to create a signal called, "Mean" which is: 2.55.tosignal() Find the mean/median value around the capsules where data was removed. To do this, use the grow function to grow the capsules - $condition.grow(1 hr). Then use Signal from Condition to calculate the mean/median value during these times (call this "MeanDuringGrownCapsules"). In the signal from condition, use step interpolation and place the sample over the duration of the capsules. Next you must splice in the mean during the gaps. The formulas to do this is splice() or spliceblend(). $signal.splice($mean [or "MeanDuringGrownCapsules"] , $condition) The difference between splice() and spliceblend() is that spliceblend() will smoothly join the samples from the original signal and the replacement signal, while splice() will create a discontinuity. Let me know if this helps!
  3. Hi Manoj, In the current version of Seeq, I don't believe you can update all images to their current version en masse. However, this is a good idea - I will submit it as a feature request.
  4. Suppose I have a batch process with several unit operations and I want to create a single capsule for a batch as it moves through the process. This is useful for optimizing the cycle time of a batch process with several unit operations. It is relatively simple to define a batch for a single unit operation: value search to find when a tank level is >0, composite condition to join the start and end capsules from an event frame, or using capsule properties (https://www.seeq.org/index.php?/topic/314-join-capsules-by-matching-capsule-properties/). However, what if I want to track a batch as it moves through several unit operations? In the process below, I have three steps: feed makeup (lane 1), reaction (2), and filtration (3) - the batch of raw material moves from tank to tank for each step in the process. I have created a capsule for each unit operation step by using the level of each tank. Note how the capsules overlap: this makes it not possible to first join the feed makeup and reaction step, then join that condition to the filtration step. See image below: The solution to this is to create one condition for Feed Makeup joined to Reactor and another condition for Reactor joined to Filtration Tank, then to join those two conditions (Full Batch). From here I could track the cycle time of each step in the process.
  5. Following up on Chris' answer... If your "period of interest" is not a perfect 24 hours, you could use the following method to convert the duration of your "period of interest" to a scalar, which could be used with the periods() function to create a repeating condition: Make a formula to find the "day with my profile" duration and convert that to a scalar: $month = capsule('feb 2019') $c.togroup($month).last().duration().convertUnits('ns') Then make a formula to create a condition with capsules that have the same duration as the "day with my profile" capsule periods($daywithmyprofileduration) Then follow the steps Chris outlined above, use the new periodic condition for the input under the Advanced tab
  6. One additional way to do this would be to use Signal from Condition and the "Value at Start" selection in the summary statistic field. This will give a formula similar to the one described by Ben if you look at the Item Properties of the new signal.
  • Create New...