north2012
Member level 3
Hello,
I am trying to solve problem of parameter estimation of 2R-1C model of bioimpedance. I have made measurements and I have |Z| and phase angle data in frequency range 10k-100kHZ, so I calculated real and imaginary part. I would like now to estimate parameters of the model: Re, Ri and Cm. I use Fricke's model of bioimpedance (https://nano.mdx.ac.uk/wp-content/uploads/2011/11/Cole-Cole-Model-with-Cells.jpg).
I use MATLAB lsqnonlin function to estimate parameters from measured data and it works fine but it has strong dependance of initial conditions so I decided to try to estimate initial conditions more accurate. Here is my MATLAB code for that
but MATLAb response in command window is
"Warning: Explicit solution could not be found.
> In solve at 169
Comma separated list expansion has cell syntax for an array that
is not a cell.
Error in sym/subsref (line 1575)
[inds{k},refs{k}] = privformat(inds{k});"
Any suggestions?
Thanks in advance.
I am trying to solve problem of parameter estimation of 2R-1C model of bioimpedance. I have made measurements and I have |Z| and phase angle data in frequency range 10k-100kHZ, so I calculated real and imaginary part. I would like now to estimate parameters of the model: Re, Ri and Cm. I use Fricke's model of bioimpedance (https://nano.mdx.ac.uk/wp-content/uploads/2011/11/Cole-Cole-Model-with-Cells.jpg).
I use MATLAB lsqnonlin function to estimate parameters from measured data and it works fine but it has strong dependance of initial conditions so I decided to try to estimate initial conditions more accurate. Here is my MATLAB code for that
Code:
clear all
clc
syms Re Ri C
omega =10000*6.28;
Z = 264.45; %measured
Real = 248.78; %calculated from Z and phase angle
Imag = -89.67; %calculated from Z and phase angle
rz=(Re+omega*omega*C*C*Re*Ri*(Re+Ri))/(1+omega*omega*C*C*(Re+Ri)*(Re+Ri)); %real part of Fricke's model
iz=-(omega*C*Re*Re)/(1+omega*omega*C*C*(Re+Ri)*(Re+Ri)); %imag part of Fricke's model
eq1= rz-Real;
eq2=iz-Imag;
eq3= sqrt(rz*rz+iz*iz)-Z;
sol = solve(eq1, eq2, eq3);
double(sol.Re)
double(sol.Ri)
double(sol.C)
but MATLAb response in command window is
"Warning: Explicit solution could not be found.
> In solve at 169
Comma separated list expansion has cell syntax for an array that
is not a cell.
Error in sym/subsref (line 1575)
[inds{k},refs{k}] = privformat(inds{k});"
Any suggestions?
Thanks in advance.