1 Introduction

Evaluation of impulse or transient response of a linear fractional-order system from its transfer function is often part of designing and verifying the operation of analog circuits, especially frequency filters [1], oscillators [2], and generalized PID controllers (i.e., controllers including non-integer-order elements) [3].

In principle, this calculation can be performed in three ways: 1) in the environment of a standard analog circuit simulation program, as for instance SPICE; 2) using a universal program for scientific and technical calculations, e.g. MATLAB; 3) using customized software, e.g. SNAP, for the analysis of fractional-order circuits [4].

SPICE offers the possibility of a direct time response evaluation from a transfer function specified via controlled Laplace sources. However, serious numerical errors may arise because SPICE is not primarily designed for analyzing systems with dynamics of non-integer order. Another solution may be to use known efficient algorithms (or develop new ones) for transient analysis of fractional-order systems and implement them, for example, in MATLAB. An analog designer may prefer the analysis in a different software environment that would allow working in a similar style to SPICE, but with added capabilities such as the so-called (semi)symbolic analysis of the transfer function from the circuit diagram [4] or software-generated analytical formula of the impulse response using Mittag-Leffler (ML) functions [3].

The computation of the impulse response of a linear commensurate fractional-order system whose transfer function K(s) contains the s operator with non-integer powers of the form \(\alpha _k=p_k/q_k\), \(p_k \in \mathbb {N}_0\), \(q_k \in \mathbb {N}\), can then proceed in the following steps:

  • converting the transfer function to the domain of the operator \(w = s^{\alpha }\) with \(\alpha =1/q\) and q the least common multiple of the \(q_k\) coefficients [5];

  • decomposing the transfer function K(w) into partial fractions;

  • converting each partial fraction from Laplace to time domain by means of ML functions and their derivatives [3].

For the case of real simple and multiple w-domain poles, commonly used correspondences between the Laplace and time domains are available, which can be summarized by the correspondence [6]

$$\begin{aligned} \frac{s^{\delta }}{(s^{\alpha }-a)^k} \triangleq \frac{t^{\alpha k - \delta -1}}{(k-1)!} E_{\alpha ,\alpha -\delta }^{(k-1)}(a t^{\alpha }), \end{aligned}$$
(1.1)

where \(k \in \mathbb {N}\), \(a \in {\mathbb {R}}\), \(\alpha \in {\mathbb {R}}^+\), \(\delta \in {\mathbb {R}}\) and \(E_{\alpha ,\beta }^{(m)}(z)\) denotes the m-th order derivative of the ML function (see Section 2).

The case of complex poles corresponding to the denominators of w-domain transfer functions with second-order polynomials has received marginal attention in the literature so far. One possible reason is that the corresponding impulse responses can be obtained indirectly also using (1.1) if decomposition into partial fractions is performed for the corresponding conjugate pairs of complex poles, i.e. with the denominators in the form of binomials with complex coefficients instead of trinomials with real coefficients. One of the few attempts at a direct solution is given in [7] for simple poles, where a correspondence is found to exist between the Laplace transform of the form \(b/(s^{2\alpha } + as^{\alpha } + b)\) and the corresponding impulse response formula expressed via the ML function. In [8], impulse responses for the transfer function \(1/(s^{2\alpha } + as^{\alpha } + b)^{\gamma }\) are analyzed, but only for \(0< \gamma < 2\). Moreover, the impulse response formula is found only for a special, not a general, constellation of parameters. It is also known that the impulse response corresponding to the “three-term transfer function” or “three-term differential equation” can be expressed using an infinite series of ML functions [6]; however, using series of ML functions is not very efficient for numerical computations.

There are two main contributions in this work:

  • finding the missing Laplace-time correspondence for multiple complex poles;

  • suggesting a reliable algorithm for evaluating two-parameter ML functions and their derivatives.

This builds a basis for an algorithmic generation of the analytic formulas of the impulse or step responses, involving the basal functions (ML functions and their derivatives as functions of time) associated with arbitrary transfer functions K(w). By evaluating these formulas, numerical results are then obtained.

