non-linear optimization over a frequency bandwidth

Hi there,
Is it possible to optimize a function over a frequency bandwidth? Given I have a non-linear function say Vout(f) and I want to optimize (e.g. maximize the average voltage output) over a frequency bandwidth as a function of design variables and constraints.
Is there a way to do this and extend a single objective to multi-objectives?
I'm only aware of using fmincon over a single frequency...
Thanks,

 採用された回答

Matt J
Matt J 2015 年 3 月 5 日
編集済み: Matt J 2015 年 3 月 5 日

0 投票

You could look at the multi-objective solver fgoalattain to see if that suits what you are trying to do. The average voltage can be computed inside the objective function by filtering Vout(f) with a bandpass filter, parametrized by f1 and f2, and computing the average of the filter output. You just want to make sure that the filter result is differentiable in f1 and f2. Therefore, a rect window bandpass filter would not be suitable. You would need to compromise and use some sort of tapered window.

1 件のコメント

Joseph
Joseph 2015 年 3 月 6 日
Thanks for the input Matt. I'll have a go at that. I'll leave the question open for a little longer to see what happens when I try implementation.

サインインしてコメントする。

その他の回答 (1 件)

Chris McComb
Chris McComb 2015 年 3 月 5 日

0 投票

I think you can do exactly what you said: maximize the average voltage output.
Use fmincon, but write an objective function that computes the voltage output for several frequencies and returns the average. If certain frequencies are more important than others, you can even do a weighted average.
Would that work in your case? Maybe I'm not understanding your question completely.

4 件のコメント

Joseph
Joseph 2015 年 3 月 5 日
編集済み: Joseph 2015 年 3 月 5 日
Hi Chris,
Yep, kind of brute force method but a fair enough approach. Was hoping for something a bit more elegant. So the problem will have to go multi-objective later since the Vout has a lower (f1) and upper (f2) cut off frequency.
So I would like to maximize Vout but try to lower (f1) and increase (f2) thereby expanding the bandwidth. The problem will look something like this
maximize (Vout,-f1,f2) S.T some constraints
There is an example on mathworks but for now I can't work out if this will apply to my problem. It seems the example optimized a filter over a frequency bandwidth. multi-method <-- LINK
Thanks,
I will leave this question open for now :)
Chris McComb
Chris McComb 2015 年 3 月 5 日
The application is definitely outside of my area of expertise, but I think I see what you mean. Are f1 and f2 also functions of your design variables?
Joseph
Joseph 2015 年 3 月 6 日
Hi Chris, yes they are. But first step I'm was looking at maximizing Vout over a frequency bandwidth. Then move onto the f1 and f2.
Chris McComb
Chris McComb 2015 年 3 月 6 日
In that case, I'm afraid I don't see a more elegant solution to your problem. For your first step, I think the brute force approach may be the only way to go. That is, directly computing the average and maximizing that.
When you move on to a multiobjective problem, you'll no longer have a single optimal solution. Instead, you'll have a set of optimal solutions known as a Pareto frontier. In the Pareto frontier, the quality of a solution is denoted by a length n, where n is the number of objective functions.
I've done some work with multi-objective optimization, and once again I'd recommend a somewhat brutish approach (I'm starting to recognize a pattern in my preferences). There are a number of ways to go about this, but the simplest is to re-define your objective function as a weighted combination of -f1, f2 and Vout. Solving the optimization problem with different weights will allow you to resolve different points on the Pareto frontier.
I'm happy to provide more information about any of the above. Sorry I couldn't offer a more elegant solution!

サインインしてコメントする。

カテゴリ

質問済み:

2015 年 3 月 5 日

コメント済み:

2015 年 3 月 6 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by