VVT observations - current vs. advance
#1
VVT observations - current vs. advance
BTW here are some waveforms taken by someone else.
https://www.miataturbo.net/forum/sho...5&postcount=64
I first observed the current waveform on the VVT solenoid as applied by the factory ECU, and cam and crank signals. I could only do it with the car in the garage. When the cam is retarded (idle), there is zero current. When I rev it, it applies ~0.5A. The frequency is around 500 Hz and the duty cycle ranges from from around 40 to 65%. The current ripple is around 20%.
It seems that the solenoid is controlled by current, and its position responds to average current (average over the duty cycle).
The factory ECU will occasionally "blip" the current to 1A (briefly, as in for less than 1 engine cycle (2 revolutions) - perhaps a 'D' term (D in PID). As idle settles down, it will also blip the current briefly - like it wants to advance the cam for a very short time as the idle settles.
So I observed the cam vs crank waveforms as I applied current to the VVT solenoid.
It appears that the control range of current is 0.4 to 0.6A. However there isn't a simple 1 to 1 correspondence between current and advance.
Firstly there is hysteresis. I need to raise current to nearly 0.6A for it to begin advancing, and I have to reduce it nearly 0.4A to begin retarding.
And, once it begins advancing at a given current, it appears to continue advancing until I back the current off. It happens too fast for me to catch with the **** on my power supply.
Someone posted a diagram of the guts of the VVT actuator and the solenoid. I couldn't find it. Maybe by analyzing it, it can shed some light on the behaviour I've observed.
https://www.miataturbo.net/forum/sho...5&postcount=64
I first observed the current waveform on the VVT solenoid as applied by the factory ECU, and cam and crank signals. I could only do it with the car in the garage. When the cam is retarded (idle), there is zero current. When I rev it, it applies ~0.5A. The frequency is around 500 Hz and the duty cycle ranges from from around 40 to 65%. The current ripple is around 20%.
It seems that the solenoid is controlled by current, and its position responds to average current (average over the duty cycle).
The factory ECU will occasionally "blip" the current to 1A (briefly, as in for less than 1 engine cycle (2 revolutions) - perhaps a 'D' term (D in PID). As idle settles down, it will also blip the current briefly - like it wants to advance the cam for a very short time as the idle settles.
So I observed the cam vs crank waveforms as I applied current to the VVT solenoid.
It appears that the control range of current is 0.4 to 0.6A. However there isn't a simple 1 to 1 correspondence between current and advance.
Firstly there is hysteresis. I need to raise current to nearly 0.6A for it to begin advancing, and I have to reduce it nearly 0.4A to begin retarding.
And, once it begins advancing at a given current, it appears to continue advancing until I back the current off. It happens too fast for me to catch with the **** on my power supply.
Someone posted a diagram of the guts of the VVT actuator and the solenoid. I couldn't find it. Maybe by analyzing it, it can shed some light on the behaviour I've observed.
#6
DEI liberal femininity
iTrader: (8)
Joined: Jun 2005
Posts: 19,338
Total Cats: 574
From: Fake Virginia
on p 1-10-33, it looks like the spool valve has a spring (as part of the solenoid operation) but if I had to guess, oil pressure holds the cam retarded when the solenoid is not energized (spring holds the valve/solenoid such that oil flows to the retard chamber).
interestingly it seems that holding the spool valve at "half way" blocks passages to both advance and retard chambers.
I can only assume the "stopper pin" is spring loaded very lightly and any oil pressure will disengage it.
so that makes me wonder.. do you just change current til you get the advance you want and then stop the valve back at half way to lock everything in place?
interestingly it seems that holding the spool valve at "half way" blocks passages to both advance and retard chambers.
I can only assume the "stopper pin" is spring loaded very lightly and any oil pressure will disengage it.
so that makes me wonder.. do you just change current til you get the advance you want and then stop the valve back at half way to lock everything in place?
#7
on p 1-10-33, it looks like the spool valve has a spring (as part of the solenoid operation) but if I had to guess, oil pressure holds the cam retarded when the solenoid is not energized (spring holds the valve/solenoid such that oil flows to the retard chamber).
interestingly it seems that holding the spool valve at "half way" blocks passages to both advance and retard chambers.
interestingly it seems that holding the spool valve at "half way" blocks passages to both advance and retard chambers.
#9
DEI liberal femininity
iTrader: (8)
Joined: Jun 2005
Posts: 19,338
Total Cats: 574
From: Fake Virginia
but if you can figure out what "half way" is, you can set your timing with a feedback loop and then go "halfway" and lock it down until other criteria are met to change it again.
#10
The difference between spool valve opens both or closes both, is that with the latter, it will definitely lock it in a fixed position, but with the former, it will wander around depending on the relative flow from both sides of the spool valve. (The former also assumes that the oil can stay in the chambers without draining away).
If the current that yields this halfway point has a deadband then this will work.
I'm not 100% certain that this "halfway" point has a deadband... y8s needs to open up a spool valve.
The other issue is that this current for the halfway point will vary from one solenoid to another, so the controller algorithm needs to find it.
A PID controller would work ... there definitely needs to be a 'D' to get the phase changing rapidly ( it would take several 100 mS for the cam to wander over without it ), a P would get the cam centered, and the 'I' would function to find the "locked in" setpoint. However having effectively an additional 'I' in the natural transfer function of the VVT mechanism can mean oscillation.
So Paul what you said is correct.
but if you can figure out what "half way" is, you can set your timing with a feedback loop and then go "halfway" and lock it down
I'm not 100% certain that this "halfway" point has a deadband... y8s needs to open up a spool valve.
The other issue is that this current for the halfway point will vary from one solenoid to another, so the controller algorithm needs to find it.
A PID controller would work ... there definitely needs to be a 'D' to get the phase changing rapidly ( it would take several 100 mS for the cam to wander over without it ), a P would get the cam centered, and the 'I' would function to find the "locked in" setpoint. However having effectively an additional 'I' in the natural transfer function of the VVT mechanism can mean oscillation.
So Paul what you said is correct.
Last edited by JasonC SBB; 10-14-2008 at 12:05 PM.
#19
Ok, HAVE to read this thread. But, real quick - there's plenty of 2D tables you could use...
There was insanely bad PID, they supposedly fixed it. As yet I haven't really been able to find out if it's true PID. There's so many lock outs, patches, safetys, limits... that I couldn't do a simple test like run it in P-only mode and see if it responds as it should.
I might give this another try, however. Anyway, they also have PID for their boost control, but I believe it to be a separate instance for each, not a generic PID function which you can just call when you need it.
Now on to the 'mechanical's
There was insanely bad PID, they supposedly fixed it. As yet I haven't really been able to find out if it's true PID. There's so many lock outs, patches, safetys, limits... that I couldn't do a simple test like run it in P-only mode and see if it responds as it should.
I might give this another try, however. Anyway, they also have PID for their boost control, but I believe it to be a separate instance for each, not a generic PID function which you can just call when you need it.
Now on to the 'mechanical's
#20
Boost Pope
iTrader: (8)
Joined: Sep 2005
Posts: 33,556
Total Cats: 6,933
From: Chicago. (The less-murder part.)
Forgetting for a moment about the control mechanism for the valve, did we ever figure out a way to make MS2 actually calculate the angular relationship between the crank and cam based upon the relative timing of their sensor inputs? If so, I must have missed it.