Package: seeq-sysid
System IdentificationSeeq-System Identification is ...A Seeq Add-on built-in python to identify input and output relationships for the system to createdigital twinmodels 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 contextualized data from Seeq workbench can be used to identify dynamic models; the models can be pushed back into Seeq workbench. This framework supports both ad-hoc 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 the construction 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 on the application.Grey-box model identification (ARX, Transfer Function, Subspace models)Complex model identification (Neural Networks-based models)Hybrid Physics and Machine learning model identificationARX modelARX 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+1to yk+n). The time window of the past input and output terms is shifted toward the next segment for every iteration for multi-step prediction.
Here is an example formula withandfor 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 stepHere is another example formula withdelay,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 asMSE(Mean Squared Error) orSSE(Sum of Squared Error)OverviewUser Guidehttps://user-images.githubusercontent.com/55245976/136423446-9babb1da-41e6-4fcc-8bc0-066f98fc189d.mp4SeeQ-System Identification User Guideprovides a more in-depth explanation of System Identification and how
seeq-sysid works.InstallationThe backend ofseeq-sysidrequiresPython 3.7or later.DependenciesSeerequirements.txtfile for a list of
dependencies and versions. Additionally, you will need to install theseeqmodule with the appropriate version that matches your Seeq server. For more
information on theseeqmodule seeseeq at pypi.User Installation Requirements (Seeq Data Lab)If you want to installseeq-sysidas a Seeq Add-on Tool, you will need:Seeq Data Lab (>= R52.1.5, >=R53.0.2, or >=R54)seeqmodule whose version matches the Seeq server versionSeeq administrator accessEnable Add-on Tools (or External Tools) in the Seeq serverNote:For older versions of Seeq Data Lab you can find the installation guide `here``](https://user-images.githubusercontent.com/55245976/137494969-43d93065-1e23-4e7c-952f-2397993eb269.mp4).User Installation (Seeq Data Lab)Create anewSeeq Data Lab project and open theTerminalwindowRunpip install seeq-sysidRunpython -m seeq_sysid [--users <users_list> --groups <groups_list>]For more information about adding this addon to the seeq workbenchclick here.Important linksDocumentation for SysID Add-onOfficial source code repoSystem Identification with Industrial Data WebinarSource codeYou can get started by cloning the repository with the command:gitclonehttps://github.com/BYU-PRISM/Seeq.gitInstallation from sourceFor development work, it is highly recommended to create 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
lookhereOnce your virtual environment is activated, you can installseeq-sysidfrom the source with:Go to the setup.py directory (Seeq/'SysID Addon')pythonsetup.pyinstall--userNote:Remember that theseeqmodule version in your local environment should match the Seeq server versionUser Interface TestingTo test the UI, use thedeveloper_notebook.ipynbin 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
rundeveloper_notebook.ipynbnotebook there.Changelogv1.0.1Notebook extensions and requirements updatev1.0.0Minor improvementsEmpty worksheet warningPerformance improvementsv0.7.1Hotfix: dependencies updated for R57>=v0.7.0Performance improvement in TF identificationProgress bar added to TF identificationLegends added to TF chipsetsBugs fixed for normalized plots in TF identificationv0.6.1Minor bugs fixedv0.6.0MA model addedUnits switch addedVersion number added to the GUIv0.5.1Minor bugs fixedv0.5.0ARIMAX model addedMinor improvementsGUI object moved to app.pyDisplay results after calculation (Default)Unit compatibility error fixedWorkbook pull step bypassedPush functions improvedv0.4.1Hotfix for R57+ (search, pull, push functions)v0.4.0Export ARX model (Gekko sysid outputs as a pickle)Data Editor Addedv0.3Push formula added for Transfer FunctionARX Seeq formula fixedMistune package conflict resolvedv0.2Transfer FunctionDocumentation addedShift method added to SubSpace.Installation made easier.Open Worksheet moved to the Hamburger Menu.v0.1Minor improvementsv0.0.7Neural Network Model (RNN) addedFIR Model addedv0.0.6Installation made easierN4SID method was removed temporarily.SupportCode-related issues (e.g. bugs, feature requests) can be created in theissue trackerCitationPlease cite this work as:seeq-sysidv1.0.1
BYUPRISMGrouphttps://apm.byu.edu/prism/
https://github.com/BYU-PRISM/Seeq