Author Topic: Home Brew Analog Computer System  (Read 139910 times)

0 Members and 2 Guests are viewing this topic.

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Home Brew Analog Computer System
« Reply #275 on: February 02, 2015, 07:33:18 am »
Very nice. That one might like look impressive rotated in 3D projection.

Just out of curiosity, have you tried to derive an electrical analogue for any of the systems from Sprott's book represented by the equations in jerk form (chapter 3.5)? He has a few example circuits in chapter 10, but this isn't something I've started at yet.

I like your trig function generator, but I think you've cheated a bit with the EPROM  ;D. I'm sticking with the traditional analogue methods for my function generators, but will be resorting to digital for my programmable/variable analogue time delay unit, for simulating transport lag. 
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Home Brew Analog Computer System
« Reply #276 on: February 02, 2015, 11:50:04 am »
Looks amazing.  It wouldn't even matter if it didn't work  :)


The power supply worked first time, well after I fixed the improperly wired transformers  ::). There are 4 regulated rails: +/-110V and +/-15V. The two vertically mounted toroidal transformers are 55V+55V secondary types with the secondary windings connected in series to give me 110V+110V (+/-155V rectified DC) for the high voltage rails. I accidentally wired them out of phase the first time around so the voltages summed to zero.

After fixing that issue and testing/calibrating the power supply I started testing the integrators by wiring them up to the regulated supply rails one by one. The "outboard" transformer shown in the picture is a 18V+18V secondary type for the +/-15V regulated rails. This one doesn't have a high enough VA rating to power all 10 integrators and is just wired in for testing purposes. I don't have the correct transformer for installation yet.

Anyway, for testing purposes I knocked up a quick test circuit (as shown in the pic) on the breadboard. Basically it's a couple of threshold comparators (LM311's) and a flip-flop (1/2 4013) and a BC560 acting as a level-shifter, wired to make a (when wired to the integrator under test) a 200Vp-p triangle wave generator.

This whole thing will look two hundred times neater when finished and all the wiring is neatly bunched up and cable tied.



BTW, does anyone have long term experience with those soft, rubbery-like, self-adhesive thermal insulator pads? I had these hand so I used them for the TO-264 power transistors (+/-110V rails series-pass) mounted on the heat sink, but they appear rather marginal to me. I think I'll replace them with reliable mica and good old thermal paste.

« Last Edit: February 02, 2015, 11:59:03 am by GK »
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 21606
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Home Brew Analog Computer System
« Reply #277 on: February 02, 2015, 12:19:58 pm »
110V?  What for?  3/2 power functions from toobz?! ;D

Sil-pads are only good for the thermal resistance they claim (if even that..), so, typical on a TO-247 is 50W tops, maybe up to 100W with a water cooled sink.  So the 264's will be slightly better, but not by too much.  I shouldn't think that's a problem unless you need amperes from those supplies...

Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Home Brew Analog Computer System
« Reply #278 on: February 02, 2015, 12:30:28 pm »
This is a 100V computer.

I'm not concerned with heat transfer, but electrical isolation. These double-sided adhesive pads are as soft as bubblegum.

« Last Edit: February 02, 2015, 12:32:52 pm by GK »
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 21606
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Home Brew Analog Computer System
« Reply #279 on: February 02, 2015, 12:51:47 pm »
Is that the almost jelly-like kind, then?

Those aren't intended for use with screw clamping force.  You need the stiffer rubber kinds for that.

The soft stuff is fantastic for filling space, like if you need better conduction between a PCB and mounting plate.  It works even if you've got a bunch of 0603 and 1206 parts on the backside.

Might also look into a "full pack" style transistor in that size.  Kind of late as you've already bought and installed them, and such variants aren't always available, but... just something to keep in mind.

Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline peter.mcnair

  • Contributor
  • Posts: 14
  • Country: gb
    • analog-ontology
Re: Home Brew Analog Computer System
« Reply #280 on: February 02, 2015, 12:53:06 pm »
Just out of curiosity, have you tried to derive an electrical analogue for any of the systems from Sprott's book represented by the equations in jerk form (chapter 3.5)? He has a few example circuits in chapter 10, but this isn't something I've started at yet.

I've only done his JD5 (attached) and JD2...I will have a crack at his 'chaotic memory oscillators' - Table 3.3 - especially now I can do sinh(x) and the like - albeit digitally  ;)
 

