Jump to content

How to put a lot of capsules in one formula?

Recommended Posts

Hi, I have the some analysis for Train 1 and I want to apply it to the Train 2.

How to transfer it easily to another train without repeating all the steps? By formula? If, yes, then what are the functions?


Below there is a screenshot of derived data.

1. There is a filter for valve 306 closed

2. There is a filter for valve 207 closed

3. Filter Tr1C1 no input, no output -> means the filter of intersection when valves 306&207 closed

4. Filtering the capsules which less then 6 hours

5. Filtering by another parameter that the production is more than 10000 t/d

6. Calculating C1 rate of change

7. Finally apply monthly capsule and calculate Monthly Average


Link to comment
Share on other sites

  • Seeq Team

Hi Vladimir,


There are several ways to apply this analysis to other assets. The first & easiest method that I'll mention is working in an Asset Framework or Asset Group (if existing framework is not available). All previous calculations would need to be created using the data in the Asset Group, but once done, you'll be able to seamlessly swap the entire analysis over to your other assets (Trains, in this case). Asset Groups allow you to create your own framework either manually or utilizing existing frameworks. This video does a great job of showing the creation and scaling calculations across other assets. Note that you would need to be at least on version R52 to take advantage of Asset Groups.


Another easy approach is to consolidate your analysis within 1 - 3 formulas (depending on what you really want to see). Generally speaking, this analysis could fall within ONE formula, but you may want more formulas if you care about seeing things like your "Tr1C1 no input, no output" condition across your other trains. I'll provide you with a way to consolidate this workflow in one formula, but feel free to break it into multiple if helpful to you. The reason this could be easier is you can simply duplicate a single formula and manually reassign your variables to the respective variables of your other Train.



Some useful things to note before viewing the formula:

  • Formulas can make use of variable definitions... You'll notice within each step, except for the very last step, I'm assigning arbitrary/descriptive variables to each line, so that I can reference these variables later in the formula. These variables could be an entire condition, or a signal / scalar calculation
  • In the formula comments (denoted by the double slashes: //), I note certain things could be different for your case. You can access the underlying Formula to any point and click tools you use (Value Searches, Signal from Conditions, etc) by clicking the item's Item Properties (in the Details Pane) and scrolling down to Formula. Do this for your Tr1 C1 rate of change, monthly periodic condition, and average monthly rate calculations to see what specific parameters are. This Seeq Knowledge Base article has an example of viewing the underlying formula within an item's Item Properties
  • The only RAW SIGNALS needed in this formula are: $valveTag1, $valveTag2, $productionTag, and $tr1Signal... The rest of the variables are assigned internally to the formula


// Steps 1, 2, 3, and 4
// Note 'Closed' could be different for you if your valve tags are strings... 
// If your valve tags are binary (0 or 1), it would be "$valveTag == 0" (or 1)

$bothValvesClosed = ($valveTag1 ~= 'Closed' and $valveTag2 ~= 'Closed).removeShorterThan(6h)

// Step 5

$valvesClosedProductionHigh = $bothValvesClosed and $productionTag > 10000

// Note the "h" and ".setMaximumDuration(40h), middleKey(), 40h)" could all be different for your case

$tr1RateofChange = $tr1Signal.aggregate(rate("h"), $valvesClosedProductionHigh.setMaximumDuration(40h), middleKey(), 40h)

// Step 7
// $months could also be different in your case
// Note my final output has no variable definition. This is to ensure THIS is the true output of my formula
// Again, the ".setMaximumDuration(40h), middleKey(), 40h)" could all be different for your case

$months = months("US/Eastern")
$tr1RateofChange.aggregate(average(), $months.setMaximumDuration(40h), middleKey(), 40h)


Hopefully this makes sense and at the very least provides you with an idea of how you can consolidate calculations within Formula for easier duplication of complex, multi-step calculations.


Please let me know if you have any questions.


Emilio Conde

Analytics Engineer


  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...