Since the relation (1.1) is used to derive the above missing correspondence, its validity is first analyzed in Section 3.1 with respect to the range of values of the relevant parameters a, \(\alpha \) and \(\beta \). Then, in Sections 3.2 and 3.3, the relationships between Laplace transforms and time responses are derived for a conjugate pair of simple and also multiple complex w-domain poles. Section 4 shows examples of the numerical analysis of time responses, using the derived relations and algorithms for evaluating two-parameter ML functions and their derivatives. A comparison with the outputs of three types of SPICE simulators illustrates the robustness of the proposed procedure even in cases of a fatal failure of the SPICE algorithms.

2 The Mittag–Leffler function and its derivatives

For \(\alpha \in {\mathbb {C}}\) with \({{\,\mathrm{Re}\,}}(\alpha )>0\), \(\beta \in {\mathbb {C}}\), and any complex argument z, the ML function is defined by means of its series expansion

$$\begin{aligned} E_{\alpha ,\beta }(z) = \sum _{k=0}^{\infty } \frac{z^k}{\varGamma (\alpha k + \beta )} , \end{aligned}$$
(2.1)

and it is an entire function of order \(1/{{\,\mathrm{Re}\,}}(\alpha )\) and type 1, [9]. Its derivatives can be easily determined after derivation of each term in the series as

$$\begin{aligned} E_{\alpha ,\beta }^{(m)}(z) = \frac{\mathrm {d}^m}{\mathrm {d}z^m} E_{\alpha ,\beta }(z) = \sum _{j=0}^{\infty } \frac{(j+m)!}{j!} \frac{z^j}{\varGamma (\alpha j + \alpha m + \beta )} , \end{aligned}$$
(2.2)

where \(m \in \mathbb {N}_0\). For the purpose of analyzing fractional-order systems, one can restrict the definition domain of parameters \(\alpha \) and \(\beta \) to the set of real numbers. Then (2.1) and (2.2) hold for \(\alpha \in {\mathbb {R}}^+\), \(\beta \in {\mathbb {R}}\) and \(m \in \mathbb {N}_0\).

Derivatives of the two-parameter ML function (2.2) can be more conveniently represented in terms of the three-parameter ML function (also known as the Prabhakar function [10, 11])

$$\begin{aligned} E_{\alpha ,\beta }^{\gamma }(z) = \sum _{j=0}^{\infty } \frac{(\gamma )_j}{j!} \frac{z^j}{\varGamma (\alpha j + \beta )} , \end{aligned}$$

where \((\gamma )_j = \gamma (\gamma +1)\cdots (\gamma +j-1)=\varGamma (\gamma +j)/\varGamma (\gamma )\) is the Pochhammer symbol, in view of the relationship

$$\begin{aligned} E_{\alpha ,\beta }^{(m)}(z) = m! E_{\alpha ,\alpha m + \beta }^{m+1}(z) \end{aligned}$$

and since for \(m\in \mathbb {N}_0\) it is \(\varGamma (m+1)=m!\).

Specific numerical methods [12,13,14,15,16,17,18,19] have been devised to evaluate ML functions and their derivatives. The availability of corresponding MATLAB implementations [20,21,22,23] allows to apply the outlined procedure to the transfer function and determine the impulse and step response.

3 Impulse responses in terms of ML functions

To provide a proper representation of the impulse response of a linear commensurate fractional-order system we examine different cases according to the nature of the poles of the transfer function.

3.1 Multiple real poles

After substituting (2.2) into the right-hand side of (1.1) and applying the Laplace transform, we get

$$\begin{aligned}&{{\mathcal {L}}} \Biggl ( \frac{t^{\alpha k - \delta -1}}{(k-1)!} E_{\alpha ,\alpha -\delta }^{(k-1)}(a t^{\alpha }) \, ; \, s \Biggr )\\= & {} \frac{1}{(k-1)!}\sum _{j=0}^{\infty } \frac{(j+k-1)! a^j }{j! } {{\mathcal {L}}} \Biggl ( \frac{t^{\alpha k + \alpha j - \delta -1}}{\varGamma (\alpha j + \alpha k - \delta )} \, ; \, s \Biggr ) \\= & {} \frac{1}{(k-1)!}\sum _{j=0}^{\infty } \frac{(j+k-1)! a^j }{j! s^{\alpha j + \alpha k - \delta } } = \frac{1}{s^{\alpha k - \delta } }\sum _{j=0}^{\infty } \left( {\begin{array}{c}j+k-1\\ j\end{array}}\right) \left( \frac{a}{s^{\alpha }}\right) ^j \end{aligned}$$

