Menu Sign In Contact FAQ
Banner
Welcome to our forums

What is a "digital autopilot"?

Yes; I think for the pre-1990 era they would not have a digital loop, because control loops tend to be done in floating point maths (much easier for a less than very clever programmer) and in the 1980s the processors used could not generally run floats very fast – of the order of 100ms for a FP division on a 4MHz Z80. That’s unless you put a 386 plus a coprocessor in there, which nobody was doing with autopilots. I did control loops (for driving motors at fixed speeds etc) in early 1980s but using 32-bit integers, but they were applications where the inputs and outputs were pretty well known in terms of range of values, and it was tacky programming.

That said, if you search here for “motor movement” it IMHO reveals that they did the control loop rather more crudely… but that issue could be due to something else e.g. the output from an A-D converter getting severely truncated.

Administrator
Shoreham EGKA, United Kingdom

Hmmm…interesting post Peter. Let me guess that you hold a degree in electrical engineering and computer programming?

EGKB Biggin Hill London

I would guess the digital part of the KFC150 is something very simple. Might be an 8051 or something like that. However, wouldn’t a DSP have been the logical decision to implement a digital control loop back in the nineties?

EDFM (Mannheim), Germany

The F16’s FLCC is fully analog, no digital control loops there (A/B variants).

http://duotechservices.com/pitch-1-board-repair-of-the-analog-flcc

So this is probably the daddy of all analog flight control loops. Would have been a nice project to work on.

Digital fly-by-wire already existed at the time of the F16’s development but for whatever reason was considered too cutting edge.

It would be interesting to know how the quad-redundancy works, without any software logic available to determine which of the four is in a fault condition. Presumably some analog comparison/weighting of the four alternative outputs.

Let me guess that you hold a degree in electrical engineering and computer programming?

Electronics degree in the mid-70s but otherwise been tinkering with all this since the late 1960s, and designed ~100 products in business since 1978.

I would guess the digital part of the KFC150 is something very simple. Might be an 8051 or something like that.

Yes, though it could be one of many then popular chips. In the 1980s one could have used the ROMless 8051 (8031) or any of the others like 8080, 6800, 6502, etc. Does the KFC150 contain an EPROM chip?

My Shadin totaliser and the EDM700 use a Z80, IIRC. It’s not a bad solution because everybody and their dog still makes the Z80 plus the required EPROM & SRAM chips, whereas microcontrollers have a much shorter life unless you take fairly drastic “big company” steps. At work we use a Hitachi H8/332 microcontroller which is just finished having had a 20+ year run but that is unusual. God knows what one would use today for a 20 year life… probably just purchase a massive stock.

However, wouldn’t a DSP have been the logical decision to implement a digital control loop back in the nineties?

Yes very true, but I don’t think they speed up floating point maths all that much. Also they were a pig to program if you had to write a lot of code. There were C compilers eventually but that wasted the capability. FWIW the KFC225 uses a normal microcontroller

The F16’s FLCC is fully analog, no digital control loops there (A/B variants).

It went digital on the C+ versions – ref – but, hey ho, the computer would get crashed by static electricity

Presumably some analog comparison/weighting of the four alternative outputs.

A pilot controlled switch?

Administrator
Shoreham EGKA, United Kingdom

Peter wrote:

386 plus a coprocessor in there

famous 387 math coprocessor, later combined with 386 into one unit 486 … old days

LDZA LDVA, Croatia

Peter wrote:

Every autopilot has analog outputs – the servos

Are they really analogue rather than something like PWM? (Servos for RC aircraft have been PWM forever, rather than using a variable voltage to control position. Newer “digital servos” for radio control are still PWM, but the just have a digital control circuit for the positioning of the output shaft, and can accept a much higher frequency input).

Perhaps it’s the way I think having written Z80 asm since a teenager, but doing an autopilot control loop in integer maths on an older CPU (especially on something like a Z80 with register pairing allowing for relatively fast-for-the-day 16 bit operations) wouldn’t require a “super programmer” especially if an optimising C compiler can be used.

Incidentally this year is the 40th anniversary of the Z80.

Andreas IOM

famous 387 math coprocessor, later combined with 386 into one unit 486 … old days

The solutions for running the 80×86 family for decades were/are not that great – short of securing a large stock which is probably what the avionics firms do, mostly… especially as the later versions more or less require it to be used with a PC motherboard “chipset”.

Are they really analogue rather than something like PWM?

They use an analog control voltage, -9V to +9V in the case of mine, and the other King ones I know about are similar. The older King servos did the analog bit in the “computer” so the servo contained more or less just the power transistors and a bare tacho. No GA servos use the model plane PWM type of modulation AFAIK (which I am familiar with, having watched it on a scope).

How the D-A conversion is implemented varies. On the KFC225 they appear to use the PWM features in the microcontroller, to get a large number of analog outputs cheaply.

Perhaps it’s the way I think having written Z80 asm since a teenager, but doing an autopilot control loop in integer maths on an older CPU (especially on something like a Z80 with register pairing allowing for relatively fast-for-the-day 16 bit operations) wouldn’t require a “super programmer” especially if an optimising C compiler can be used.

Yes, though not many people seem to have done that. I am peripherally familiar with products developed within the past 15 years in the temperature control business and they were done in C/C++ using float maths, and they use PID loops with various industry-specific optimising hacks for self-learning etc. These are pretty slow; an autopilot control loop would need to be much faster.

Administrator
Shoreham EGKA, United Kingdom

Slightly OT, but thinking of embedded processors, the Chaos Computer Club have an interesting presentation of “Dieselgate” (VW emissions cheating). They reverse engineered an ECU and it’s quite interesting how they found the code to be structured on the ECU’s microcontroller.

https://media.ccc.de/v/32c3-7331-the_exhaust_emissions_scandal_dieselgate

Andreas IOM

Peter wrote:

Does the KFC150 contain an EPROM chip?

sorry, I don’t know for sure. The guys in Straubing once showed me the “module” and an open KFC150 and I can’t remember seeing an EPROM.

Peter wrote:

FWIW the KFC225 uses a normal microcontroller

That’s interesting.

alioth wrote:

Perhaps it’s the way I think having written Z80 asm since a teenager, but doing an autopilot control loop in integer maths on an older CPU (especially on something like a Z80 with register pairing allowing for relatively fast-for-the-day 16 bit operations) wouldn’t require a “super programmer”

That’s my background as well, and I think so too.

alioth wrote:

if an optimising C compiler can be used

I’m really not an expert with that stuff, but would that conform to DO178?

EDFM (Mannheim), Germany
Sign in to add your message

Back to Top