I apologize in advance for the large wall of text, but I feel like to properly ask this question, some background information is in order. I've been recently working on modelling the impedance of a circuit using the Mathworks SIMULINK/SIMSCAPE libraries - more specifically, I am interested in using the Impedance measurement block to perform an in silico impedance spectroscopy measurement (similarly to the Zfit function found in the Matlab File Exchange, https://ch.mathworks.com/matlabcentral/fileexchange/19460-zfit, though the latter neglects any phase terms which is why I also would like to build a model with Simulink).

However, one of the elements in my system is a generalized constant phase element (CPE), characterised by the following equation (in the Laplace domain, with \$ s=j\omega\$ - equivalent to a Fourier transform): \$ Z(j\omega) = 1/(j\omega C)^n \$, with C [F] being a capacitance value and 0≤n≤1. I thought of a few different ways to implement this, but each come with a few drawbacks:

  • Using the Zfit function: very easy to implement, but there is no phase information. Furthermore, when I will need to expand this model (to include the interaction of an additional body) by including an additional AC current source (which is itself made up of three independent current sources, with particular frequencies), I will need to rework the equivalent circuit with Norton/Thenevin in order to account for this current source. With Simscape, changing the circuit means simply connecting an additional block.

  • Using the built-in Impedance block in Simulink: Somewhat easy to implement, but will require additional blocks to provide \$n,C\$ as a parameters. Additionally, this block is simply a vector of impedance values which are linearly interpolated depending on the frequency (basically a fancy lookup table). Plus, I would need to use the fidgety Physical Signal/Simulink converter (or the reverse) to interface it with the Simscape blocks.

  • Modelling the impedance itself by a "super-block" which makes use of the Simulink transfer-function blocks and some other converters. This one is a likely candidate, but is a lot more work and it's a little harder to re-use in other models I may build.

