I have a project where I have a digital value, which can be a single float or whatever, representing a displacement of an imaginary LVDT.
I now want to emulate this LVDT. I have a board with two DACs.
The circuit will have a reference (excitation) input which is traditionally 400Hz but can be as much as 600Hz so the circuit has to not depend on that for accuracy. That input can be assumed to be ground referenced; in fact only the zero crossings are of relevance. (With a real LVDT, the output obviously depends on the excitation power but in this case that can be disregarded).
Then it will have two outputs, but since a real LVDT has two output windings, one has to emulate those windings. This is a bastard, because I have no control over the common mode voltage there, so the output has to float, so I think the output will have to be a transformer i.e. two transformers. I can see there is a possible clever solution, sensing the Vcm, but it's not worth the hassle when a couple of RM6 cores will do.
I can also see that the variable frequency input means that the sinewave generator will need to be frequency- and phase-locked onto the reference input, but I can sort that.
Is there some super-cunning way to do this, preferably in software?
I have what is basically an arbitrary waveform generator already, where there is a 1024-value table in RAM which is fed by DMA to a DAC. That table can be regenerated pretty fast with a different amplitude, so no analog "multiplier" is needed, and the sample rate can be tweaked to achieve a frequency match to the input.