Моделирование LVDT-датчика
Моделирование датчика LVDT в одномерной постановке
Линейно-регулируемый дифференциальный трансформатор (LVDT — Linear Variable Differential Transformer) является электромеханическим преобразователем, который преобразует линейное перемещение объекта в электрический сигнал переменного тока. Конструктивно датчик состоит из одной первичной обмотки, двух идентичных вторичных обмоток и подвижного ферромагнитного сердечника (штока).
_2.png)
Общий вид модели

Сердечник (вверху) перемещается по произвольному закону внутри первичной (справа, внизу) и вторичной обмоток (слева).
Физический закон индукции
При подаче переменного напряжения на первичную обмотку вокруг неё возникает переменное магнитное поле, индуцирующее электродвижущую силу (ЭДС) во вторичных обмотках на основе закона электромагнитной индукции Фарадея:
где e_s — наводимая ЭДС во вторичной обмотке, i_p— мгновенный ток в первичной цепи, M — взаимная индуктивность между обмотками, зависящая от геометрии и положения сердечника.
Дифференциальный принцип и баланс индуктивностей
Вторичные обмотки LVDT намотаны симметрично и соединены встречно-последовательно (дифференциально). Это означает, что результирующее напряжение на выходе датчика равно разности напряжений двух вторичных обмоток:
Когда ферромагнитный сердечник находится строго по центру (в нулевом положении, x = 0), магнитные потоки, пронизывающие обе вторичные катушки, равны. Соответственно, равны и их взаимные индуктивности:
В этом положении индуцируемые напряжения полностью компенсируют друг друга, и разностный сигнал равен нулю. Это состояние называется электрическим нулем датчика.
При смещении сердечника на величину x площадь перекрытия катушек изменяется линейно, что приводит к пропорциональному изменению коэффициентов взаимной индуктивности*:
где k — коэффициент чувствительности (крутизна связи), выражаемый в Генри на метр (Гн/м) или Генри на миллиметр (Гн/мм).
*В одномерных физических моделях отсутствует конечно-элементный расчет распределения магнитных полей в пространстве. По этой причине взаимное влияние контуров описывается аналитически через феноменологические коэффициенты M(x). Принятое допущение о строго линейном изменении индуктивностей от координаты x справедливо для рабочей зоны датчика (x <= ±10 мм), так как в ней поток рассеяния минимален, а объем ферромагнитного сердечника, пронизывающий каждую из вторичных катушек, изменяется прямо пропорционально перемещению штока.
Вычисление напряжений вторичных обмоток
Вместо использования стандартных пассивных трансформаторов вторичные обмотки моделируются с помощью управляемых источников ЭДС (Controlled Voltage Source). Напряжения для управления этими источниками вычисляются динамически на каждом шаге интегрирования на основе закона Фарадея и полученных аналитических коэффициентов связи:
Вычисление напряжений вторичных обмоток в модели производится в блоке подсистемы:

Откроем модель, построим графики измерений датчика
modelName = "LVDT"
if !(modelName in [m.name for m in engee.get_all_models()]) engee.load( "$(@__DIR__)/$(modelName).engee"); end;
data = engee.run( modelName )
# 1. Извлечение исходных данных
Meas_Value = vec(collect(WorkspaceArray{Float64}("$modelName/Meas_Value")).value)
Input_Disp = vec(collect(WorkspaceArray{Float64}("$modelName/Input_Disp")).value)
Voltage = vec(collect(WorkspaceArray{Float64}("$modelName/Voltage")).value)
time_raw = collect(WorkspaceArray{Float64}("$modelName/Input_Disp")).time
# 2. Расчет шага прореживания для общих графиков (p1, p2, p3)
target_dt = 0.0001
initial_dt = time_raw[2] - time_raw[1] # Исправлено определение шага времени
step_size = round(Int, target_dt / initial_dt)
if step_size < 1
step_size = 1
end
# 3. Прореживание для обзорных графиков
time_ds = time_raw[1:step_size:end]
Input_Disp_ds = Input_Disp[1:step_size:end]
Voltage_ds = Voltage[1:step_size:end]
Meas_Value_ds = Meas_Value[1:step_size:end]
# 4. Построение графиков
# Общие графики строим по прореженным данным (_ds)
p1 = plot( time_ds, Input_Disp_ds, title= "Перемещение сердечника, м")
p2 = plot( time_ds, Voltage_ds, title="Нефильтрованное напряжение, В", linecolor = :orange)
p3 = plot( time_ds, Meas_Value_ds, title="Измеренное напряжение, В", linecolor = :red)
# График p4 (зум) строим по исходным данным (time_raw, Voltage) без прореживания
p4 = plot( time_raw, Voltage, title="Нефильтрованное напряжение (зум), В", linecolor = :green, xlims =(1, 1.001))
# Компоновка
plot( p1, p2, p3, p4, layout=(2,2), leg=false, size=(1200,600), titlefont=font(10) )
Заключение
Разработанная в среде Engee одномерная физическая модель датчика LVDT полностью подтвердила теоретические законы электромагнитного преобразования. Разделение модели на физическую цепь обмоток и математическое вычисление ЭДС на основе реального изменения тока (di/dt) позволило создать гибкий инструмент для проектирования систем автоматического управления и прецизионного позиционирования, без необходимости применения тяжелых FEM-пакетов на начальных этапах разработки.