The CNFB Method

I've finally perfected the "Chase Nonlinear Feedback" (CNFB) method for the modeling of nonlinear networks. And it works amazingly well. Has the accuracy of high-order integration methods with less computational burden.

Can simulate diodes, triodes, pentodes, etc. Far less error-prone than other methods (like K-method or DK-method, etc.) as you don't need to enter large matrices or tables.

It works on the principle that nonlinear devices can be thought of as linear devices with nonlinear feedback. You compute the states of a linear network and apply nonlinear feedback to get the output. It's also inherently stable. If the analog version of the network is stable, the CNFB implementation is stable.

The plot below is a simple example. This is a single-sided diode clipper with "memory" (the memory being a capacitor across the diode). The dotted line uses classic nonlinear ODE techniques solving the network using Trapezoidal Rule integration. The dashed line uses the CNFB method. The results are virtually identical but the CNFB method executes in about 60% the time (12 operations per loop vs. 20). As the number of nodes in a network increases the computational advantage increases proportionally.
View attachment 93791

Here's a more complex example. This is a plot of a 6L6GC push-pull power amp into a reactive load (blue) compared to the same power amp simulated in SPICE (red). Doing this with conventional methods (nodal K, DK, WDF, etc.) induces major thinky-pain. I did this with the CNFB method in a couple hours.

View attachment 93826

Could be a revolution in nonlinear network modeling.

Chapter 5 of the Bardo Thodol.
 
@FractalAudio, just wondering if the CNFB method will be ported also to Preamp, effects etc. after the power amp re-work in FW 19.00?
Btw FW 19.00 is a killer++!!!
So far it only applies to non-linear blocks, like amps and drives, and probably, by extension eventually, on blocks that can be pushed into distortion, like the drive in the rotary block or the pre-amp in the cab block. Will it end up in other blocks like tape delay blocks, in their drive section? Only @FractalAudio knows for sure.
 
I think blocks where the distortion is not prevalent or "important" (like delay, cab preamp, etc.) use simple waveshapers functions to save cpu, so I don't think CNFB would be applicable there without considerably increasing cpu usage. Unless the efficiency of this new method rivals waveshapers
 
I've finally perfected the "Chase Nonlinear Feedback" (CNFB) method for the modeling of nonlinear networks. And it works amazingly well. Has the accuracy of high-order integration methods with less computational burden.

Can simulate diodes, triodes, pentodes, etc. Far less error-prone than other methods (like K-method or DK-method, etc.) as you don't need to enter large matrices or tables.

It works on the principle that nonlinear devices can be thought of as linear devices with nonlinear feedback. You compute the states of a linear network and apply nonlinear feedback to get the output. It's also inherently stable. If the analog version of the network is stable, the CNFB implementation is stable.

The plot below is a simple example. This is a single-sided diode clipper with "memory" (the memory being a capacitor across the diode). The dotted line uses classic nonlinear ODE techniques solving the network using Trapezoidal Rule integration. The dashed line uses the CNFB method. The results are virtually identical but the CNFB method executes in about 60% the time (12 operations per loop vs. 20). As the number of nodes in a network increases the computational advantage increases proportionally.
View attachment 93791

Here's a more complex example. This is a plot of a 6L6GC push-pull power amp into a reactive load (blue) compared to the same power amp simulated in SPICE (red). Doing this with conventional methods (nodal K, DK, WDF, etc.) induces major thinky-pain. I did this with the CNFB method in a couple hours.

View attachment 93826

Could be a revolution in nonlinear network modeling.
This is really awesome. Is there a technical paper / publication somewhere (or in the works)?
 
I think blocks where the distortion is not prevalent or "important" (like delay, cab preamp, etc.) use simple waveshapers functions to save cpu, so I don't think CNFB would be applicable there without considerably increasing cpu usage. Unless the efficiency of this new method rivals waveshapers
i tought CBFB was reducing the CPU usage. But also i don't know what algorithm was/is being used for those blocks...same as amps and drives or smth more simpler.

note: anytime your avatar-name pops up on my screen, i think of DC30 ef86 and makes me want to play that amp :)
 
i tought CBFB was reducing the CPU usage. But also i don't know what algorithm was/is being used for those blocks...same as amps and drives or smth more simpler.
If I understand correctly, CNFB reduces CPU for more complex tube/gain simulations (e.g. using SPICE), but I think DLC86 is right if (most) drives already use a faster method then CNFB might be slower in these cases.

The last big drive improvement Cliff made was about simulating diodes more accurately which added some CPU to (most/all) diode-based drives. But maybe he'll pit that method vs. his new CNFB and see which wins in speed & accuracy.
 
If I understand correctly, CNFB reduces CPU for more complex tube/gain simulations (e.g. using SPICE), but I think DLC86 is right if (most) drives already use a faster method then CNFB might be slower in these cases.

The last big drive improvement Cliff made was about simulating diodes more accurately which added some CPU to (most/all) diode-based drives. But maybe he'll pit that method vs. his new CNFB and see which wins in speed & accuracy.
Based on this, I would assume it can be applied to Drive models using diode based clipping:

Can simulate diodes, triodes, pentodes, etc. Far less error-prone than other methods (like K-method or DK-method, etc.) as you don't need to enter large matrices or tables

I hope so as a CPU reduction for Drives (most of the ones I use diodes and more CPU) would be most welcome! :)
 
Back
Top Bottom