Author Topic: Trying to emulate three synchros using Arduino  (Read 70206 times)

0 Members and 2 Guests are viewing this topic.

Offline sbennett1298

  • Contributor
  • Posts: 23
  • Country: us
Re: Trying to emulate three synchros using Arduino
« Reply #75 on: December 07, 2016, 12:19:55 am »
I have not measured my pins yet but I think they are 30mil.
The wire wrapping tool I have is for the really fine blue wire they sell at Radio Shack.
It is fine as frogs hair. Maybe 15mil?
I must have another wire wrap tool around here someplace because I'm sure I had one that worked on the square pins of DIP sockets.
 :-//
-Steve
 

Offline CM800

  • Frequent Contributor
  • **
  • Posts: 882
  • Country: 00
Re: Trying to emulate three synchros using Arduino
« Reply #76 on: December 07, 2016, 12:47:54 am »
I have not measured my pins yet but I think they are 30mil.
The wire wrapping tool I have is for the really fine blue wire they sell at Radio Shack.
It is fine as frogs hair. Maybe 15mil?
I must have another wire wrap tool around here someplace because I'm sure I had one that worked on the square pins of DIP sockets.
 :-//
-Steve

Have you considered just buying the suitable connector?
It's usually not hard to find it with some intuition and an Amphanol datasheet / product guide. I've done it before.
 

Offline salbayeng

  • Frequent Contributor
  • **
  • Posts: 296
  • Country: au
Re: Trying to emulate three synchros using Arduino
« Reply #77 on: December 07, 2016, 12:55:44 am »
Ok I have a standard size blue handled tool here, from  "OK Industries" part "WSU 30-M"  I guess thats 30mil
http://au.mouser.com/ProductDetail/Jonard-Industries/WSU-30M/?qs=%2fha2pyFadujGQ3IVLLGAf6fxCcINAoooqG%252bqR7M5gg4%3d
Ooops the data sheet says "30" is for 30awg

And another clone of that from "O.K. Industries Inc" part "WSU-30M"  and "made in China" and also "made in P.R.C" (to avoid confusion?)

Never seen a smaller one,  I have seen a larger one for 40mil or 60mil? power supply pins maybe this one http://au.mouser.com/ProductDetail/Jonard-Industries/WSU-2224/?qs=%2fha2pyFadujigxftUDcPEolmMNeZo5RHS9DIzT4xDrQ%3d

I've got one of these https://www.jonard.com/Products/ProductDetail.aspx?p={EFAF6BC9-4E97-4AE3-84F5-FBD8F86FE172}  red/white/blue wire + stripper + cutter , it get's used a lot for development and board mods (no actual wire-wrapping though), it's even better if you tape a small length of angle to it and attach a binder clip, then you can use as a length gage.



 

Offline sbennett1298

  • Contributor
  • Posts: 23
  • Country: us
Re: Trying to emulate three synchros using Arduino
« Reply #78 on: December 07, 2016, 02:56:44 am »
I would prefer to buy a connector if the price were right.
I have just not been able to find one. The ones I did find were either too expensive or the web site said "request a quote".
Well "request a quote" sounds like it would either be expensive or have a large minimum order so I have not bothered with it.
Since I am just tinkering around I could not pay more than $15.
There seems to be a bewildering array of variations.
Most I have seen had threaded guide posts. Mine are not threaded.
My guide posts are male on one end female on the other end. non-threaded.
Total of 14 pins if I remember.

-Steve
 

Offline CM800

  • Frequent Contributor
  • **
  • Posts: 882
  • Country: 00
Re: Trying to emulate three synchros using Arduino
« Reply #79 on: December 07, 2016, 06:43:03 pm »
I would prefer to buy a connector if the price were right.
I have just not been able to find one. The ones I did find were either too expensive or the web site said "request a quote".
Well "request a quote" sounds like it would either be expensive or have a large minimum order so I have not bothered with it.
Since I am just tinkering around I could not pay more than $15.
There seems to be a bewildering array of variations.
Most I have seen had threaded guide posts. Mine are not threaded.
My guide posts are male on one end female on the other end. non-threaded.
Total of 14 pins if I remember.

