Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project...

34
Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS Feb 21, 2010 Indian Institute of Technology Roorkee Roorkee

Transcript of Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project...

Page 1: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Plot Project Report on

Software tools, Open Source tools, Simulation tool

SOFTWARE TOOLS

Feb 21, 2010

Indian Institute of Technology Roorkee Roorkee

Page 2: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page ii

Table of Contents

1.  INTRODUCTION .....................................................................................................................1 

2.  PROJECT SCOPE..................................................................................................................1 

3.  SELECTION OF TECHNOLOGY .........................................................................................2 

4.  COMPARISON OF OPEN SOURCE SOFTWARE OVER PROPRIETARY

SOFTWARE .............................................................................................................................5 

5.  COMPARISON OF WEB BASED VERSES STAND-ALONE PACKAGES ................7 

6.  COMPARISON OF DIFFERENT TECHNOLOGIES .........................................................8 

7.  COMPARISON OF SERVERS (APACHE, TOMCAT ETC) ..........................................10 

8.  ADVANTAGES OF MOD_PYTHON AND DJANGO .....................................................11 

9.  F2PY ........................................................................................................................................13 

10.  PLATFORM FOR DEVELOPMENT OF WEB BASED APPLICATIONS ...................13 

11.  NUMERICAL METHODS TOOLBOX................................................................................15 

12.  CONTROL SYSTEM TOOLBOX .......................................................................................15 

13.  OPTIMIZATION TECHNIQUES TOOLBOX .....................................................................16 

14.  STATISTICAL METHODS TOOLBOX ............................................................................17 

15.  POWER ELECTRONICS AND DRIVE TOOLBOX .........................................................18 

16.  POWER SYSTEM ANALYSIS TOOLBOX .......................................................................19 

17.  DIGITAL SIGNAL PROCESSING TOOLBOX ...............................................................19 

18. WEB SITE OF PROJECT ..................................................................................................20 

Page 3: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 1

1. INTRODUCTION

For most of the students of Science, Social Science, Engineering, Management and related disciplines, many simulation software packages such as MATLAB, ORCAD, AUTOCAD, CIRCUIT SIMULATORS, FINANCIAL & STATISTICAL ANALYSIS PACKAGES etc. have become an essential part of their curricula. To survive in the world of knowledge and remain productive, it is almost imperative to be well versed in them. This scenario is likely to expand further. Many of these are quite costly and most of our institutions of higher education may either not be able to afford them or may not have expertise on campus to teach students how to use them. This could also have an impact on the employability of our students. Fortunately, many open source software with look alike features and similar educational value are increasingly becoming available. But we need dedicated teams to make them user friendly and properly documented and to create adequate manpower to teach students to use those packages. Such packages, tailored to suit the needs of our students should also be made available freely available to any student, teacher or institution willing to make use of them. Small groups of experts in each of these areas could be set up and entrusted with the responsibility of performing the tasks mentioned above and always keeping the packages up to date.

To meet the above objective MHRD has funded a project on “Software tools, open source tools, Simulation tools (SOS) to Indian Institute of Technology Roorkee with IIT Bombay and DEI, Agra as other participating institutes. At IIT Roorkee, Software tools part of the project was executed. at IIT Bombay Open Source Tools and at DEI Simulation Tools are being executed At IIT Roorkee web based software tools in the domain of ‘Numerical methods’, ‘Statistical Methods’, ‘Power System Analysis’, ‘Optimization Techniques’, ‘Control System’, ‘Digital Signal Processing’ and ‘Power Electronics & Drive’ are developed using open source software. Aim is to provide free and open source toolboxes that could be used in academic institutions.

2. PROJECT SCOPE

Goal of “Software tools” is to provide open-source and free implementation for the following toolboxes (initially) with some functionality to proof-of-concept implementation of these toolboxes under pilot project

Numerical Methods

Page 4: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 2

Statistical Methods

Power System Analysis

Optimization techniques

Control System

Digital Signal and Image Processing

Power Electronics & Drive

3. SELECTION OF TECHNOLOGY

Following factors were considered while arriving at the correct technology to be used for the development of SOS project.

1. Performance and Server side Scalability 2. Object Oriented and Maintenance 3. Dependency 4. Development Tools 5. Good Frameworks and Community Support 6. Time to Learn 7. Open source or propriety 8. Web based or standalone

