Coder Social home page Coder Social logo

leilovelei / co2-conversion-plant-automation Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jl978/co2-conversion-plant-automation

0.0 1.0 0.0 798 KB

An integrated desktop application, created using PyQt5, used to automate data acquisition and analysis in a CO2 to Ethylene pilot plant

Python 100.00%

co2-conversion-plant-automation's Introduction

CO2 to Ethylene Conversion Plant Automation

A gui desktop app used to automate the data acquisition and analysis at an CO2 to Ethylene pilot plant. The app was created using a combiniation the PyQt5, pyautogui and matplotlib libraries.

demo demo

Motivation

Within a CO2 conversion pilot, gas analysis requires starting up the Gas Chromatography (GC) machine approximately every 20 mins to take a sample. The software associated with the machine however does not come with an exposed API, therefore pyautogui was used to locate the software and run the machine manually.

Futhemore, to anlyze the data, one must take the integration of different peaks in the output raw chromatogram which can become a very tedious task to do. To automate this task, the raw files must be converted into csv files. This task can only be done by image analysis through a software called openchrom. This process was then also automated using pyautogui. The csv file can be analyzed using the scipy package.

GC chromatogram example
example of a chromatogram output raw file and manual integration

Additionally, there are 5 different streams of gas plus a combination of all of them that need to be cycled through every sampling cycle. Depending on the stream type, different data can be collected. To solve this problem, the main app allow the user to define the cycle in which the output gas to the sampling line take place, which side of the reactor the gas is coming from (cathode or anode), and how frequent to run the program.

Features

Main Application User Interface
The main user interface

  • Allow user to define time between runs in 30 seconds increment
  • Allow the user to pick which defined cycle they want the program to run at (calling from a sqlite database)
  • Allow the user to choose if they want to switch the sampling to the anode side (anode side runs are not an often occurence)
  • Starting and stopping the program at anytime
  • Adding a newly defined cycle (saving it to a sqlite database)

Sequence Edit User Interface
The window that let users create a new cycle definition and add it to the database

  • Viewing saved cycles and deleting them (removal from the database)

Sequence View User Interface
The window that let users create a new cycle definition and add it to the database

  • Collect the converted data the csv files and apply Simpson's rule integration at known gas peak to find peak area
  • Use the collected peak areas to convert into useful data such as molar flow, FE, etc.
  • View an important parameter called FE in real time

FE View User Interface
FE view window

  • Graph all the important paramters in real time by integrating matplotlib with PyQt5

Graphing User Interface
Graphing window

co2-conversion-plant-automation's People

Contributors

jl978 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.