Осокин В.В., Алимов Р.Ф.
Курс предназначен для выпускных курсов Механико-математического факультета (как математиков, так и механиков). Студентов, успешно прошедших курс в 2017 году, компания Два Облака готова взять на стажировку с начала 2018 года, а после защиты диплома – на работу.
В сентябре 2017 года будут прочитаны три вводные лекции для того, чтобы студенты глубже поняли тематику. Первая лекция состоится в четверг 14 сентября в 18:00, встреча у кафедры МаТИС Механико-математического факультета МГУ.
Для того, чтобы участвовать в данном курсе, необходимо подписаться на группу Курс "Промышленная математика" во ВКонтакте. Там мы сможем выбрать наиболее удобное всем время, когда читать курс в комментариях к заметке «Обсуждение: удобное время для проведения курса. Пишем время в комментариях.».
Курс читают к.ф.-м.н. Осокин Виктор Владимирович и выпускник Механико-математического факультета МГУ Алимов Рустамжон Фахриддинович.
В сфере IT сейчас популярны роботы, машинное обучение, Big Data, мобильные приложения и прочие современные технологии. При этом многие хотят работать и открывать стартапы в этих сферах в отрыве от прочих областей их применения. В частности, во многом забыто огромное направление, очень близкое именно к Механико-математическому факультету МГУ – автоматизация при помощи современных веб и мобильных технологий производственных и коммерческих процессов на заводах России.
Одно из очень значимых направлений – строительство. Оно ведется в России всё большими темпами, соответственно нужно программное обеспечение, позволяющее как можно быстрее и точнее рассчитывать оборудование для различных объектов строительства.
При этом построить на объекте строительства стены и перекрытия – это лишь пол дела. Вторая половина – это провести всю инфраструктуру, а именно электричество, воду, отопление, сделать общую вентиляционную систему объекта и систему кондиционирования.
Последние направления объединены в общую сферу, которая носит название ОВиК (отопление, вентиляция и кондиционирование) / HVAC (heating, ventilation and cooling). Компания Два Облака исторически при разработке своих программных продуктов уделяет большое внимание сфере ОВиК и является лидером программного обеспечения России на этом рынке (см. список клиентов на рис.).
Данный курс (лекции + практикум) ставит целью познакомить слушателей с базовыми идеями создания программных продуктов на примере вентиляции. Курс будет интересен и математикам, и механикам Механико-математического факультета МГУ, поскольку в этой сфере требуются как знания и умение разобраться в алгоритмах (от банального задания кривых полиномами, поиска пересечения кривых, работы с координатами, до решения двумерных и трехмерных задач об упаковке, анализа Big Data объектов строительства), так и в программировании (рассказ будет вестись на примерах языков JavaScript, PHP, SQL), так и в физике процессов (будут рассказаны общие идеи и реализация расчета вентиляторов – ключевого оборудования в сфере вентиляции).
Необходимо подготовить верстку конфигуратора промышленного вентиляционного оборудования. Конфигуратор должен состоять из поля сбора конфигурации вентиляционной установки, поля со списком доступных секций в виде иконок и из опросного листа с формами для двух секций - для вентилятора (поля "Расход воздуха" и "Свободное давление") и для фильтра (поле "Потеря давления"). Кроме того в поле для сбора конфигурации необходимо собрать установку, состоящую из фильтра, водяного нагревателя и вентилятора.
Необходимо реализовать перетаскивание секций в поле для сбора установки из поля со списоком секций, необходимо реализовать возможность удаления секций из конфигурации и перемещение секций внутри конфигурации установки. Для того, чтобы учесть необходимость дальнейшего открытия ранее сохраненных конфигураций, необходимо хранить конфигурацию установки в виде массива объектов-секций в JavaScript. Реализовать возможность передачи в конфигуратор заранее определенных конфигураций и их построение в конфигураторе. К каждой секции в установке необходимо приписывать уникальную строку (например, GUID) и хранить данную строку в конфигурации установки и в опросном листе.
Необходимо реализовать генерацию опросного листа в соответствии с конфигурацией установки. У вентилятора форма должна содержать поля "Расход воздуха" и "Свободное давление", формы остальных секций должны содержать поле "Потеря давления". Формы должны располагаться в той очередности, в которой расположены секции в установке слева направо.
Необходимо создать базу данных для системы и в этой базе данных создать таблицу вентиляционных установок. В таблице должны быть следующие колонки: id, название, конфигурация установки, параметры опросного листа. Реализовать вывод списка установок, создание новой установки, открытие и удаление существующей установки. При создании новой установки необходимо в поле конфигурации записывать установку, состоящую из фильтра, водяного нагревателя и вентилятора (при этом также записывать данные опросного листа для данной установки со значениями по умолчанию). При открытии существующей установки необходимо вызывать ее построение в конфигураторе и в опросном листе.
Необходимо реализовать сохранение конфигурации установки в базе данных при каждом изменении установки. Также при каждом изменении установки сохранять опросный лист в базе данных. Кроме того, при изменении значений полей опросного листа необходимо записывать новые значения в базу данных.
Необходимо создать таблицу моделей вентиляторов в базе данных, состоящую из следующих колонок: id, название, a0, a1, a2, a3, a4, a5, максимальное давление, максимальный расход.
Необходимо реализовать расчет установки, который подразумевает собой сложение потерь на всех секциях, добавление к ним свободного давления на вентиляторе (получили значение требуемого давления), взять значение расхода воздуха на вентиляторе и подобрать вентилятор, максимальное давление и максимальный расход больше, чем получившиеся требуемые расход и давление. Кроме того, необходимо, чтобы график вентилятора был выше требуемой точки. Вентиляторы необходимо отсортировать по максимальному расходу и по максимальному давлению по возрастанию и взять первыйх вентилятор из списка. Данные подобранного вентилятора и требуемую точку нужно записать в новый столбец в таблице установок (поле результатов расчета). Для того, чтобы понимать, установка рассчитана или нет, необходимо также создать столбец для статуса установки: рассчитана или нет. Учесть статус установки при ее открытии. Если статус "не рассчитана", то открывать конфигуратор, если статус "рассчитана", то просто написать надпись "Рассчитана".
Необходимо реализовать вывод результата расчета установок со статусом "рассчитано". Результаты расчета должны состоять из таблиц параметров-техданных для каждой из установок, аналогично тому, как был реализован опросный лист. В таблице техданных для вентилятора выводить требуемые расход, давление и название подобранного вентилятора. Для всех остальных секций выводить потери давления. Также добавить в расчет отрисовку установки в том виде, в котором она была собрана в конфигураторе. Каждая секция должна представлять квадрат с соответствующей данной секции иконкой. Кроме того, необходимо создать кнопку "Пересчитать установку" и по нажатии на нее переводить устанвоки в статус "не рассчитана".
Реализовать вывод осей координат от нуля до максимального расхода и давления вентилятора с прибавлением 5% к данным максимальным значениям. Реализовать вывод требуемой точки на графике.
Реализовать вывод графика вентилятора от нуля до максимального расхода и выводить параболу сети, начинающуюся с начала координат, проходящую через требуемую точку и заканчивающуюся на максимальном расходе вентилятора.