[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/db/driver/mysqli.php on line 258: mysqli_fetch_assoc(): Couldn't fetch mysqli_result
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/db/driver/mysqli.php on line 320: mysqli_free_result(): Couldn't fetch mysqli_result
rusefi.com The most advanced open source ECU 2020-04-20T01:33:13 https://rusefi.com/forum/app.php/feed/topic/1256 2020-04-20T01:33:13 2020-04-20T01:33:13 https://rusefi.com/forum/viewtopic.php?t=1256&p=36243#p36243 <![CDATA[Re: PID autotune]]> using ETBpid Autotune options ...

iframe

Statistics: Posted by Abricos — Mon Apr 20, 2020 1:33 am


]]>
2020-04-12T15:28:11 2020-04-12T15:28:11 https://rusefi.com/forum/viewtopic.php?t=1256&p=36141#p36141 <![CDATA[Re: PID autotune]]>

Statistics: Posted by AndreyB — Sun Apr 12, 2020 3:28 pm


]]>
2020-04-12T08:07:32 2020-04-12T08:07:32 https://rusefi.com/forum/viewtopic.php?t=1256&p=36140#p36140 <![CDATA[Re: PID autotune]]>
Did you implement the Ziegler and Nichols method for the PID's that come out of the relay auto-tune method? I'll have to check a process controller I use at work in a temperature chamber we have. I recall it's PID's were very low P, with high I and even higher D. The PID's were crazy, but the end result works very well. It's common that temperature process controllers invert the gain. So perhaps that really is Ziegler, but from memory it didn't seem like it was close to what I expected. I suspect it's some other guess at the PID's.
Yes - that's what you do with them. The testing (oscillation) yields the ultimate gain (K_u) and oscillation period (T_u) that you then plug in to Zeigler-Nichols. Here's the code that computes kP/kI/kD from Ku/Tu - it should be pretty legible even for non-programmers: https://github.com/rusefi/rusefi/blob/6481b9df0a5def72335904d7753d40729c90ceb2/firmware/controllers/actuators/electronic_throttle.cpp#L260

Statistics: Posted by mck1117 — Sun Apr 12, 2020 8:07 am


]]>
2020-04-12T00:56:30 2020-04-12T00:56:30 https://rusefi.com/forum/viewtopic.php?t=1256&p=36139#p36139 <![CDATA[Re: PID autotune]]> Statistics: Posted by kb1gtt — Sun Apr 12, 2020 12:56 am


]]>
2020-04-11T22:20:42 2020-04-11T22:20:42 https://rusefi.com/forum/viewtopic.php?t=1256&p=36138#p36138 <![CDATA[Re: PID autotune]]>
This page seems to be a quicker way of explaining the relay auto-tune method. PDF copy attached.
https://pages.mtu.edu/~tbco/cm416/Atune.html
Good find - that's a nice concise description of what I've implemented.

Statistics: Posted by mck1117 — Sat Apr 11, 2020 10:20 pm


]]>
2020-04-11T10:22:50 2020-04-11T10:22:50 https://rusefi.com/forum/viewtopic.php?t=1256&p=36127#p36127 <![CDATA[Re: PID autotune]]> https://pages.mtu.edu/~tbco/cm416/Atune.html

Statistics: Posted by kb1gtt — Sat Apr 11, 2020 10:22 am


]]>
2020-04-10T23:18:18 2020-04-10T23:18:18 https://rusefi.com/forum/viewtopic.php?t=1256&p=36120#p36120 <![CDATA[Re: PID autotune]]> @mck1117 in slack, it's being posted here to keep an archived copy of it longer term. Slack goes away after a while. The attached is a printed PDF copy of the below link.
https://warwick.ac.uk/fac/cross_fac/iatl/reinvention/archive/volume5issue2/hornsey

Statistics: Posted by kb1gtt — Fri Apr 10, 2020 11:18 pm


]]>
2019-11-17T18:40:41 2019-11-17T18:40:41 https://rusefi.com/forum/viewtopic.php?t=1256&p=34949#p34949 <![CDATA[Re: PID autotune]]>
iframe

Statistics: Posted by AndreyB — Sun Nov 17, 2019 6:40 pm


]]>
2018-06-16T00:55:46 2018-06-16T00:55:46 https://rusefi.com/forum/viewtopic.php?t=1256&p=29369#p29369 <![CDATA[Re: PID autotune]]>
See https://rusefi.com/forum/viewtopic.php?p=29364#p29366

Statistics: Posted by AndreyB — Sat Jun 16, 2018 12:55 am


]]>
2017-07-27T10:38:18 2017-07-27T10:38:18 https://rusefi.com/forum/viewtopic.php?t=1256&p=26791#p26791 <![CDATA[Re: PID autotune]]> http://scilab.ninja/study-modules/scilab-control-engineering-basics/module-4-pid-control/