3.1 Performance and (Server side) Scalability:

Code executed within the server plays an important part in the delivery of a well performance application. And if this code is not running efficiently the impact on application response times and throughput can be huge. There are two main methods by which applications performance is assessed for production applications. The first is measuring the resources used by the application, has been in use since computers have been used for business applications, and is still in use. The second is measuring the response time of applications from the perspective of the end user. Server side scalability is important to support future expansion of the application and also in case there is heavy load on the application (when large number of users hit the application at the same time). It is an important factor to consider while selecting the technology as a wrong selection can have a huge penalty afterwards. In worst cases, a complete re-architecture of the application is needed to support scalability.

Page 5: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 3

Scalability can be achieved by two ways: Vertical scaling or horizontal scaling. Vertical means increasing the capacity of the existing server, for instance, by installing more powerful CPU or more RAM etc. What it does is increase the capacity of a single server. Horizontal means adding more servers to the existing architecture, so that when the load increases, the request can be processed by more servers. Vertical has no impact on the existing architecture while horizontal has some impact on it.

Both Python and Java are high performing languages. For 5000 concurrent users, performance is almost same.

3.2 Object Oriented and Maintenance:

Object oriented programming (OOP) is a programming paradigm that uses “objects” – data structures to design applications. OOP include features like ‘data abstraction’, ‘encapsulation’, ‘modularity’, ‘polymorphism’, ‘inheritance’ and ‘information hiding’. This makes it possible to reuse the components as much as possible and at the same time development time is faster.

Abstraction makes it possible to hide the implementation from external interface. The implementation can be changed internally (say to optimize the solution) without breaking the handshake with the external applications.

Maintenance of the application should also be considered while selecting the technology for the project. Once an application is made, it is also important to support it or maintain it. It will be difficult to bug-fix or provide add-on functionality if maintenance was not taken into account initially during the development phase. Important factors from maintenance perspective are:

Code should be less and it should be more structured Proper documentation should be there (preferably inside the code also) New developers will replace old developers and over the period of time,

original writers of the code will be completely replaced. Hence it is more important to select technology which is widely used

If transfer of project is also involved, then most widely used technology should be used so that resources could be found easily.

If more than one company / institutes are involved, then also most widely used technology should be adopted for faster and efficient development.

Both Python and Java is object oriented. Though Java is more strict language and enforces more control over the OOP concept. Python scores over maintainability if

Page 6: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 4

the projects are small since the code needed to write same logic is very less in comparison to Java (less than 50%).

3.3 Dependency: The chosen language should not bring additional dependency over external

factors like OS. It should be possible to switch to other OS (in case more performance is required from OS) without modifying the base source code. This is more important when OS specific commands are executed from the code (like ftp, zip etc.) Python provides some abstraction from OS and Java is completely platform independent. Because of the same reasons .NET framework was not chosen for Web development.

3.4 Development Tools: Plenty of development tools should be available to decrease the development

time. It should also be easy to learn those tools. Tools should allow auto-complete, debug, trace and exploring of code with in the IDE (Integrated Development Environment). It should also be possible to compile and deploy the application from with in the IDE. Both Python and Java have various IDE. Eclipse provides support for both. There are so many open source / free and commercial IDE for both Python and Java.

3.5 Good Frameworks & Community Support: Availability of good frameworks is another factor which should be considered

while choosing the technology. A good framework automates the recurring part of the application and developer focuses on the business logic only. Since they are already built on Design Patterns, they are trusted and proven solutions in a given problem scenarios. A framework should be chosen based on the business requirement. One should also look at the community who had developed the framework and who all are providing support for the same. It also decreases the development time. Both Python and java have various frameworks which can be used. There are hundreds of open source frameworks in java (like Struts, Spring, Hibernate, log4j etc.) and Python (Django, Gork, Pylons, Zope etc.).

3.6 Time to learn:

Page 7: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 5

Technology should be easier to learn. Developers should enjoy learning new things. It should take less time to learn new technology. It helps during the initial phase of the development as well as when the new developers join the team.

Python clearly scores here as it is very simple and can be learnt quickly. Java

on the other hand requires time to get up to date.

4. COMPARISON OF OPEN SOURCE SOFTWARE OVER PROPRIETARY SOFTWARE

