After much effort, journeys down dead end paths, two emails to tech support, and much schedule back-pedalling, I have the EM cosimulator working on a layout component-based double-spiral transformer and I'm ready to get into optimization in a serious way.

As I look into the depths of this new approaching void, I find myself thinking about how many of the variables in my coil should have boundary conditions based on other variables. Is it possible to somehow set such boundaries? As an example, I want the coil diameter to be bound by the number of turns and the width of a turn. The width of a turn can be defined in terms of the width of the lines and the separation between them. An inequality of this situation would look a little like this:

D >= (N+2)(2W+2S)

where D is coil diameter, N is number of turns, W is line width, and S is separation. Can I somehow get the EM cosim optimizer to respect this boundary? If not, can I define error conditions in the artwork macro behind the layout component so that Momentum will call it quits on a simulation of an undesirable/geometrically impossible coil without bringing the whole optimization down?

Any and all help will be appreciated.

Thanks in advance,

vgreer

As I look into the depths of this new approaching void, I find myself thinking about how many of the variables in my coil should have boundary conditions based on other variables. Is it possible to somehow set such boundaries? As an example, I want the coil diameter to be bound by the number of turns and the width of a turn. The width of a turn can be defined in terms of the width of the lines and the separation between them. An inequality of this situation would look a little like this:

D >= (N+2)(2W+2S)

where D is coil diameter, N is number of turns, W is line width, and S is separation. Can I somehow get the EM cosim optimizer to respect this boundary? If not, can I define error conditions in the artwork macro behind the layout component so that Momentum will call it quits on a simulation of an undesirable/geometrically impossible coil without bringing the whole optimization down?

Any and all help will be appreciated.

Thanks in advance,

vgreer

We call it constrained parameterization, but as you noticed, the UI does not give you this ability to include such constraints.

You should be able to create an artwork macro that errors out when a user calls parameter combinations that are not valid, but once this is being called inside an optimization loop, I doubt you have any control over error recovery. So, you have to be a little less ambitious for now and use the idea of "binning" the components, that is, you create a set of spiral transformers, or whatever, that covers the eventual design requirements but gives the user different parts for different ranges of transformer ratio, inductance, etc.