J'essaie d'identifier la température de début de densification de la pièce dans mon processus. J'ai indiqué cette température sur le graphique ci-dessous par une ligne orange. Je souhaite également identifier la température de pause de la densification, indiquée par la ligne verte. Quelqu'un pourrait-il m'aider à concevoir un script pour cela ?

Je suis ouvert aux suggestions. Fondamentalement, le début de la densification est le moment où la course du vérin change beaucoup sur quelques points de données. La densification s'arrête lorsqu'il n'y a pas de changement dans la course du bélier pour un nombre défini de points (je ne suis pas sûr d'un nombre spécifique.) J'ai pensé que je pourrais modifier les formules suggérées pour traiter les détails finaux. est-ce que cela aide?
Cette définition semble être un bon début. Comment puis-je extraire la valeur de température qui correspond au point de démarrage sur le déplacement du vérin?
Si vous pouviez joindre un exemple de tableau de données, je pourrais créer un script de démarrage pour calculer le point de départ
J'ai joint un sous-ensemble de mes données. N'hésitez pas à me faire savoir si ce n'est pas clair.
Voici mon premier essai d'une méthode possible pour trouver le point de départ. Le script a calculé le graphique ci-dessous

Names Default To Here( 1 );
dt = Current Data Table();
dt << clear select;
// Set the number of places to look ahead for calculations
lookAhead = 6;
// Loop across all rows, finding possible Onset Points
// temp[x] < temp[x+1] & temp[x] < Mean of the next 6 values of temp - 1.5 STD of those points
// When found, select those rows
For( i = 1, i <= N Rows( dt ) - lookAhead, i++,
If(
:Temperature Actual[i] < :Temperature Actual[i + 1] & :Temperature Actual[i] >
Mean( :Temperature Actual[Index( i + 1, i + 1 + lookAhead )] )
-Std Dev( :Temperature Actual[Index( i + 1, i + 1 + lookAhead )] ) * 1.5,
Row State( i ) = Selected State( 1 )
)
);
// Get the list of the selected rows
suspectRows = dt << get selected rows();
// The target criteria for the Onset is where the max temp values for the suspect rows
maxTemp = Max( :temperature Actual[suspectRows] );
// Get the time value for the selected suspect Row
timeval = :"time (s)"n[suspectRows[Loc( :temperature Actual[suspectRows], maxTemp )[1]]];
// Clear all selected rows
dt << clear select;
// Generate the Graph Builder Chart
gb = Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables(
X( :"Time (s)"n ),
Y( :Temperature Actual ),
Y( :Ram Travel Actual, Position( 1 ), Side( "Right" ) )
),
Elements( Points( X, Y( 1 ), Legend( 5 ) ), Points( X, Y( 2 ), Legend( 9 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model( 5, Properties( 0, {Line Color( 21 )}, Item ID( "Temperature Actual", 1 ) ) )}
)
)
);
// Add a verticle reference line at the calculated Onset Point
Report( gb )[AxisBox( 1 )] << add ref line( timeval, solid, green, "", 3 );
// Select the row in the data table that is the calculated Onset Point
Row State( suspectRows[Loc( :temperature Actual[suspectRows], maxTemp )[1]] ) = Selected State( 1 );