I can also tune without a model. But practice has shown that this is not the most ideal method. This is because tuning is time-consuming and (sometimes) expensive (especially with slow processes). Just doing a step response and getting a model out of it is much more interesting.

+1000

In the attachment, I have done a plot. This plot has been accelerated 200 times. I can enter this speed myself.

This isn't clear too me.

The negative D-factor is certainly interesting! I am going to take a look at this.

Try my controller parameters in you simulator just like I tried your controller parameters in my simulator.

This is my results to the "hotrod.txt" data. I am computing a SOPDT model. The process variable is the actual recorded data. The estimated value is is generated by my model from the system identification.

If the estimated and process values are close to the same then my model is good.

final_simplex: (array([[ 3.75738871, 0.68459748, 2.8492896 , 77.84212178, 0.35403269],

[ 3.75738895, 0.68459766, 2.84928924, 77.8420959 , 0.35403266],

[ 3.75738776, 0.68459769, 2.84928958, 77.84219321, 0.35403292],

[ 3.75738878, 0.6845977 , 2.84929003, 77.84211757, 0.35403232],

[ 3.75738864, 0.68459843, 2.84928914, 77.84212303, 0.35403212],

[ 3.75738929, 0.68459787, 2.84928892, 77.84207222, 0.35403256]]), array([250.31411453, 250.31411796, 250.31413401, 250.31413445,

250.31413467, 250.31421152]))

fun: 250.31411452756277

message: 'Optimization terminated successfully.'

nfev: 204

nit: 105

status: 0

success: True

x: array([ 3.75738871, 0.68459748, 2.8492896 , 77.84212178, 0.35403269])

RMS error = 0.436

The open loop gain = 3.757 PV/%CO

Time constant 0 = 0.685 minutes

Time constant 1 = 2.849 minutes

Ambient PV = 77.842 in PV units

Dead time = 0.354

Time units are the same as provided in input file

The closed loop time constant = 0.285

The controller gain = 1.472 %CO/unit of error

The integrator time constant = 3.534 minutes

The derivative time constant = 0.552 minutes