Моделирование движения сыпучего материала на вибрирующем лотке и в ячейках ленточного транспортера Земцова Е.В., Фетисов А.В. Тамбовский государственный технический университет Тамбов, Россия The simulation of the bulk material motion on a vibrating tray and in cells of a conveyor Zemtsova E.V., Fetisov A.V. Tambov State Technical University Tambov, Russia При реализации процесса непрерывного приготовления смеси сыпучих материалов на основе двухстадийной технологии дозирования каждый из компонентов совершает движение сначала по наклонному вибрирующему лотку, а затем в ячейках ленточного транспортера. Прежде всего, кратко рассмотрим теорию самого процесса, происходящего с точки зрения физики, определяющую математический аппарат расчетов программы, далее, рассмотрим особенности построения и логики самой программы, например, использование памяти и проектирование интерфейса, наконец, рассмотрим конкретные примеры работы приложения. 1. Теория Рассмотрим лоток, состоящий из определенного количества ячеек одинаковых по форме и размерам. Загружаем некоторое количество вещества сыпучего материала в ячейки определенные нами. Такая начальная загрузка, т.е. положение конкретных порций материала в конкретных ячейках, называется вектором начальной загрузки и, с точки зрения математики, может быть приведена как вектор-строка, длиной равной количеству ячеек лотка, каждый элемент которой показывает какое количество вещества загружено в соответствующую индексу этого элемента ячейку. Обозначим его как , где m – количество ячеек лотка, т.е. его длина. Таким образом, в ячейке 1 содержится материала, в ячейке 2 - и т.д. до ячейки m. Для последующего распределения начальной загрузки по ячейкам на лоток подается вибрация, таким образом, рассматривается итерационная задача во времени, каждый малый и постоянный интервал распределения вектора которого определяет шаг работы системы. Текущее состояние вектора , вектор некотором шаге на , будет отвечать на поставленную задачу: какое распределение имеет вектор начальной загрузки Длина промежутка времени при -ой итерации. такова, что можно утверждать следующее: материал конкретной ячейки успевает перейти только в соседние ей. Вектор зависит только от вектора , но, например, не от или любого другого вектора, процесс обладает марковским свойством и называется марковской цепью p12 p23 2 p22 1 p11 p12 pm-1,m 3 p33 p23 m pm,m m-1 pm-1,m-1 pm-1,m Существует набор трех вероятностей для конкретной ячейки, каждая из которых определяет: сколько вещества уйдет в предыдущую ячейку, сколько останется в текущей и какое количество вещества перейдет в следующую ячейку на некотором шаге работы установки. Сумма таких вероятностей будет равна единице. Рассмотрим каждую ячейку вектора состояния системы отдельно. Элементы вектора определяются через элементы Осталось в 1 Пришло из 2 S1k+1=p11S1k + p21S2k Ничего не пришло из 3 + 0·S3k + Пришло из 1 Осталось в 2 Пришло из 3 как: 0·S4k + 0·S5k + … Ничего не пришло из 4 S2k+1=p12S1k + p22S2k + p32S3k + 0·S4k + 0·S5k + … S3k+1=0·S1k + p23S2k + p33S3k + p43·S4k + 0·S5k + … S4k+1=0·S1k + 0·S2k + p34S3k + p44·S4k + p54S5k + … ……………………………………………………………... Итак, при исходной строке выше, вектор на , где p11 p 21 0 P= ... 0 0 p12 p 22 p 32 ... 0 0 , согласно системе уравнении шаге будет определяться как: – матрица переходных вероятностей, вида: 0 p 23 p 33 ... 0 0 ... 0 ... 0 ... 0 ... ... ... p m−1,m−1 ... p m,m−1 p m −1,m p mm 0 0 0 ... Очевидно, что свойствами матрицы будут: 0 ≤ p ij ≤ 1 и является стохастической. В поставленной задаче будем рассматривать матрицу вида m ∑p j=1 ij = 1 , т.е. она p11 p 21 0 P = ... 0 0 p12 0 ... 0 p 22 p 23 ... 0 p 32 ... p 33 ... 0 ... 0 0 ... p m −1,m −1 0 0 ... ... ... 0 0 0 0 , описывающую систему ячеек с коллектором ... p m −1,m 1 расположенным в конце лотка - абсорбирующей ячейкой. Частицы, попадая в такую ячейку из предыдущей, остаются в ней и не могут возвратиться обратно, отсюда и объяснение выбора элемента матрицы , т.е. вероятность того, что попавший в абсорбирующую ячейку материал возвратиться назад равна 0. Матрица рассматриваемой задачи будет однородна, т.е. значения ее элементов не меняются во времени, другими словами, с переходом от шага к шагу. Выбор подобной матрицы объясняется физически: в рассматриваемой задаче мы не собираемся менять параметры работы установки, например, как энергию перемешивания, способные на некоторой итерации изменить вид самой матрицы переходных вероятностей. Также, будем считать, что вероятности перехода материала из каждой ячейки в последующую равны, как равны между собой и вероятности перехода материала обратно в предыдущую. Таким образом, элементы матрицы вероятностей выше главной строки будут равны между собой, как и элементы главной строки и ниже ее (исключая элементы первой и последней, содержащей вероятность расположения вещества в абсорбирующей ячейке, строки). Исходя из вышесказанного, для определения характера распределения вектора загрузки во времени необходимо задать на вход , помимо самого вектора начальной загрузки, еще и саму матрицу переходных вероятностей, для описания которой необходимо знать элементы над, под и на главной строке. Это имеет свое отражение в построении пользовательского интерфейса приложения. Определим еще один параметр – вектор догрузки, который показывает характер догрузки новой порции сыпучего материала в лоток с каждой новой итерацией. Математический аппарат такой задачи будет выглядеть как: вектор - ,где догрузки. Для имитации быстрого сдвига материала по ячейкам вправо, на одну ячейку, будем использовать матрицу перехода. Она понадобится нам для имитации работы конвейера, где из итерации в итерацию сдвиг материала будет происходить вправо, к концу конвейера. Приведем пример такой матрицы из сформированного приложением файла данных системы Количество нулей от главной диагонали перед первой единицей в строке говорит о том, через сколько ячеек вперед должна сдвигаться смесь конкретной ячейки из итераций в итерацию, в нашем случае, количество таких нолей будет нулевым, поскольку мы исследуем модель сдвига материала в соседнюю правую ячейку, вещество за одну итерацию переместится вперед, имитируя работу конвейера. Описывая математически, влияние матрицы перемещений на каждой итерации будет выглядеть как: , где матрица перемещений Естественно, вид матрицы переходных вероятностей несколько изменится, а именно поменяется количество ее абсорбирующих ячеек. Так, для примера выше при показанной матрице перехода, матрица переходных вероятностей имеет вид: Эта матрица сгенерирована приложением, согласно входным вероятностям, длине лотка и конвейера по 10 ячеек. С математической точки зрения, подобный вид матрицы переходных вероятностей и матрицы перехода, связан с тем, что сдвиг по ячейкам всегда происходит на единицу вправо. Потом распределение материала должно происходить только в лотке, а на конвейере он должен только смещаться, поэтому матрица вероятностей состоит условно из двух частей, первая (выделено синим цветом) отвечает за материал в лотке и разрешает ему свободно распределятся в зависимости от входных характеристик, вторая часть (красный цвет) запрещает распределение вещества в конвейере, основная цель которого – перенести вещество, без потерь и смешивания, с конца лотка на конец конвейера. Пример такого переноса рассмотрим чуть ниже. Таким образом, с точки зрения входных параметров, пользователю не важно задавать каждый новый раз одни и те же параметры, которые участвуют в моделировании конвейера, например количество нолей от главной диагонали и т.д., программа сама вносит коррективы в заданную пользователем матрицу переходных вероятностей по трем определяющим, согласно теории построения конвейера. Программный модуль требует задание длины конвейера и длины лотка. При формирование данных, во избежание ошибок математики при умножении матриц, приложение добавляет к исходному вектору начальной загрузки как и к вектору догрузки , нулевые ячейки в конце, количество которых равно длине конвейера. Таким образом, формула будет математически правильной, т.к. размерность входящих в нее векторов будет согласована верно и операция умножения вектора на матрицу будет определена Такое добавление не находит отражения в пользовательском интерфейсе, пользователю будет представлен вектор загрузки и догрузки согласно размерам, которые он задал для них, поскольку внутренний математический аппарат приложения должен быть внутренним и некоим образом не должен визуально смущать пользователя. Как выглядит диалог пользователя и приложения, мы увидим в следующем пункте, а пока приведем пример того, как модуль сформировал матрицы по заданным пользователем длине лотка 10, длине конвейера 5 и трем ключевым значениям матрицы вероятностей: 0,5 0,2 и 0,3. Видно, что программа привела данные так, чтобы свести расчеты процессов распределения материала в лотке и последующее его движение по конвейеру, к единому процессу расчета. В этом и заключается суть имитации процесса распределения сыпучего вещества модели «лоток-конвейер» Обобщая все сказанное выше, входные параметры, которые пользователь должен задать для работы приложения – это размерности лотка и конвейера, матрица переходных вероятностей (задается по трем определяющим вероятностям), вектора загрузки и догрузки, общее количество догрузок и итерацию, на которой следует выяснить вид распределения. Здесь также имеется опция «авто расчет», т.е. расчет ведется до тех пор, пока в конвейере не останется единственная ячейка с материалом, поскольку все остальное выйдет из конвейера, т.е. просто упадет со стороны, обратной лотку, подающем на конвейер материал. «Авто-расчет» нужен для быстрого нахождения количества материала в такой ячейке и шага, на котором эта остановка алгоритма произойдет. Ясно, что «авто расчет» может просто напросто зациклится, если с каждой новой итерацией, подавать в лоток материал в виде вектора догрузки, поэтому, во избежание логической ошибки программы, приложение просит указать конкретное число догрузок. 2.Логика построения программы и пользовательский интерфейс Разработка пользовательского интерфейса является не менее важной и, даже, сложной частью реализации программы. Здесь необходимо учитывать особенности входных данных: это может быть целое число, дробное с плавающей точкой, массив чисел (как для вектора загрузки и догрузки), важно учитывать и использовать рационально экранное пространство, также и возможность ошибки ввода пользователем и исключение, в таком случае, системных ошибок, блокирующих работу приложения. Интерфейс программы динамичен, вид его зависит от того, какие опции моделирования и расчета выбирает пользователь и на каком этапе заполнения структур входных данных он находится. Так выглядит окно приложения при задании матрицы вероятностей: И так выглядит окно приложения непосредственно после ее формирования: Другими словами, мы скрываем от пользователя то, что пока. При работе с данными ему не важно. Это позволяет избежать нагромождения полей ввода, пользователь обращается к ним по мере того, как это ему потребуется логически. Далее, переходя к логической структуре программы, использование матриц, согласно теории постановки задачи, означает использования массивов данных. Хотя проблема утечки памяти не столь важна на современном этапе развития вычислительной техники, программа использует динамические типы данных. Таким образом, конкретные наборы массивов создаются под конкретные начальные условия, согласуя размерность свою размерность и свой тип данных. При окончании работы приложения, при внесении изменений начальных условий, созданная система массивов будет видоизменятся или удалятся, например при выходе из приложения, не нарушая целостность памяти и не занимая лишнего ее пространства. Это позволяет избежать утечку памяти, а также возникновение проблем с адресацией массивов памяти и, следовательно, ошибок системы. Все структуры интерфейса, имеющие сходную с массивом конструкцию, как например, окно заполнения вектора догрузки, также взаимодействуют с начальными параметрами задаваемыми пользователем, также удаляются и изменяются динамически. Помимо всего прочего, программа создана с учетом возможных ошибок пользователя при работе с интерфейсом. Так, например, окошко задания размерности системы допускает только целые положительные числа, что позволяет избежать появления окон ошибок операционной системы и блокировку системой приложения. Все сформированные данные и отчетности записываются в .txt файл во избежание проблем совместимости приложения с другими программами. Пользователь может в любой момент открыть соответствующий файл и узнать, какая, например, матрица переходных вероятностей была при последнем использовании программы и т.п. 3.Примеры работы программы Рассчитаем систему, согласно тем примерам матриц выше, т.е. задаем матрицу с элементами 0,2 0,3 и 0,5 в системе с лотком и конвейером размерами по 10 ячеек каждый. Вектор начальной загрузки, как и в прочем, догрузки, пусть представляет собой загрузку единицы материала в первую ячейку. Делаем авто-расчет с нулем догрузок: Приложение выдает значение в последней ячейке, равное 0.01 и определяет число итераций, при котором материал останется только в последней ячейке – это 38-ой шаг. Рассчитаем то же, но с догрузкой в 10 шагов: Картинка та же, но количество итераций вырастет до 50. Рассчитаем теперь значение вектора загрузки не по опции «авто-расчет» а на каком-то определенном шаге, при нулевой догрузке. Так, на 9 шаге имеем картинку распределения: а на 10, следующем шаге: Видно, что на один шаг выше, материал в лотке распределился, в то же время, материал на конвейере не изменился, а лишь только сдвинулся. Значение в 10 ячейке (конец лотка) на 9 итерации переместилось неизменно на итерации 10 на начало конвейера, т.е. в 11-ую ячейку. Это говорит о том, что порция исходного материала падает с конца лотка на конвейер и передвигается далее в ячейках транспортера. Таким образом, разработанная программа позволяет полностью имитировать непрерывный процесс приготовления смеси сыпучих материалов. СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 1. Першин В.Ф. Модель процесса смешивания сыпучего материала в поперечном сечении вращающегося барабана/В.Ф.Першин // Порошковая металлургия.- 1986.-№ 10.- С. 1-5. 2. : Баранцева моделирование, Е.А. Процессы оптимизация, смешивания расчет / сыпучих Е.А.Баранцева, материалов В.Е.Мизонов, Ю.В.Хохлова/ - ГОУВПО «Ивановский государственный энергетический университет им. В.И.Ленина», Иваново, 2008. – 116 с. 3. Селиванов Ю.Т. Исследование влияния осевого движения на процесс непрерывного смешивания сыпучего материала во вращающемся барабане / Ю.Т.Селиванов, В.Ф.Першин // Известия вузов. Химия и химическая технология.-2003.-Т. 46, вып. 7.-С. 42-45.