A proprietary software is a software which is developed and owned by a company and is sold to the customers, usually on a license basis. Usually limited support is also provided with the software fee. The source code of the software is not distributed and it remains with the company.

Open Source Software are free applications released under special licensing terms where the core coding is viewable and able to be edited to suit the needs of the user. Basically, an author or company creates an application then releases it for free distribution, sometimes in co-coordinated projects where it can be further developed by a community of programmers, working individually or in teams, to further refine the product. Sometimes thousands of programmers are involved.

Open Source applications cover a myriad of uses - from entertainment to enterprise ecommerce. In fact, there's a very good chance that the server your site is hosted on may be powered entirely or in part by Open Source products. A couple of well known examples of Open Source software are phpBB, a forum system, and FreeBSD, a server operating system from BSD, a version of UNIX®.

The principles of Open Source Software

Free redistribution, Source code must be included Must allow modifications and derived works, Integrity of the author's source

code No discrimination Against Persons or Groups or fields of endeavor A single license must apply to all users License must Be technology-neutral

Advantages of Open Source Software

Page 8: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 6

Core software is free: If you're just getting started in online business, cost can be a major factor. Using Open Source software can really cut down on your initial capital outlay. The Open Source community has helped to rein in prices on commercial software over the years.

Evolving software: As mentioned, some Open Source software projects can have huge communities of programmers involved, allowing for the rapid implementation of new features and security fixes. The communities of users and programmers are also invaluable resources for asking questions relating to troubleshooting and suggesting enhancements.

Encourages hands on: Short on cash, one more than likely to want to make modifications to software themselves. The use of Open Source software encourages to go beyond the user interface; to dig into code to try and understand what it does and to make minor edits. As a business owner, it doesn't hurt to understand a little of the voodoo that goes on behind the scenes in the software you use on your site.

Not tied to a single vendor: If you purchase a commercial application, you can then become reliant on a single company to solve your problems and maintain the software - which can also be very expensive. Some commercial software companies may only provide support and upgrades for a limited time before you need to fork out for any further enhancements or assistance.

Disadvantages of using Open Source software Projects can die: Just as with commercial applications, some Open Source

projects stall and die - programmers just lose interest with being involved or they become fraught with infighting; arresting further development. You may be left using an application that is full of security bugs, with no-one to fix them; or if you can get them fixed, it will usually require paying someone to do it.

Support issues: If you are using commercial software, the vendor has an obligation to assist you in a timely manner, especially where security bugs are involved. You may find an annoying bug in an Open Source application that you need assistance with, but you may not get it without paying someone to fix it. Even with general questions, if you take a look at many forums that act as support centers Open Software applications, you'll see that it's not unusual for questions to go unanswered. The Open Source community does not have a legal obligation to answer your questions. In some cases, you'll need to figure it out for yourself or hire the services of a knowledgeable contractor.

Open Source Softwares are always preferred when technical resources are available

to work on the applications.

Page 9: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 7

5. COMPARISON OF WEB BASED VERSES STAND-ALONE PACKAGES

There is a heavy discussion going about web going to replace web applications. I think it's safe to say that web applications are not going to completely replace desktop applications, just as the car hasn't replaced the bicycle, television hasn't replaced newspapers, recorded music hasn't replaced live music, etc. In every case there is a "certain something" to ensure that the older technology will retain a secure niche.

So what defines the niche that will remain for desktop applications? To identify

that, it helps to use the web usability factors identified by Chris Loosley of E-Commerce Times: "To satisfy customers, a Web site must fulfill four distinct needs: availability, responsiveness, clarity, and utility. This list presents the four essential qualities in order of their significance..."

Availability: At first glance, it seems like desktop applications have the edge for

availability. After all, you can use your desktop applications even when the web server is down (or if you are not connected to the internet at all). But there's more to it than that. You can't use your desktop applications when you are anywhere other than at your desktop. A web application is usable anywhere you have a web browser. So the web application wins for availability.

Responsiveness: Most of desktop applications are more responsive than their web equivalents. That's not surprising, considering that the bandwidth between the computer and its hard drive could easily be a hundred times higher than the bandwidth between the computer and the server. Also, desktop applications are likely to be written in an efficient compiled language whereas web applications will be using an interpreted scripting language for user interface operations. So, unless the application has a particularly high computational overhead, the desktop version is likely to be more responsive.

