Jump to content
  • To Search the Seeq Knowledgebase:

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

Search the Community

Showing results for tags 'capsule'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Community Technical Forums
    • General Seeq Discussions
    • Seeq Admin Forum
    • Training Resources
    • Product Suggestions
    • Seeq Data Lab
  • Community News
    • Seeq Blog Posts
    • News Articles
    • Press Releases
    • Upcoming Events

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


About Me


Company


Title


Level of Seeq User

Found 20 results

  1. FAQ: I have a CSV file that has the start and end times of some historical events and various information about the events that I would like to use in my analysis in Seeq. How do I go about getting these events and all of their associated information into Seeq? Solution: Use the Import from CSV tool and Seeq Formula to bring in a condition comprised of each of these events and assign the data in each column of the CSV as a property of the condition. 1. Ensure your CSV file is formatted correctly for import into Seeq. The first column should be the event start time, the second column should be the event end time, and all other data columns should be to the right of these. A list of acceptable timestamp formats can be found on the Seeq Knowledge Base in this article. 2. Use the Import CSV File tool to bring the condition into Seeq. Drag and drop your CSV file or navigate to your file through Windows (Mac) Explorer. Under "Import File as" select "condition". Choose the start-time and end-time columns in the "Choose columns" section. Specify a max capsule duration that is just longer than your longest event. 3. Once your condition is imported, use Seeq Formula to assign the data from the other columns of our CSV as properties of each capsule. Begin by using the item properties for the CSV imported condition to duplicate the condition to Formula. Once in Formula, add the column headers from your CSV to the query in line 1 of the code, separated by commas. Then use the setProperty() function to assign each of the columns of the CSV as a property of each capsule. Once executed, the output is a new condition that looks exactly like the original from trend view in the display pane. However, this new condition has properties, that can be added to the capsules pane using the gridded+ button.
  2. Dear.... I have a Question.... I have a continues batch process, marked by an UNIQUE Batch ID (Bleu stepped line) and I need to perform calculation per Batch ID. How would I do that.... Calculation: tot rejects per batch, per signal !!!..... but.... look closely.(SEE SECOND image...)... the batch step is triggered at the start of the filling process.... and some of the reject counter may still be working on the previous batch.... TIPS and TRICKS are welcom....
  3. When examining data in Capsule Time view it can be useful to view data from the time period immediately the capsules alongside the data during the capsules. This can be done by: 1. Hover over the x-axis (shown in the image above as measuring time from the start of the capsule in hours), click and drag your mouse to the right. You will likely see no data from the time period before 0.0 on the x-axis. 2. Click on the "Dimming" option at the top of the Display Pane. Check the box to "Show Data Outside of Conditions". When this box is checked the data outside of the conditions is displayed, slightly more faintly than the data within the capsules. Optionally, utilize some of Seeq's coloring features in capsule time to display the data from each capsule and before/after in different colors (rainbow shown).
  4. I need to receive the starting time of the water breakthrough in absorbers. For that I do following: Filtering the signal of water content to smooth it. Creating the derivative of the water content to use it further to find where the water content increasing Creating the conditions: A. when the inlet valve is open (adsorbtion cycle) B. when the water content is higher than 0.5 (for 5 min) C. when the derivative is higher than 0.0001 to find the increasing of the water content 4. Creating the composite conditions: AA. intersection of A & B BB. intersection of AA & C Probably it's not the optimal solution, but it works (see pic below). A, B, C...etc are the conditions (see above). Question: How to remove all other capsules which are within the specified conditions? I need only the first capsule in BB (there are 2 capsules at the pic below, I need only first). I will then export this info to excel and extract only the start time. Therefore, all other capsules except first are trash.
  5. Background: When looking to identify trends or step changes in a signal, we typically recommend an approach of smoothing the signal, taking the first derivative, then identifying when that derivative is positive or negative. This method works well most of the time, but employing this technique in combination with others can be more effective at capturing trends/step changes when the value change in the signal is more subtle. Solution: When looking for step changes, we can use a technique of calculating a range of the signal on a rolling periodic basis and search for when the range exceeds some limit. We can then combine this condition with when the derivative is positive (increasing step changes) or negative (decreasing step changes) to capture our final condition. 1. Create a rolling window over which you will look at the range (max-min value) of the signal. In my example I used a 4h window every 30 minutes, because my tank draining events were typically never longer than 4h. Select the smallest time period that you can that is still longer than your longest draining event. 2. Use Signal from Condition to calculate the range (max-min) of your signal over each of the rolling windows. Make sure to place the time stamp of the statistic at the end of each rolling capsule. 3. Identify time periods when that range calculation is above some threshold. In this example we used a threshold of 2 based looking at the trend output of our step 2. If we zoom in on a smaller range of time, we see that our capsules for when the range value is high actually extend beyond the completion of our decreasing signal. 4. We can intersect this condition that we have identified for high range in the signal with a condition for when the derivative of the signal is negative to capture our desired events. First calculate the first derivative of the signal. We apply a smoothing agileFilter in this step as well to remove signal noise. 5. Identify when that derivative value is less than zero using the value search tool. 6. Now take the intersection of the condition for negative derivative of the level and the condition for high range. The final view of the original signal and the events identified: Use chain view to validate your calculations:
  6. FAQ: For reporting purposes, I want to calculate statistics based on the current period to date and display that next to the periods immediately preceding it. This is easy to do using the custom date range tool in Organizer Topic (Creating a Periodic Condition and the grabbing the capsule closest to or offset by 1 from the end). Is there a way to create these same date ranges relevant to the current time in Seeq Workbench? Solution: We can create identical conditions in Seeq Workbench by following the methods below. The first method defines how to create conditions for current and previous conditions for years, days, weeks, shifts. The second method includes an extra step that is necessary for current and previous months and quarters since the exact duration of these periods can vary based on the number of days each month. Method 1 - when the length of time in each period is definitive (e.g. year, week, day, shift). This example shows how to create conditions for "Current Week" and "Previous Week" 1. Create a Periodic Condition for "Weekly" using the Periodic Condition tool. 2. Create a Condition around the current time ("Now") using Formula --> condition(1min, capsule(now() - 1min, now())) 3. Use the Composite Condition tool to create a condition for "Current Week" when the Periodic Condition "Weekly" touches the tiny capsule at "Now". 4. Use Formula to create a condition for the "Previous Week" --> $currentWeek.beforeStart(7d) Method 2 - when the length of time in each period is variable (e.g. month, quarter). This example creates a condition for "Current Month" and "Previous Month" 1. Create a Periodic Condition for "Monthly" using the Periodic Condition tool. 2. Create a Condition around the current time ("Now") using Formula --> condition(1min, capsule(now() - 1min, now())) 3. Use the Composite Condition tool to create a condition for "Current Month" when the Periodic Condition "Monthly" touches the tiny capsule at "Now". 4. Use Formula to create a Condition for the last day of the last period (in this case "Last Day of the Last Month") $currentMonth.beforeStart(1d) 5. Use the Composite Condition tool to create a condition for the "Previous Month" when the Periodic Condition "Monthly" touches the "Last Day of Last Month".
  7. Hi all, Based on a conditions, I have create 3 capsules (trend value > 0.1) for three different equipment. What I want is to align these 3 capsules (and all the follow) to have the same start time.... #howto ??
  8. I'm trying to create a startup capsule for a gas turbine. How do I create a Capsule using the start of one Capsule and end when a signal reaches a certain value? Thanks in Advance Chris
  9. Question: I have a condition with multiple properties that I have displayed in the capsules pane. Is there a way to get the data from the capsules pane into a Seeq Organizer Topic? Solution: Create a new string signal for each property that you are interested in displaying in your Organizer Topic, then create a scorecard that displays those values in a table that can be added to Organizer Topic. 1. Use Formula to create a new string signal with a value equal to the capsule data for a certain property. The formula syntax to do this is: $YourCondition.removeLongerThan(1d).transformToSamples($cap -> Sample($cap.getStart(),$cap.getProperty('Product')), 2d).toStep() 2. Duplicate step 1 for each of the other capsule properties that you are interested in. The best way to do this is by using the duplicate button found in the item properties for your new string signal. This will automatically open a new formula window with the same formula from the string signal that you created in step 1. All you need to do in the new formula window is change the name and change the property that you want to create a new signal from. 3. Repeat step 2 for each capsule property that you would like to be able to display in your organizer topic. 4. Now you can create a scorecard that displays the value of each string signal over each capsule. Switch to Scorecard View using the green drop down at the top of the Display Pane. 5. Click “Add a Metric” from the center of the display pane and populate the Scorecard Metric Tool input with your string signal, your condition with the properties, and the statistic Value at End (note Value at Start will also work since this is a string tag and the value is constant across each capsule). You’ll then see a single row in your scorecard like below. You can change the format that the column headers are displayed from the headers dropdown in the top of the display. Here I have selected to display only the start time as the header and selected the first pre-defined date format. 6. Follow the same calculation duplication method described in step 2 to create a new metric for each capsule property you want to display in your organizer topic. Make sure to change the Scorecard metric name and item to measure (input signal) each time. 7. Now add your score card to an Organizer Topic and configure custom date ranges as desired.
  10. 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.
  11. The following steps will create a prediction model for every capsule in a condition. Step 1. pick a condition with capsules that isolate the desired area of regression. Any condition with non-overlapping capsules will work as long as there are enough sample points within its duration. For this example, an increasing temperature condition will be used. However, periodic conditions and value search conditions will work as well. Step 2. Create a time counter for each capsule in the condition. This can be done with the new timesince() function in the formula tool. The timesince() function will have samples spaced depending on the selected period so it is important to select a period that has enough points to build a model with. See below for details on the timesince() formula setup. Step 3. In this step a condition with capsule properties that hold the regression constants will be made. This will be done in the formula tool with one formula. The concept behind the formula below is to split the condition from step one into individual capsules and use each of the capsules as the training window for a regression model. Once the regression model is done for one capsule the coefficients of the model are assigned as properties to the capsule used for the training window. The formula syntax for a linear model-based condition can be seen below. An example of a polynomial regression model can be found in the post below. $Condtition.removeLongerThan(24h).transform($cap-> { $model=$SignalToModel.validValues().regressionModelOLS( group($cap),false,$Time) $cap.setProperty('Slope',$model.get('coefficient1')) .setProperty('Intercept',$model.get('intercept'))}) Below is a screenshot of how the formula looks in Seeq. Note: The regression constants can be added to the capsule pane by clicking on the black stats button and selecting add column. Below is a screen shot of the results. Step 4. Once a condition with the regression coefficients has been created the information will need to be extracted to a signal form. The following formula syntax will extract the information. This will need to be repeated for every constant from your regression model. e.g.(So for a linear model this must be done for both the slope and for the intercept.) The formula syntax for extracting the regression coefficients can be seen below. $signal=$Condition.transformToSamples( $cap -> sample($cap.getmiddle(), $cap.getProperty('Intercept').toNumber()), 1min) $signal.aggregate(average(),$Condition,durationKey()) Below is a screenshot of the formula in Seeq. Below is a screenshot of the display window of how the signals should look. Step 5. Use the formula tool to plot the equation. See screenshot below for details. Final Result
  12. Summary There are many use cases where the user wants to do an aggregation over a periodic time frame, but only include certain values. Examples abound: for cement calculate the average daily clinker production only when the kiln is running, for biotech pharma the standard deviation of dissolved oxygen only when the batch is running, etc. Here our user is looking into equipment reliability for compressors. She wants to calculate the average daily compressor power to examine its performance over time. Steps 1. Add the signal into Seeq. 2. Use the 'Periodic Condition' or 'Formula' Tool to add a condition for days. This doesn't have to be days, it can be any arbitrary time, but it is usually periodic in nature. To use a custom periodic Condition, consider using the periods() function. For example to do this for days, the formula is: periods(1day) As an example, to change this to 5-minute time periods the formula is: periods(5min) Here are how the days and statistics in the Capsule Pane look for her: 3. Find only the desired values to be used in the aggregate (e.g. Average) statistic. From the values in the Capsule Pane she sees that the average compressor powers results are too low. This is because all the time when the compressor was OFF, near 0, are included in this calculation. She wants to only include times when the compressor is running because that will provide a true picture of how much energy is going into the equipment - and can indicate potential problems. To do this, she creates a 'Value Search' for times to include in this calculation, in this case when the Compressor is ON or > 0.5kW. 4. Create a new signal to only have values *within* the 'Compressor ON' condition. Use the aptly named 'within' function in the 'Formula' Tool. Notice how the resulting Signal in the bottom lane only has values within the 'Compressor ON' condition. Now she can use this because all those 0's that were causing the time-weighted Average to be low... are now gone. 5. Examine the resulting statistical values. She now sees that the calculations are correct and can use this resulting 'Compressor Power only when ON' Signal in other calculations using 'Signal from Condition', 'Scorecard Metric', and other Seeq Tools!
  13. Frequently asked question: How do i highlight capsules? I am looking at quite a few capsules in capsule time, is there any way i can compare or highlight a few of them against the rest to compare performance? Lets say i want to look at the most recent batch compared to all batches in the last month, look at one start up or shut down against several historical, or any number of other reasons why we might want to compare capsules in Capsule Time. Luckily, this is easy in Seeq! While in capsule time, simply select one or several capsules in the capsule pane to highlight them against the rest: Alternatively, if you do not know the date of the problem capsule but you can tell that it stands out, you can just click on it in the display pane to highlight it and it will be selected in the capsule pane for you to dig into further! If you want to un-select one of the highlighted capsules in capsule time, just click on it again and it will be dimmed. Image captured in Seeq R21.043
  14. Background In this Use Case, a user created a condition to identify when the compressor is running. During each Compressor Running capsule, the compressor operates in a variety of modes. The user would like a summary of the modes of operation for each capsule in the form of a new signal that reports all modes for each capsule (i.e. Transition;Stage 1;Transition;Stage 2;Transition, Stage 1;Transition). Method 1. The first step is to resample the string value to only have data points at the value changes. It's possible the signal is already sampled this way, but if it is not, use the following Formula syntax to create a "compressed" signal: $stringSignal.tocondition().setMaximumDuration(3d).transformToSamples($capsule -> sample($capsule.getStart(), $capsule.getProperty('Value')), 4d) 2. Now, you can create a signal that concatenates the string values during each capsule. This is achieved using the following Formula syntax: $compressorRunning.setmaximumduration(10d).transformToSamples($cap-> sample( $cap.getStart(), $compressedStringSignal.toGroup($cap).reduce("", ($s, $capsule) -> $s + $capsule.getvalue())), 7d).toStep()
  15. You can use the start and end times of capsules to create new capsules with an arbitrary time before or after. This is useful when the process expert knows that there is a time period of interest before or after a capsule start or end timestamp. Refer to the example below. Here we have a series for the Area A Compressor Power shown in blue. We have created capsules shown in green for when the compressor is running in the high state, above 30kW. In this example, we want to create a capsule series that starts when the compressor exits the high stage (goes below 30kW) and then ends at exactly 2 hours later (or any other arbitrary time specified by the user). All we need to use is the following Seeq Formula: This formula creates a new set of capsules that start at the end of the “Compressor Power > 30” capsules and end exactly 2 hours later. The functions afterStart(), beforeStart() and beforeEnd() can be used similarly. For example, to create a set of capsules that capture the two hours prior to our “compressor high” condition, we can simply modify the formula above by changing “afterEnd” to “beforeStart.”
  16. Background In this Use Case, a condition was created to identify when a compressor is running. Let's say I'd like to extend each capsule in this condition so that instead of ending when the compressor turns off, it ends when the next compressor running capsule starts. Method The method used depends on the Seeq version. Seeq R21.0.42 and Later Version R21.0.42 introduced the .growEnd() operator; this operator grows capsules in in a condition by extending the end until the start of the next capsule. Earlier Versions (Before R21.0.42) 1. First, create a condition that is the inverse of the Compressor Running condition. This can be achieved using the .inverse() function in Formula 2. Next, extend each Compressor Running capsule so that they overlap with the Downtime capsules. This is achieved using the .move() function in Formula. 3. Finally, combine the Downtime and Compressor Running - Extended conditions use the union logic in the Composite Condition tool.
  17. In reporting, users may be interested in creating a Scorecard that contains certain metric results over a variety of time periods, such as "April 2019", "Quarter 1", and "Year to Date", etc. This can be accomplished using the following steps: 1. Use Formula to create a condition that contains a capsule for each time period that you are interested in. Note that I assigned a property to each capsule; this text will be used as the column header in the scorecard: 2. Create a Condition based scorecard and add a metric for each item you are looking to calculate: 3. Finally, use the capsule property as the column headers:
  18. I have a condition with several capsules of various lengths; how do I determine the time period or length of each capsule? For example, my first capsule is 24 hours long, and then the next capsule is only about 3 hours. I'm looking for a way where I can get this information for all of my capsules.
  19. Hello, This might be a simple question but have not been ale to find help anywhere (Being a beginner). I would like to know how to calculate hourly avg trend of a signal which is one sec interval. What I am thinking is: Suppose signal is = $a a) Create value search for hourly capsules? b) Taking avg of during those capsules using formula search? However I would like the time range for this hourly avg to be dependent on time slider. Which means that sliding time should update the trend. Any help (Formula snippets) would be appreciated.
  20. I have a condition that represent unit procedures. These capsules come from a batch execution system connector. Each capsule in the condition contains a property called 'Max Temperature'. I am trying to create a condition that just have the hot capsules. I am using a Seeq formula and filter to do this. Here's my formula: $c.filter( $cap -> $cap.getProperty('Max Temperature').isGreaterThan(170) ) I don't get any errors from this formula, but, I don't get any results. I know some of the max temperatures are higher than 170 because I can view that in the Seeq Details pane: What am I doing wrong?
×
×
  • Create New...