ross.Rotor.run_amb_sensitivity
Contents
ross.Rotor.run_amb_sensitivity#
- Rotor.run_amb_sensitivity(speed, t_max, dt, disturbance_amplitude=1e-05, disturbance_min_frequency=0.001, disturbance_max_frequency=150, amb_tags=None, verbose=1)#
Run Active Magnetic Bearing (AMB) sensitivity analysis.
This method performs a frequency-domain sensitivity analysis of the rotor system equipped with active magnetic bearings (AMBs). The analysis uses a logarithmic chirp excitation applied as an external disturbance force to compute the system’s frequency response at the AMB-controlled degrees of freedom (DoFs). The results provide magnitude and phase sensitivity functions for each AMB in both x and y directions.
- Parameters:
- speedfloat
Rotational speed of the rotor in rad/s.
- t_maxfloat
Total time duration of the simulation in seconds.
- dtfloat
Time step for the simulation in seconds.
- disturbance_amplitudefloat, optional
Amplitude of the excitation chirp signal applied as a disturbance. Default is 10e-6.
- disturbance_min_frequencyfloat, optional
Minimum frequency (in Hz) of the logarithmic chirp signal used for excitation. The chirp sweeps from this frequency up to disturbance_max_frequency. Default is 1e-3 Hz.
- disturbance_max_frequencyfloat, optional
Maximum frequency (in Hz) of the logarithmic chirp signal used for excitation. Default is 150 Hz.
- amb_tagslist of str, optional
List of magnetic bearing tags to include in the sensitivity analysis. If None or empty, all MagneticBearingElement instances in the rotor are used. If provided, only the AMBs matching the specified tags will be analyzed. Raises a RuntimeError if no AMB with the given tag is found.
- verboseint, optional
Controls the verbosity of the method. If 1 or greater, both the simulation time and the forces produced by the AMBs are presented. If 0, no output is shown. Default is 1.
- Returns:
- resultsSensitivityResults
Object containing sensitivity magnitude, phase, and frequency vectors for each magnetic bearing tag and direction (‘x’, ‘y’). Also includes the excitation, disturbed, and sensor signals used in the computation.
Notes
The excitation is a logarithmic chirp sweeping from disturbance_min_frequency to disturbance_max_frequency (Hz).
The excitation is applied individually to each DoF controlled by an AMB.
The method assumes that the rotor contains MagneticBearingElement instances.
A Newmark time integration scheme is used internally via run_time_response().
Examples
>>> import ross as rs >>> rotor = rs.rotor_amb_example()
>>> # Run sensitivity for all magnetic bearings in the rotor (default sweep) >>> sensitivity_results = rotor.run_amb_sensitivity(speed=314.16, t_max=5e-4, dt=1e-4) Running direct method...
>>> # Run sensitivity only for a specific AMB tag (e.g., "Magnetic Bearing 0") >>> sensitivity_results = rotor.run_amb_sensitivity( ... speed=314.16, t_max=5e-4, dt=1e-4, amb_tags=["Magnetic Bearing 0"] ... ) Running direct method...
>>> # Run sensitivity with a custom chirp band (0.1 Hz to 200 Hz) >>> sensitivity_results = rotor.run_amb_sensitivity( ... speed=314.16, t_max=5e-4, dt=1e-4, ... disturbance_min_frequency=0.1, disturbance_max_frequency=200.0 ... ) Running direct method...
>>> # Accessing maximum absolute sensitivities for "Magnetic Bearing 0" >>> max_sens_bearing_0_x = sensitivity_results.max_abs_sensitivities["Magnetic Bearing 0"]["x"] >>> max_sens_bearing_0_y = sensitivity_results.max_abs_sensitivities["Magnetic Bearing 0"]["y"]
>>> # Plotting the sensitivities for all AMBs and axes >>> fig = sensitivity_results.plot( ... frequency_units="Hz", phase_unit="degree", ... magnitude_scale="decibel", xaxis_type="log" ... )
>>> # Plotting the time results used in sensitivity calculation >>> fig = sensitivity_results.plot_time_results()