Class MotorMechanicalDesign
java.lang.Object
neqsim.process.mechanicaldesign.motor.MotorMechanicalDesign
- All Implemented Interfaces:
Serializable
Mechanical design of electric motors per IEC 60034, IEEE 841, and NORSOK E-001.
Covers the physical/mechanical aspects of electric motor design:
- Foundation loads (static + dynamic) per IEC 60034-14
- Cooling system classification per IEC 60034-6 (IC codes)
- Bearing selection and L10 life per ISO 281
- Vibration limits per ISO 10816-3 / IEC 60034-14
- Noise limits per IEC 60034-9 and NORSOK S-002
- Enclosure and IP protection per IEC 60034-5
- Environmental derating per IEC 60034-1 (altitude, temperature)
- Motor weight and dimensional estimation
This class is designed to work alongside the ElectricalDesign which handles the
electrical sizing (power, voltage, current, efficiency class). Together they provide a complete
motor specification.
Standards Reference
| Standard | Scope |
|---|---|
| IEC 60034-1 | Rating and performance |
| IEC 60034-5 | Degrees of protection (IP code) |
| IEC 60034-6 | Methods of cooling (IC code) |
| IEC 60034-9 | Noise limits |
| IEC 60034-14 | Mechanical vibration |
| IEC 60034-30-1 | Efficiency classes (IE1-IE4) |
| IEEE 841 | Petroleum/chemical industry motors |
| ISO 10816-3 | Vibration evaluation (industrial machines) |
| ISO 281 | Rolling bearing life calculation |
| NORSOK E-001 | Electrical systems |
| NORSOK S-002 | Working environment (noise limits) |
- Version:
- 1.0
- Author:
- Even Solbraa
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleAltitude derating factor (1.0 = no derating).private doubleInstallation altitude in meters above sea level.private doubleAmbient temperature in Celsius.List of applied standards.private doubleCalculated L10 bearing life in hours.private StringBearing type.private doubleCombined derating factor.private doubleCooling air flow required in m3/s (for fan-cooled).private StringIC code per IEC 60034-6.private StringCooling method description.private StringDrive-end bearing designation.private doubleDerated motor output power in kW.List of design notes/warnings.private doubleDynamic foundation load in kN (due to unbalance).private StringEnclosure type description.private StringEx protection marking (empty if non-hazardous).private StringFoundation type recommendation.private doubleMinimum foundation weight ratio (concrete/motor per IEEE 841).private doubleSupply frequency in Hz.private StringGas group for Ex classification (IIA, IIB, IIC).private booleanWhether the motor has a VFD.private intHazardous area zone (-1 = non-hazardous, 0, 1, 2).private doubleHeat dissipation in kW.private StringIP protection rating per IEC 60034-5.private StringLubrication recommendation.private doubleMaximum vibration velocity in mm/s RMS at bearing housing.private doubleMinimum L10 bearing life requirement per IEEE 841 (hours).private doubleMotor height in mm (estimated).private doubleMotor length in mm (estimated).private StringMotor standard: "IEC" or "NEMA".private doubleMotor weight in kg.private doubleMotor width in mm (estimated).private StringNon-drive-end bearing designation.private static final double[][]Sound power limits for small motors in dB(A).private doubleIEC 60034-9 noise limit in dB(A).private booleanWhether noise meets IEC 60034-9 limit.private booleanWhether noise meets NORSOK S-002 limit (83 dB(A) at 1m).private intNumber of poles (2, 4, 6, 8).private doubleRated speed in RPM.private doubleRe-greasing interval in hours.private doubleRequired foundation mass in kg.private static final longSerialization version UID.private doubleShaft height in mm (center of shaft above base).private doubleShaft power required from the driven equipment in kW.private doubleSound power level in dB(A).private doubleSound pressure level at 1m in dB(A).private doubleStatic foundation load in kN.private doubleTemperature derating factor (1.0 = no derating).private doubleTotal foundation load in kN (static + dynamic).private static final doubleZone A/B boundary for Group 1 (above 300 kW) in mm/s RMS.private static final doubleZone B/C boundary for Group 1 in mm/s RMS.private static final doubleZone C/D boundary for Group 1 in mm/s RMS.private static final doubleZone A/B boundary for Group 2 (15-300 kW) in mm/s RMS.private static final doubleZone B/C boundary for Group 2 in mm/s RMS.private static final doubleZone C/D boundary for Group 2 in mm/s RMS.private StringVibration grade per IEC 60034-14 (A or B).private StringVibration zone per ISO 10816-3 (A, B, C, or D). -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.MotorMechanicalDesign(double shaftPowerKW) Constructor with shaft power.MotorMechanicalDesign(ElectricalDesign electricalDesign) Construct from an existing ElectricalDesign (reads motor data). -
Method Summary
Modifier and TypeMethodDescriptionprivate voidCalculate bearing selection and L10 life per ISO 281.private voidCalculate cooling requirements per IEC 60034-6.private voidCalculate environmental derating per IEC 60034-1.voidRun all mechanical design calculations.private voidDetermine enclosure and protection rating.private voidCalculate foundation loads per IEC 60034-14 and IEEE 841.private voidEstimate motor dimensions and weight based on rated power.private voidCalculate noise levels per IEC 60034-9 and check NORSOK S-002.private voidCalculate vibration limits per IEC 60034-14 and ISO 10816-3.private StringestimateBallBearing(double powerKW, boolean isDriveEnd) Estimate ball bearing designation based on motor power.private doubleestimateDynamicLoadRating(double powerKW) Estimate bearing dynamic load rating in N.private StringestimateRollerBearing(double powerKW) Estimate roller bearing designation for NDE.doubleGets the installation altitude.doubleGets the ambient temperature in Celsius.Gets the list of applied standards.doubleGets the bearing L10 life.Gets the bearing type.doubleGets the combined derating factor.Gets the cooling code per IEC 60034-6.Gets the cooling description.doubleGets the derated power.Gets the list of design notes and warnings.Gets the enclosure type.Gets the Ex marking.Gets the foundation type recommendation.doubleGets the heat dissipation.Gets the IP protection rating.doubleGets the maximum vibration in mm/s RMS.Gets the motor standard.doubleGets the motor weight.intgetPoles()Gets the number of poles.doubleGets the rated speed.doubleGets the required foundation mass.doubleGets the shaft power in kW.doubleGets the sound power level in dB(A).doubleGets the sound pressure level at 1m.doubleGets the total foundation load.Gets the vibration zone per ISO 10816-3.booleanisHasVFD()Checks if motor has a VFD.booleanChecks if noise is within NORSOK S-002 limit.voidsetAltitudeM(double altitudeM) Sets the installation altitude above sea level.voidsetAmbientTemperatureC(double ambientTemperatureC) Sets the ambient temperature in Celsius.voidsetFoundationWeightRatio(double ratio) Sets the foundation weight ratio.voidsetFrequencyHz(double frequencyHz) Sets the frequency in Hz.voidsetGasGroup(String gasGroup) Sets the gas group for Ex classification.voidsetHasVFD(boolean hasVFD) Sets whether the motor uses a VFD.voidsetHazardousZone(int hazardousZone) Sets the hazardous area zone.voidsetMotorStandard(String motorStandard) Sets the motor standard.voidsetPoles(int poles) Sets the number of poles.voidsetRatedSpeedRPM(double ratedSpeedRPM) Sets the rated speed.voidsetShaftPowerKW(double shaftPowerKW) Sets the shaft power in kW.toJson()Generate comprehensive JSON report of motor mechanical design.toMap()Convert all design data to a map for report generation.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
NOISE_LIMITS_4P_50HZ
private static final double[][] NOISE_LIMITS_4P_50HZSound power limits for small motors in dB(A). -
VIB_GROUP2_ZONE_AB
private static final double VIB_GROUP2_ZONE_ABZone A/B boundary for Group 2 (15-300 kW) in mm/s RMS.- See Also:
-
VIB_GROUP2_ZONE_BC
private static final double VIB_GROUP2_ZONE_BCZone B/C boundary for Group 2 in mm/s RMS.- See Also:
-
VIB_GROUP2_ZONE_CD
private static final double VIB_GROUP2_ZONE_CDZone C/D boundary for Group 2 in mm/s RMS.- See Also:
-
VIB_GROUP1_ZONE_AB
private static final double VIB_GROUP1_ZONE_ABZone A/B boundary for Group 1 (above 300 kW) in mm/s RMS.- See Also:
-
VIB_GROUP1_ZONE_BC
private static final double VIB_GROUP1_ZONE_BCZone B/C boundary for Group 1 in mm/s RMS.- See Also:
-
VIB_GROUP1_ZONE_CD
private static final double VIB_GROUP1_ZONE_CDZone C/D boundary for Group 1 in mm/s RMS.- See Also:
-
shaftPowerKW
private double shaftPowerKWShaft power required from the driven equipment in kW. -
ratedSpeedRPM
private double ratedSpeedRPMRated speed in RPM. -
poles
private int polesNumber of poles (2, 4, 6, 8). -
frequencyHz
private double frequencyHzSupply frequency in Hz. -
ambientTemperatureC
private double ambientTemperatureCAmbient temperature in Celsius. -
altitudeM
private double altitudeMInstallation altitude in meters above sea level. -
hasVFD
private boolean hasVFDWhether the motor has a VFD. -
motorStandard
Motor standard: "IEC" or "NEMA". -
hazardousZone
private int hazardousZoneHazardous area zone (-1 = non-hazardous, 0, 1, 2). -
gasGroup
Gas group for Ex classification (IIA, IIB, IIC). -
motorWeightKg
private double motorWeightKgMotor weight in kg. -
staticFoundationLoadKN
private double staticFoundationLoadKNStatic foundation load in kN. -
dynamicFoundationLoadKN
private double dynamicFoundationLoadKNDynamic foundation load in kN (due to unbalance). -
totalFoundationLoadKN
private double totalFoundationLoadKNTotal foundation load in kN (static + dynamic). -
foundationWeightRatio
private double foundationWeightRatioMinimum foundation weight ratio (concrete/motor per IEEE 841). -
requiredFoundationMassKg
private double requiredFoundationMassKgRequired foundation mass in kg. -
foundationType
Foundation type recommendation. -
vibrationGrade
Vibration grade per IEC 60034-14 (A or B). -
maxVibrationMmS
private double maxVibrationMmSMaximum vibration velocity in mm/s RMS at bearing housing. -
vibrationZone
Vibration zone per ISO 10816-3 (A, B, C, or D). -
coolingCode
IC code per IEC 60034-6. -
coolingDescription
Cooling method description. -
heatDissipationKW
private double heatDissipationKWHeat dissipation in kW. -
coolingAirFlowM3s
private double coolingAirFlowM3sCooling air flow required in m3/s (for fan-cooled). -
bearingType
Bearing type. -
deBearingDesignation
Drive-end bearing designation. -
ndeBearingDesignation
Non-drive-end bearing designation. -
bearingL10LifeHours
private double bearingL10LifeHoursCalculated L10 bearing life in hours. -
minBearingLifeHours
private double minBearingLifeHoursMinimum L10 bearing life requirement per IEEE 841 (hours). -
lubricationMethod
Lubrication recommendation. -
regreaseIntervalHours
private double regreaseIntervalHoursRe-greasing interval in hours. -
soundPowerLevelDbA
private double soundPowerLevelDbASound power level in dB(A). -
soundPressureLevelAt1mDbA
private double soundPressureLevelAt1mDbASound pressure level at 1m in dB(A). -
noiseLimitDbA
private double noiseLimitDbAIEC 60034-9 noise limit in dB(A). -
noiseWithinLimit
private boolean noiseWithinLimitWhether noise meets IEC 60034-9 limit. -
noiseWithinNorsokLimit
private boolean noiseWithinNorsokLimitWhether noise meets NORSOK S-002 limit (83 dB(A) at 1m). -
ipRating
IP protection rating per IEC 60034-5. -
enclosureType
Enclosure type description. -
exMarking
Ex protection marking (empty if non-hazardous). -
altitudeDeratingFactor
private double altitudeDeratingFactorAltitude derating factor (1.0 = no derating). -
temperatureDeratingFactor
private double temperatureDeratingFactorTemperature derating factor (1.0 = no derating). -
combinedDeratingFactor
private double combinedDeratingFactorCombined derating factor. -
deratedPowerKW
private double deratedPowerKWDerated motor output power in kW. -
motorLengthMm
private double motorLengthMmMotor length in mm (estimated). -
motorWidthMm
private double motorWidthMmMotor width in mm (estimated). -
motorHeightMm
private double motorHeightMmMotor height in mm (estimated). -
shaftHeightMm
private double shaftHeightMmShaft height in mm (center of shaft above base). -
appliedStandards
-
designNotes
-
-
Constructor Details
-
MotorMechanicalDesign
public MotorMechanicalDesign()Default constructor. -
MotorMechanicalDesign
public MotorMechanicalDesign(double shaftPowerKW) Constructor with shaft power.- Parameters:
shaftPowerKW- required shaft power in kW
-
MotorMechanicalDesign
Construct from an existing ElectricalDesign (reads motor data).- Parameters:
electricalDesign- the electrical design to read motor params from
-
-
Method Details
-
calcDesign
public void calcDesign()Run all mechanical design calculations.Calculates foundation loads, vibration limits, cooling requirements, bearing selection, noise assessment, enclosure selection, and environmental derating.
-
calcDerating
private void calcDerating()Calculate environmental derating per IEC 60034-1.Standard rating is for ambient max 40 deg C at altitudes up to 1000m. Above these limits, the motor output must be derated.
-
calcMotorDimensions
private void calcMotorDimensions()Estimate motor dimensions and weight based on rated power.Approximations based on IEC frame sizes with TEFC enclosure.
-
calcFoundation
private void calcFoundation()Calculate foundation loads per IEC 60034-14 and IEEE 841. -
calcCooling
private void calcCooling()Calculate cooling requirements per IEC 60034-6. -
calcBearings
private void calcBearings()Calculate bearing selection and L10 life per ISO 281. -
estimateBallBearing
Estimate ball bearing designation based on motor power.- Parameters:
powerKW- motor power in kWisDriveEnd- true for drive end, false for non-drive end- Returns:
- bearing designation string
-
estimateRollerBearing
Estimate roller bearing designation for NDE.- Parameters:
powerKW- motor power in kW- Returns:
- bearing designation string
-
estimateDynamicLoadRating
private double estimateDynamicLoadRating(double powerKW) Estimate bearing dynamic load rating in N.- Parameters:
powerKW- motor power in kW- Returns:
- dynamic load rating in N
-
calcVibration
private void calcVibration()Calculate vibration limits per IEC 60034-14 and ISO 10816-3. -
calcNoise
private void calcNoise()Calculate noise levels per IEC 60034-9 and check NORSOK S-002. -
calcEnclosure
private void calcEnclosure()Determine enclosure and protection rating. -
toJson
Generate comprehensive JSON report of motor mechanical design.- Returns:
- JSON string with all design data
-
toMap
-
getShaftPowerKW
public double getShaftPowerKW()Gets the shaft power in kW.- Returns:
- shaft power in kW
-
setShaftPowerKW
public void setShaftPowerKW(double shaftPowerKW) Sets the shaft power in kW.- Parameters:
shaftPowerKW- shaft power in kW
-
getRatedSpeedRPM
public double getRatedSpeedRPM()Gets the rated speed.- Returns:
- speed in RPM
-
setRatedSpeedRPM
public void setRatedSpeedRPM(double ratedSpeedRPM) Sets the rated speed.- Parameters:
ratedSpeedRPM- speed in RPM
-
getPoles
public int getPoles()Gets the number of poles.- Returns:
- number of poles
-
setPoles
public void setPoles(int poles) Sets the number of poles.- Parameters:
poles- number of poles (2, 4, 6, 8)
-
setAmbientTemperatureC
public void setAmbientTemperatureC(double ambientTemperatureC) Sets the ambient temperature in Celsius.- Parameters:
ambientTemperatureC- ambient temperature in Celsius
-
getAmbientTemperatureC
public double getAmbientTemperatureC()Gets the ambient temperature in Celsius.- Returns:
- ambient temperature in Celsius
-
setAltitudeM
public void setAltitudeM(double altitudeM) Sets the installation altitude above sea level.- Parameters:
altitudeM- altitude in meters
-
getAltitudeM
public double getAltitudeM()Gets the installation altitude.- Returns:
- altitude in meters
-
setHasVFD
public void setHasVFD(boolean hasVFD) Sets whether the motor uses a VFD.- Parameters:
hasVFD- true if VFD is used
-
isHasVFD
public boolean isHasVFD()Checks if motor has a VFD.- Returns:
- true if VFD is used
-
setMotorStandard
Sets the motor standard.- Parameters:
motorStandard- "IEC" or "NEMA"
-
getMotorStandard
-
setHazardousZone
public void setHazardousZone(int hazardousZone) Sets the hazardous area zone.- Parameters:
hazardousZone- zone (-1=safe, 0, 1, or 2)
-
setGasGroup
Sets the gas group for Ex classification.- Parameters:
gasGroup- gas group (IIA, IIB, or IIC)
-
getMotorWeightKg
public double getMotorWeightKg()Gets the motor weight.- Returns:
- motor weight in kg
-
getTotalFoundationLoadKN
public double getTotalFoundationLoadKN()Gets the total foundation load.- Returns:
- total foundation load in kN
-
getRequiredFoundationMassKg
public double getRequiredFoundationMassKg()Gets the required foundation mass.- Returns:
- foundation mass in kg
-
getFoundationType
-
getVibrationZone
Gets the vibration zone per ISO 10816-3.- Returns:
- vibration zone (A, B, C, or D)
-
getMaxVibrationMmS
public double getMaxVibrationMmS()Gets the maximum vibration in mm/s RMS.- Returns:
- maximum vibration in mm/s
-
getCoolingCode
-
getHeatDissipationKW
public double getHeatDissipationKW()Gets the heat dissipation.- Returns:
- heat dissipation in kW
-
getBearingL10LifeHours
public double getBearingL10LifeHours()Gets the bearing L10 life.- Returns:
- bearing life in hours
-
getSoundPressureLevelAt1mDbA
public double getSoundPressureLevelAt1mDbA()Gets the sound pressure level at 1m.- Returns:
- SPL at 1m in dB(A)
-
isNoiseWithinNorsokLimit
public boolean isNoiseWithinNorsokLimit()Checks if noise is within NORSOK S-002 limit.- Returns:
- true if within limit
-
getIpRating
-
getExMarking
Gets the Ex marking.- Returns:
- Ex marking string, empty if non-hazardous
-
getCombinedDeratingFactor
public double getCombinedDeratingFactor()Gets the combined derating factor.- Returns:
- combined derating factor (0-1)
-
getDeratedPowerKW
public double getDeratedPowerKW()Gets the derated power.- Returns:
- derated power in kW
-
getAppliedStandards
-
getDesignNotes
-
setFrequencyHz
public void setFrequencyHz(double frequencyHz) Sets the frequency in Hz.- Parameters:
frequencyHz- frequency in Hz
-
setFoundationWeightRatio
public void setFoundationWeightRatio(double ratio) Sets the foundation weight ratio.- Parameters:
ratio- foundation/motor weight ratio (default 3.0 per IEEE 841)
-
getBearingType
-
getEnclosureType
-
getCoolingDescription
-
getSoundPowerLevelDbA
public double getSoundPowerLevelDbA()Gets the sound power level in dB(A).- Returns:
- sound power level in dB(A)
-