-Steve

From your image, I can say this is the exact connector you want:
PT06A-18-32S
If you find one, make sure if there are any letters after S it doesn't have a W,Z, Y or Z as they are shell rotation / key options

PT06A-18-32S-SR would be the best one as it has strain relief added.

http://uk.farnell.com/amphenol/pt06a18-32s/connector-circular-size-18-3way/dp/1482714

http://www.mouser.co.uk/ProductDetail/Amphenol-Industrial/PT06A-18-32S-SR/?qs=lIrZrna%2fvtCpLVeX8IKatw==

Would be the ones you want.

It's really quite quick to find the exact connector you need, just from looking at it and the Millspec datasheet for it's series.

(Page 25)
http://www.farnell.com/datasheets/2167054.pdf?_ga=1.120726091.214707435.1448714711


 

Offline sbennett1298

  • Contributor
  • Posts: 23
  • Country: us
Re: Trying to emulate three synchros using Arduino
« Reply #80 on: December 07, 2016, 07:42:54 pm »
CM800,

  The instrument I have uses a rectangular connector. MS24009G.
http://everyspec.com/MS-Specs/MS2/MS24000-MS24999/MS24009G_37724/

-Steve
 

Offline salbayeng

  • Frequent Contributor
  • **
  • Posts: 296
  • Country: au
Re: Trying to emulate three synchros using Arduino
« Reply #81 on: December 08, 2016, 03:12:43 am »
Getting back to the original poster (richfiles)  round connector.
This looks like a standard milspec connector (as expected from s simulator, real aircraft instruments have different polarisations to standard connectors)
The contact arrangement with 4 in the middle and 2 more rings of contacts is quite common it's known as  "18-32"
You need sockets in yours so its now "18-32S"

Normally you would want a straight plug so the beginning of the part number will be "MS3116"  or "KPT06"
(right angle is MS3118 or KPT08) other manufacturers may have different part numbers but will have a 6 in it.

So you are looking for a  xxxxx6x1832Sxx  or xxxxx6x18-32Sxx where the xx can be various numbers or letters , the letters on the end are environmental codes, take any of these. (and also xxxxx8x1832 etc)

If you searching on distributors or even ebay, search for  "18-32S connector"  or "1832S connector"
some hits
http://au.mouser.com/Connectors/MIL-Spec-MIL-Type/Circular-MIL-Spec-Connectors/Circular-MIL-Spec-Connector/_/N-cigvbZscv7?P=1yzv62lZ1yzv7x1&FS=True&Ns=Pricing|0

http://www.ebay.com.au/itm/272327980873

Note you sometimes don't get the backshell with certain part numbers.

 

Offline richfilesTopic starter

  • Regular Contributor
  • *
  • Posts: 156
  • Country: us
Re: Trying to emulate three synchros using Arduino
« Reply #82 on: December 08, 2016, 02:33:54 pm »
Well... Turns out you can find the 18-32 connectors for way cheaper on ebay! I was going to use individual sockets, and then pot it, but seeing that... I may as well get the proper connector. I've not found an 18-32 in my "Big-Box-O'-Mil" connectors yet, but I suppose I could give it another quick search, just incase. I'd looked at the price at Digikey before, but it turns out they were one of the more expensive places to get them from, so I kinda quit looking once I'd leaned D-Sub pins fit the pins.

Ebay definitely seems to be the cheapest way to get this.
 

Offline salbayeng

  • Frequent Contributor
  • **
  • Posts: 296
  • Country: au
Re: Trying to emulate three synchros using Arduino
« Reply #83 on: December 08, 2016, 11:51:11 pm »
Given that most buyers want fully traceable parts, there's not a big market demand for used or NOS MILSPEC connectors, and the average guy stumbling across some thinks he will make a killing on Ebay, only to find there aren't that many buyers, so has to sell them pretty cheap.

In the US you should be able to find some enterprising individual who has a 55gal drum of old harnesses from a boneyard.