Offline krivx

  • Frequent Contributor
  • **
  • Posts: 765
  • Country: ie
Re: Home Brew Analog Computer System
« Reply #281 on: February 02, 2015, 01:30:11 pm »
Off-topic, but how did you machine that case to have all those holes in such a neat grid? My efforts would be much sloppier...
 

Offline Ebivetar

  • Contributor
  • Posts: 34
Re: Home Brew Analog Computer System
« Reply #282 on: February 02, 2015, 01:58:37 pm »
Really amazing project. I have one book similar to this stuff, Analog&Digital simulations or something.

Can OP tell me what is the difference between using Analog computer and Matlab+Simulink?
Will this computer simulate the system faster and maybe with higher precision?
I am also interested how do you measure the processing speed/power of analog computer?

If you can please recommend me some books regarding this.
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Home Brew Analog Computer System
« Reply #283 on: February 03, 2015, 05:31:33 am »
The adhesive washers were cut to size with the mounting hole punched and sold specifically as transistor thermal mounting pads. Whatever they are they are cwap. I wouldn't even like to use them for transistors mounted with spring clamps. The issue is moot now anyway as I have a 100 pack of mica pads on the way.

See replies #196 and #198 in this thread for details of the panel drilling method.

Without delving in deep it's rather a bit difficult to make any truly meaningful comparisons between the processing power of an analog computer versus a digital computer, although I can say from first hand experience that an analog computer can plot a chaotic attractor waaaaayyyyyyyyy quicker than my 32k, BBC Model B computer can.  ;D

Ancient analog computing books that I've tracked down on Abebooks listed here:

http://www.glensstuff.com/analogbookshelf/analogbookshelf.htm
 
« Last Edit: February 03, 2015, 05:34:24 am by GK »
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Home Brew Analog Computer System
« Reply #284 on: February 12, 2015, 12:49:38 pm »
Just finished the patchable Summing Amplifier design and am about to send off the PCB files for manufacture. 20 of these are going to be made.
The design uses a variation of "chopper" stabilization to achieve a sub 100uV input offset error. In lieu of a mechanical chopper and high gain demodulator amplifier, I've used a modern "auto-zeroing" op-amp (AD8538) for the DC path. However the basic principle of operation is exactly the same as the old school approach, of which I have attached an example (taken from Electronic Analog and Hybrid Computers, Korn & Korn, chapter 4).

The amplifier is unity gain stable and has a GBWP a little under 2 MHz. Slew rate is 13V/us for a full "power" (or rather amplitude - 200 Vp-p) bandwidth of 20 kHz.
Simplifying by neglecting the effects of U1's Ib (15 pA typical) drawn from the summing junction and U1's Vos (5 uV typical) the net input offset error of the discrete HV op-amp is reduced by a factor of 1010 (61dB), which is equal to the DC gain of the stabilization path. The RC networks introduce a number of poles and zeros that work together to frequency compensate the stabilization path, giving it a continuous dominant pole roll-off throughout the effective operating frequency range. The DC stabilization path reaches unity gain at 140 Hz. At this frequency point the discrete HV op-amp open loop gain has only just begun itself to integrate and accumulate phase due to the dominant-pole Miller compensation, so the combined whole control loop sub 140 Hz never even reaches conditional stability (not that it would be much of a concern if it did).

Open loop gain at DC is obviously huge; being the sum of all stages. The only down side of this stabilization scheme (and all those that operate on the same principle) is that clipping must be avoided. If the amplifier output is "saturated", or slammed up against a rail, the high gain stabilization path goes open loop and itself rails out. Due to the long time constants involved, it takes the circuit a while to reach equilibrium again once the over-driving input signal is either removed or reduced in amplitude. However since I don't have to filter out 50/60Hz demodulation ripple to sub mV levels, by stabilizer time constant is orders of magnitude shorter than what the mechanical chopper guys had to live with back in the tube days.

