如何用PyAEDT在HFSS中创建多变量扫掠?双参数组合求解问题
解决HFSS双变量参数化扫掠(全组合)问题
你之前的代码会创建两个独立的参数化扫掠,这种方式只会依次扫掠每个变量,无法生成所有参数组合。要实现全参数组合的笛卡尔积扫掠,需要把两个变量整合到同一个参数化任务中,而不是分开添加。
正确代码示例
setup = hfss.create_setup("loop") setup.props["Frequency"] = "10GHz" setup.props["MaximumPasses"] = 10 # 创建包含双变量的组合扫掠,自动生成所有参数配对 hfss.parametrics.add( variables = [ {"name": "l_outer", "start": loop_sweep_start, "end": loop_sweep_stop, "step": loop_sweep_step, "variation_type": "LinearStep"}, {"name": "width", "start": width_sweep_start, "end": width_sweep_stop, "step": width_sweep_step, "variation_type": "LinearStep"} ], name="Loop_Dimension_Sweep" # 自定义扫掠任务名称,便于识别 )
核心说明
- 单次调用
hfss.parametrics.add,通过variables参数传入包含所有待扫变量的字典列表,HFSS会自动生成两个变量的所有组合(每个l_outer值对应所有width值)。 - 避免分开调用两次
add,否则只会生成两个独立的一维扫掠,而非二维组合扫掠。
额外提示
- 确保
loop_sweep_start、width_sweep_step等变量已提前定义,且数值单位与HFSS模型单位保持一致(比如默认毫米)。 - 如果需要离散值列表扫掠,可将
variation_type改为'List',并替换start/end/step为values参数,示例:{"name": "l_outer", "values": ["5mm", "6mm", "7mm"], "variation_type": "List"}。
内容的提问来源于stack exchange,提问作者Ido Yakir
相关产品推荐
相关产品推荐

