{ "study_name": "frequency_tuning_optimization", "description": "Natural Frequency Tuning - Adjust structural dynamics to avoid resonance", "engineering_context": "Modal optimization for avoiding resonance with excitation sources (motors, rotors, vibration). Tune natural frequencies away from operating frequencies while minimizing mass.", "template_info": { "category": "dynamics", "analysis_type": "modal", "typical_applications": ["motor mounts", "drone arms", "rotating equipment supports", "vibration isolation"], "required_nx_expressions": ["section_width", "section_height", "arm_length"], "notes": "Requires modal analysis (SOL 103) solution in NX" }, "optimization_settings": { "protocol": "protocol_11_multi_objective", "n_trials": 60, "sampler": "NSGAIISampler", "pruner": null, "timeout_per_trial": 500 }, "design_variables": [ { "parameter": "section_width", "bounds": [10, 40], "description": "Cross-section width (mm) - affects stiffness", "units": "mm" }, { "parameter": "section_height", "bounds": [10, 60], "description": "Cross-section height (mm) - affects stiffness in bending plane", "units": "mm" }, { "parameter": "arm_length", "bounds": [80, 200], "description": "Arm/cantilever length (mm) - strongly affects frequency", "units": "mm" }, { "parameter": "wall_thickness", "bounds": [1, 5], "description": "Wall thickness for hollow sections (mm)", "units": "mm" } ], "objectives": [ { "name": "mass", "goal": "minimize", "weight": 1.0, "description": "Total mass (grams) - minimize for weight savings", "target": 50, "extraction": { "action": "extract_mass", "domain": "result_extraction", "params": { "result_type": "mass", "metric": "total" } } }, { "name": "first_frequency", "goal": "maximize", "weight": 1.0, "description": "First natural frequency (Hz) - push away from excitation", "target": 200, "extraction": { "action": "extract_frequency", "domain": "result_extraction", "params": { "result_type": "frequency", "mode_number": 1 } } } ], "constraints": [ { "name": "min_frequency_limit", "type": "greater_than", "threshold": 120, "description": "First natural frequency > 120 Hz (above rotor harmonics)", "extraction": { "action": "extract_frequency", "domain": "result_extraction", "params": { "result_type": "frequency", "mode_number": 1 } } }, { "name": "max_stress_limit", "type": "less_than", "threshold": 150, "description": "Maximum stress < 150 MPa under static load", "extraction": { "action": "extract_stress", "domain": "result_extraction", "params": { "result_type": "stress", "metric": "max_von_mises" } } } ], "simulation": { "model_file": "Arm.prt", "sim_file": "Arm_sim1.sim", "fem_file": "Arm_fem1.fem", "solver": "nastran", "analysis_types": ["modal", "static"] }, "reporting": { "generate_plots": true, "save_incremental": true, "llm_summary": false }, "training_data_export": { "enabled": true, "export_dir": "atomizer_field_training_data/${study_name}", "export_every_n_trials": 1, "include_mesh": true, "compress": false } }