[HN Gopher] Circuit Design and Applied Optimization (Part 1) ___________________________________________________________________ Circuit Design and Applied Optimization (Part 1) Author : stefanpie Score : 61 points Date : 2021-12-31 17:17 UTC (5 hours ago) (HTM) web link (stefanabikaram.com) (TXT) w3m dump (stefanabikaram.com) | mayapugai wrote: | I'm just here to say this article was such a pleasure to read. | I've always relied on intuition to pick good-enough values based | on experience. So this rigorous analytical approach to viewing | the objective space and picking a reasonable value is refreshing. | It's ironic and rightfully hilarious that you still had to take a | gander and pick a "close-enough" value. | | I look forward to part 2 where you incorporate the resistor | choices that you had. Perhaps also include the statistics of the | tolerance into the mix to find the optimal values that we should | all be picking for our future 555 timer hijinks. | | Your academic research work is also very interesting. Suffice to | say I'll be following you on GitHub :) | | Cheers and happy (almost) new year! | neltnerb wrote: | This reminds me of an undergraduate course on diffusion (atomic | scale movement of atoms in a solid). | | There are known formal differential equations that let you solve | for the exact diffusion profile given geometry, composition, | diffusion rate constants, and temperature (basically). So on the | homework they asked us to tell them how long it took for the | concentration of the dopant to reach 10% at a 10 micron depth. | | So of course we all reached for this new math we had learned. | | We all got it wrong with the professor commenting that "you | should have just used the approximate formula [which was trivial | algebra], we only know the diffusion rate to an order of | magnitude anyway". This was far more useful as feedback than the | 0.2% of our grades we missed credit for. | | So I look at this essay and am a bit amused at minimizing | calculation error to such an extent in a mathematical model when | your resistors have a 5% tolerance and your capacitor is probably | at 20% tolerance if you happened to have it in a university EE | lab. But I do appreciate the fun of doing it this way too if | you're not in a hurry =) | | It is crucial for any systems designer to realize that no matter | how well you do your math and theory you have to also understand | the sensitivity to variability so that you know what math is | worth doing and what components we have no choice but to control | the tolerances on better. | | You can find some fancy software for generating filter networks | (similar in concept to this except with more discrete math | because component values are discrete...) and ask it to show you | sensitivity and you can see exactly how much you'll screw up your | perfectly designed 10th order Chebyshev filter if that last | resistor is off by 1%... | stefanpie wrote: | Oh interesting application. I have taken a class in | microelectronics physics (doping, electron holes, bandgaps, | mosfets, bjts) and it was definitely just focusing on simpler | approximations and first and second order effects only. | | But you are correct in that after my second or third | electronics lab I realized that even standard component values | vary to much that this approach is a little overkill and non- | practical in a lot of cases. However there is a way to bake in | discrete component values into the continuous optimization | problems by using a continuous/"soft"/differentiable | approximation of the min function to make "pockets" of optimal | regions close to component values part of a set (for example e | series values). I plan to do more writeups exploring this idea | as well as looking at more complex applications such as higher | order filters as you mentioned (my op-amp filter labs are what | motivate me to look into this as I wasted so many hours in open | lab trying to get my component values right). | sidpatil wrote: | > However there is a way to bake in discrete component values | into the continuous optimization problems by using a | continuous/"soft"/differentiable approximation of the min | function to make "pockets" of optimal regions close to | component values part of a set (for example e series values). | | Is this the same concept as uncertainty sets in a robust | optimization problem? | stefanpie wrote: | After some quick searching (https://www.princeton.edu/~aaa/ | Public/Teaching/ORF523/S16/OR...), I don't think so. It | looks like for robust optimization problem you don't know | for certain what the objective function is or have | uncertain data measurements for the objective function | which I don't think is the case here. I could be completely | wrong though. | | From my understating, if you want to only able to only pick | form a discrete set of components for certain variables, | you are essentially transforming the problem into a Mixed- | Integer Non-Linear Optimization problem (MINLP). I tried to | find and easy way to do this with some python optimization | libraries but they always needed other packages which were | hard to install on Windows. So my solution was to "relax" | the discrete constraints by using a continuous | approximation of the minimum function when looking at the | error from the nearness comment value that is possible. | This also lets you assign weighting to have a tradeoff | between having realistic comment values vs. having lower | error for your main objective. | neltnerb wrote: | Yeah, at the least you can just sample from a gaussian | distribution around the nominal value; the shape is probably | wrong but it's got to be better than assuming no error. Or | you could just do error analysis on the formula to find out | which terms contribute the most to the final error. | | I like that your suggestion is in-line with how we now can | use an autoencoder to convert a molecular graph into a | continuous latent space which can be used to train a network | to predict some property. Now we have a latent space where | things that have similar property predictions are near each | other in a space we can explore and then decode into new | candidate materials/molecules. | | Drug discovery, solar panels, I'm looking forward to the | field taking off industrially for sure. Applying machine | learning and advanced computational techniques to ad-tech is | very depressing with problems like these out there. | xondono wrote: | I had a professor that intentionally baked _hard_ (for the | course takers anyway) mathematics into some problems, that were | technically solvable during an exam, but that required very | good level (they typically included rare /obscure identities). | The point was that solving precisely was always a "trap". | | His pet peeve was that engineering wasn't about finding a | precise answer at some point, but about finding good enough | answers fast. | | I liked that this forced you to stay alert during the problems | for simplifications and to understand what you were doing, | instead of just droning out method A for solving problem type | B. | cinntaile wrote: | If the course is not a mathematical course that requires this | knowledge then adding obscure identities is focusing on the | wrong thing entirely. Some people will simply not see these | identities because they might never have used them. | Irrelevant for the course but relevant for the grade, that's | not a good combo imo. | mlyle wrote: | I read the parent's comment differently from your reading. | | I read the parent's comment to say that there was stuff | that was barely possible for the best students to solve | precisely in the time given, but that there were obviously- | acceptable approximations thereof. And that either was a | path to full credit. | | The professor's goal was to get the students to realize | when to use approximations. | cinntaile wrote: | It seems like I misread the original comment indeed. | xondono wrote: | The point was to realize precisely that some problems might | have analytical solutions, but they would take too long. If | you're solving problems on pen and paper nowadays, you're | most likely looking for an approximate answer anyway. | | Maybe I should add that, as long as the answer was within a | specified margin (say 5%), the answer was considered | correct. | | If you saw that your calculations started to become way too | complex, you had already missed something. | xondono wrote: | You might want to look into whatever you are using to render | LaTeX, because it doesn't work on iOS. | | I've had zero problems with Mathjax so far. | stefanpie wrote: | I'll take a look at this, thank you for the node. I believe I'm | using mathjax currently but I may have set set some options | correctly. I also need to go in and verify a11ty as well. | [deleted] | hyperman1 wrote: | The formula for the duty cycle makes no sense. My rusty brain | thinks it should be D=(R1+R2)/(R1+2R2), but it's multiple decades | ago I used it so I might be wrong | stefanpie wrote: | You are totally correct, this is only a typo in latex which I | have just pushed a fix for. Thank for you the note. | hyperman1 wrote: | Now it says 404. The correct URL has a -1 after it | | Update: Eight o'clock and all is well ;-). Thanks for the | interesting article. | stefanpie wrote: | Should be back to normal again, apologies for the issues, | web dev is not my strong point | docfort wrote: | I believe this is supposed to be the first in a series on moving | from continuous to discrete optimization, but the EE in me can't | help but point out what I would do in this scenario. It also | connects with other interesting aspects of physics. | | Looking at the governing equations, you can clearly see that if | R1 << R2, then the duty cycle is close to 50%. | | With that done, I also would have fixed the cap to something that | is available. Ignoring R1 for the moment (because I just need to | ensure R2 is bigger), I solve for R2 in the frequency equation. | It is approximately 72 kOhms. | | I notice that a nonzero value of R1 is really there to tune the | frequency. As long as R1 is much smaller than R2, then the | frequency equation is more sensitive to changes in R1 than the | duty cycle equation. So I can play with different small values of | R1 to tune my frequency to get closer. | | Finally, since I know that I'm likely using imprecise resistor | tolerances, I know that I can pass if I just get close, so I | might not need to be picky about R1. | | In my opinion, this chain of reasoning (effective modeling, | function sensitivity wrt parameters, tolerance specs) is what the | lab experiment is actually about. Developing circuits that are | tolerant to parameter variation is the key to real hardware | products. That gives you so much flexibility in price and | manufacturer and requires the designer to keep this kind of | reasoning frontmost. | hermitdev wrote: | One of my degrees is in EE. This post surely took me back to | some of the frustrating design labs and more unknowns than | equations to solve them... I also definitely went down the | route of just fixing the cap, because well, we only had like 2 | or 3 of them in our parts kit, anyway. And I appreciate you | mentioning the resistor tolerances because, no, you don't | really have a 1 kOhm resistor. You have a 987 or 1009 or | something else near 1000 Ohm resistor. | kurthr wrote: | Exactly, and if you know you're not going to get better than 1% | metal film resistors, why search more than the discrete space. | Between 10^2 and 10^6 there's only 6-96 steps per decade (12 | for the standard 10% E12 series). There's less than 400x400 | possible resistor values to check. | stefanpie wrote: | I actually ended up doing some variation of this for scripts | I wore for my labs. The space is actually quite small and | it's not hard to brute force this problem. Once you get to | more open ended designs and larger parameter spaces (like | filters) it becomes a bit more challenging to brute force. | hyperman1 wrote: | In feynman's 'Surely you're joking' there's a chapter where he | designs some machinery for the army. He gets as guidance to use | cogs from the middle of the list of available options, as the | smallest or largest parts have all kinds of downsides. | | This idea works well in all kinds of situations where you have to | select parts. I assume it might do well here, too. | triactual wrote: | This works until Microsoft also picks from the middle to make | ten trillion Xbox controllers overnight and you can't get parts | for six months. There are so many competing constraints just in | component selection. ___________________________________________________________________ (page generated 2021-12-31 23:00 UTC)