For these reasons, I decided to look into building custom Simscape elements with the Simscape language (https://blogs.mathworks.com/simulink/2009/09/25/custom-components-in-physical-models/) in order to have something that is tunable and reusable across models. Briefly, you can define a file containing the nodes, branches, and parameters of your block, as well as the equations which define the through variables (basically "flow" variables, like current) and the across variables ("work/energy" variables, like electric potential).

For an ideal capacitor, this is easy enough since the relevant equations are well known:

  • \$ V = V^+ - V^- \$ (the voltage across the two nodes is the difference between voltages in the input (+) and output (-) nodes)
    • \$ i = C \frac{dV}{dt}\$ (or i = C*v.der in Simscape language)

However, for the case of the CPE this is a little more complicated. As a first idea, I figured that one could leverage the higher-order derivative properties in the Laplace domain (http://lpsa.swarthmore.edu/LaplaceZTable/LaplacePropTable.html) to handle the \$ (j\omega)^n\$ term but since n is a fractional number I believe this property cannot be used in this case.

My next attempt was to calculate the inverse Laplace transform of the transfer function from scratch. After many sheets and some help from WolframAlpha, I found something of the form:

$$ \frac{1}{C^n}\frac{t^{n-1}}{(n-1)!} $$

Finally, this leads me to a few questions:

  • Is this inverse transform approach really valid? Or am I missing something regarding the initial conditions of the circuit by starting directly from the transfer function of that element?

  • Is this formula really a correct inverse Laplace transform?

  • Am I correct in concluding that, after the time-domain response is found (the inverse Laplace transform of the TF),the overall equation then becomes: \$ Z(j\omega) = V(j\omega)/I(j\omega) \rightarrow V(t) = z(t) * i(t) \$? (with * denoting a convolution)

  • Bonus (for those with some Simscape experience): Are convolutions even implementable with the Simscape language? (I'm also asking this question in the MathWorks forums regarding the implementation of such a thing).

For those who got through this verbose question, I heartily thank you, and I appreciate any input you may have regarding these questions!

EDIT: If you're considering down-voting the question, I would appreciate if you could comment with a reason as to why (indaquate understanding, confusing question, not the appropriate forum, etc..) just to ensure that my question was indeed appropriate for this forum, and to help me better formulate them in the future. Seeing as this was the first question I've posted, I'm still relatively new to the SE system. Thanks!

  • \$\begingroup\$ You are talking about "Laplace transform", but I see no "s" variable. You use jω instead. Do you really mean Laplace, or are you working just with Fourier transforms? \$\endgroup\$ Apr 7, 2018 at 12:23
  • \$\begingroup\$ I probably should have made this clearer, it is indeed the Fourier transform (or the Laplace transform applied to s = \$ j\omega\$), but would this actually heavily influence my question? Maybe my knowledge of the math behind it is subpar, but wouldn't the same principles apply regardless? I also edited my original question to reflect this. \$\endgroup\$
    – adouv
    Apr 7, 2018 at 12:56
  • \$\begingroup\$ @AndreDouverny I'm very rusty on the math, but I do seem to recall that certain properties were only valid for specific "subsets" of the Laplace Transform, such as the Fourier transform. I don't know exactly what parts though. I will look over this later, as this is not a question I can sit down and type a quick answer to in 5 minutes. \$\endgroup\$
    – Joren Vaes
    Apr 7, 2018 at 13:07
  • \$\begingroup\$ There are properties and theorems that can be applied only to Laplace transforms, which is a more general mathematical instrument. In general, not every signal that can be L-transformed can be F-transformed, so the difference might not be irrelevant. \$\endgroup\$ Apr 7, 2018 at 13:29
  • \$\begingroup\$ @JorenVaes Yes, it is not an easy subject. Especially whether or not that constant phase system is physically realizable or not (i.e. is it a causal system in a system theory context?). This could impact the implementation of the model in the simulation and possible approximations. BTW, I "smell" that that fractional n exponent could complicate matters a lot (just a gut feeling, though; I'm a bit rusty on the heavier math too). \$\endgroup\$ Apr 7, 2018 at 13:29

1 Answer 1


The simple answer of a constant phase shifting element is that when this reactive element is 90 deg phase shifted current to voltage the Z(s) will also be either 1/sC or sL for the Laplace transform.

Conversely, a constant time delay system has phase integrating with f such that delay= 2pi for every multiple of t=1/f and amplitude , impedance "can" be unchanged. ( search all pass filter)

In every branch of applied physics and spectrum where impedance spectroscopy shows real and imaginary impedance, think of these as either dielectrics or inductors that can store energy and real as conductive or lossy medium. This applies to ULF for earth impedance scattering of soil dielectrics and minerals as well as XHF light waves.


Spectroscopy does not have to be "absolute". For example Eddy current sensing for metallurgic defects. In 1977 we made a system for detecting molecular flaws in Monel steel after applied 10k Atmosphere of heavy water at super-temperatures and calibrated sensors to 0 relative impedance for a 1mm thru hole in tube steel wall and 0.5mm ring wall thickness step as 0 deg relative phase for a huge defect and then with 80 dB SNR could detect impedance changes down 10 ppm of Z or near FIR optical wavelengths of molecules. By scanning the signatures above some threshold, and historical records 10km of data was analyzed every 0.2mm to detect flaws before expensive leaks could occur. That was a long time ago. It was not the 1st SCADA type robotic system of its type, but my 1st. 10 Engineers to design one and 1 to identify all the thousands of fixes to make it work and deliver to customer in Ontario.

  • \$\begingroup\$ Thank you for your reply. Would this mean, then, that the time-domain effect of this constant phase element would be to attenuate the amplitude and shift the phase of the signal? Or did I misunderstand your comment? Thanks! \$\endgroup\$
    – adouv
    Apr 8, 2018 at 17:50
  • \$\begingroup\$ Voltage Amplitude effect is relative to current AND frequency . In a Capacitor Current increase with rising f, But in a inductor current attenuates with rising f.. So also the phase shift of current lags in a capacitor and leads in an inductor relative to voltage by exactly 90 degrees if lossless. \$\endgroup\$ Apr 8, 2018 at 18:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.