Obatin s domain and transfer function from the data
9 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Venkatkumar M
am 9 Dez. 2021
Kommentiert: Star Strider
am 13 Dez. 2021
I have two set of graph data
Frequency / phase , angle data - Freq_phase_angle.txt
Frequency / real , imaginary data - Freq_complex.txt
Could any one please help with procedure to obatin S-domain/ Transfer function from data(.txt) using system idenrtification tool in MATLAB?
To obtain this circuit. using cauer/foster method
0 Kommentare
Akzeptierte Antwort
Star Strider
am 9 Dez. 2021
Actually though, to analyse the circuit using the Foster-Cauer approach, plot the imaginary part of the complex frequency vector and go from there —
T1 = readtable('https://www.mathworks.com/matlabcentral/answers/uploaded_files/828710/Freq_complex.txt', 'VariableNamingRule','preserve')
T1{:,2} = cellfun(@(x)sscanf(x, '%f, %f'), T1{:,2}, 'Unif',0);
RI = cell2mat(table2cell(T1(:,2)).').';
RI = complex(RI(:,1),RI(:,2));
T2 = [T1(:,1) table(RI)];
T2.Properties.VariableNames = {'Freq','V(i_s)'}
figure
semilogx(T2{:,1}, imag(T2{:,2}))
grid
There is one obvious pole, however there may be two others with real values far from the imaginary axis. There is a zero at the origin, and likely one at infinity.
.
2 Kommentare
Star Strider
am 13 Dez. 2021
Using Cauer-Foster is not difficult, however I choose not to do it for you, since the assignment wants you to do it.
I will instead demonstrate how to identify it using the System Identification Toolbox —
T1 = readtable('https://www.mathworks.com/matlabcentral/answers/uploaded_files/828710/Freq_complex.txt', 'VariableNamingRule','preserve')
T1{:,2} = cellfun(@(x)sscanf(x, '%f, %f'), T1{:,2}, 'Unif',0);
RI = cell2mat(table2cell(T1(:,2)).').';
RI = complex(RI(:,1),RI(:,2));
T2 = [T1(:,1) table(RI)];
T2.Properties.VariableNames = {'Freq','V(i_s)'}
figure
semilogx(T2{:,1}, imag(T2{:,2}))
grid
frd = idfrd(T2{:,2}, T2{:,1}, 1/(2*T2{end,1}))
sys_tf = tfest(frd, 4, 4) % Poles: 4, Zeros: 4
poles = pole(sys_tf)
zeros = zero(sys_tf)
figure
pzmap(sys_tf)
figure
pzmap(sys_tf)
axis([-100000 1000 -500 500]) % Detail Near Origin
sys_ss = ss(sys_tf)
figure
compare(frd,sys_ss)
grid
There is a constant phase difference from the original spectrum of about 360° (by observation, not calculation), and the approsimation appears to be good. I cannot determine where the output is taken from that network (assuming it is a two-port), so I assume it is simply a one-port with 4 obvious poles and 4 obvious zeros. The Cauer-Foster synthesis requires the transfer function, and this identification provides it.
Since that is the point of the assignment, I leave that to you. It would be easier to do it symbolically using polynomial division, the other option being to use the deconv function to get a numeric polynomial continued-fraction decomposition of the transfer function.
.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Circuit Envelope Simulation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!