Welcome Guest, you are in: Login

FLSmidth QCX wiki

RSSRSS





Search the wiki
 

How to set a Mill system into simulation mode

RSS
Modified on 2021/02/22 09:43 by JEG Categorized as Equipment Drivers, How to, QCX BlendExpert Mill V8
To install and configure a Mill system to work in simulation mode, the following steps should be followed:

1. Installing the driver

Assuming that the system is otherwise installed and copied correctly to copy an existing functional system, the steps to install the driver are as follows:

1.1 Installation

Download the BLX Mill & Pile Simulation installation file from flsadev.flsmidth.com->BlendExpert->BLX v. 8.x->Solution Download.

Start it and check off the Tst FLSmidth BlxSimMill Driver. Hit Next, and then install.

1.2 Solution import

In the folder Local disk\Program Files\FLSmidth\Import\QxcDrv\"used version", there is a standard file named BlxSimMillStandard. Use the Standard2Solution conversion tool to convert this into a solution. The Friendly name can fittingly be the name given to the mill that the driver will be used on, and any string of characters can be used in the Picture section. Unless otherwise specified, the solution will be placed in the same folder as the standard.

Next, use the FLSmidth Discovery to put the system in Maintenance. Open the Worksplace and log in as Flsadmin. Go to System\Configuration\Configuration and choose Import Solution in the upper tab. Find the solution file in the folder specified earlier. If the import succeeds, there should now under QCX Equipment Tool be an Equipment with your Friendly name.

​1.3 Fitting the solution to the configuration

If the above has been done correctly, the Equipment driver Specific should have the below standard text.


















It will now be necessary to modify the Specific file through clicking on the Edit button in the topright corner. The first thing to modify is the PlantSection. This should reflect the PlantSection name found in Configuration\Blx\BlendExpert\PlantSection. Note that you shouldn't include "Blx." in the PlantSection name.

After this is done, add or remove the feeders as needed to match the original system. Make sure that the numbers align with their counterparts in the configuration. The < waveform>Sine< /waveform> is included for feeders that will have varying oxides over time.Feeders can be stopped by the < stopped>true<\Stopped> command(it will be false as default if nothing is specified), and for disturbance feeders, adding the < flow>X.X< /flow> will allow for the control of the flow from these. Below the feeder section are the sampler sections. For the LabSampler, adjusting the SamplingInterval adjust the number of seconds between each sample is taken, while the AnalysisDelay tells the number of seconds from sample taken to results are entered. A < noise>true< /noise>value adds noise at the end of the sample procedure. The values for each oxide can be added and adjusted in the StandardDeviation section at the bottom, where all oxides used by the BlendExpert must be added. Back in the LabSampler, the Preparation, Procedure and Equipment must also match that in the QCX Recipe Editor. If some oxides are gained from a method other than the XRF(XRD for instance), then the entire LabSample section detailing the procedure must be copied and edited to fit the second equipment. Note that it is also necessary to describe the oxides from the second equipment as AuxDataItems(examples can be seen commented out at the top of the standard import). In Common, all oxides used by the BlendExpert must be added with their correct names for each feeder(add new feeders to match the second paragraph). For now, just copy each example DataItem in the feeder and change the name. Explaining what the rest does will come later in Section 2.



1.4 Editing the feeders

In order for the feeders to be properly controlled, it is necessary to go change them to OperatorInserted. There are two ways to do this. 1. Change the Type at the top from Functional to Name. Go to Blx."PlantSectionName".Feeders, and for each feeder, change the I/O Interface to OperatorInserted for the PV, SEL, SP, STS and WSP points. NaN can be used as an initial value for the float values. Also change the SPTotal in Feeders to OperatorInserted.

2. Go into Configuration\ECC\Pnt.Config\Point, and change the Solutions in the top left corner to the Specific solution of the chosen mill. This changes the usually greyed out points to now be white. Now it is possible to change the IoType to OperatorInserted for the

PV, SEL, SP, STS and WSP points of each feeder, as well as the SPTotal. Make sure that none of them have actual values(including 0) instead of NaN as the OperatorInserted value.

The SimMill driver should now be fully installed.



2 Configuring the feeder simulation results

With the simulation driver ready to put out results, it is now necessary to tune it to get the simulation that is desired. There are two main paths in this; UseEstimation true and false, and manual PVO control, true and false. These two will be described in the following sections. Their difference in UseEstimation comes in whether the oxides sent to the WaveForm variation generator are based on the Default oxides of each feeder, or the Current oxides. For the manual PVO control, the difference is whether it uses a standard deviation of 3% of PV to generate noise on the PV signal of each feeder, or whether it is desired to control the scale and behaviour of the noise.

2.1 UseEstimation: false, Default value base

Setting the UseEstimation to false locks the base values sent to the WaveForm variation generator to the Default oxide values of each feeder. In practice, this means that each oxide of each feeder is given a degree of noise based on the settings in the Common section shown in the pictures in Section 1.3. The Sine WaveForm produces variation based on a sine function. AmplitudePct is the maximum % variation possible for the oxide in either direction from the Default value. Period and phase are as usual for sine functions. DefaultRelaxation is not used during this section. Examples of how the period and phase are utilized can be seen in section 2.3.



2.2 UseEstimation: true, Current value base

Setting the UseEstimation to true means that the values sent to the WaveForm variation generator become dependent on the Current estimation result of each feeder. In practise, this allows for the feeder oxide output to move up and down to a degree and as a fluid function that simply adding noise can't. What the DataItem factors do are described in Section 2.1, except for the DefaultRelaxation.