Clarity: GUI is not the key factor here. There are web apps with rich, clear user interfaces, and there are desktop apps with rich, clear user interfaces. Similarly, there are appalling examples of both. When you think about it, the browser is itself a desktop application. When browsing the web, we are interacting with a desktop application. Of course there are differences in the GUI toolkits available for browser applications and for desktop applications, but each of these toolkits is evolving to include the best of what the other has to offer. So, although a rich, clear interface is vital, it's not the factor that divides desktop applications from web applications.

Page 10: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 8

Utility: Is utility the factor that sets desktop applications apart from web applications? It's temping to say "yes", because we don't yet have any web application that does everything that Microsoft Word or Excel can do (although we are certainly getting close). But that's a very one-sided way to look at the issue, when there are web applications that simply cannot be replicated on the desktop. A search engine such as Google cannot be implemented on the desktop. Our individual computers do not have the power to crawl the entire web, index it, and perform complex search queries. Nor can we have collaborative websites such as photo-sharing sites on the desktop. Perhaps, more interesting is to compare internet applications accessed through a web browser, versus internet applications access through a desktop application such as Google Maps vs Google Earth where desktop application seems to be more powerful and elegant.

The distribution of software packages and then their upgrades are much more difficult, time consuming and error-prone than the packages to be deployed on web and make them accessible to all. It also eliminates the need for installation of any softwares in most of the cases, thus only a minimum space is required on the client machine to run the application (in web browser).

6. COMPARISON OF DIFFERENT TECHNOLOGIES

A Comparison [1] of different technologies was done on Josephus problem. The whole article could be found here. In the general version of the problem, there are n soldiers numbered from 1 to n and each k-th soldier will be eliminated. The count starts from the first soldier. What is the number of the last survivor Solution was prepared in different languages and executed under similar condition. Results: All the results are observed on the following configuration: OS: Ubuntu Gutsy Gibbon 7.10 Kernel: 2.6.22-15-generic CPU: Intel(R) Core(TM) Duo CPU T2600 @ 2.16GHz RAM: 2 GB

Language Version Lines Time per iteration

Page 11: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 9

of Code

(microseconds)

Java Sun JDK 1.6.0.03 10186 1.6

C++

4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)Compiled with optimisation -O3

86 3

gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7) Compiled with optimisation -O3 Alberto Bignotti’s modified code with customised memory reuse and management

124 approx 0

Ruby

ruby 1.9.0 (2008-04-14 revision 16006) [i686-linux]

63

114 89

ruby 1.8.6 (2007-06-07 patchlevel 36) [i486-linux]

372 380

jruby : ruby 1.8.6 (2008-05-28 rev 6586) [i386-jruby1.1.2]

84 80

Python

2.5.1

41

225 192

2.5.1 with F2PY 33

Jython 2.2.1 on JRE 1.6.0.03

884 632

PHP PHP 5.2.3-1 ubuntu6.3 (cli)

85 593

Observations: Java and C++ were fastest in terms of time taken to execute the code Updated version of code took only 33 lines of code in Python as compared to

10186 lines in Java. Maintenance cost is significantly less in python.

Page 12: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 10

Java gave same response time on Ubuntu and Windows but PHP take double the time on windows

Some more enhancements were made for this solution by different people and more data was acquired. Everything could be found in the link.

7. COMPARISON OF SERVERS (APACHE, TOMCAT ETC)

A number of different servers were compared (Tomcat, Jboss, Apcahe, Jetty etc) and Apache comes out as distinct winner based on the following criteria: Features: Apache has various useful features, including implementation of the

latest protocols (like HTTP, HTTPS, FTP etc). Customizable: Apache's modular architecture allows you to build a server that is

"made to measure." Administration: Apache configuration files are in ASCII, have a simple format,

and can be edited using any text editor. They are transferable, so one can effectively clone a server. One can control the server from command line, which makes remote administration very convenient.

Extensible: Apache server and API source code are open to public. If there is any feature that you want but does not exist in Apache, you can write your own server module to implement it.

Efficient: A lot of effort has been put into optimizing the Apache's code for performance. As a result, it runs faster and consumes less systems resources than many other servers.

Portability: Apache runs on a wide variety of operating systems, including all variants of UNIX, Windows 9x/NT, MacOS (on PowerPC), and various others.