whenever \({{\,\mathrm{Re}\,}}(\alpha j + \alpha k - \delta ) >0\), namely for \({{\,\mathrm{Re}\,}}(\delta ) < k {{\,\mathrm{Re}\,}}(\alpha )\). The above infinite series converges absolutely, and

$$\begin{aligned} \sum _{j=0}^{\infty } \left( {\begin{array}{c}j+k-1\\ j\end{array}}\right) \left( \frac{a}{s^{\alpha }}\right) ^j = \left( 1- \frac{a}{s^{\alpha }}\right) ^{-k} \end{aligned}$$

for sufficiently large \(|s |\), namely when

$$\begin{aligned} |s^{\alpha } |>|a|. \end{aligned}$$
(3.1)

Hence, after rearranging some terms, one easily obtains

$$\begin{aligned} {{\mathcal {L}}} \Biggl ( \frac{t^{\alpha k - \delta -1}}{(k-1)!} E_{\alpha ,\alpha -\delta }^{(k-1)}(a t^{\alpha }) \, ; \, s \Biggr ) = \frac{s^{\delta }}{(s^{\alpha }-a)^k} \end{aligned}$$
(3.2)

which is the relation (1.1) holding for arguments \(a \in {\mathbb {C}}\) as well. It follows from the above derivations that, when condition (3.1) is satisfied, and if we restrict (just for simplicity) to real parameters \(\alpha \in {\mathbb {R}}^+\) and \(\delta \in {\mathbb {R}}\), the relations (1.1) and (3.2) hold in general for any \(k \in \mathbb {N}\) and \(\delta < k \alpha \). Thus, (1.1) can be also used for calculations of time responses for complex w-domain poles.

Parameters \(\alpha \in {\mathbb {R}}^+\) and \(\delta \in {\mathbb {R}}\) can be however chosen independently, without the additional coupling condition \(\delta < k \alpha \). This means, for instance, that (3.2) also holds for \(\delta \ge k \alpha \) when the order of the numerator of the transfer function is greater than or equal to the order of the denominator, which is an indication that the corresponding time response will contain derivatives of the Dirac impulse of non-integer order.

The q-th order derivative of the Dirac impulse can be indeed written in the form [24, 25]

$$\begin{aligned} {{\mathcal {L}}}^{-1} \Bigl ( s^q \, ; \, t\Bigr ) = \frac{1}{\varGamma (-q)} \frac{1}{t^{q+1}}, \quad q \in {\mathbb {R}}^+, \quad t>0 , \end{aligned}$$

and these derivatives can be directly included in the time function on the right-hand side of (1.1) when \(\delta > k \alpha \).

This procedure can be illustrated by a simple example for \(k = 1\) and \(\delta \ge \alpha \) via the following arrangement:

$$\begin{aligned} \begin{aligned} \frac{s^{\delta }}{s^{\alpha }-a}&= s^{\delta -\alpha } \frac{s^{\alpha }}{s^{\alpha }-a} = s^{\delta -\alpha } \left( 1+ \frac{a}{s^{\alpha }-a}\right) = s^{\delta -\alpha } + a \frac{s^{\delta -\alpha }}{s^{\alpha }-a} \\&\triangleq \frac{1}{\varGamma (\alpha -\delta )}\frac{1}{t^{\delta -\alpha +1}} + a t^{2 \alpha - \delta -1}E_{\alpha ,2\alpha -\delta }(a t^{\alpha }) . \end{aligned} \end{aligned}$$

The first term in the time response represents the derivative of the Dirac impulse of order \(\delta - \alpha \). If the inequality \(\delta - \alpha \ge \alpha \) (or, equivalently, \(\delta \ge 2 \alpha \)) holds, then this would mean that the second term could be used to split off another derivative of the Dirac impulse of order \(\delta - 2\alpha \).

$$\begin{aligned} \frac{s^{\delta }}{s^{\alpha }-a} \triangleq \frac{1}{\varGamma (\alpha -\delta )}\frac{1}{t^{\delta -\alpha +1}} + \frac{a}{\varGamma (2\alpha -\delta )}\frac{1}{t^{\delta -2\alpha +1}} + a^2 t^{3 \alpha - \delta -1}E_{\alpha ,3\alpha -\delta }(a t^{\alpha }) . \end{aligned}$$

The same procedure can be repeated until the time response is decomposed into a sequence of derivatives of Dirac impulses and a residual function whose corresponding Laplace transform has a pseudo-polynomial in the denominator of higher order than in the numerator. Then the ML function occurring in the residual function has the second parameter greater than 0.

3.2 Simple complex poles

To analyze transfer functions with simple complex poles, let us consider a conjugate pair of complex w-domain poles with multiplicity 1, i.e. \(w_1 = c\), \(w_2 = c^{\star }\), where

$$\begin{aligned} c = a + \mathrm {i}b , \quad c^{\star } = a - \mathrm {i}b \end{aligned}$$
(3.3)

and the corresponding transfer function with its decomposition into partial fractions is

$$\begin{aligned} \frac{b}{(w-a)^2+b^2} = \frac{b}{(w-c)(w-c^{\star })} = \frac{\mathrm {i}}{2} \left( \frac{1}{w-c^{\star }} - \frac{1}{w-c}\right) . \end{aligned}$$
(3.4)

After substituting \(w = s^{\alpha }\), and imposing the condition

$$\begin{aligned} |s |> |c|^{1/\alpha } , \end{aligned}$$
(3.5)

the terms within the brackets in (3.4) can be converted to the time domain according to (1.1). Then

$$\begin{aligned} \frac{b}{(s^{\alpha }-a)^2+b^2} = \frac{\mathrm {i}}{2} \left( \frac{1}{s^{\alpha }-c^{\star }} - \frac{1}{s^{\alpha }-c}\right) \triangleq \frac{\mathrm {i}}{2} t^{\alpha -1}\Bigl (E_{\alpha ,\alpha }\bigl (c^{\star } t^{\alpha }\bigr ) - E_{\alpha ,\alpha }\bigl (c t^{\alpha }\bigr ) \Bigr ) . \end{aligned}$$

After multiplying the Laplace transform (3.4) by the term \(s^{\delta }\) and applying the relation (1.1), we get

$$\begin{aligned} \frac{bs^{\delta }}{(s^{\alpha }-a)^2+b^2} \triangleq \frac{\mathrm {i}}{2} t^{\alpha -\delta -1}\Bigl (E_{\alpha ,\alpha -\delta }\bigl (c^{\star } t^{\alpha }\bigr ) - E_{\alpha ,\alpha -\delta }\bigl (c t^{\alpha }\bigr ) \Bigr ) . \end{aligned}$$

For any \(z\in {\mathbb {C}}\), by writing \(z = \rho \cos \theta + \mathrm {i}\rho \sin \theta \), with \(\rho = |z |\) and \(\theta = \arg (z)\), it is elementary to observe that

$$\begin{aligned} \begin{aligned} E_{\alpha ,\beta }\bigl (z\bigr ) - E_{\alpha ,\beta }\bigl (z^{\star }\bigr )&= \sum _{j=0}^{\infty } \left[ \frac{\rho ^j \cos j\theta + \mathrm {i}\rho ^j \sin j\theta }{\varGamma (\alpha j + \beta )} - \frac{\rho ^j \cos j\theta - \mathrm {i}\rho ^j \sin j\theta }{\varGamma (\alpha j + \beta )} \right] \\&= 2 \mathrm {i}\sum _{j=0}^{\infty } \frac{ \rho ^j \sin j\theta }{\varGamma (\alpha j + \beta )} = 2 \mathrm {i}{{\,\mathrm{Im}\,}}\Bigl ( E_{\alpha ,\beta }(z) \Bigr ) \\ \end{aligned} \end{aligned}$$

and, hence, a minor rearrangement yields the correspondence

$$\begin{aligned} \frac{bs^{\delta }}{(s^{\alpha }-a)^2+b^2} \triangleq t^{\alpha -\delta -1} {{\,\mathrm{Im}\,}}\Bigl (E_{\alpha ,\alpha -\delta }(ct^{\alpha })\Bigr ) \end{aligned}$$
(3.6)

which is the basic formula for the correspondence between the Laplace and time domains for the case of simple complex poles.

Since numerical algorithms for the computation of ML functions [21, 23] usually make use of complex arithmetic, the relation (3.6) can be directly used for efficient time response computations.

