Graeme Posted December 23, 2011 Report Share Posted December 23, 2011 Hi all, Firstly, let me say I know nothing about optimization, hence the post. In a few months I will have 800 or so varactor-tuned band-pass filters to align (possibly more over the years) which tune over quite a wide band. The designer says they take about an hour each. Doing these manually is not an option for me so I'm investigating automating the process. To align the filter, four voltages (V1-V4) are applied to it to optimize its RF response at a particular frequency. To gauge the optimization I consider five spot frequencies around the frequency of operation, where I measure certain parameters: F1 - below the passband well down on the lower skirt where I measure S21 F2 - on the lower edge of the passband where I measure S11, S21 and S22 F3 - in the middle of the passband where I measure S11, S21 and S22 F4 - on the upper edge of the passband where I measure S11, S21 and S22 F5 - above the passband well down on the upper skirt where I measure S21 This is by the by, but out of completeness, the filter is microprocessor controlled and has on-board memory. When the filter has been correctly aligned for a particular frequency the four voltages are stored in a look-up table. When the system needs to operate at particular frequency the microprocessor is told, looks up the voltages for the frequency in question, applies them to the filter, and hey presto. So, as far as I can see the problem is this. I have 11 output variables which are functions of 4 input variables. I need an algorithm that can adjust the 4 inputs to minimize/maximize as appropriate (or cause to meet a specification) the 11 outputs. I have stumbled across third-paty software called "modeFrontier" which integrates with LabVIEW and looks like it will do the job. However, a single seat licence will cost £12K ($20k) a year. Also, it would be a shame to go third-party if an all LabVIEW solution could be found. My problem is that I haven't much of a clue where to start! I've been told that the algorithm probably best suited to my needs is the Levenberg-Marquardt. When I look at the corresponding LabVIEW functions they seem to be more related to curve fitting and finding co-effecients in formulae from sets of data, which is not what I think I want. If any of you get bored with the holiday festivities perhaps you might spare my problem a thought. Seasons greetings, eveyone. Graeme. Quote Link to comment
asbo Posted December 24, 2011 Report Share Posted December 24, 2011 What interface do you have to the microcontroller? If it's UART-based, that's easily implementable with VISA. I'm not sure if I should intuitively know what parameters you're measuring, but what those are will depend on what measurement hardware you'll need - DMM/analog input/whatever. I'm not sure exactly where your algorithm fits in either, but you may have to write your own implementation for the tuning. You can generate your input signals with a programmable power supply or signal generator. Quote Link to comment
ShaunR Posted December 24, 2011 Report Share Posted December 24, 2011 I'm a great fan of Taguchi Analysis for this type of optimisation. This method is an empirical method where you design experiments (i.e set variables) for interconnected, multi-variable systems and iteratively derive the optimum variable settings that satisfy the criteria. It is ideal for situations when full factorial optimisation is impractical due to the number of parameters and their dependence on each other. An example used in anger is here. I have had great success with this in the past for things like PID auto-tuning, RF amplifier setup and waveguide tuning (the sorts of places where the engineer will say "twiddle these until you get that!"). Take a look and see if it will fit with your scenario. Quote Link to comment
Anders Björk Posted December 24, 2011 Report Share Posted December 24, 2011 Do you have some physical model for your filters? Models that are affected by your four variables? Are the 11 outputs a combination of other inputs? Design of experiments is surely a good idea here for instance a ccf design http://en.wikipedia.org/wiki/Central_composite_design Quote Link to comment
drjdpowell Posted December 26, 2011 Report Share Posted December 26, 2011 Can you get your hands on one example unit now? Learn the tuning procedure manually and then you might be able to code a simple step-by-step procedure (tune V1 until X is true, tune V2 until Y is minimized, etc.). Quote Link to comment
Graeme Posted December 26, 2011 Author Report Share Posted December 26, 2011 asbo, I can talk to the board's contoller via USB serial and send it commands to set set and apply the tuning voltages via DACs. So, as you say, this is easily implementable via VISA. You may not have come across the parameters (s-parameters) that I'm measuring if you've not delved into the world of RF and microwave. I'm measuring them using an Agilinet E5071B network analyzer. It's the tuning algorithim that is the issue. ShaunR, You've hit the nail on the head. It is one of those "twiddle these until you get that" problems, only 800 times over! I'll check out the Taguchi Analysis. Sounds like it may hold some promise. Thanks. Anders, Good question. Personally I don't have a model for the filter but the designer must have. I'll speak to him and see what he comes up with. The 11 outputs are only affected by the 4 input variables. The problem is that a change in one input variable could potentially affect all 11 outputs, although in practice it is likely that three or four of the outputs will be affected to a greater extent and the remainder to a much lesser extent. drjdpowell, I see where you're coming from, and I do have a filter to play with, but for the reason given in my last sentence above I doubt it would be a simple algorithm, which is why I'm looking for some sort of recognised optimization one. Regards, Graeme. Quote Link to comment
Anders Björk Posted December 26, 2011 Report Share Posted December 26, 2011 Anders, Good question. Personally I don't have a model for the filter but the designer must have. I'll speak to him and see what he comes up with. The 11 outputs are only affected by the 4 input variables. The problem is that a change in one input variable could potentially affect all 11 outputs, although in practice it is likely that three or four of the outputs will be affected to a greater extent and the remainder to a much lesser extent. Regards, Graeme. Do these 800 filters cluster together in some way? I that case select filters in each cluster and run a common experiment design for all cluster? You can use 0 and 1 as a variable in which cluster they are in, A good software for experimental design will be useful. Quote Link to comment
Graeme Posted December 26, 2011 Author Report Share Posted December 26, 2011 Anders, I'm don't understand what you mean by cluster together. However, I can tell you this. A single system each has one filter in it and in theory all filters should be identical. There will obviously be variations due to component tolerances. The hope is that variations between filters built with components form exactly the same batches will be small, and even form different batches should not be that great. The result is (hopefully) that once the voltages for one filter are found these can be used as a sound starting position for tuning all the others. Graeme. Quote Link to comment
ShaunR Posted December 26, 2011 Report Share Posted December 26, 2011 ShaunR, You've hit the nail on the head. It is one of those "twiddle these until you get that" problems, only 800 times over! I'll check out the Taguchi Analysis. Sounds like it may hold some promise. Thanks. It's worth stating, that for something like a voltage (which theoretically has infinite levels) I usually use the max, mid and min values from the spec as an initial start point. Later (once you have run a few through) you will almost certainly find that there will be a much smaller range that will cause the optimisation to converge much more quickly and enable you to reduce the levels to two optimum start points (these will be dictated by the component tolerances). It then just becomes a money vs time trade-off. 1 PC doing 800 in 5 days to 800 PCs in 10 mins. If you have to allow for settling times, then you can get really cheeky and do multiple devices on a single machine in parallel Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.