Stability/Reliability: Apache's source code is open to public. When any bugs are found, they are often quickly communicated, and rapidly fixed. Updates are made and announced thereafter. This has resulted in Apache becoming more and more stable, and hence reliable, server over the time.

Support: Apache is supported by the Apache Group, a large number of dedicated users, and by companies who market commercial versions of Apache.

Page 13: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 11

8. ADVANTAGES OF MOD_PYTHON AND DJANGO

Mod_python is a loadable apache module which embeds the Python interpreter (libpython), there by providing the ability to execute python code in-process by apache. Python interpreter embedded within Apache: Aside from mod_python, there are

two ways of executing Python code by Apache. o The first is through the CGI model, where a separate process is spawned and

its standard output is redirected to the browser. CGI, although the most universally supported interface, is by far the least efficient. Every CGI request causes a process to be created and the Python interpreter loaded and initialized, which results in unnecessary CPU and I/O activity.

o The second is by proxying request information to another server sitting behind Apache by various methods such as FastCGI or proprietary protocols. It is much more efficient but adds to the complexity. You have to configure and run an additional server besides Apache, which at least doubles the system administration overhead and complicates debugging and troubleshooting. Another shortcoming is that it misses out on the amazing scalability and efficiency of Apache, since the requests are being serviced only as quickly as the backend server can process them.

o Mod_python addresses both of these limitations by embedding the Python interpreter within Apache. Python code executes directly within the Apache server, eliminating any need to spawn external processes or run additional servers. At the same time, mod_python takes advantage of Apache's highly optimized ability to accept and process incoming requests. The result is a platform that can process requests faster than any other currently available web application framework for Python.

Ability to handle request phases: The ability to handle request phases is a very Apache-specific feature. Each Apache request is processed in phases, and modules have an opportunity to register their own handler functions for each phase. Mod_python provides the ability to register for any phase and write the processing function in Python. This is a very powerful feature, because it opens the door for many innovative and exciting ways to use Apache. For example, you can write Python code to do authentication processing or custom logging.

Ability to handle filters: The ability to handle filters is a very Apache-specific feature. Mod_python also allows for filters to be implemented in Python. Filters receive output from or input to the server and have an opportunity to alter it. Filters can also be stacked, so that output from one filter is processed by the next filter.

Page 14: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 12

Ability to handle Connections: The ability to handle Connections is a very Apache-specific feature. Mod_python allows you to create connection handlers. A connection handler handles the connection from the moment it is received, allowing you to bypass Apache's HTTP handling. Connection handlers can be used to implement servers for protocols other than HTTP.

Interface to Apache API: Aside from getting server information, the exposed portion of API can be used to do take some very powerful actions such as dynamically register additional mod_python handlers, create internal redirects, and register cleanups to be executed after the request is finished or before the server is shut down.

Web Development Toolset: It provides native handling of cookies, support for cryptographic signing of cookie data (using HMAC), as well as the ability to marshal (serialize) simple objects into cookie values. There is support for session management with fairly thorough random session id generation logic and the ability to take advantage of signed cookies. It also provides implementation of PSP (Python Server Pages) where python code can be written inside plain html pages.

Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. Django is a MVC (more accurately MTV - Model Template View) Python web framework.

o Support major Databases (Oracle, MySQL, SQLite, PostgreSQL) o Internationalization (i18n) support. Support s more than 30 languages

out of the box o Highly scalable with support for Horizontal scaling and Internal caching o Built-in support for forms, form-sets and generic views. Build in Admin

module helps for faster development and deployment. o Related to the Admin application is Databrowse. Databrowse presents a

read-only brows-able interface to your models. If all you are doing is publishing structured information and don't need a custom interface, you can just create your models and publish the site.

o Filters (known as middleware in Django) make it possible to divide while application into smaller sub-applications

o Authentication modules can be based on Users, Groups, and permissions.

o For standard html error codes, error pages can be configured to be displayed to the user.

Page 15: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 13

o Supports E-Mail, Pagination, Serialization, Signals, Sitemaps and Syndication (RSS/Atom) out-of-box

9. F2PY

Integration of Python with Fortran, C, or C++ code is is done to migrate numerical intensive calculations to Fortran or C/C++ and to call existing numerical libraries or applications in Fortran or C/C++ directly from Python. This results into faster execution of the computational intensive applications such as in the area of power systems

10. PLATFORM FOR DEVELOPMENT OF WEB BASED APPLICATIONS

