Code Monkey home page Code Monkey logo

identpy_gui's Introduction

identPy_GUI

This repository contains the GUI application developed for identPy, a framework for parameter estimation of nonlinear dynamic systems. This application was created using PySide2.

Installation

Install the GUI requirements by executing the following command on the terminal:

$ pip install -r requirements.txt

Usage

To start the GUI application, simply run the script main.py located on the root directory of this repository.

The initial page will be displayed with some information about the software.

Next, a page for model selection is shown. In this page, the user will indicate which model will be estimated. When the model is selected, a short text with information about the model selected is displayed. The user must also indicate the location of file containing the measurements and which columns of the data correspond to the inputs and outputs, as well as the initial conditions of states.

On the next page, the user will be able to select the estimation methods that will be applied. By clicking on the select box, the user enables the estimation in two steps, where the solution found by the first method is used as starting point by the second method in order to refine it.

The configuration of the chosen methods is done on the subsequent views. Each method has its own custom configuration page based on a template (MVMO's page is presented below). On the upper half of the page, the user must set general configurations for the method, i.e. population size and tolerance, while on the bottom portion, settings specific to the model chosen are defined.

With all set, the estimation process can start. The next page shows the current results of the estimation in three tabs. The first one contains graphs depicting the outputs from the real system and the current solution. The "Parameters" tab presents the current value of the parameters estimated by the software. A log with information of how the estimation process evolved is displayed in the last tab.

Contributing

Users are welcome to contribute to identPy with new methods, models and pages.

Page design

It is recommended to use Qt5 Designer tool in order to create new pages and modify existing ones. It can be installed by executing the following command:

$ sudo apt install qttools5-dev-tools

In order to convert the ui files generated by Qt5 Designer into python code, use the following command on terminal:

$ pyside2-uic ui_file.ui -o python_file.py

identpy_gui's People

Contributors

gnegrelli avatar

Watchers

 avatar  avatar

identpy_gui's Issues

Navigation through tabs

Instead of navigating through all pages in order to estimate the parameters of a model, it could be possible to add tabs for each step.

If the users want to twitch parameters of methods or even choose which methods will be used on the estimation, they can access those tabs and set those values. If they only want a quick estimation, they can jump to the estimation process and later decide if adjusts are needed.

In the case of quick estimation, default methods and settings will be applied to the estimation process. Those default values must be implemented as well.

Create signal listeners

Create signal listeners on results page to update labels.

  • Listener for start of method

  • Listener for each iteration

  • Listener for change in solution

  • Listener for end of method

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.