Even buying new there are specialist MILSPEC connector suppliers out there, with good prices.
We had a big box of MILPSEC connectors at a prior workplace, we called it our garden gnome collection, they were green, and decorative ,and that was about it, in a box of 100 or so you could never find the one you wanted.
 

Offline CM800

  • Frequent Contributor
  • **
  • Posts: 882
  • Country: 00
Re: Trying to emulate three synchros using Arduino
« Reply #84 on: December 09, 2016, 01:01:12 am »
Well... Turns out you can find the 18-32 connectors for way cheaper on ebay! I was going to use individual sockets, and then pot it, but seeing that... I may as well get the proper connector. I've not found an 18-32 in my "Big-Box-O'-Mil" connectors yet, but I suppose I could give it another quick search, just incase. I'd looked at the price at Digikey before, but it turns out they were one of the more expensive places to get them from, so I kinda quit looking once I'd leaned D-Sub pins fit the pins.

Ebay definitely seems to be the cheapest way to get this.

Just make sure that the 18-32 doesn't have any key angling + is a receptical. The part number you'd be looking for should resemble the one I posted further up.
 

Offline richfilesTopic starter

  • Regular Contributor
  • *
  • Posts: 156
  • Country: us
Re: Trying to emulate three synchros using Arduino
« Reply #85 on: December 09, 2016, 02:27:21 am »
Quote
We had a big box of MILPSEC connectors at a prior workplace, we called it our garden gnome collection, they were green, and decorative ,and that was about it, in a box of 100 or so you could never find the one you wanted.

Hey! I have that very same box too!  :-DD
Fortunately, I have a bunch of mated pairs in the box, so I actually have SOME use for it.

As for what I've found online, I already have found ones that match my keyway and everything.
 

Offline sbennett1298

  • Contributor
  • Posts: 23
  • Country: us
Re: Trying to emulate three synchros using Arduino
« Reply #86 on: December 12, 2016, 10:01:28 pm »
I have a helicopter I picked up at radio shack that is controlled by an app on an iPhone.
In one mode of operation you use the accelorometers inside the phone and you tilt the phone to steer the copter.
I think it would be neat to control one of these nav balls with an iPhone app.
I guess you'd need a Bluetooth shield.

-Steve
 

Offline sbennett1298

  • Contributor
  • Posts: 23
  • Country: us
Re: Trying to emulate three synchros using Arduino
« Reply #87 on: December 14, 2016, 06:31:56 pm »
Well after a brief look at iPhone development I can rule that out. They charge you for the privilege of write code and loading it to your own phone.
What a crock.
Maybe Android is more developer friendly?
-Steve
 

Offline mapadon

  • Newbie
  • Posts: 1
  • Country: es
Re: Trying to emulate three synchros using Arduino
« Reply #88 on: January 15, 2018, 09:12:25 am »
Hi to everybody,

I´m  doing a project similar to this one, but I´m stuck in some points that maybe you can help:

-Is there  any way to synchronize with the 400hz referece?  I have an external 400Hz supply Behlman and I think that there´s a way to use its sine wave.

-Why are the 74HC4066 needed? The carrier is the 400Hz sine wave, right? And the 120º shif must be implementd in the modulator through the DAC.

-Concerning the transformers, do you have any reference? The only 1:1 that I can find are pulse transformers, and I´m not sure they could be suitable for thise design.

Thanks in advance
 

Offline sbennett1298

  • Contributor
  • Posts: 23
  • Country: us
Re: Trying to emulate three synchros using Arduino
« Reply #89 on: April 15, 2018, 05:00:31 am »
richfiles,
  I recently started thinking about this again. How to make an AC sine wave vary from full amplitude to zero and then to inverted full amplitude?
How about a cross fader circuit like a music disc jokey uses to fade from one turn table to the other? Fade from plus 400hz to inverted 400hz
There has got to be a digitally controlled way to do this.
One way is voltage controlled amps driven by pwm.
Also I am thinking transformers are not needed in your design.
Can't you just used a decoupling capacitor to send the signal to an audio amp that has dual power plus and minus.
It just boils down to mixing two sine waves together where one is an inverted copy of the other and scaling them to get the desired result.
That can't be all that difficult. I know this is an old tread. Did you ever get anything to work?

