Довольно часто при моделировании высокооборотных вращающихся машин решение может разваливаться на самых начальных итерациях, даже при условии корректно подобранного шага по времени. Особенно, если применяются многофазные модели.
Что можно предложить для решения данной проблемы? Например, начать раскручивать ротор с постоянным ускорением, но с переменной угловой скоростью. До тех пор, пока она не достигнет своего номинального значения.
Для этого необходимо написать несколько CEL-выражений. Ниже показан фрагмент CCL файла реального проекта, в котором была использована описанная технология.
LIBRARY:
CEL:
EXPRESSIONS:
Accel = torq / MassInert
MassInert = 40 [kg m^2]
accelconst = 0.01 [rad s^-2]
anglenew = angleold+omeganew*tStep
angleold = atan2(x,y)
omeganew = omegaold+accelconst*tStep
omegaold = sqrt((Mesh Velocity X)^2 + (Mesh Velocity Y)^2)/max(radius, \
1e-08[m])
radius = sqrt(x^2+y^2)
tStep = 0.1 [s]
torq = torque()@WALL BLADES
END
END
На этом всё!
С уважением, Денис П. Хитрых.