The frequency compensation/equalization capacitors across the high-value feedback network resistors are mandatory for stability. The amplifier would never be stable at a GBWP of nearly 2 MHz with an un-bypassed 500k feedback resistor. For example 500k would corner with just 5pF of input capacitance at less than 70 kHz. The 15 pF bypass capacitance solves this problem not only by counteracting the LF pole that would otherwise be formed by the 500 k  feedback resistor and the amplifiers effective input capacitance, but by providing a healthy amount of phase-lead compensation to boot. Of course 15pF otherwise corners with 500k at only ~21 kHz, so in order to maintain the amplifiers full closed loop small signal bandwidth the equalization capacitors are added to the input resistors.





« Last Edit: February 15, 2015, 05:48:52 am by GK »
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Home Brew Analog Computer System
« Reply #285 on: February 15, 2015, 04:12:28 am »
Attached is the complete schematic for my logarithmic amplifier module. Due to the utility of log amps in a analog computer, I've decided to build 10 of these instead of only five. A custom 2U 19" chassis will house 10 of these along with their power supply. Another 2U chassis will house 10 exponential amplifier modules.

The transfer function is simply:

Eout = K * ln (Ein).

K = a fixed scaling factor of 20. The operating input voltage range is 0.01V to 100V, producing an output voltage in the range of +/- 92.1V.
The output amplifier clips at approximately +/-105V, so the dynamic range is a smidge over 4 decades.

The actual log converter based on the SSM2212 is a "fast" design I came up with on my own. Over the 4 decades it is very accurate (overall significantly better than 1% when trimmed).

A conversion to a logarithm of any base is simply a matter of external scaling by the programmer.


Two years and ~one month (wow) later and I've made a number of improvements to this original design. Attached is the final schematic for the board finally about (waiting for the end of Chinese New Year holidays.....) to be manufactured in a quantity of ten. For the record I've stumbled across prior art and my unique logarithmic converter circuit turns out to be not very unique after all.

« Last Edit: March 30, 2015, 10:45:53 am by GK »
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Online TimNJ

  • Super Contributor
  • ***
  • Posts: 1649
  • Country: us
Re: Home Brew Analog Computer System
« Reply #286 on: March 02, 2015, 06:17:26 am »

Ancient analog computing books that I've tracked down on Abebooks listed here:

http://www.glensstuff.com/analogbookshelf/analogbookshelf.htm

Hi Glen,

I've been learning about analog computation in my signals & systems class. I'm finding it very interesting and I want to get some literature on it. Out of the books that you own, is there one that you think would be a good book to start with and give a good overview for an analog computer beginner?
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Home Brew Analog Computer System
« Reply #287 on: March 02, 2015, 07:50:14 am »
Hi Tim,

I'd recommend Basic Analog Computation by Gerald R. Peterson.

Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Online TimNJ

  • Super Contributor
  • ***
  • Posts: 1649
  • Country: us
Re: Home Brew Analog Computer System
« Reply #288 on: March 02, 2015, 08:04:54 am »
Hi Tim,

I'd recommend Basic Analog Computation by Gerald R. Peterson.

Thanks! Looking forward to more of your great work.
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Home Brew Analog Computer System
« Reply #289 on: March 30, 2015, 10:17:47 am »
Tim - thanks for the interest,
Wilfred - great article.



-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Well I have the first of the 3 integrator chassis' up completed electrically and fully tested and all works absolutely perfectly except for one annoyance. The reed relay model I selected for switching the integration capacitance doesn't seem to be up to the task. I am getting (about 5% of the time) contacts intermittently sticking on after switching in the ~1uF integration capacitor.

The reed relay I am using is HE721A1210, "form A" here:

http://www.farnell.com/datasheets/16797.pdf

The contact ratings are:

Voltage switching : 200Vdc
Current switching : 500mA
Current carrying : 1.2A
Power switching : 10W

When the ~1uF capacitor is switched in by the relay, the potential difference between the contacts can be as high as 210V. The integrator op-amp output V saturates at +/-105V. For example, if the 1uF was switched out while the integrator was railed out at -105V, the 1uF will be floating with a charge of 105V. If the 1uF is then switched back in when the op-amp output is railed out at +105V, then at that instant the relay contacts potential difference will be at that worst case 210V.

The op-amp power output stage is short-circuit proof and current limited to +/- 20mA, so that sets the maximum peak surge current through the capacitor when it is initially switched in. That is well below the relays maximum rated "switching" current of 500mA.

The relay datasheet makes not mention of switching current de-rating with switching voltage, but I figured that 20mA should be pretty safe. Well, unfortunately, not so. I'm getting intermittent contact sticking/fusing with that 20mA peak surge with less that 100V across the contacts. Giving the stuck relay a gentle tap reliably opens the contacts.