-sbennett1298


 

Offline richfilesTopic starter

  • Regular Contributor
  • *
  • Posts: 156
  • Country: us
Re: Trying to emulate three synchros using Arduino
« Reply #90 on: July 25, 2019, 01:10:30 pm »
Trying to get back onto this project. Major changes since I last worked on it. Job change has left me with more free time. I finally learned how to use KiCAD. Considering the project will use three axes, and board vendors (like OSH Park) often have a three PCB prototyping offer, I've realized when I do the design, I need only design the circuit for a single axis, with input from the reference circuit. I can then have the board manufactured, and then populate components for all three axes on all three boards, but only populate the circuitry for the reference on a single board. I will tap the one board's reference signal and share it between the other two, which will be partially unpopulated. Since the reference will likely be externally provided, I can more or less just have the phase inversion and power driver circuits, and that ought to cover it.

Now I gotta figure out the details of the circuit. I'm still too paranoid about blowing up anything in the FDAI, since it was costly enough to get it. I want every aspect of driving it to be by the books. I need more than a rough block diagram now. For now though, just the small update. I'm alive, I learned KiCAD. Still need to learn how to really code on the Arduino. What little practice I had playing around with it was ages ago, and I need to get hardware built, so i can actually experiment now.
 

Offline jmpowell

  • Newbie
  • Posts: 5
  • Country: us
Re: Trying to emulate three synchros using Arduino
« Reply #91 on: August 11, 2019, 09:44:22 pm »
I've built a couple of digital-to-synchro (DTS) converters. My approaches were different than the route you've taken, but perhaps they will offer some ideas you might find useful.

The definition of the synchro stator terminal voltages is given as differences between stator phases. There is no reference to "ground". This is by design. Think of the stator voltages as a three phase differential signal with strong immunity to ground loop noise. That said, you're free to define the voltages on the stator phase with respect to ground as you please as long as the voltage differences between phases still meets the synchro definition, and you are willing to accept any impact of electrical noise on the ground. (Noise turns out to be not that big a deal in many applications.) You might, for example, define the voltage of S1 to be zero. Now you only have two stator voltages to generate: S2 and S3. You can still isolate from ground using a pair of transformers if this is needed.

Both DTS converters I built take this general approach.

DTS v1 takes a sample of the 400 Hz power and passes it through a 12-bit, four quadrant multiplying DAC. (An LTC1590, in this case) The DAC output goes to an opamp with selectable gains of +1 and -1. This, in turn, goes to a power amp (LM1875) which is the DTS output. Peak output voltage is only about 12 volts.

11.8 volts peak for synchro stator voltages is common. 115 volts and 28 volts are common synchro rotor voltages. An ADI with internal servo electronics may take 115VAC/400Hz on the connector to power it, but use only 11.8V on the stator control inputs. This was the kind I was targeting with my designs.

DTS v1 utilizes a PIC16F648A to manage communication with the host and load the MDACs. All the heavy lifting is left to the host.

DTS v2 came about from a desire to reduce costs and to get away from the switchable gain opamp. Effectively, this "sign bit" becomes the 13th bit in controlling amplitude. It needs to be really accurate to match the accuracy of the 12 bit MDACs. I also wanted a more versatile converter, something that could be used to drive a synchro receiver style engine gauge, as well as, act synchronously with other converters to drive the multiple inputs of an ADI.

DTS v2 generates a pair of controlled amplitude, 400Hz sines alone with a signal that can be used to make constant amplitude 400Hz power. Further, the converter accepts a 400Hz input that it will synchronize with. An individual DTS v2 with an external power amplifier can generate all that's needed to drive a single synchro-receiver style gauge. A group of DTS v2 converters can synchronize with an external 400Hz power source and drive an instrument like an ADI.

