Obatin s domain and transfer function from the data
5 次查看(过去 30 天)
显示 更早的评论
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
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/828750/image.jpeg)
0 个评论
采纳的回答
Star Strider
2021-12-9
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 个评论
Star Strider
2021-12-13
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.
.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Pole and Zero Locations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!