10.06.2016 Views

eldo_user

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Eldo Control Language<br />

.OPTIMIZE Alternative<br />

* ECL .OPTIMIZE alternative<br />

.define_testbench optimize_this()<br />

.paramopt res_value=(5,1,10)<br />

v1 1 0 dc 2<br />

r1 1 0 res_value<br />

.dc<br />

.plot dc v(1) i(v1) i2(v1)<br />

.option aex<br />

.extract dc label=v1_current i2(v1) goal=0.35<br />

.optimize<br />

.option ops<strong>eldo</strong>_netlist<br />

.end_define_testbench<br />

.define_testbench final_run(res_value=0)<br />

v1 1 0 dc 2<br />

r1 1 0 res_value<br />

.dc<br />

.plot dc v(1) i(v1) i2(v1)<br />

.option aex<br />

.extract dc label=v1_current i2(v1)<br />

.end_define_testbench<br />

.define_task run()<br />

set current=0<br />

set return_value=0<br />

set final_resistance=0<br />

return_value = simulation(name="optimization_file",<br />

+ log="optimization_run.log", optimize_this(),<br />

+ final_resistance=@res_value)<br />

if (return_value.simu_status == 0)<br />

fprint(stdout, "\nfinal_resistance = %g\n", final_resistance)<br />

else<br />

fprint(stdout, "\nBad optimization run. return status = %g.\n",<br />

+ return_value.simu_status)<br />

endif<br />

return_value = simulation(name="final_results_file",<br />

+ log="final_rerun.log", final_run(res_value=final_resistance))<br />

if (return_value.simu_status == 0)<br />

fprint(stdout, "\nFinal run made from file %s\n",<br />

+ "final_results_file.cir")<br />

else<br />

fprint(stdout, "\nBad final run. return status = %g\n",<br />

+ return_value.simu_status)<br />

endif<br />

.end_define_task<br />

.run<br />

.end<br />

The full example is located in $MGC_AMS_HOME/examples/ecl/28-optimize_alternative.<br />

1132<br />

Eldo® User's Manual, 15.3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!