I guess that I am going to have to source a replacement relay, quite possibly not of the fragile reed type. I doubt that I'll find one with the same footprint so it will most likely have to be a fudge to the PCB.
 
Oh well, I guess you can't build something this complicated with out at least one thing going wrong.
 


« Last Edit: March 30, 2015, 10:37:16 am by GK »
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Online TimFox

  • Super Contributor
  • ***
  • Posts: 7934
  • Country: us
  • Retired, now restoring antique test equipment
Re: Home Brew Analog Computer System
« Reply #290 on: March 30, 2015, 02:05:15 pm »
Keep up the good work on this project!  In college, we had the Heath EC-1 analog computer with 9 opamps and +/- 60 V output range.  I believe that each amplifier used a single 6AN8 pentode/triode for an unbalanced inverter followed by a cathode follower, open-loop gain roughly 1000.
A few years ago, I was visiting a Boeing laboratory.  They received the Boeing house organ magazine, which was always interesting for its historical articles showing cool aircraft.  One month, they had a picture and short article about an analog computer, circa 1950, in the engineering lab.  Interesting details:
1.  The engineer was properly dressed, with white shirt and tie.
2.  To his right, there was a large blackboard with the differential equations and cross-reference to the controls on the analog computer.
3.  To his left, there was a 19" rack with about 6 feet of analog computer panels.
4.  The article, presumably written by a young person, said something like "The analog computer generated so much heat that 200 vacuum tubes were required to remove the heat."
5.  Next month's issue had quite a few corrections from senior Boeing engineers.
 

Offline SeanB

  • Super Contributor
  • ***
  • Posts: 16272
  • Country: za
Re: Home Brew Analog Computer System
« Reply #291 on: March 30, 2015, 04:19:58 pm »
Can you not put a resistor of around 10R in series with the contact? It looks like the killer is the current spike when the relay switches the capacitor and there is a voltage stored on one set of capacitors that then equalises. High peak current, and with up to 100V of drive that will be a pretty hefty pulse, especially for a small low power relay to handle.
 

Online TimFox

  • Super Contributor
  • ***
  • Posts: 7934
  • Country: us
  • Retired, now restoring antique test equipment
Re: Home Brew Analog Computer System
« Reply #292 on: March 30, 2015, 04:37:31 pm »
I just remembered another article, where the editor must have been a young person.
This was in EDN, maybe 10 years ago.  It was on the history of the vacuum-tube operational amplifier.
First, it described the design by Julie during WWII, which used a 6SL7 (octal) dual triode as the differential input stage.
Then, it described the postwar commercial design from Philbrick, a very similar circuit using a 12AX7 (9-pin miniature) dual triode.
Both devices were referred to as "high-micron" triodes in the article, as a misunderstanding of "high-{mu}".
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Home Brew Analog Computer System
« Reply #293 on: March 30, 2015, 11:01:13 pm »
Can you not put a resistor of around 10R in series with the contact? It looks like the killer is the current spike when the relay switches the capacitor and there is a voltage stored on one set of capacitors that then equalises. High peak current, and with up to 100V of drive that will be a pretty hefty pulse, especially for a small low power relay to handle.


Yes, I didn't mention that, but the other cap is only 10nF. Shorting a 10nF charged to 200V on the bench gives me the tiniest spark. Though I guess now too much of a spark for the selected reed relay. In hindsight a better design would have used a SPDT relay to select either one capacitor or the other.
I can't tolerate any resistance approaching an ohm in series with the 990nF as that gives too much of a departure from an ideal transfer characteristic for a computing integrator. I just need a more robust signals relay.
 
« Last Edit: March 30, 2015, 11:04:05 pm by GK »
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 21606
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Home Brew Analog Computer System
« Reply #294 on: March 31, 2015, 12:00:10 am »
Don't forget that, that cute little capacitor offers a peak current of 200A with a pulse width or cycle time around 10ns (frequency ~16MHz).  At that voltage, it will arc over before the contacts touch, probably ablating a microscopic crater in the contacts and leaving a molten peak, which welds imperceptibly when it closes.

Under those transient ringing conditions, the peak current may also damage the input and output protection diodes.

