The FOMCON toolbox for MATLAB is a fractional-order calculus based toolbox for system modeling and control design. The core of the toolbox is derived from an existing mini toolbox FOTF (“Fractional-order Transfer Functions”), the source code for which is provided in literature [1, 2, 3]. Consequently, the main object of analysis in FOMCON is a fractional-order transfer function in form
The basic motivation for developing FOMCON was the desire to obtain a set of useful and convenient tools to facilitate the research of fractional-order systems. This involved writing convenience functions, e.g. the polynomial string parser, building graphical user interfaces to improve the general workflow. However, a full suite of tools was also desired due to certain limitaions in existing toolboxes. The basic functionality of the toolbox was then extended with advanced features, such as fractional-order system identification and PI$^\lambda$D$^\mu$ design.
With all previous considerations, the motivations for developing the toolbox can now be established.
- It is a product suitable for both beginners and more demanding users to to avaliability of graphical user interfaces and advanced functionality.
- It focuses on extending classical control schemes with concepts of fractional calculus.
- It can be viewed as a “missing link” between CRONE and Ninteger.
- With the Simulink blockset the toolbox aims at a more sophisticated modeling approach.
- Due to availability of the source code the toolbox can be ported to other computational platforms such as Scilab or Octave (some limitations and/or restrictions may apply).
In the following section, we present an overview of the toolbox structure.
2 Toolbox structure
The toolbox has a modular structure and currently consists of the following modules:
- Main module (fractional system analysis);
- Identification module (system identification in both time and frequency domains);
- Control module (fractional PID design, tuning and optimization tools, as well as some additional features).
All the modules are interconnected and can be accessed from the graphical user interface as depicted in Figure 2.
A Simulink blockset is also provided in the toolbox allowing more complex modeling tasks to be carried out. General approach to block construction was used where applicable. The following blocks are currently realized:
- General fractional-order operator;
- Fractional integrator and differentiator;
- Fractional transfer function;
- PI$^\lambda$D$^\mu$ controller;
- TID controller.
The toolbox relies on the following MATLAB products:
- Control System toolbox, which is required for most features;
- Optimization toolbox, required for time-domain identification, integer-order PID tuning and also in part for fractional-order PID tuning.
Several other tools are used directly (without change) per the BSD license:
- optimize() function ;
- Several Ninteger toolbox frequency domain identification functions.
It is also possible to export fractional-order systems to the CRONE toolbox format. This feature requires the object-oriented CRONE toolbox to be installed.
|||D. Xue, Y. Chen, and D. P. Atherton, Linear Feedback Control: Analysis and Design with MATLAB (Advances in Design and Control), 1st ed.. Philadelphia, PA, USA: Society for Industrial and Applied Mathematics, 2008.|
|||Y. Q. Chen, I. Petráš, and D. Xue, “Fractional order control – A tutorial,” in Proc. ACC ’09. American Control Conference, 2009, pp. 1397–1411.|
|||C. A. Monje, Y. Chen, B. Vinagre, D. Xue, and V. Feliu, Fractional-order Systems and Controls: Fundamentals and Applications, ser. Advances in Industrial Control. Springer Verlag, 2010.|
|||A. Oustaloup, P. Melchior, P. Lanusse, O. Cois, and F. Dancla, “The CRONE toolbox for Matlab,” in Proc. IEEE Int. Symp. Computer-Aided Control System Design CACSD 2000, 2000, pp. 190–195.|
|||D. Valério. (2005) Toolbox ninteger for MatLab, v. 2.3. [Online]. Available: http://web.ist.utl.pt/duarte.valerio/ninteger/ninteger.htm|
|||R. Oldenhuis. (2009) Optimize. [Online]. Available: http://www.mathworks.com/matlabcentral/fileexchange/24298-optimize|