Skip to main content

Seeq System Identification Addon

Project description

System Identification

Seeq-System Identification is ..

A Seeq Add-on built in python to identify input and output relationship for the system to create digital twin models for various analytics and machine learning tasks. System dynamics are identified thereby allowing users to get dynamic predictions quickly. The Add-on is fully integrated with Seeq Workbench. Cleaned and contexutalized data from Seeq workbench can be used to identify dynamic models; the models can be pushed back into Seeq workbench. This framework supports both adhoc investigations as well as streaming predictions. The system identification framework can be used for a variety of tasks including simulation, digital twin construction, advanced process control, real time optimization, etc.

What does Seeq-System Identification do?

The System Identification Add-on supports contruction of a variety of dynamic models. White box models are primarily based on physics-based principles such as conservation laws and reaction kinetics for the chemical process. Development of these models requires extensive domain knowledge and is typically more expensive to build and maintain. Machine learning models are largely data driven. Greybox models combine the best of both; they simplify the white-box model by lumping several parameters into fewer parameters that can be identified from data with higher degrees of confidence. These models are capable of capturing the primary dynamics of the system but are valid over smaller ranges of operation. The SysID Add-on allows users to choose a modeling option based the application.

  1. Grey-box model identification (ARX, Transferfunction, Subspace models)
  2. Complex model identification (Neural Networks-based models)
  3. Hybrid Physics and Machine learning model identification

ARX model

ARX model is a system identification model that uses the linear correlation between previous and future values. ARX model consists of previous output terms (y) and previous input (u) terms multiplied by the linear coefficients (a, b). The linear combination of past input and output value computes the one-step-ahead prediction of output value(yk+1). Multiple iterations of the one-step-ahead prediction return the multi-step prediction (from yk+1 to yk+n). The time window of the past input and output terms is shifted toward next segment for every iteration for multi-step prediction. Here is an example formular with and for the single input and single output system,

: Auto-Regressive with eXogenous input
("Auto" indicates the past 'y' values, and "Exogenous" indicates the past 'u' values serving as model inputs)
: ARX coefficient for the past output value
: ARX coefficient for the past input value
: Number of terms for the past output value
: Number of terms for the past input value
: Delay between input and output
: present time step

Here is another example formular with delay ,

Although the ARX model can be more detailed by increasing the number of terms , it could result in an overfit. Thus, it could be an essential step to compare the training and validation set, ensuring the prediction for the validation set is as good as the training set. The model fitting can be quantified using different statistical methods such as MSE (Mean Squared Error) or SSE (Sum of Squared Error)

Overview

User Guide

https://user-images.githubusercontent.com/55245976/136423446-9babb1da-41e6-4fcc-8bc0-066f98fc189d.mp4

SeeQ-System Identification User Guide provides a more in-depth explanation of System Identification and how seeq-sysid works.


Installation

The backend of seeq-sysid requires Python 3.7 or later.

Dependencies

See requirements.txt file for a list of dependencies and versions. Additionally, you will need to install the seeq module with the appropriate version that matches your Seeq server. For more information on the seeq module see seeq at pypi.

User Installation Requirements (Seeq Data Lab)

If you want to install seeq-sysid as a Seeq Add-on Tool, you will need:

  • Seeq Data Lab (>= R50.5.0, >=R51.1.0, or >=R52.1.0)
  • seeq module whose version matches the Seeq server version
  • Seeq administrator access
  • Enable Add-on Tools (or External Tools) in the Seeq server

User Installation (Seeq Data Lab)

https://user-images.githubusercontent.com/55245976/137494969-43d93065-1e23-4e7c-952f-2397993eb269.mp4

  1. Create a new Seeq Data Lab project and open the Terminal window
  2. Run pip install seeq-sysid
  3. Upload developer_notebook.ipynb file to the Seeq Data Lab project.

For more information about adding this addon to the seeq workbench click here.


Important links

Source code

You can get started by cloning the repository with the command:

git clone https://github.com/BYU-PRISM/Seeq.git

Installation from source

For development work, it is highly recommended creating a python virtual environment and install the package in that working environment. If you are not familiar with python virtual environments, you can take a look here

Once your virtual environment is activated, you can install seeq-sysid from source with:

python setup.py install

Note: Remember that the seeq module version in your local environment should match the Seeq server version

User Interface Testing

To test the UI, use the developer_notebook.ipynb in the root directory of this project. This notebook can also be used while debugging from your IDE. You can also create a whl first, install it on your virtual environment, and then run developer_notebook.ipynb notebook there.


Changelog

0.0.7

  • Neural Network Model (RNN)
  • FIR Model

0.0.6

  • Installation made easier.
  • N4SID method was removed temporarily.

Support

Code related issues (e.g. bugs, feature requests) can be created in the issue tracker


Citation

Please cite this work as:

seeq-sysid v0.0.7
BYU PRISM Group https://apm.byu.edu/prism/
https://github.com/BYU-PRISM/Seeq

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

seeq_sysid-0.0.7.tar.gz (24.8 kB view hashes)

Uploaded Source

Built Distribution

seeq_sysid-0.0.7-py3-none-any.whl (28.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page