Considering everything, recommended technologies to be used for web based toolboxes are:

PHP (for integrating with Scilab) Python (for integrating with Fortran/C++ software) Mod_python, Apache and Django (framework for faster web development

and administration) Tomcat, Servlets and Applets for Interactive circuit designing over the

internet Two types of software architecture are used. For control systems, numerical and statistical methods, power electronics and drives and optimization techniques toolboxes

Fig. 1 Software architecture for control systems, numerical and statistical methods,

power electronics and drives and optimization techniques toolboxes

Page 16: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 14

Fig. 2 Software architecture for power system toolboxes

Following open source tools are utilized for different goals during the

implementation of Software tools.

Scilab

Python

Java

Php

Apache web server

Apache Tomcat

Django frame work

Mod_python

LabVIEW is used in Digital Image processing and Digital Signal Processing Tollboxes

Toolbox Type Software Used

Numerical Methods ScilabControl System ScilabOptimization Techniques ScilabStatistical Methods ScilabPower Electronics and Drive Scilab and JavaPower System Analysis Python, Fortran, C/C++ Digital Signal & Image Processing NI LabVIEW

Page 17: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 15

11. NUMERICAL METHODS TOOLBOX

Following tools are available in numerical analysis toolbox:

(i). Calculation of Eigen Values of a Square Matrix (ii). Numerical Integration of a Function (iii). Differentiation of polynomial (iv). First order Derviative (v). Adams Method For Solving ODE (vi). Gauss Elimination method (vii). Gauss-Jordan Method (viii). Integration by trapezoidal's rule (ix). Inverse of a matrix (x). Euler's method for solving ODE (xi). LU Decomposition method. (xii). Lagrange's Interpolation. (xiii). Newton's interpolation (xiv). Polynomial division (xv). Romberg Integration (xvi). Roots of a polynomial (xvii). Simpson's 1/3 Rule (xviii). Simpson's 3/8 Rule (xix). Solution of linear equations (xx). Solving Non Linear Equation by Bisection Method (xxi). Hessian and Jacobian matrix using Derivative (xxii). Fourth order Runge Kutta method

The user has to provide the necessary input parameters on a form which will be submitted to the server. The response is shown to the user on the browser. User can also download the response as a pdf file.

12. CONTROL SYSTEM TOOLBOX

Following calculations can be performed with the help of control system toolbox:

(i). Balanced Realization (ii). Combining models: Series, parallel, and feedback (iii). Controllability and Observability (iv). Deriving transfer functions from state-space models (v). Detectability test (vi). Determination of Phase and Gain Margin

Page 18: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 16

(vii). Determine the poles and zeros of a transfer function (viii). Discretization of linear system (ix). Determination of pulse transfer function from continuous time transfer

function (x). Feedback Connection (xi). Canon Controllable Form (xii). Peak Frequency Calculation (xiii). LQ (Linear Quadratic) optimal controller (Continuous Time) (xiv). LQ (Linear Quadratic) optimal controller (Discrete Time) (xv). Phase and Magnitude of a Transfer Function (xvi). Root Locus (xvii). Time response of a Continuous Time linear system(Transfer Function

Form) (xviii). Time Response of a linear system(State space form)in continuous

time (xix). Frequency Response plotting (Transfer Function Form) (xx). Frequency Response plotting (State Space Form)

The user is required to provide the necessary input parameters on a form which is submitted to the server. The response is shown to the user on the browser. User can also download the response as a pdf file.

13. OPTIMIZATION TECHNIQUES TOOLBOX

In this toolbox modules are available to solve unconstrained and constrained optimization problems both linear as well as nonlinear. They are:

1. Linear Programming (i). Graphical Method (ii). Karmarkar Algorithm (iii). Big M method (iv). Two Phase Method (v). Dual Simplex Method (vi). Branch and bound (vii). Linear Quadratic Programming solver

2. Non Linear One Dimensional Minimization (i). Fibonacci Search Method (ii). Golden Search Method (iii). Quadratic Interpolation Method

3. Non Linear Unconstrained Optimization (i). Newton’s Method

Page 19: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 17

(ii). Quasi Newton Method (iii). Conjugate Gradient Method (iv). Marquardt's Method (v). Nelder-Mead Simplex direct search method (vi). Solving Non linear least square problems

4. Non Linear constrained Optimization