At the center is a PIC16F648A generating a pair of "modified sine waves". A modified sine wave is a square wave with some extra time spent at zero when making the transition from minimum value to maximum, and visa versa. If the time at zero is properly chosen, the third harmonic is canceled out. It's really easy to filter and be left with a very pretty sine wave. DTS v2 uses a single quad opamp and a (very small) handful of SMD components to greatly overkill the filtering of both channels. Amplitude is controlled by the min and max values loaded into the DACs. These don't need to be MDACs, so they're cheaper. While technically the PIC is generating the modified sine wave, all it's doing is listening to its internal timers and loading values into the DACs a few times per cycle. Once again, all the heavy lifting of calculating those values is left to the host. The DAC outputs go to power amplifiers. The LM1875s have gone up in cost. TDA2030ALs are less than a dollar from Tayda Electronics and should do as well. There are some pictures of the DTS v2 PCB along with waveforms on my site www.mikesflightdeck.com Scroll down to July 2015. (There's also some synchro related material in the Oct 2006 portion of "old news" on the site.)

DTS v2 was not fully debugged/tested though it does appear to generate proper signals and sync with an external 400Hz reference. A remaining item is the need to accommodate the phase shift through the filters so that the stator signals are properly in phase with the reference.
« Last Edit: August 12, 2019, 03:50:09 pm by jmpowell »
 
The following users thanked this post: richfiles

Offline sbennett1298

  • Contributor
  • Posts: 23
  • Country: us
Re: Trying to emulate three synchros using Arduino
« Reply #92 on: August 23, 2019, 03:48:20 pm »
Richfiles,

  Did you ever get this working? I just found out there is an Arduino shield called 1Sheeld+ that lets your Arduino use any sensor on your Android via Bluetooth!
Imaging being able to control your navball by tilting your phone! If you get the plus version it will also work on iOS. -sbennett1298
 

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9935
  • Country: us
Re: Trying to emulate three synchros using Arduino
« Reply #93 on: August 23, 2019, 04:57:41 pm »
Having read through this thread, I still have no idea what needs to be generated.  There appear to be 3 in-phase 400 Hz signals of individually varying amplitude plus (maybe) a reference signal of constant amplitude but also in-phase.  Am I even close?

Well, assuming I am, why not use analog multipliers.  Generate the reference waveform and smooth it as much as necessary and then feed it into 3 analog multipliers.  Drive the X with the signal and the Y with the amplitude.  Now, the amplitude doesn't change all that fast so any decent 16 bit DAC will keep up and have quite a bit of resolution.  We're dealing with a qualitative display, not quantitative.  We don't need 10 decimal digits.

All the Arduino would have to do is grab the simulator data, figure out the 3 amplitudes and update the DAC - at the frame rate, not at 400 Hz.  And not times 10...

Some timer function in the Arduino could create the 400 Hz square wave output which would be filtered substantially.

Electrically, the output of the analog multipliers would be signals with amplitudes between 0 and +- 10V.  Inversion is possible with an Op Amp providing the offset ahead of the multiplier.  The multiplier DAC would output 0..10V and the op amp would change it to -5..+5 or something like that.

The output of the multipliers is an amplitude modulated 400 Hz signal.  It would need to run through some kind of driver to drive the transformers that drive the FADI.

I think...  I could be way off!

If the waveforms need to be spread apart by 120 degrees then things get more difficult.  But not that much!  Yes, the Arduino has to generate 4 waveforms (x,y,z,ref) but they are strictly correlated in time.  In other words, when you compute an index into the lookup table, the other indices are a fixed distance further along in the table. In fact, you should never have to compute ANY index because you step through the table in discrete steps - one step per iteration.  What you don't want to do is use floating point math.

It's not a given that the Arduino has enough memory for an expansive lookup table but there are similarly simple to use chips that do.  The Teensy 4.0 comes to mind:  It is 20 times faster in a benchmark, it runs at 600 MHz, has 1 MB RAM and 2 MB Flash (no problem with lookup tables!)

https://www.pjrc.com/teensy-4-0/
https://www.pjrc.com/store/teensy40.html

It can be programmed using the Arduino platform even though the devices have almost NOTHING in common.

ETA:  The Teensy 4 includes a 32 bit or 64 bit floating point unit for those times when you really have to do the math!

Do op amp phase shifters play into this?  If you can generate one 400 Hz waveform, it is possible to use RC networks and op amps to create phase shifted versions.  Then the analog multiplier can deal with the amplitude:

https://circuitdigest.com/electronic-circuits/rc-phase-shift-oscillator-circuit-using-op-amp

« Last Edit: August 23, 2019, 07:11:02 pm by rstofer »
 

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9935
  • Country: us
Re: Trying to emulate three synchros using Arduino
« Reply #94 on: August 23, 2019, 06:08:57 pm »
We need to be realistic in terms of the sine wave generation.  Generating a clean 400 Hz waveform with an Arduino is a stretch.

If we assume 1 table lookup per point and a 10 bit DAC we would need to generate 400*1024 (409,600) interrupts per second.  There's almost no point in going to a 12 bit DAC as that would require 400 * 4096 (1.6 MILLION!) interrupts per second.  I'm not sure the Arduino can even do the 410k interrupts but I am really sure it won't do 1.6 million.

We clearly need to generate ALL of the outputs from the same interrupt, one way or another.

So, how do we get the Arduino out of the waveform loop?  We use something like the AD9833 to generate the reference waveform

https://www.analog.com/media/en/technical-documentation/data-sheets/AD9833.pdf

I didn't study the datasheet all that much but it appears you can enter a phase offset value.  So, if it is necessary to generate signals with 120 degree phase shifts, use 3 of these signal generators and program the phase values.  More study needed...

Do everything necessary to get the slow AVR out of the signal generation loop.  There's a reason that analog computing is still around!

Step 1, experiment with AD9833s to see if it is easy to generate either 1 or 3 phase shifted signals.  Don't worry about the details of amplitude, just get the proper signals.  You can always amplitude modulate them later on.

ETA:  There is an Arduino library for the AD9833

https://github.com/Billwilliams1952/AD9833-Library-Arduino
« Last Edit: August 23, 2019, 08:50:39 pm by rstofer »
 
The following users thanked this post: Richard Crowley

Offline jmpowell

  • Newbie
  • Posts: 5
  • Country: us
Re: Trying to emulate three synchros using Arduino
« Reply #95 on: August 23, 2019, 11:39:55 pm »
Ideally, there is no electrical phase shift between any of the 400Hz signals. Small amounts (a few degrees) of phase shift are generally tolerable. Larger amounts introduce increasingly unacceptable errors.

The waveforms do not have to be particularly pure. I have seen a surplus aircraft ADI operate from an unfiltered "modified" sinewave power inverter. I don't know what it did to the accuracy (probably nothing good), but there was no apparent problem.

Cost may be a factor for some applications of a digital-to-synchro converter. Certainly it was for the ones I developed. The converters were to be used in hobbyist built flight simulators. Using real flight instruments and gauges boosts realism, but the more you use, the more converter$ you have to come up with. Several years ago using a brain dead MCU with external DACs was a sweet spot cost-wise. Today, a few dollars buys far more so it does seem interesting to explore other design approaches with current hardware.

There are a few references for synchros that are worth the effort of browsing through. Here's a link to one: https://www.analog.com/en/education/education-library/synchro-resolver-conversion.html
 

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9935
  • Country: us
Re: Trying to emulate three synchros using Arduino
« Reply #96 on: August 25, 2019, 06:11:22 am »
In terms of just getting a single 400 Hz sine wave, my experiments with the AD9833/Arduino were very successful:
https://www.eevblog.com/forum/microcontrollers/why-arduino-users-so-agressive/msg2640903/#msg2640903
 

Offline Yansi

  • Super Contributor
  • ***
  • Posts: 3893
  • Country: 00
  • STM32, STM8, AVR, 8051
Re: Trying to emulate three synchros using Arduino
« Reply #97 on: August 27, 2019, 08:21:38 am »
We need to be realistic in terms of the sine wave generation.  Generating a clean 400 Hz waveform with an Arduino is a stretch.

If we assume 1 table lookup per point and a 10 bit DAC we would need to generate 400*1024 (409,600) interrupts per second.  There's almost no point in going to a 12 bit DAC as that would require 400 * 4096 (1.6 MILLION!) interrupts per second.  I'm not sure the Arduino can even do the 410k interrupts but I am really sure it won't do 1.6 million.

We clearly need to generate ALL of the outputs from the same interrupt, one way or another.

 I can't figure out how did you come up with this.  To produce a clean 400Hz from a DAC, from theory, you need just twice the frequency for sampling rate. For practical reasons,  standard 8kHz audio sample rate would be more than fine to reproduce the signal.

If you would not want to fiddle with steep filters to get aliasing out, you could just sample at the standard rate of 48kHz, which is more then enough for a 400Hz signals to be produced very cleanly.

I am not sure what the OP needs (this whole thread is a mess), but if just three or four channels are required of some sort of signal, get any cheap ARM microcontroller with a couple of I2S interfaces, slap there two CS4334 audio DACs and voila, problem solved.

You can't do any simpler than that.   Slap there for example a STM32F072, couple of the above mentioned DACs, done.   No crazy interrupt rates required (we have a DMA), no crazy sample tables. Sinewaves can be even calculated on the fly with just couple lines of code. (And no, I do NOT mean to calculate it using sinf(x), there are way easier solutions to that, such as an oscillating differential equation).

Quote
There's a reason that analog computing is still around!

This is definitely not the reason.
« Last Edit: August 27, 2019, 08:24:06 am by Yansi »
 

Offline richfilesTopic starter

  • Regular Contributor
  • *
  • Posts: 156
  • Country: us
Re: Trying to emulate three synchros using Arduino
« Reply #98 on: November 07, 2019, 03:12:24 am »
Just commenting to say I'm still alive!  ;D

The setup I had planned on building has a hardware based sine generator. It doesn't rely on the microcontroller or the DACs for sine generation, only sine attenuation and polarity flipping, through the use of multiplying DACs and an analog switch IC to select and inverted or a non inverted sine wave, generated by hardware. For me, it was easiest to use hardware I had on hand, and it cut sine generation out of the program altogether. These details do seem to get missed by a lot of people posting here. More than once, people have suggested I do exactly what I already plan to do!  :-DD

• Hardware generated sine wave.
• Multiplying DACs
• Microcontroller only controls polarity of the sine wave and the attenuation.

Since there were still questions, I'll try first to explain synchros:

The best way I can think of to describe a synchro, is if you take a single phase rotor, and mount it inside a three phase stator. That's literally it.

ALL the outputs are synchronized to the single 400 Hz reference that is fed into the rotor. What changes, is the angle of the rotor, in relation to the three phase windings of the stator. When looking at a single winding, for every 90° of rotation, you get a peak, a zero, a peak in the opposing polarity, and another zero crossing... A sine wave. Think of how an amplitude modulated carrier wave works. The carrier stays at 400 Hz, in this case, but the amplitude changes. The positive portion of the sine angle of the rotor's position translates to an in phase output on the stator winding, and the negative portion of the sine angle of the rotor's position translates to an out of phase output on the stator winding. The phase alignment of the outputs always remain in sync with the reference input, but it's the attenuation between peak and zero, and the polarity of the phase that changes. Each stator winding is 120° apart, and so you have to look at the rotor's position, relative to the winding's angle.

Interestingly enough, you could probably recreate a similar effect with some linear potentiometers attached to a crank. Connect the non-inverted reference to one side of the pot, the inverted reference to the other side of the pot, and take each of the three synchro outputs from the three pot's wipers. Attach all three pots sliders radially to a crank and rotate the crank. That might be the best visualization I can come up with. Synchros just do this with inductive windings, so they function like a transformer. Since they are transformers, they require AC to operate.

Second, I'll try to break down my theoretical method (it's not tested, built, or anything) for clarity.

