Модель взаимодействия постоянного магнита и железной поверхности
В этом примере демонстрируется способ моделирования сил, которые действуют между магнитом и железной пластиной, например стеной. Взаимодействие между магнитным доменом и доменом линейных перемещений моделируется при помощи блоков PermanentMagnet
и ReluctanceForceActuator
.
Описание модели
Блок ReluctanceForceActuator
позволяет моделировать процессы, происходящие между постоянным магнитом и железной стеной благодаря тому, что его магнитное сопротивление и создаваемая им линейно направленная сила зависит от величины зазора между полюсами магнита и стеной.

Подсистема Управление усилием
задает профиль воздействия внешней силы, направленной на отдаление магнита от стены.
Запуск модели и интерпретация
Запустим модель и изучим наблюдаемые явления.
modelName = "permanent_magnet_on_wall";
model = modelName in [m.name for m in engee.get_all_models()] ? engee.open( modelName ) : engee.load( "$(@__DIR__)/$(modelName).engee");
data = engee.run( modelName, verbose=false )
В начале симуляции модели, магнит соприкасается со стеной. Затем блок Управление усилием
постепенно увеличивает значение силы, направленной на отдаление блока от стены. В тот момент, когда сила разъединения превышает критическое значение, блок Управление усилием
прекращает приложение силы, чтобы магнит не удалился от стены слишком далеко, а затем, в момент t=1.1
усилие прекращается. Профиль изменения этой силы находится эмпирически.
После прекращения действия силы, направленной на разъединения магнита и пластины, магнит снова прикрепляется к железной поверхности и занимает прежнее место.
plot(
plot( data["Управление усилием.F"].time, 1e3.*data["Управление усилием.F"].value,
title="Внешняя сила\n", ylabel="Сила, мН",
titlefont=font(10), guidefont=font(8) ),
plot( data["Измерение перемещения.F"].time, 1e3.*data["Измерение перемещения.F"].value,
title="Сумма сил\n", ylabel="Сила, мН",
titlefont=font(10), guidefont=font(8), lc=2 ),
plot( data["Измерение перемещения.V"].time, 1e3.*data["Измерение перемещения.V"].value,
title="Скорость перемещения магнита\n", ylabel="Скорость<br>мм/с",
titlefont=font(10), guidefont=font(8), lc=3 ),
plot( data["Измерение перемещения.P"].time, 1e3.*data["Измерение перемещения.P"].value,
title="Расстояние от стены\n", xlabel="Время, с", ylabel="Смещение<br>мм",
titlefont=font(10), guidefont=font(8), lc=4 ),
layout=(4,1), legend=:false, size=(400,500)
)
Модель постоянного магнита, реализованная при помощи блока PermanentMagnet
, позволяет задавать свойства как через значение проницаемости (permeability), так и через коэрцитивность (coercivity). Выбор зависит от параметров магнита, указанных в документации от производителя.
Запуск с другими параметрами
Стоит нам изменить параметры, как мы увидим другое поведение модели.
engee.get_param( "permanent_magnet_on_wall/Управление усилием/Saturation" )
Увеличим максимальное значение силы, которая будет направлена на отделение магнита от стены.
engee.set_param!( "permanent_magnet_on_wall/Управление усилием/Saturation",
"UpperLimit"=>350e-3 )
data = engee.run( modelName, verbose=false )
plot(
plot( data["Управление усилием.F"].time, 1e3.*data["Управление усилием.F"].value,
title="Внешняя сила\n", ylabel="Сила, мН",
titlefont=font(10), guidefont=font(8) ),
plot( data["Измерение перемещения.F"].time, 1e3.*data["Измерение перемещения.F"].value,
title="Сумма сил\n", ylabel="Сила, мН",
titlefont=font(10), guidefont=font(8), lc=2),
plot( data["Измерение перемещения.V"].time, 1e3.*data["Измерение перемещения.V"].value,
title="Скорость перемещения магнита\n", ylabel="Скорость<br>мм/с",
titlefont=font(10), guidefont=font(8), lc=3 ),
plot( data["Измерение перемещения.P"].time, 1e3.*data["Измерение перемещения.P"].value,
title="Расстояние от стены\n", xlabel="Время, с", ylabel="Смещение<br>мм",
titlefont=font(10), guidefont=font(8), lc=4 ),
layout=(4,1), legend=:false, size=(400,500)
)
При таких настройках магнит слишком сильно отдаляется от стены и силы поля уже недостаточно для того, чтобы вернуть его обратно.
Заключение
Мы построили модель, которая позволяет рассчитать усилие, необходимое для удаления магнита от железной поверхности, а также увидеть в динамике изменение значение силы притяжения постоянного магнита к железной поверхности.