3.3 Multiple complex poles

For the analysis of transfer functions with multiple complex poles of multiplicity \(n \in \mathbb {N}\), we consider again the conjugate pair of complex poles (3.3) and the transfer function

$$\begin{aligned} \frac{s^{\delta }}{\bigl [(s^{\alpha }-a)^2+b^2\bigr ]^n} = \frac{s^{\delta }}{(s^{\alpha }-c)^n(s^{\alpha }-c^{\star })^n} \end{aligned}$$

with its partial fractional decomposition

$$\begin{aligned} \frac{s^{\delta }}{\bigl [(s^{\alpha }-a)^2+b^2\bigr ]^n} = \sum _{k=1}^{n} P_k \left( \frac{s^{\delta }}{(s^{\alpha }-c)^k} +(-1)^k \frac{s^{\delta }}{(s^{\alpha }-c^{\star })^k} \right) , \end{aligned}$$
(3.7)

where

$$\begin{aligned} P_k = (-1)^{n-k} \left( {\begin{array}{c}2n-k-1\\ n-k\end{array}}\right) \frac{1}{(2 \mathrm {i}b)^{2n-k}}. \end{aligned}$$
(3.8)

Each of the terms in the right-hand side of (3.7) can be converted to the time domain thanks to the relation (1.1), after replacing the real pole with a complex one and considering the convergence condition (3.5), i.e.

$$\begin{aligned} \frac{s^{\delta }}{\bigl [(s^{\alpha }-a)^2+b^2\bigr ]^n} \triangleq \sum _{k=1}^{n} P_k \frac{t^{\alpha k - \delta -1}}{(k-1)!} \Bigl [ E_{\alpha ,\alpha -\delta }^{(k-1)}(c t^{\alpha }) + (-1)^{k} E_{\alpha ,\alpha -\delta }^{(k-1)}(c^{\star } t^{\alpha }) \Bigr ] . \end{aligned}$$
(3.9)

By using (2.2), and following the same reasoning in the previous Section, it is possible to see that

$$\begin{aligned} \begin{aligned} E_{\alpha ,\beta }^{(m)}(z) + (-1)^{m+1} E_{\alpha ,\beta }^{(m)}(z^{\star })&= \bigl (1+(-1)^{m+1}\bigr ) \sum _{j=0}^{\infty } \frac{(j+m)!}{j!} \frac{\rho ^j \cos j \theta }{\varGamma (\alpha j + \alpha m + \beta )} + \\&\quad + \bigl (1-(-1)^{m+1}\bigr ) \mathrm {i}\sum _{j=0}^{\infty } \frac{(j+m)!}{j!} \frac{\rho ^j \sin j \theta }{\varGamma (\alpha j + \alpha m + \beta )} \\ \end{aligned} \end{aligned}$$

where, again, we exploited the representation \(z= \rho \cos \theta + \mathrm {i}\rho \sin \theta \) for \(z \in {\mathbb {C}}\). Therefore, we are able to evaluate