Using Scilab-XCOS to simulate PID controller.ogv - YouTube
https://www.youtube.com/watch?v=CC6yONnLSlY

x2c appears to be a graphical math tool perhaps scilab at the core, which can run on a STM32 nucleo board.
http://www.mechatronic-simulation.org/x2c/x2c-home/
http://www.mechatronic-simulation.org/stm32-nucleo-board/

Statistics: Posted by kb1gtt — Thu Jul 27, 2017 10:38 am


]]>
2017-07-26T02:13:54 2017-07-26T02:13:54 https://rusefi.com/forum/viewtopic.php?t=1256&p=26788#p26788 <![CDATA[Re: PID autotune]]>
At some point half through the video I've turned off alternator PID control, so on the second half of the video we can also see how fast VBatt reacts to radiator fan turned on or off.

https://svn.code.sf.net/p/rusefi/code/misc/logs/2003_mazda_miata/2017-07-25_22.03.13_radiator_fan_on_off.msl.7z

Statistics: Posted by AndreyB — Wed Jul 26, 2017 2:13 am


]]>
2017-07-25T10:01:43 2017-07-25T10:01:43 https://rusefi.com/forum/viewtopic.php?t=1256&p=26787#p26787 <![CDATA[Re: PID autotune]]> https://cdn.automationdirect.com/static/manuals/solocontrolm/solocontrolm.pdf

Basically the auto-tune turns the output 100% on until it passes the target. Then it changes to 0% output, and waits until it crosses the set value. Then it turns on 100% again. When it does this, it finds the cycle time and amplitude then calculates the magic numbers. This auto-tune approach has been fairly good for many process controlled items like a temperature controlled room. I'm not sure how they generate the magic numbers, but I figured this would be a good reference.

Statistics: Posted by kb1gtt — Tue Jul 25, 2017 10:01 am


]]>
2017-07-25T03:31:52 2017-07-25T03:31:52 https://rusefi.com/forum/viewtopic.php?t=1256&p=26785#p26785 <![CDATA[Re: PID autotune]]>
Let's start with idle:
We want to achieve a target-rpm and what we can control is idle-air (also timing and fuel, but let's keep it simple for now). Idle air determines torque. The torque counteracts losses like friction and pumping losses. If our engine had no losses, even a minimal amount of torque would spin it to infinity rpms. We also have an energy storage device: our rotating masses, clutch, flywheel and crankshaft. The energy storage will resist change. If we open the idle valve, the rpms will go up slowly. If we close it they will drop slowly. The greater the rotating masses, the more slowly the changes. This is the reason why luxury engines get big flywheels- to smooth things out.
Now, if our losses decrease suddenly (i.E. turning off the AC), the torque applied is greater than the torque needed to overcome friction and our engine rpms will increase. This will not happen instantaneously, because energy is stored in the rotation. Since losses increase with rpm, at some rpm the losses will be sufficient to consume all out torque and we have a stable situation again. Similar effects would happen with a sudden increase in losses (turning on the AC, adding electric consumers and thus load to the alternator etc. The rpms will drop until the new losses are small enough to be counter-balancing the torque.

And since everybody loves a visual aid, here is one:
pt1 behavior idle control..png
This type behavior is called pt1 if memory serves right. It's reasonably benign to control, since the energy-storage device helps us slow things down. This seems to be the type of DUC (Device Under Control) that the Cohen Coon method, as mentioned in the paper linked above, would be good for.

An electronic equivalent to this type of DUC would be an RC network:
rc_pt1_simulator.png
Equivalents:
U in -> Idle-Air setting
R1 together with C1 simulates the energy storage in the rotation masses
R2 simulates the friction losses (lower R-> higher losses)
U out -> engine rpm

Implementing Cohen Coon should work well for this type behavior.

More on other types of DUCs soon.....

Statistics: Posted by stefanst — Tue Jul 25, 2017 3:31 am


]]>
2017-07-25T02:31:34 2017-07-25T02:31:34 https://rusefi.com/forum/viewtopic.php?t=1256&p=26783#p26783 <![CDATA[PID autotune]]>
What would be a good real or virtual process to play with on a bench? What PID autotune do we want to use?

This would be used for idle PID, alternator PID and else.

See http://pages.mtu.edu/~tbco/cm416/cctune.html
See https://ir.nctu.edu.tw/bitstream/11536/27727/1/000183931000005.pdf
See https://en.wikipedia.org/wiki/Ziegler%E2%80%93Nichols_method
See https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/temperature.cpp#L222

Statistics: Posted by AndreyB — Tue Jul 25, 2017 2:31 am


]]>