Skip to content

control: Control Systems toolbox

Marijan Kostrun edited this page Mar 21, 2017 · 12 revisions

Background

Control systems engineering is a discipline that models the behaviour of a wide range of dynamic systems and the design of controllers that enable these systems produce a desired behaviour. The system analysis is carried out in the time domain using differential equations, in the complex-s domain with the Laplace transform, or in the frequency domain by transforming from the complex-s domain. In recent times, control theory is carried out in the state space, and can deal with multiple-input and multiple-output (MIMO) systems. This overcomes the limitations of classical control theory in more sophisticated design problems. Control techniques today are mostly implemented through computers often as embedded systems.

Control engineering has an essential role in a wide range of control systems, from simple household washing machines to high-performance F-16 fighter aircraft. It seeks to understand physical systems, using mathematical modeling, in terms of inputs, outputs and various components with different behaviors, use control systems design tools to develop controllers for those systems and implement controllers in physical systems employing available technology.

Applications of control methodology have helped to make possible space travel and communication satellites, safer and more efficient aircraft, cleaner automobile engines, and cleaner and more efficient chemical processes.

MATLAB, OCTAVE, PYTHON, SCILAB and several other scientific computing tools have toolboxes in the form of functions/methods that enable the analysis and simulation of control systems.

This project aims at developing an R package that could be generally used for basic control systems studies based on available packages from other scientific languages especially Rlabplus

Related work

There is currently no R package focused on the studies of control systems. However, there are several control system packages available in other computing languages which provide standard functionality.

Details of your coding project

For the GSoC 2017 coding project, the following functionalities are listed for implementation:

  • Conversion of state space models from continuous to discrete time (assuming a zero-order hold on the inputs and sample time T).
  • The time response of the following system: x[n+1] = Ax[n] + Bu[n]. Function: ltitr(A,B,U,X0)
  • the time response of the linear system descried by, . x = Ax + Bu y = Cx + Du Function: lsim(A,B,C,D,U,T,X0)
  • Transfer function to/from state-space conversion. Function: tf2ss, ss2tf, tf2zp, zp2tf

Expected impact

Control systems is a very important field today with standard applications. This project would enable many thousands of engineers and scientists to use R for control systems analysis. Control engineering is usually applied to the fields of finance management, maths, electrical, electronic, mechatronic, mechanical, aerospace, process control engineering, etc

Mentors

Marijan Kostrun, maintainer of RLabPlus, and Hans W Borchers, the author of the R-package Practical Numerical Math Functions Pracma.

Tests

Easy:

  1. Demonstrate good working knowledge of programming in R. Describe

construction of R packages, and their documentation using knitr or a vignette.

  1. Demonstrate basic knowledge of rlabplus that would be needed to

complete conversion.

Medium:

  1. A representation of state-space and of transfer function models, and

how are they transformed into each other.

  1. Take one (not too) simple function from RLabplus (or MATLAB) control

toolbox and convert it to R. Compare two scripts side-by-side.

  1. For that function compare how are the input and output objects

organized in R, in rlabplus, in matlab.

Hard:

  1. Choose one example from control theory from your particular field of

interest. Solve it. Explain step-by-step how would you use your controls-toolkit to solve it. Again, Matlab example is fine.

Solutions of tests

Students, please post a link to your test results here.

Solution tests repository

Clone this wiki locally