Introduction
This page is in-detail explanation of how to create a set up for automated sweeps, and also a continuation of the Automated sweeps page.
This page may seem overly complicated, but once this setup is created it is easy to reuse and alter it for other purposes. Links to images of the procedures can be found throughout this page.
Measurement plan
The aim is to have automatic impedance sweeps of the sample at 3 temperatures and to have the sweeps triggered only after the resistivity has stabilized.
This page is divided into steps and the example files are downloadable from http://www.norecs.com/index.php?page=Software -> Omega -> Measurement files -> Automated sweeps
These measurement files can be made to fit any device configuration as long as a furnace and an impedance spectrometer are available. Please read the whole guide through first.
The sample is standard ProboStat system test sample; YSZ with painted electrodes on it. The sample is 86% dense, round electrodes have diameter of 10.7mm and the sample is 1.2mm thick. The sample becomes conductive only with Oxygen ions so the measurements start from elevated temperature.
Device configuration
These measurements were made with the above instrument setup. None of these files will automatically work on a setup that is different from the one used. Naturally each user will have different ports and addresses assigned to their instruments.
This example is provided for the users to make their own measurement by following these steps, but the user may also want to use or open these save files in their own setup.
To make these files work on other device configurations, the user need to have corresponding setup: a furnace and impedance spectrometer. On a validated setup the measurement file can then be opened and updated to be used. First thing to do is to go to the measurement properties and click the 'update to current' device setup as seen in this picture. What this button does is forces the program to accept the fact that the measurement was made by different setup of instruments, but regardles of that still to use the measurement. This can naturally lead to lot of problems if the setup is not similar enough and if the user is not careful.
After forcing the measurement to use the new device setup, each of the nodes in that measurement must be checked and updated. The nodes were set to use an instrument that does not exist anymore or can not be found at the same port and address. The user must select a new corresponding instrument to use and click apply. Instruments are selected on the 'Node type and instrument to use', for action node (AU) on the 'Action node settings' tab and if external switching was used (not in this example) then also on the 'External switching tab'.
Select the desired instrument, make sure it's highlighted and click apply.
Step 1
Create new measurement, rename it 'Automated sweeps' and click Apply. Mark the measurement active ans click apply.
Add a node, select node type ET and click apply. Select the furnace to use, rename the node to 'A10 Measure furnace temperature' , mark the active and click Apply. Note that the nodes are sorted by name and executed in that order. Having a prefix such as A10 helps to sort things. (Names starting with number are not possible).
Step 2
Add a default graph for the ET node type.
Rename the time axis to Time, h instead of Time, m
Rename the temperature axis to Temperature, °C
For the Temperature serie change the X expression to $N1.TH instead of the default $N1.TM (H for hours, M for minutes) and the name to 'Furnace temperature'.
Step 3
To know if the sample is at chemical equilibrium, we need to measure the resistivity, plot it, and have linear least squares tool on the plot so that we know it's rate of change. First, add node, make it of IC type and select the impedance spectrometer to use. Mark node active, rename the node to 'Resistance measurement'. Since we speak of resistivity, we need to correct the measured values for geometry. This is done on the IS and IC tab. Enter sample dimensions and tick the 'Correct for geometry' checkbox. The unit for electrode area and thickness must be same and will be the unit of the resistance related plots also such as Ohm*cm or Ohm*mm.
Step 4
To have access to the rate of change and a number of other properties the measured value needs to be plotted on the graph. To plot the resistivity we select the graph tab and select the graph and click 'add new serie' button.
Edit the new serie to have Resistivity as name, $N2.TH as X expression and $N2.RS as Y expression.
If the new graph does not align with the old one on X-axis it is due to the fact that the X component we are using (.TH) is elapsed time in hours since beginning of the node, and the second node was just created, so different amount of time have elapsed for the nodes. To remedy this we need to delete all the old points before the second node existed. Go to the node 1 and to the node data tab. Enter to the delete data tool from index 1 to index (the highest number you see there) and click delete. After done, go to the graphs and select each serie at a time and click redraw serie button for each.
Next we need to add new Y-axis for the resistivity since it does not necessarily share the scale of furnace temperature very well. Select the graph and click add new axis. Then select the new axis and edit its name axis to Resistivity, Ohm*cm or the unit you used. On the Resistivity serie edit the Y-axis and select the 'Resistivity' axis to assign the data to be plotted against the newly created Y-axis.
Now enable the coefficient tool for the Resistivity serie by ticking the checkbox, and selecting number of points to include in the calculation. From the Node data we can see that we are getting one point of data per 5-6 seconds, making our rate 11 points per minute or 660 points per hour. There is no correct value to enter here and it depends on what the user is hoping to accomplish. Obviously observing a shorter time gives faster automation but may leave user hoping for better accuracy (for example if value is oscillating at a frequency that is the observed time). In some measurements the sample equilibrium can take weeks to settle. In this example we will use 20 minutes, aka 220 points.
Step 5
We now have all the prerequisites for judging if the sample is at equilibrium, next we need to add the automation nodes for the furnace control and the sweeps. Our plan is to have impedance sweeps at 750, 850 and 950ºC after the resistivity has stabilized.
First we need 3 new nodes for the 3 sweeps. Add 3 new nodes and rename them accordingly. Leave all new nodes in active for now, but make them of type IS and select the impedance spectrometer. Remember to click apply.
Node 3, 4 and 5
Enter the desired Sweep parameters such as start and end frequency and click apply. Note that the geometry needs to be entered again. This software is designed to support multiple samples and does not know to which sample it is connected to. (From version 2.2.1 on it is possible to clone nodes to save typing in all the details.)
The 'active' tab parameters determine when a node is active. At it's simplest it is just an On/Off selector, but can be used for timing and automation. The expression parser can perform logical operations such as < or > based on the measured properties such as $N1.ET (node 1 measured furnace temperature), $N2.RS (node 2 measured resistance) or the graphical series such as series minimum, maximum, average, or as in this case, the angle of the coefficient of the linear least squares tool. The node variable can be found on the node properties page (the property endings are listed in the manual), and the Serie variable can be found from the Graph tab: right click on a graph -> show serie variables to see summary of serie related variables.
For node 3 we use the following start condition:
$N1.ET > 749 & $N1.ET < 751 & $S2.LRB > -10 & $S2.LRB < 10
The node will not start until the whole sentence this evaluates to true. In words, we added four conditions that all must be true for the node to start:
- Measured furnace temperature must be higher than 749
- Measured furnace temperature must be lower than 751
- Slope of the linear least squares coefficient must be > -10
- Slope of the linear least squares coefficient must be < 10
Effectively point 3 and 4 mean that the rate of change for measured property must be between -10 and 10. The unit of this comparison depends what is being plotted on the serie, in this example it is resistivity per hour.
When these conditions are fulfilled, the node becomes active and does what it is set to do.
For filling in and testing the expressions the user also have a 'Try' button next to the expression that does not do anything except try to evaluate the expression and give feedback in case of errors in the formula. In this image a missing $ renders the expression un-parseable and is fixed in this picture.
Since in this example this node is of type IS, we do not need to set the stop expression. By nature IS nodes will perform from start to end and then become inactive automatically.
Perform the same changes to the nodes 4 and 5 with start expression adjusted for the temperatures required.
Step 6
To send new setpoint to the furnace we need action node (AU). To make things simple, we will add 4 of them. Three to bring the temperature to 750, 850 and 950 accordingly. One to bring the temperature down to room temperature once everything is done. Alternatively a single node can be used to do all this, and will be included as alternative: Save file 6A is with four nodes, save file 6B is with one node. Both approaces are explained here.
Step 6A
Add 4 nodes and rename the according this picture, and make all four the type AU.
Edit each of them to have action target as furnace and select the furnace from the list. Click apply for each edit you make. AF1 is the new setpoint and AF2 is the ramp rate (with same unit as the furnace controller has, typically degrees per minute or deci-degrees per minute. In this example the furnace uses deci degrees so 50 would result to 5 per minute) Use 750, 850, 950 and 0 as AF1 and 50 as AF2 for the four nodes.
Last and most important we set the parameters to activate the nodes. The node 6 can start the heating as soon as we activate everything so the start and stop conditions can remain as they are.
The node 7 (Furnace to 850) can only start after the sweep at 750 has finished, so for the start condition here we enter $N3.SF=1
The $N3.SF is a property to test if a sweep is finished: the value is either 0 (undefined or unfinished) or 1 (sweep has finished). Testing for $N3.SF=1 is true (or 1) when the sweep has finished, and false (or 0) otherwise.
Last step is to mark all nodes active.
Alternative step 6B
Instead of having 4 nodes for the temperature control, it is possible to achieve the same functionality with just one node.
We only add one node after the Sweep nodes, and make the node 6 as AU type, click apply and go to the action node settings. Select Furnace control and the correct furnace from the list. AF1 is the new setpoint and AF2 is the ramp rate (with same unit as the furnace controller has, typically degrees per minute or deci-degrees per minute as in this example so 50 would result to 5 per minute)
This node will use AF1 expression to control the furnace setpoint. As feedback it will use the sweep nodes, if they are finished or not.
Consider expression: IF A=X then B, otherwise C. We will utilise the expression parser here to control the furnace depending which sweeps have finished.
IF($N3.SF=0, 750, 0) This expression would would evaluate to 750 is the node 3 sweep has finished, otherwise it would evaluate to 0. But instead of 0, we can add more evaluations like below:
IF($N3.SF=0, 750, IF($N4.SF=0, 850, IF($N5.SF=0, 950, 0)))
This can be read in words as follows:
If node 3 sweep has finished, result of this all is 750, but if not, then
If node 4 sweep has finished, result of this all is 850, but if not, then
If node 5 sweep has finished, result of this all is 950, but if not, then the result is 0
We can use the above expression as expression for the furnace setpoint, AF1 and 50 for AF2, the ramp rate.
To measure, mark all nodes active.
Followup, steps 7-13
All nodes active and the measurement started we can see how the process develops.
We see the resistivity graph filling the whole screen and with very high values. This is because the sample is not yet conductive so we measure high resistances. Also, the Resistivity axis zooms in as close as it can to the values. Once the values start to change, like they do for temperature, the graph starts to make more sense. Also notable is the coefficient tool for the resistivity serie on the bottom right corner.
A little later the sample has started to conduct resulting decreasing resistivity as seen here. I will delete the old data points so that the interesting features of the graph can be better seen.
The measurement after the whole automation is performed (file 13B). Note that some data points has been deleted from the beginning and from the end of the measurement. You can easily see that Sweeps 3 and 5 took place relatively soon after the temperature had stabilized while Sweep 4 took a long time before it started. Something that could have easily been missed had the sweeps initiated just by hand after reaching the target temperature.