Still Trying to come up with a cruise control that works on an off road vehicle

Status
Not open for further replies.
I'm with Mikebits on this. Could you use a hand-operated throttle control?
 

There are definitely places where cruise control shouldn't be used while off roading, but I have a handicap from the knees down and can't tell how hard I'm pushing on the gas, so If I can set the throttle to 3000 RPM,or what ever, and have it stay there going up or down a hill, it keeps me from going full throttle up a hill. Plus, there is lots of offroading that is just cruising down the dirt road at a leisurely pace which is an excellent place for cruise conrol.

I'm with Mikebits on this. Could you use a hand-operated throttle control?

I had a hand throttle, doesn't respond to brake application, doesn't respond to going from flat to climbing or going down a hill, no good except on flat. Just didn't care for it.

Kinarfi
 
Programmable Unijuction transistor

Please take a look at these sims. Notice that the PUT cycles only once per cycle of the 555 if there is a resistor in the cathode leg and several time if the resistor is not there.
Is this correct or is it a Spice deal?
If the PUT cycles only once per cycle of the 555, it would suit me nicely, if not, I need to figure out how to make it happen that way.
 
Looks correct to me. If the resistor is there it slows down the discharge of C3, whereas if it's not then C3 discharges rapidly and the PUT has time to fire again.
Not quite sure what you're aiming at with that sim, but here's my attempt at producing a servo-driving pulse which is normally 2ms when a tacho input is 'low', but reduces progressively to 1ms when the tacho output goes higher than a settable throttle value. (I've assumed a standard servo, with a pulse repetition rate of ~ 25ms, and a tacho output which goes from 0VDC to 5VDC as revs rise).
 
I've been giving this some thought and I think I need to print a retraction. PID should not be needed, proportional control shold suffice for this application (I think). When I made those statements, I was going off of my knowledge of PID as it is used in heating. When heating an object, the temperature propogation through the object is latent. If you apply full power until the setpoint is reached (bang-bang), the temperature will continue to rise, as heat propogates through the object, producing a gross overshoot. This latent heat introduces a time delay between when power is applied, and when a change in the variable (heat) is noticed, which thwarts even proportional control. So, in that application, PID is needed to maintain a constant setpoint, as the algorithm has to "predict the future" based on a set of tuning parameters. Proportional control in heating will cause oscillations, as the control will be responding to changes that are in the past. In this cruise control application however, the effects of changes in throttle position should be noticed immediately, negating the need for PID. The vehicle will not continue accelerating after throttle is removed in the same way that heat will continue rising at a test point on an object after power is removed. Actually, PID I think would be a poor choice for this application, as it does not do well with loop corruption. Inclines & declines in terrain would be seen as loop corruption. It would be exceptionally fussy. Proportional control however should be well suited to changes in terrain. I think that the only reason it didn't work in the past (when you described the oscillations) is because your proportional control was too proportional. If you could take the error correction down a few notches, I think it would work.
 
alec_t, I ran your circuit, it didn't seem to do any thing. The tach out put is a square wave of about 7 volts, if I remember correctly, and has a frequency of twice the RPM of the engine, so 60 Hz = 1800 RPM.
I must confess that I am not proficient with the use of schmitt triggers not the logic chips (cd4000), I'm more into opamps and comparators at the moment, but I do under stand them or can sort of figure them out.
My present build uses the 555 to create 48 Hz base freq and during each on cycle, the PUT creates a single triangular pulse which is compared voltage level which gives a square pulse whose width varies with the voltage level.
Sure with I hadn't killed my usb scope.
Kinarfi
 
hi alec,
This section of the circuit you posted would not work in actual hardware.
 
The tach out put is a square wave of about 7 volts, if I remember correctly, and has a frequency of twice the RPM of the engine
My assumption was incorrect then. I'll use that info to revise my schematic.
This section of the circuit you posted would not work in actual hardware
Odd. I think the posted version of the asc must have got corrupted in transit then. In my version (as I've just confirmed) all the inputs of U1b, U1c, U1d are connected together. I'll post a revised asc.

Edit: I suspect the discrepancy between Eric's post #27 schematic and mine might be due to an LTS setting. Under Control Panel / Drafting Options I've ticked 'Allow direct connection pin shorts'.
 
Last edited:
Why not use an after market Cruise control & use the tacho pulses to drive it. After all its only using speed sensor pulses in its original aplication.
 
Why not use an after market Cruise control & use the tacho pulses to drive it. After all its only using speed sensor pulses in its original aplication.
I have one, it won't stay engaged, probably because it changes speed to quickly, any way, tried it, failed miserably, and I want to control engine speed in any gear.

Tach out put is 2 cycles per revolution, idle is 900 RPM, I would want to be able to set the speed as low as 1800 rpm and as high as 5000 RPM
 
Last edited:
Jeff,

Go back and have a look at the 2 circuits I posted. The first is the 555 with the pulse contrloled between 1 & 2 ms by the CV pin, This would be the output to your hobby servo.

The second is a PID circuit that compares the tach output to your set RPM and outputs a signal to speed up or slow down the engine (555 CV). This signal still needs to be scaled to match the desired control voltage. The circuit has a small dc gain (proportional) an integrator to allow more gain at very low frequencies (< .5 Hz.) and a differentiator to increase the gain if the change is fast and reduce overshoot.

I'm not sure it will work in all gears because the engine response will change, but I think it will be closer and simpler.
 
Last edited:
Here's my revised sim, for 600-6000rpm operation.
U1a/U1b form a monostable triggered by the tacho and generating fixed-width pulses which are buffered/inverted by opamp U2a then integrated by R9/C3 to give a voltage ~ proportional to rpm. This is compared in U2b with a 'set throttle' voltage, the amplified difference driving Q1. U1c forms with C6/R15/R16/D4 an oscillator with a 25ms period. Q1/R14 act as a voltage-variable current source for augmenting the charging current of C6 and thus varying the pulse width within a 1-2ms range. During C6 discharge through R16 Q1 is turned off via diode D3.
 
Last edited:
Alec_t, not sure I understand your circuit, not up to speed on nands ands nors & ors, but it did look like it take a while to stabilize with a change in frequency.
All,
Here's where i'm at right now, fried my usb scope and need to see what I'm getting out of my circuit. Tried hooking up a servo, but it didn't seem to want to find a stable position and could be turned by hand, it has a 2" wheel attached to the output. Still wondering about the PUT (U3) output within the on time of the 555, does it have one pulse or a couple of them.
on hold for now, getting ready for the weekend.
Kinarfi
 
Last edited:
it did look like it take a while to stabilize with a change in frequency.
It takes around 10 input cycles, because of the time constant of the pulse integrator. I note the Freq-to-V circuit in your post #33 sim has significant time constants too. Tried to run it but don't have all the files for the Spice models/symbols. What are you using for the F-to-V, PUT, Servo, pot_jeffrey ?
I think any analogue F-to-V will involve delays when F changes. Perhaps digital (e.g. micro) is the way to go if delays are going to be a problem. What response time are you hoping to achieve? I have designed another F-to-V (actually Period-to-V) circuit which settles in no more than 3 input pulse cycles (= 150ms at 600rpm) if you're interested?
 
Draft 2 shows response time.
Servo is just for show, it does nothing,
pot_jeffrey is pot10t from Pote.lib, but I modified it so I can use the whole number.
.SUBCKT pot10t 1 2 3
.param w=limit(SET,1m,9.99)
R0 1 3 {Rt*(10-w)/10}
R1 3 2 {Rt*(w)/10}
.ENDS
It was:
*.SUBCKT pot10t 1 2 3
*.param w=limit(set,1m,9.99)
*R0 1 3 {Rt*(1-0.1*w)}
*R1 3 2 {Rt*0.1*(w)}
*.ENDS
PUT is from Ujt&Put.lib which I got with LtSpiceIV_Plus_12_2009.exe at ltwiki component library
.Subckt 6028 1 2 3
Q1 2 4 3 NMOD
Q2 4 2 1 PMOD
.MODEL NMOD NPN(IS=2E-15 VAF=100 IKF=0.3 ISE=2.5E-12
+ NE=1.6 RE=0.15 RC=0.15 CJE=7E-10 TF=0.6E-8
+ CJC=2.2E-10 TR=4.76E-8 XTB=3)
.MODEL PMOD PNP(IS=22E-15 VAF=100 IKF=0.3 ISE=1E-12
+ NE=1.7 RE=0.15 RC=0.15 CJE=7E-10 TF=1.6E-8
+ CJC=2.2E-10 TR=5.1E-8 XTB=3)
.Ends
f>v is an LM2907-8
and yes, I'd like to see your Period-to-V circuit,
I hope I got every thing covered
Kinarfi AKA Jeff
 
Last edited:
With those models downloaded I've now got your sim working Jeff.
From the sim I can see the LM2907 has a similar response time to my period-to-V effort in the attachment below.
Explanation of P-to-V:
V2 and V3 generate first a low and then a high rate 'tacho' signal. They deliberately overdrive the circuit, representing worst-case voltage from a reluctor type tacho. R3 and the input protection diodes in gate U1a clamp the input voltage and U1a squares it up. C2 is charged by a constant-current source (Q1/R5-7) and discharged by Q2 at each positive pulse edge from U1a, thus generating a ramp voltage. The peak of this ramp is sampled via transmission gate U2 and held on cap C3. Circuit output is the C3 voltage, buffered by fet-input opamp U3, and is ~ proportional to the circuit input pulse period.
 
Here's an even faster period-to-voltage converter. It settles within one input pulse period!
For simulation purposes 'tacho' here is a stepped frequency 5V square-wave with a period dropping from 32ms to 4ms.
A 4024 counts clock pulses for half the wave period, then a brief pulse via C2 at the start of the next half period causes the count to be latched by a '373. After a short delay introduced by R9/C1 the counter is reset. The latched count is converted by weighting/summing resistors R1-R8 to a voltage proportional to the tacho pulse period.
 
This sounds like a job for a common mechanical governor system or a factory built electronic unit.

You can find used mechanical ones like this. **broken link removed** , at salvage yards on old commercial and farm equipment for less than $20 if you don't mind doing a little scrounging! Just add a hand controlled throttle lever to set the speed and way you go!

Woodward electronic governor control unit. $105
**broken link removed**

Add a pot and an actuator and a way you go!
 
alec_t, not sure what you're trying to do with PtoV.asc, I adapted it to my situation (on Spice) and out put was just spikes, run the attached, it is your PtoV and my LM2907 with the same inputs.
Got me a scope, now to see how it works and what my circuit is doing.
tcmtech,
what fun would any of that be, It would be like marrying the ugliest and sloppiest of the opposite sex in town because it's easy instead of keep trying for the prettiest, most wholesome partner of the state, or country.
 
Last edited:
I adapted it to my situation (on Spice) and out put was just spikes
That's probably because you're using a 14.2V supply. My sim was run with a 5V supply. Try right-clicking on the '4024 and '273 symbols and setting Vdd=14.2.
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…