The user is required to provide the necessary input parameters (objective function and constraint in a text box on the browser which is sent to the server. The response is shown to the user on the browser. User can also download the response as a pdf file.

14. STATISTICAL METHODS TOOLBOX

Following statistical analysis methods are included in this toolbox:

1. Basic Statistical Operations :-Arithmetic Mean. ,Geometric Mean. ,Harmonic Mean, Median, Range, Quartiles, Mean Deviation, Standard Deviation, Variance, Skewness.

2. Correlation Coefficient (i). Pearson’s Correlation Coefficient.

(ii). Spearman’s Correlation Coefficient.

3. Distribution of Random Numbers (i). Uniformly Distributed Random Numbers.

(ii). Beta Distributed Random Numbers.

(iii). Binomially Distributed Random Numbers.

(iv). Exponentially Distributed Random Numbers.

(v). Gamma Distributed Random Numbers.

(vi). Normal Distributed Random Numbers.

(vii). Poisson Distributed Random Numbers.

4. Regression (i). Simple Linear Regression with ANOVA (Analysis of Variance).

(ii). Multiple Linear Regression with ANOVA (Analysis of Variance).

Page 20: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 18

15. POWER ELECTRONICS AND DRIVE TOOLBOX

Following analysis can be performed by using this toolbox:

Simulation of Power Electronic Circuits and Electrical Machines

1. Induction Machine Drives

(i). Single phase capacitor start/run induction motor

(ii). Dynamic behavior of induction motor with sinusoidal Excitation

(iii). Starting of an induction Motor at no load under sinusoidal PWM

Excitation

(iv). Induction motor start in any of three common reference frame

(v). Induction motor Start with line impedance

(vi). Static and Dynamic Characteristic of induction motor during line start

(vii). Induction motor start in rotor flux frame

2. DC Machine Drives

(i). Separately Excited DC Motor

(ii). Separately Excited DC Motor with PID Controller

(iii). DC Shunt Motor

(iv). DC Series Motor

3. Synchronous Machine Drives

(i). Starting of Synchronous Motor

4. Power Electronics Circuits

(i). Phase Width Modulation using Sine Wave Excitation (ii). Three Phase Fully Controlled Thyristor Based Rectifier

Modeling & Simulation of Power Electronic Circuits and Drives Following blocks are used in this part.

(i). DCSource (ii). Sinusoidal Source (iii). Pulse Generator (iv). Pulse (v). Step (vi). Scope (vii). Math function (viii). Gain (ix). Multiplication (x). PID (xi). Transfer function (xii). Integrator

Page 21: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 19

(xiii). Signum (xiv). Switch (xv). Relay (xvi). NSampleSwitch (xvii). DCMachine (xviii). Ground (xix). Diode (xx). Thyristor (xxi). IGBT (xxii). Gate Signal (xxiii). Induction Motor (xxiv). PI Controller

16. POWER SYSTEM ANALYSIS TOOLBOX

Following analysis can be performed by using this toolbox:

(i). Calculation of transmission line parameters (ii). Ybus matrix calculation (iii). Zbus matrix calculation (iv). Load flow study - Gauss Seidel method (v). Load flow study of radial distribution system (vi). Load flow study of weakly mesh distribution system (vii). Short circuit study

User will provide the required input through forms to the toolbox. Toolbox will generate the required output and send results to client through html page.

17. DIGITAL SIGNAL PROCESSING TOOLBOX

This toolbox has following modules:

(i). Convolution (ii). Cross-Correlation (iii). Auto-Correlation (iv). Fourier Transform (Using FFT) (v). Discrete Cosine Transform (DCT) (vi). Hilbert Transform (vii). Wavelet Transform

Page 22: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 20

18. WEB SITE OF PROJECT

Web site of the project is:- www.sos-tools.org. Few screens generated by this web site are shown below:

Page 23: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 21

Page 24: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 22

Page 25: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 23

Page 26: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 24

Page 27: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 25

Page 28: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 26

Page 29: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 27

Page 30: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 28

Page 31: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 29

Page 32: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 30

Page 33: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 31

Page 34: Plot Project Report on Software tools, Open Source tools, Simulation tool SOFTWARE TOOLS project report.pdf · 2010-10-07 · Status Report on Software tools Page 1 1. INTRODUCTION

Status Report on Software tools Page 32