• A hardware generator creates a 400Hz sine wave
• The 400Hz sine wave is fed into a pair of Op Amps: One inverting and one non-inverting. This creates two sine waves 180° out of synch with each other.
• The two sine waves are fed into an analog switch IC. The microcontroller can select the inverted or the non inverted signal to pass through.
• The selected sine wave is fed into the reference of a 12-bit MCP4922 DAC.
• The microcontroller sets the scaling of the DAC, allowing the DAC to function in multiplier mode, attenuating the sine wave on the reference.
For reference, there are a total of 9 analog switches, and 9 DACs, three per axis, for each of the three different axes. Each circuit is just repeated 9 times
• The Microcontroller receives serial data containing the Yaw, Pitch, or Roll angle. (Each axis will be a separate PC board, and likely have it's own microcontroller).
• The microcontroller will add 120 and 240 to the angle received, then check if any results are 360 or greater, and if so, subtract 360 from the result.
• The three values are used to look up the attenuation value from a lookup table of sine values. (I think that might be easier than trying to calculate sine. Not sure)
• Each of the three values returned are checked to see if negative. If negative, the associated analog switch has it's state set to select the inverted sine wave input.
• The absolute values are sent to the three DACs of each axis. This allows the DAC to function as a multiplying DAC, scaling the analog sine wave on the reference.
• The output of the three DACs are fed into audio amplifiers.
• The three audio amplifiers are fed into transformers to couple into the synchro inputs of the FDAI.
• The non-inverted reference is fed into a power amplifier, and is fed into a step up transformer to power the FDAI and provide it the reference source.

As far as I can tell, that covers just about everything. Since programing is my weak point, I'm taking efforts to make sure as much as possible gets done at a hardware level, so the microcontroller side ends up as low effort as possible. Each axis microcontroller should only need a serial input to read incoming data, an SPI out to command two DAC chips, 2 Chip Selects for the two DACs (the chips are dual 12-bit DACs), an optional pin for synchronized updating, and three outputs to the analog switch ICs to select the polarity of the sine wave input. That's pretty straight forward. 5 (optionally 6) digital outs, 1 serial in (whatever interface works), and one SPI out.

My reason for coupling with transformers was simply so I can both level shift and float the output so it's not tied to any reference. Also, since synchros are inductive devices, I was just trying to keep the coupling inductive. The DACs I'm using fit my budget, but it means I'm dealing with all 0-5 volt, single rail analog. I suppose capacitive coupling might be possible too, assuming the FDAI's controller pack is looking for just voltage differentials. If that's the case, I wonder if I even need the beefy audio amplifier chips on anything but the reference (since that has to actually power the entire unit)? I dunno. I figure, I can possibly "cheat" and use a US power supply transformer to drive the reference. I'd feed the output of the reference audio amp into the secondary, and hopefully, have enough current on the 115 volt primary side to actually power the unit. I can't say i know what the power requirements for a mid 1970s era mechanical ADI even is. I also don't know if feeding 400 Hz into a US 60 Hz transformer is okay to do. I know that at 400 Hz, transformers tend to be smaller, which is one major reason aviation uses so much 400 Hz AC equipment... Smaller transformer means lower mass. I don't know how much losses this will result in, or if I can even find an appropriate transformer to perform the step up. In general though, that's the one area I know I absolutely will need a transformer.
« Last Edit: December 12, 2021, 12:57:29 am by richfiles »
 

Offline richfilesTopic starter

  • Regular Contributor
  • *
  • Posts: 156
  • Country: us
Re: Trying to emulate three synchros using Arduino
« Reply #99 on: December 12, 2021, 01:06:50 am »
I started a new thread on the reference power amplifier.
I had a positive development, thanks to a random person on the internet jumping in to lend a hand.

https://www.eevblog.com/forum/projects/28vac-115vac-inverter-that-can-be-driven-by-400hz-analog-sine-wave/

Provided everything checks out, that portion of the design appears to be complete!
I'll need to order parts, and a PC board, and build the circuit.

That just leaves the three-axis analog switch/DAC boards to build. I may follow up with the same guy on his recommendations for the 28vac output stages for this one. I had planned to use dedicated audio power drivers for the task, but if he recommends something far simpler, then there's no reason to tie a specific, specialty audio component to the design. All in all, progress is starting to pick up again, and the hardest portion of this build is now fully designed!
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf