Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Solve system of three nonliner equations in MATLAB - bioimpedance modelling

Status
Not open for further replies.

north2012

Member level 3
Member level 3
Joined
Apr 1, 2013
Messages
63
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,288
Activity points
1,813
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
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.
 

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.

You have only 2 equations (Real part-Imag part of Z) not 3 and 3 unknowns, you know what this mean?


Any suggestions?
Take another measure of the impedance. (ie. @5kHz)
 

I think that I have three independent equations because I have known |Z|, Real and Imaginary part and Re, Ri and C are unknown. Relationship between |Z| and (Real, Imag) is |Z|=sqrt(Real*Real+Imag*Imag) so I have to have set of solutions (Re, Ri, C) which will satisfy |Z|, Real and Imag but not |Z| and sqrt(Real*Real+Imag*Imag).
Explanation:
Real=300
Imag=-400
|Z|=sqrt(300*300+400*400)=500

but
Real=300
Imag=400
|Z|=sqrt(300*300+400*400)=500

will give the same value for |Z| and no for Imag.

Am I correct?
 

I think that I have three independent equations because I have known |Z|, Real and Imaginary part and Re, Ri and C are unknown. Relationship between |Z| and (Real, Imag) is |Z|=sqrt(Real*Real+Imag*Imag) so I have to have set of solutions (Re, Ri, C) which will satisfy |Z|, Real and Imag but not |Z| and sqrt(Real*Real+Imag*Imag).
Explanation:
Real=300
Imag=-400
|Z|=sqrt(300*300+400*400)=500

but
Real=300
Imag=400
|Z|=sqrt(300*300+400*400)=500

will give the same value for |Z| and no for Imag.

Am I correct?

No. sqrt is a multivalued function

Imag = +/- sqrt(|Z|^2-Real^2)

But, since |Z|^2 = Real^2+Imag^2 , there is not much to say about the dependence.


If you have only 2 parameters:
z: Measured
phase: Measured

For every set F1(z,phase)=k1, F2(z,phase)=k2, F3(z,phase)=k3... there will always be only 2 independents, no matter how many equations have written and how multivalued are.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top