Can you arrange a follower so the capacitor is maintained at input voltage (at one end) without loading the input or output?

Note that shorting the output will also damage the input protection diodes.

Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Home Brew Analog Computer System
« Reply #295 on: March 31, 2015, 12:12:36 am »
Note that shorting the output will also damage the input protection diodes.



No it doesn't. I have over 48 hours of continuous cycling on the 1st prototype and the input diodes survived unscathed. That is with the output railed to +105V and the output shorted to ground - 10s off/10s on. I can't see the unit getting that degree of punishment in actual use.

This relay looks adequate:

http://www.digikey.com.au/product-detail/en/EC2-12NU/399-11029-5-ND/4291095

 
« Last Edit: March 31, 2015, 12:15:05 am by GK »
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Home Brew Analog Computer System
« Reply #296 on: March 31, 2015, 12:48:09 am »
Worst case input diode surge current for an instantaneously shorted output. Note the 1uF instance exceeds the diodes surge current spec (1A for 1mS and 4A for 1uS), but they do survive.


« Last Edit: March 31, 2015, 12:58:59 am by GK »
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 21606
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Home Brew Analog Computer System
« Reply #297 on: March 31, 2015, 02:23:00 am »
Is the inductor actually rated for (read; doesn't saturate) at 10A?

Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Home Brew Analog Computer System
« Reply #298 on: March 31, 2015, 03:10:44 am »
Under those transient ringing conditions, the peak current may also damage the input and output protection diodes.


Charge equalization between the caps will not force any current to flow through the protection diodes and as I stated previously, peak current through the input protection diodes when the 1uF is switched in is limited by the current that the op-amp output stage can provide - limited at 20mA.

The dv/dt of the supply rail charge/collapse during power on/off is orders of magnitude too slow to cause any significant timing capacitor discharge currents to flow through the protection diodes.

Yes, regarding that quick and hasty sim the inductor will be well and truly saturated at 11A, but the DCR is a couple of ohms. As a quick aside before lunch I managed to partially kill a 1n914 with 1uF capacitor discharge pulses. At a 30A peak limit the diode was unaffected even after dozens of discharges but just over 20 discharges with the peak current ramped up to 90A finally did it. The diode is still Hi-Z in the reverse direction but Vf has dropped to 380mV.

The only situation in which the input protection diodes can be subjected to a current surge beyond the specified guaranteed safe maximum is if the integrator output is abused by abruptly shorting it to ground with a low impedance when the output voltage is either steadily or instantaneously at a high value. Accidently miswiring the integrator output when patching a program and then firing the computer up, resulting in the integrator op-amp current limiting, will not have the same effect, as at that time the timing capacitor has not acquired a charge.

I honestly don't see it as a potential problem given normal use of the machine, and more so as my attempts at blowing up the initial prototype by shorting the output were wholly unsuccessful.


« Last Edit: March 31, 2015, 08:02:26 am by GK »
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Home Brew Analog Computer System
« Reply #299 on: March 31, 2015, 07:51:59 am »
In solder rather than spice this time. I get a peak current of 24A. Yes the current sensing resistor is a wire wound type, but having such a low R value I can assure you that it has negligible inductance. Yes the 100uH inductor must be saturating to some degree but obviously the effect is not instantaneous and the pulse rise time and peak amplitude is still significantly effected. The initial negative spike I believe is due the inductors capacitance. If I remove the L the peak current drops to 10A and has an almost instantaneous rise time on the 5uS/div time scale (just as you'd expect from ohms law) but I have since zapped the diode with that 24A over 300 times now with no ill effects, which is in line with my prior testing on the initial prototype. Vf for the diode peaks at 5.2V. It therefore has a dynamic resistance of approximately 0.22 ohms.

I have desoldered the diode(s) and tested for reverse leakage at significant V and forward voltage drop and it appears to be completely unaffected. There just doesn't appear to be enough energy in this discharge to kill the diode. I also found that the ability of the 1uF cap to deliver a high current pulse is less than you'd expect from a basic calculation from its basic ESR. In order to get that diode-killing 90A discharge that I mentioned in a previous post I had to ramp the supply up to 150V and delete all of the series resistance (except for the 0.1R).
 
I've ordered the replacement relays.



« Last Edit: March 31, 2015, 10:49:04 am by GK »
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf