Модель конвейера
Моделирование ленточного конвейера
В этом примере мы рассмотрим расчёт и моделирование ленточного конвейера с использованием блоков физического моделирования.
Введение
В общем виде устройство ленточного конвейера можно представить так, как показано на схеме:
В качестве допущения для итоговой модели не будем учитывать динамику натяжения и провисания ленты конвейера, следовательно, модель можно упростить до нескольких элементов:
-
электропривод,
-
редуктор,
-
приводной барабан с подшипниками,
-
концевой барабан с подшипниками,
-
лента конвейера.
-
груз переменной массы.
Расчёт параметров конвейера
Для примера расчёта и моделирования возьмём конвейер 5025-40, параметры оборудования которого выберем согласно [1].
Зададим длину L конвейера:
L = 30; # Расстояние между барабанами [м]
Электропривод
Двигатель, используемый в этом примере - асинхронный с короткозамкнутым ротором (АД КЗР) АИР 132 S4. Мощность - 7.5 кВт, частота вращения - 1455 об/мин. Он был рассчитан и смоделирован ранее, в примере параметрирования АД.
Барабаны
Барабаны для указанного типа конвейера - приводной и концевой имеют типоразмер 5025Г-40. Он определяет следующие характеристики, необходимые для физического моделирования:
Dб = 250e-3; # Диаметр барабана [м]
Lб = 500e-3; # Длина барабана [м]
Mб = 58; # Масса барабана [кг]
Jб = 0.5*Mб*(Dб/2)^2; # Момент инерции барабана [кг·м²]
В модели барабаны представлены блоками:
-
инерция - для формирования крутящего момента барабана,
-
колесо и ось - для преобразования вращательного движения в поступательное (приводной барабан) и наоборот (концевой барабан).
Редуктор
Один из типовых редукторов для зада 1Ц2У-160:
I = 31.5; # Передаточное число редуктора
J = 0.0227+0.01; # Момент инерции редуктора и ротора АД, приведённый к валу двигателя [кг·м²]
ηр = 0.97; # КПД редуктора
В модели он описывается двумя блоками:
-
зубчатая передача - следует обратить внимание, что данный редуктор двухступенчатый, следовательно, направление вращения входного и выходного валов совпадают,
-
инерция - для формирования суммарного крутящего момента ротора двигателя и валов редуктора, приведённого к валу двигателя.
Подшипники барабанов
Тип подшипников, соответствующий заданному барабану - 3608. Для них можно определить следующие переменные:
Tb = 12e-3; # Момент трения подшипника - покоя [Н·м]
Tc = 6e-3; # Момент трения подшипника - скольжения [Н·м]
Vc = Tc*0.05; # Коэффициент вязкого трения [Н·м/(рад/с)]
В модели они представлены блоками вращательного терния - с удвоенными коэффициентами и моментами трения (два подшипника на ось барабана).ю
Лента конвейера
Лента конвейера - общего назначения, тип 2Л. Её параметры:
Bл = Lб; # Ширина ленты [м]
Lл = round((L*2+pi*Dб)*1.05); # Длина ленты [м]
mл = 3.75; # Удельная масса ленты [кг/п.м.]
Mл = mл*Lл; # Масса ленты [кг]
В модели она представлена блоком механической массы. Упругость, предел прочности и демпфирующие эффекты ленты не учитываются.
Груз
Груз в модели формируется при помощи блока источника силы - с периодической подачей груза случайной величины.
Fгруза_max = 5e3; # Максимальное натяжение ленты от груза [Н]
Fгруза_min = 1e3; # Минимальное натяжение ленты от груза [Н]
В модели учитывается накопление груза на ленте и снятие груза на конце конвейера спустя 51 секунду. Нелинейность характеристики перемещения каждого груза на ленте требует в дальнейшем более корректного учета.
Модель примера
Общий вид модели конвейера приведён на рисунке ниже:
Запустим модель при помощи программного управления моделированием и подготовленных заранее функций для удобства работы с моделью и результатами симуляции:
example_path = @__DIR__; # Получаем абсолютный путь к директории, содержащей текущий скрипт
cd(example_path); # Переходим в директорию примера
include("useful_functions.jl"); # Подключаем скрипт Julia со вспомогательными функциями
simout = get_sim_results("conveyor.engee", example_path) #запускаем моделирование
Результаты моделирования
Двигатель
Получим переменные записанных в модели сигналов, измеренных на двигателе:
t = thin(get_sim_data(simout, "Ток статора", 1, "time"), 50);
Is = thin(get_sim_data(simout, "Ток статора", 1, "value"), 50);
n = thin(get_sim_data(simout, "Обороты (у.е)", 1, "value"), 50);
Построим графики этих переменных:
gr(fmt=:png, aspectratio=:auto, xlims=:auto, ylims=:auto, size = (900,400))
I_graph = plot(t, Is; label = "I(t)", title = "Ток статора", ylabel = "I [A]", xlabel = "t [с]")
n_graph = plot(t, n; label = "n(t)", title = "Частота вращения ротора", ylabel = "n [у.е.]", xlabel = "t [с]")
plot(I_graph, n_graph)
По графикам видно, как периодически увеличивается на переменную величину ток статора, при этом частота ротора падает - это свидетельствует об увеличении нагрузки на валу двигателя. После 51 секунды можно наблюдать, что нагрузка перестаёт увеличиваться - грузы продолжают поступать на ленту, но попавшие на неё первыми уже снимаются с конвейера.
Конвейерная лента
Получим переменные из сигналов, записанных в модели на конвейерной ленте:
Vл = thin(get_sim_data(simout, "Скорость ленты", 1, "value"), 50);
Sл = thin(get_sim_data(simout, "Перемещение ленты", 1, "value"), 50);
Построим графики этих переменных:
gr(fmt=:png, aspectratio=:auto, xlims=:auto, ylims=:auto, size = (900,400))
V_graph = plot(t, Vл; label = "V(t)", title = "Скорость ленты", ylabel = "V [м/с]", xlabel = "t [с]")
S_graph = plot(t, Sл; label = "S(t)", title = "Перемещение ленты", ylabel = "S [м]", xlabel = "t [с]")
plot(V_graph, S_graph)
Скорость ленты прямо пропорциональна частоте вращения вала двигателя, средняя величина соответствует скорости,, определённой по справочнику для такого типа конвейера:
import Pkg; Pkg.add("Statistics")
using Statistics
Vл_ср = round(mean(Vл)*100, digits=2)
println("Средняя скорость ленты конвейера - $Vл_ср см/с")
Грузы на конвейере
В завершение анализа результатов моделирования проанализируем силы натяжения ленты от грузов на ленте:
Tmain = thin(get_sim_data(simout, "Сила натяжения грузов", 1, "value"), 50);
Tsub = thin(get_sim_data(simout, "Снятые грузы.1", 1, "value"), 50);
Tadd = thin(get_sim_data(simout, "Добавленные грузы.main_out", 1, "value"), 50);
Построим графики записанных сигналов:
gr(aspectratio=:auto, xlims=:auto, ylims=:auto, size = (900,500))
plot(t, Tmain; label = "Результирующее", title = "Натяжение ленты от грузов", ylabel = "T [Н]", xlabel = "t [с]")
plot!(t, Tadd; label = "От добавленных", ls=:dot)
plot!(t, -Tsub; label = "От снятых", ls=:dot)
Заключение
В результате расчёта и моделирования была разработана физическая модель ленточного конвейера с подачей грузов и учитывающая динамику натяжения ленты от грузов. В дальнейшей работе над проектом можно перейти к разработке системы управления конвейером.
Литература
- Конвейеры ленточные стационарные общего назначения с резинотканевой лентой. Каталог. Часть I. Оборудование // ОАО "Белохолуницкий завод" - 2002 г.