Сообщество Engee

Модель конвейера

Автор
avatar-alexevsalexevs
Соавторы
avatar-mikhailpetrovmikhailpetrov
Notebook

Моделирование ленточного конвейера

В этом примере мы рассмотрим расчёт и моделирование ленточного конвейера с использованием блоков физического моделирования.

Введение

В общем виде устройство ленточного конвейера можно представить так, как показано на схеме:

image.png

В качестве допущения для итоговой модели не будем учитывать динамику натяжения и провисания ленты конвейера, следовательно, модель можно упростить до нескольких элементов:

  • электропривод,

  • редуктор,

  • приводной барабан с подшипниками,

  • концевой барабан с подшипниками,

  • лента конвейера.

  • груз переменной массы.

Расчёт параметров конвейера

Для примера расчёта и моделирования возьмём конвейер 5025-40, параметры оборудования которого выберем согласно [1].

Зададим длину L конвейера:

L = 30; # Расстояние между барабанами [м]

Электропривод

Двигатель, используемый в этом примере - асинхронный с короткозамкнутым ротором (АД КЗР) АИР 132 S4. Мощность - 7.5 кВт, частота вращения - 1455 об/мин. Он был рассчитан и смоделирован ранее, в примере параметрирования АД.

Барабаны

Барабаны для указанного типа конвейера - приводной и концевой имеют типоразмер 5025Г-40. Он определяет следующие характеристики, необходимые для физического моделирования:

 = 250e-3; # Диаметр барабана [м]
 = 500e-3; # Длина барабана [м]
 = 58; # Масса барабана [кг]
 = 0.5**(/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Л. Её параметры:

 = ; # Ширина ленты [м]
 = round((L*2+pi*)*1.05); # Длина ленты [м]
 = 3.75; # Удельная масса ленты [кг/п.м.]
 = *; # Масса ленты [кг]

В модели она представлена блоком механической массы. Упругость, предел прочности и демпфирующие эффекты ленты не учитываются.

Груз

Груз в модели формируется при помощи блока источника силы - с периодической подачей груза случайной величины.

Fгруза_max = 5e3; # Максимальное натяжение ленты от груза [Н]
Fгруза_min = 1e3; # Минимальное натяжение ленты от груза [Н]

В модели учитывается накопление груза на ленте и снятие груза на конце конвейера спустя 51 секунду. Нелинейность характеристики перемещения каждого груза на ленте требует в дальнейшем более корректного учета.

Модель примера

Общий вид модели конвейера приведён на рисунке ниже:

image.png

Запустим модель при помощи программного управления моделированием и подготовленных заранее функций для удобства работы с моделью и результатами симуляции:

example_path = @__DIR__; # Получаем абсолютный путь к директории, содержащей текущий скрипт
cd(example_path); # Переходим в директорию примера
include("useful_functions.jl"); # Подключаем скрипт Julia со вспомогательными функциями
simout = get_sim_results("conveyor.engee", example_path) #запускаем моделирование
SimulationResult(
    "Перемещение ленты" => WorkspaceArray{Float64}("conveyor/Перемещение ленты")
,
    "Сила натяжения грузов" => WorkspaceArray{Float64}("conveyor/Груз случайной массы/Сила натяжения грузов")
,
    "Ток статора" => WorkspaceArray{Float64}("conveyor/Ток статора")
,
    "Сила натяжения от груза" => WorkspaceArray{Float64}("conveyor/Груз случайной массы/Сила натяжения от груза")
,
    "Снятые грузы.1" => WorkspaceArray{Float64}("conveyor/Груз случайной массы/Снятые грузы.1")
,
    "Добавленные грузы.main_out" => WorkspaceArray{Float64}("conveyor/Груз случайной массы/Добавленные грузы.main_out")
,
    "Обороты (у.е)" => WorkspaceArray{Float64}("conveyor/Обороты (у.е)")
,
    "Скорость ленты" => WorkspaceArray{Float64}("conveyor/Скорость ленты")

)

Результаты моделирования

Двигатель

Получим переменные записанных в модели сигналов, измеренных на двигателе:

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)
No description has been provided for this image

По графикам видно, как периодически увеличивается на переменную величину ток статора, при этом частота ротора падает - это свидетельствует об увеличении нагрузки на валу двигателя. После 51 секунды можно наблюдать, что нагрузка перестаёт увеличиваться - грузы продолжают поступать на ленту, но попавшие на неё первыми уже снимаются с конвейера.

Конвейерная лента

Получим переменные из сигналов, записанных в модели на конвейерной ленте:

 = thin(get_sim_data(simout, "Скорость ленты", 1, "value"), 50);
 = thin(get_sim_data(simout, "Перемещение ленты", 1, "value"), 50);

Построим графики этих переменных:

gr(fmt=:png, aspectratio=:auto, xlims=:auto, ylims=:auto, size = (900,400))
V_graph = plot(t, ; label = "V(t)", title = "Скорость ленты", ylabel = "V [м/с]", xlabel = "t [с]")
S_graph = plot(t, ; label = "S(t)", title = "Перемещение ленты", ylabel = "S [м]", xlabel = "t [с]")
plot(V_graph, S_graph)
No description has been provided for this image

Скорость ленты прямо пропорциональна частоте вращения вала двигателя, средняя величина соответствует скорости,, определённой по справочнику для такого типа конвейера:

import Pkg; Pkg.add("Statistics")
   Resolving package versions...
  No Changes to `~/.project/Project.toml`
  No Changes to `~/.project/Manifest.toml`
using Statistics
Vл_ср = round(mean()*100, digits=2)
println("Средняя скорость ленты конвейера - $Vл_ср см/с")
Средняя скорость ленты конвейера - 61.27 см/с

Грузы на конвейере

В завершение анализа результатов моделирования проанализируем силы натяжения ленты от грузов на ленте:

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)
No description has been provided for this image

Заключение

В результате расчёта и моделирования была разработана физическая модель ленточного конвейера с подачей грузов и учитывающая динамику натяжения ленты от грузов. В дальнейшей работе над проектом можно перейти к разработке системы управления конвейером.

Литература

  1. Конвейеры ленточные стационарные общего назначения с резинотканевой лентой. Каталог. Часть I. Оборудование // ОАО "Белохолуницкий завод" - 2002 г.