Viewing Multiple Signal Profiles on a Non-Time Axis

Recommended Posts

• Seeq Team

To better understand their process, users often want to compare time-series signals in a dimension other than time. For example, seeing how the temperature within a reactor changes as a function of distance. Seeq is built to compare data against time but this method highlights how we can use time to mimic an alternate dimension.

Step 1: Sample Alignment

In order to accurately mimic the alternate dimension, the samples to be included in each profile must occur at the same time. This can be achieved through a couple methods in Seeq if the samples don't already align.

Option 1: Re-sampling

Re-sampling selects points along a signal at select intervals. You can also re-sample based on another signal's keys. Since its possible for there not to be a sample at that select interval, the interpolated value is chosen. An example Formula demonstrating how to use the function is shown below.

```//Function to resample a signal
\$signal.resample(5sec)```

Option 2: Average Aggregation

Aggregating allows users to determine the average of a signal over a given period of time and then place this average at a specific point within that period. Signal From condition can be used to find the average over a period and place this average at a specific timestamp within the period. In the example below, the sample is placed at the start but alignment will occur if the samples are placed at the middle or end as well.

Step 2: Delay Samples

In Formula, apply a delay to the samples of the signal that represents their value in the alternative dimension. For example, if a signal occurs at 6 feet from the start of a reactor, delay it by 6.

If there is not a signal with a 0 value in the alternate dimension, the final graph will be offset by the smallest value in the alternate dimension. To fix this, in Formula create a placeholder signal such as 0 and ensure its samples align with the other samples using the code listed below. This placeholder would serve as a signal delayed by 0, meaning it would have a value of 0 in the alternate dimension.

```//Substitute Period_of_Time_for_Alignment with the period used above for aligning your samples
0.toSignal(Period_of_Time_for_Alignment)```

Note: Choosing the unit of the delay depends upon the new sampling frequency of your aligned signals as well as the largest value you will have in the alternative dimension. For example, if your samples occur every 5 minutes, you should choose a unit where your maximum delay is not greater than 5 minutes. Please refer to the table below for selecting units

Largest Value in Alternate Dimension Highest Possible Delay Unit
23 Hour, Hour (24 Hour Clock)
59 Minute
99 Centisecond
999 Millisecond

Step 3: Develop Sample Profiles

Use the Formula listed below to create a new signal that joins the samples from your separate signals into a new signal. Replace "Max_Interpolation" with a number large enough to connect the samples within a profile, but small enough to not connect the separate profiles. For example, if the signals were re-sampled every 5 minutes but the largest delay applied was 60 seconds, any value below 4 minutes would work for the Max_Interpolation. This is meant to ensure the last sample within a profile does not interpolate to the first sample of the next profile.

```//Make signals into discrete to only get raw samples, and then use combineWith and toLinear to combine the signals while maintaining their uniqueness
combineWith(\$signal1.toDiscrete() , \$signal2.toDiscrete() , \$signal3.toDiscrete()).toLinear(Max_Interpolation) ```

Step 4: Condition Highlighting Profiles

Create a condition in Formula for each instance of this new signal using the formula below. The isValid() function was introduced in Seeq version 44. For versions 41 to 43, you can use .valueSearch(isValid()). Versions prior to 41 can use .validityCapsules()

```//Develop capsule highlighting the profile to leverage other views based on capsules to compare profiles
\$sample_profiles.isValid()```

Step 5: Comparing Profiles

Now with a condition highlighting each profile, Seeq views built around conditions can be used. Chain View can be used to compare the profiles side by side while Capsule View can overlay these profiles. Since we delayed our samples before, we are able to look at their relative times and use that to represent the alternate dimension.

Further Applications

With these profiles now available in Seeq, all of the tools available in Seeq can be used to gain more insight from these examples. Below are a few examples.

1. Comparing profiles against a golden profile
2. Determine at what value in the alternate dimension does each profile reach a threshold
3. Developing a soft sensor based on another sensor and a calibration curve profile

Edited by Kristopher Wiggins
Typo on resample
• 4

Create an account

Register a new account