$$\begin{aligned} E_{\alpha ,\alpha -\delta }^{(k-1)}(c t^{\alpha }) + (-1)^{k} E_{\alpha ,\alpha -\delta }^{(k-1)}(c^{\star } t^{\alpha }) = \left\{ \begin{array}{ll} 2 {{\,\mathrm{Re}\,}}\Bigl ( E_{\alpha ,\alpha -\delta }^{(k-1)}(c t^{\alpha }) \Bigr ) \quad &{} { k}\text { even} \\ 2 \mathrm {i}{{\,\mathrm{Im}\,}}\Bigl ( E_{\alpha ,\alpha -\delta }^{(k-1)}(c t^{\alpha }) \Bigr ) &{} { k}\text { odd} \\ \end{array}\right. \end{aligned}$$

thanks to which formula (3.9) can be rearranged into the series

$$\begin{aligned} \begin{aligned}&\frac{s^{\delta }}{\bigl [(s^{\alpha }-a)^2+b^2\bigr ]^n} \triangleq \\&\triangleq -\frac{A_1}{0!} t^{\alpha -\delta -1} {{\,\mathrm{Im}\,}}\Bigl ( E_{\alpha ,\alpha -\delta }\bigl (ct^{\alpha }\bigr ) \Bigr ) - \frac{A_2}{1!} t^{2\alpha -\delta -1} {{\,\mathrm{Re}\,}}\Bigl ( E_{\alpha ,\alpha -\delta }^{(1)}\bigl (ct^{\alpha }\bigr ) \Bigr ) \\&\, + \frac{A_3}{2!} t^{3\alpha -\delta -1} {{\,\mathrm{Im}\,}}\Bigl ( E_{\alpha ,\alpha -\delta }^{(2)}\bigl (ct^{\alpha }\bigr ) \Bigr ) + \frac{A_4}{3!} t^{4\alpha -\delta -1} {{\,\mathrm{Re}\,}}\Bigl ( E_{\alpha ,\alpha -\delta }^{(3)}\bigl (ct^{\alpha }\bigr ) \Bigr )\\&\, - \frac{A_5 }{4!} t^{5\alpha -\delta -1} {{\,\mathrm{Im}\,}}\Bigl ( E_{\alpha ,\alpha -\delta }^{(4)}\bigl (ct^{\alpha }\bigr ) \Bigr ) - \frac{A_6}{5!} t^{6\alpha -\delta -1} {{\,\mathrm{Re}\,}}\Bigl ( E_{\alpha ,\alpha -\delta }^{(5)}\bigl (ct^{\alpha }\bigr ) \Bigr ) + \dots \\ \end{aligned} \end{aligned}$$

whose last n-th term contains the n-th derivative of the two-parameter ML function of the real or the imaginary part of the argument, depending on whether n is even or odd. Coefficients \(A_k\) are derived from the \(P_k\) coefficients (3.8) as follows

$$\begin{aligned} A_k = 2 (-\mathrm {i})^{k} P_k = 2 (-1)^k \left( {\begin{array}{c}2n-k-1\\ n-k\end{array}}\right) \frac{1}{(2 b)^{2n-k}} , \quad k = 1,2, \dots , n . \end{aligned}$$
(3.10)

For convenience, the above series can be written in the more compact form

$$\begin{aligned} \begin{aligned}&\frac{s^{\delta }}{\bigl [(s^{\alpha }-a)^2+b^2\bigr ]^n} \triangleq \\&\triangleq t^{\alpha -1} \sum _{k=0}^{[(n-1)/2]} (-1)^{k+1} A_{2k+1} \frac{t^{2k\alpha -\delta }}{(2k)!} {{\,\mathrm{Im}\,}}\Bigl ( E_{\alpha ,\alpha -\delta }^{(2k)} \bigl (ct^{\alpha }\bigr ) \Bigr ) \\&\,+t^{\alpha -1} \sum _{k=0}^{[n/2-1]} (-1)^{k+1} A_{2(k+1)} \frac{t^{(2k+1)\alpha -\delta }}{(2k+1)!} {{\,\mathrm{Re}\,}}\Bigl ( E_{\alpha ,\alpha -\delta }^{(2k+1)} \bigl (ct^{\alpha }\bigr ) \Bigr ) \\ \end{aligned} \end{aligned}$$
(3.11)

with [x] denoting the integer part of x.

4 Numerical simulations

The relationships (3.6) and (3.11) between the Laplace and the time domains for complex poles will be used in this section to test the accuracy and robustness of the numerical transient analysis of fractional-order systems with different types of transfer functions, with both simple and multiple w-domain poles.

To exploit the relations (3.6) and (3.11) numerical algorithms are needed to evaluate two-parameter ML functions, and their derivatives, with complex arguments and for different sets of real parameters \(\alpha \) and \(\beta \).

Despite the special role played by ML functions in analysis and computation of fractional-order systems (essentially, the same role of the exponential function for integer-order systems), programming languages and computational packages usually do not provide built-in functions for the computation of ML functions and their derivatives; therefore it is necessary to rely on routines devised in the context of other research works.

One of the first available codes is the Matlab mlf.m function by I. Podlubny and M. Kacenak [23]; this is a code based on a mix of asymptotic expansions and numerical integration of an integral representation of the ML function, in accordance with the analysis previously provided in [14]. It is of historical importance since it has been the first available Matlab tool for computing ML functions and it made possible to begin investigations based on this function. However the code [23] is not designed to evaluate derivatives of the ML function and therefore it is not suitable to handle systems with multiple poles.

In [3] it was devised an algorithm to evaluate derivatives of the ML function by truncating the series representation (2.2); this method, however, can suffer from unexpected numerical cancellation due to the possible presence of series terms with large absolute value and alternating sign.

The problem of specifically computing derivatives of the ML functions was faced in [13] as well; essentially this work concerns with the computation of ML functions with matrix arguments, by exploiting the Schur-Parlett algorithm [26], which, in turns, demands for the computation of (possibly high-order) derivatives of the ML function in arguments related to the eigenvalues of the matrix argument, and, hence, in the whole complex plane. The algorithm proposed in [13] is based on the numerical inversion of the Laplace transform of the derivative of the ML function, thus generalizing previous algorithms devised in [12] and [19]. To improve stability of the algorithms, when high-order derivatives are requested, the algorithm in [13] exploits a formula for the representation of higher-order derivatives in terms of lower-order derivatives. The Matlab function ml_deriv(\(z,\alpha ,\beta ,k\)), extracted from the code devised in [13], and evaluating the k-th order derivative of the ML function with two parameters \(\alpha \) and \(\beta \) at each entry of the vector z, is therefore used in the numerical experiments and the corresponding results are simply denoted as ML.

The results are hence compared with those obtained from the transient analysis in popular SPICE-family simulating programs, namely PSPICE, LTSpice, and Micro-Cap (and labelled, respectively, as PS, LT and MC), which enable a direct specification of the transfer function of a fractional-order system using the controlled Laplace source. SPICE evaluates the respective time waveforms via the convolution of the driving signal and the impulse response, the latter being computed from samples of the corresponding frequency response. The transient analysis of classical integer-order systems then leads to known errors associated with specific types of transfer functions, leading to a “no causal” impulse response.

As a benchmark for the transient analysis, we consider the transfer function

$$\begin{aligned} K(s) = s^{\delta } \left[ \frac{a^2 + b^2}{(s^{\alpha }-a)^2 + b^2} \right] ^n \end{aligned}$$
(4.1)

with the parameters \(a = -628.319\), \(b = 6252\) chosen so that the transfer function (4.1) corresponds for \(n = 1\) and \(\alpha = 1\) to a 2-nd order system with a characteristic frequency of 1 kHz and a quality factor of 5. The time waveforms corresponding to (4.1) for this constellation of parameters are well known and the results of the transient analysis are therefore easy to verify.

Errors in the transient analysis of more complex transfer functions can also be detected by testing the limiting values of the response for \(t \rightarrow 0^+\) and \(t\rightarrow \infty \). The denominator in (4.1) has all s-roots in the closed left-hand complex half-plane if

$$\begin{aligned} a < \frac{b}{\tan \left( \alpha \pi /2\right) }, \quad \alpha > 0. \end{aligned}$$
(4.2)

Then, according to the final value theorem, the time waveform f(t), corresponding to the Laplace transform (4.1), for \(t \rightarrow \infty \) converges to 0 when \(\delta > -1\), and to 1 when \(\delta = -1\). For \(\delta < -1\) this limit is improper since the term \(s^{\delta }\) then represents a multiple pole at zero.

The limit value of the impulse characteristic at \(t \rightarrow 0^+\) is, according to the initial value theorem, \(f(0^+) = 0\) for \(\delta < 2n\alpha -1\) and \(f(0^+) = (a^2+b^2)^n\) for \(\delta = 2n\alpha -1\). For \(\delta > 2n\alpha -1\) the limit takes infinity values.

In the transient analysis, the fractional-order system modeled by the transfer function (4.1) was driven by a unit step. Then, to obtain the impulse response, it is necessary to multiply the transfer function by the s operator. Since different modifications of the corresponding algorithms are implemented in the above SPICE-family programs, it was interesting to compare the results obtained.

The comparisons are shown in Figures 1 and 2 in a uniform coordinate system, namely the response f(t) vs. time t.

Fig. 1
figure 1

Waveforms corresponding to the transfer function (4.1) with simple complex poles (\(n=1\)) for \(\alpha = 0.9\), \(a = -628.319\) (if not specified otherwise) and \(b = 6252\). The waveforms are computed in MATLAB via the algorithm [13] (ML), via the transient analysis in PSpice 16.5 (PS), LTSPICE XVII (LT), and Micro-Cap 12 (MC). Failing methods are marked by a strikeout (e.g. PS)

Fig. 2
figure 2

Waveforms corresponding to the transfer function (4.1) with multiple complex poles (\(n=3\)) for \(\alpha = 0.9\), \(a = -628.319\) (if not specified otherwise) and \(b = 6252\). The waveforms are computed in MATLAB via the algorithm [13] (ML), via the transient analysis in PSpice 16.5 (PS), LTSPICE XVII (LT), and Micro-Cap 12 (MC). Failing methods are marked by a strikeout (e.g. PS)

The results (a)-(f) in Figure 1 for \(n = 1\) are obtained for the fixed parameters \(\alpha \), a, b while varying the parameter \(\delta \). They confirm the stable behavior of procedures based on the computation of the ML function. The case (a) represents a double pole at zero, which leads to unbounded growth of the response over time. From among the SPICE programs, only Micro-Cap correctly evaluates this unstable behavior. PSpice generates a fundamentally wrong response and the simulation in LTSpice does not run at all (the Laplacian is singular at DC).

The simulations (b) and (c) satisfy the test for the limiting values \(f(0^+) = 0\) and \(f(\infty ) = 1\). For the case (d), i.e. \( \delta = 0.8\), the limiting value changes at the origin to \(f(0^+) = a^2+b^2 = 3.948 \times 10^7\), which is confirmed for all the computational methods. However, the results show that all SPICE simulators introduce an error in the steady state calculation.

The simulation for the parameters in the plot (e) for \(\delta = 1\) is handled by SPICE programs only with large errors, while the ML algorithm based on the Mittag-Leffler functions gives accurate results. When the parameter \(\delta \) is increased further (see the plot (f)), the SPICE programs start to fail fatally. Only the ML method exhibits problem-free behavior.

Plot (g) shows the simulation results for \(a = 990\), which is just below the 990.22 threshold between the stable and unstable response as given in (4.2). The corresponding oscillating response is confirmed by the ML method as well as by the PS and MC simulations. The PS simulation fails in this case. Finally plot (h) shows a more complex case of unstable behavior, simultaneously induced by a conjugate pair of complex poles in the instability region for \(a = 1500\) and a double pole at zero. The response is correctly calculated only by the ML and MC methods.

Figure 2 shows examples of testing the methods of transient analysis for the more complex case of multiple poles, in this case \(n = 3\).

Plots (a)-(g) are again ordered for increasing values of \(\delta \), which implies a successive differentiation of the responses with respect to time. All tested methods show satisfactory results for \(\delta = -1\) and \(\delta = 0\). Outside this interval errors can be successively observed for all SPICE programs without exception. When \(\delta = 4.4\) is reached (see plot (e)), the limiting value of \(f(0^+)\) goes from 0 to \((a^2+b^2)^3 = 5.972 \times 10^{22}\), which is confirmed by the ML, LT and MC methods. The PSPICE does not converge for these parameters and even for higher values of \(\delta \). Plots (f) and (g) exhibit a high sensitivity of the results from LT and MC to \(\delta \) increasing above the critical value of 4.4. Then only the ML method generates usable outputs.

Figure (h) finally shows the simulation of system (4.1) for \(n = 3\) when it is set to be close to the instability limit by the parameter \(a = 990\). Only the ML and MC methods passed this challenging test successfully.

The outputs of these simulations for gradually increasing values of \(\delta \) also illustrate the robustness of the balancing derivatives algorithm implemented in [13] and used by the ML method; this method indeed generates correct results even for high values of \(\delta \), when instead SPICE programs fail.

5 Concluding remarks

The dictionary of current Laplace-time correspondences for fractional-order systems is completed by adding the missing correspondences (3.6) and (3.11) for single and multiple w-domain poles. This addition now allows the automated generation of analytical formulas of impulse responses using two-parameter ML functions and their derivatives for any constellation of poles, i.e., real and complex, simple and with arbitrary multiplicity. It can also be potentially used for developing useful software tools for the symbolic analysis of analog networks containing fractional-order elements.

The MATLAB code for evaluating the derivatives of two-parameter ML functions, based on the algorithm described in [13], is used and its robustness is demonstrated on benchmark simulations.