The DefaultRelaxation is the value that tells the WaveForm variation generator how tightly bound the variation should be to the Default values. A high DefaultRelaxation allows for the oxide variation results to vary further from the Default oxide before being reined in to avoid potentially running amok. The two tables below showcase how different DefaultRelaxation factors impact the future results as the estimation gets further from the default value. In the first, it shows the probability of new samples moving closer to the Default value as the difference between the Current and the Default becomes larger. In the second, it shows how the impact of a move away from the Default is lessened as the Current value gets further from the Default value. A summation of the effects is described in the table below.

VariableEffect
Sampling timeIt determines the length of time before a new sample is taken.

Increases the sampling time reduces the size of the variation of the estimated oxides in each feeder.
EstimationWeightDetermines the ratio that the old oxide(which was used to produce the current sample) is mixed with the estimator's guess to form the new oxide value for the next sample.

Increasing the EstimationWeight makes the new test results closer to the what the estimator has guessed(whether correct or not). This also increases the size of the variation of the estimated oxides in each feeder.
AmplitudePctDetermines the maximum percentage that the oxide can vary from the basis result.

Increasing the amplitude increases the size of the variation of the estimated oxides in each feeder.
PeriodDetermines the length of time in seconds that the sine function runs over.

Increasing the period significantly above the sampling time makes the system more stable and reduces the size of the variation of the estimated oxides in each feeder. Decreasing it to a very small value makes the system more erratic around the base value, which, with high sampling times, makes it more stable.
PhaseDetermines how many seconds the sine curve is shifted forward.

Has no effect on the size of the variation of the estimated oxides in each feeder.
DefaultRelaxationDetermines how "relaxed" the system is in keeping close to the default oxides. As the estimated oxide go further from the default oxide, it both becomes more likely that new part-samples will be closer to the default, and reduces the size of the part-samples that move away from the default value. See the next two tables for how much.

Increasing the DefaultRelaxation increases the size of the variation of the estimated oxides in each feeder.
chance of next feeder iteration result bringing the oxide closer to the Default oxide value
Maximum % change of default oxide value away from the default oxide with the given amplitude.













On top of the above DefaultRelaxation factor, there is also an EstimationWeight factor just below the UseEstimation. Seting this factor to anything but 1 separates the base values sent to the WaveForm generator from being the estimates shown in Current, to being a mixture of old estimates and the new ones. In practical terms, it gives the newest estimation results a weight of X, with the old base results getting a weight of (1-X), and then adds the two together. Setting this value to 1 allows for the variation seen on the feeders to be larger at the same DefaultRelaxation, but it will always treat the Estimators guesses as if they were true. Setting it at a number below 1 decreases the amount of variation, but also allows the Estimator to be wrong. For example, if Feeder 1's Current SiO2 is 13%, and this is sent to the composite sample, but the estimator guesses that Feeder 1' SiO2 is 23%, then, if the EstimationWeight is 1, the next sample will have Feeder 1's SiO2 content be 23%(which the DefaultRelaxation factor will then adjust as described earlier). If the EstimationWeight was 0.5, then the next sample will have Feeder 1's SiO2 content be 18%, but the Current estimation will have it guessed as 23%, leading to less SiO2 than expected.

Also of note is that due to how the estimation is updated every sample, having a small SamplingInterval allows for greater variation over the same number of hours when compared to a larger SamplingInterval.

2.3 Manual PVO control

The options for manual PVO control are seen commented out in section 1.3's left image under Feeder 1. To turn on this option for Feeder 1, it should first be commented back into the code, and the false should be set to true. If either of these aren't done, the feeder's PV signal will be the SP value with a standard deviation noise of 3% of PV.

The options for how to modify the PV signal are similar to those of UseEstimation in section 2.1. Amplitude gives the maximum percentage noise from the PV, period describes how many seconds the sine curve should stretch over, and phase describes how many seconds the sine curve is shifted forward(useful if you don't want all feeders to always have the same level of noise in the same direction). Also included are the AvgOffsetPct and Noise options. The AvgOffsetPct option allows the user to specify whether a feeder should, on average, be x% above or below the SP value. The Noise is inserted at the very end to allow for a randomized fluctuation with a standard deviation of x%. These effects are illustrated in the 4 images below.

For example, if Feeder 1's AvgOffsetPct is set to -5 and noise is set to 2, and the SP calculated PV is 20 tph, then it will first subtract those 5%, leading to a PV of 19tph, before sine values are then generated based on those 19 tph as the input value. After the sine values are generated, random noise is added coresponding to the noise level of 2% of the post-sine function generated PV.

Example of the difference between a period value of 100(blue) and 1000(red).
Example of difference between a phase value of 0(red) and 50(blue) at a period of 100 for both.
Example of 10 AvgOffsetPct(left half) and 0(right half).
Example of noise set at 3. Compare with blue curves of the previous example.

 
  Name Size
- Avgexample.PNG 44.09 KB
- DefaultR1.PNG 14.56 KB
- DefaultR2.PNG 13.75 KB
- Noiseexample.PNG 45.27 KB
- Periodexample.PNG 116.48 KB
- phaseexample.PNG 55.07 KB
- SimMill1.PNG 73.13 KB
- SimMill2.PNG 111.47 KB
- SimMill3.PNG 37.48 KB

FLSmidth