Analog position to resolver converter: Will anyone build for me?

I am new to the forum. Hope this is good spot to post this request.

We have a need on some machines for 6 sets of little black boxes to convert motor drive analog output 0-10V signal, set as resolver absolute position over 1 motor rev, into a resolver signal.

We need it as a resolver signal, not a digital word, AND we need the controller on these machines to feed the reference out... So we are thinking of taking into our black box the 5khz reference, the absolute position in format 0-10Vdc = 0-360 degrees, and make a sine and cosine output from them...

I think it could be as simple as this:

BEGIN PROGRAM
define an_in_1=AKD 0-10vdc position
define an_in_2=5khz reference input
define an_out_1=scaled resolver sine
define an_out_2=scaled resolver cosine

LABEL: Start_Here
an_out_1=an_in_2 * sin(radians(an_in_136))
an_out_2=an_in_2 * cos(radians(an_in_1
36))
GOTO Start_Here

END PROGRAM

So in essence, we just pass the 5khz 10Vrms resolver reference input thru to the outputs, modulated by the sin or cos of the 0-10v position...

We are looking for someone to build this for us? We think the resolution can be 12 bit on the sin/cos output; obviously 14bit would be way better...

Can we get a small processor, program in machine language if necessary, to do the above loop in less than .002msec (500khz update time)? The input 0-10vdc representing 1 motor rev can go to 67hz max; so we figure 67hz * 4096= 260khz or so update time required per output bit change.

I can send more details, a spreadsheet showing the inputs and outputs over full 0-360 degrees if anyone is interested!

Thank you for looking!

Is it doable? Certainly! With an Arduino doing all of this in software? I wouldn't count on it.

My thought on this is to take a hardware DAC, feed its reference with your 5Khz signal and the digital input is the sin/cos of the sampled 0-10V signal.
Hmmm. I have a couple of video DACs lying around; I should prototype this to see how it works.

As a result, the DAC only needs to have a 5Khz bandwidth and you only need to sample the input at a minimum of 134Hz. Oversample 10x and it will probably work much better.

Send me a PM if you want to discuss this further: it could be fun!

5khz? That's .2 ms for a single cycle of your signal. 3200 processor cycles, divided by how fine you want to slice up the full cycle. And you want to do sine's and cosines and floating point multiplications on this? Might be possible if you sample the AKD every now and then and precalculate the sines and cosines.

But remember, the output will be a pulse-width modulated square wave, not a sine wave, and will have an accuracy of 8 bits.

5khz? That's .2 ms for a single cycle of your signal. 3200 processor cycles, divided by how fine you want to slice up the full cycle. And you want to do sine's and cosines and floating point multiplications on this? Might be possible if you sample the AKD every now and then and precalculate the sines and cosines.

But remember, the output will be a pulse-width modulated square wave, not a sine wave, and will have an accuracy of 8 bits.

What you might want to do is just use the arduino to read the AKD thing and to operate a pair of digital potentiometers or something.

You know, you could acheive this with a mechanical arrangement. Get yourself a couple of sliding potentiometers, pivot them at one end and hook the sliders up to a common knob. Work out the locus through which this knob travels when the pair of sliders have mutually correct values, and cut a slot in some board to force the knob to travel along that path. Or maybe some sort of linkage might do the trick.

Untitled.png

Sounds like a couple of multiplying DAC's driven by lookup tables could do the job.

TI do some nice 16-bit devices with 0.5uS settling time and 10MHz bandwidth. 5kHz no problem.

An arduino could handle the sin/cos lookup bit.

But it's a/d is only 10-bits ( about 0.3 degrees in 360) , so you may need a better external one to read the 0-10vdc - there are lots to choose from.

What resolution do you need?

How fast will the 0-10vdc input change?

What impedance will the sin/cos outputs have to drive?

Allan.

Edit : re-read your post.

67 hz : presumably it it goes 0..10v , then snaps back to 0 for the next rev? That'd have to be very accurate. Can you guarantee the 10v to be precise? will it drift? is there a glitch as it goes through 360 degrees- ie the 10 -> 0v transition..?

How are you getting the 0..10v? a potentiomer? how long will it last?

and you want updates to at least 12 bits - that means sampling every 4uS as you suggest.

doable, but subject to the conditions above.

(This problem is very old - the synchro/resolver system as used in radar sweep systems. Sometimes done with a 3-phase electro-mechanical approach in the old days)

A comment : if (as it seems ) you want to keep a rotating shaft exactly in step with another, isn't a mechanical approach simpler? Or use stepper motors?