tf2zp how to use k value
3 次查看(过去 30 天)
显示 更早的评论
Setup:
2_a Coef and pole/zero pairs and gain (k)
aN = 2.11e-12;
bN = 3.90e-6;
cN = 0;
aD = 1.07e-10;
bD = 2.97e-5;
cD = 1;
num =[aN bN cN];
den =[aD bD cD];
[z,p,k] = tf2zp(num,den)
z =
1.0e+06 *
0
-1.8483
p =
1.0e+05 *
-2.3836
-0.3921
k =
0.0197
ZA = .0197*( s*(1 + s/1848300) / ((1 + s/238360)*(1 + s/39210)));
Ran the following:
R1 = 3000;
R2 = 16000;
R4 = 360;
C2 = 1.3e-9;
C4 = 1.5e-9;
w1 = (1/(C4*R4));
f1 = w1/2*pi;
w2 = (1/(C4*(R4+R1)));
f2 = w2/2*pi;
w3 = (1/(C2*R2));
f3 = w3/2*pi;
s = tf('s');
Z1 = R1*( (1 + s/w1)/(1 + s/w2) );
Z2 = R2*(1 + w3/s);
Z = minreal(Z1/(Z1 + Z2));
ZA = (.0197)*( s*(1 + s/1848300) / ((1 + s/238360)*(1 + s/39210)));
fmin = 10; % minimum frequency = 10 Hz
fmax = 10e6; % maximum frequency = 10 MHz
% Set Bode plot options
BodeOptions = bodeoptions;
BodeOptions.FreqUnits = 'Hz'; % we prefer Hz, not rad/s
BodeOptions.Xlim = [fmin fmax]; % frequency-axis limits
BodeOptions.Ylim = {[-200,200];[-360,360]}; % magnitude and phase axes limits
BodeOptions.Grid = 'on'; % include grid
figure(2);
% define plot title
BodeOptions.Title.String = 'Z1/(Z1+Z2) vs ZA';
bode(Z, BodeOptions, 'b', ZA, BodeOptions, 'r'); % generate the magnitude and phase responses
legend('Z1/(Z1+Z2)', 'ZA')
And my gain from ZA does not match Z1/(Z1 + Z2).
If I modify to this:
ZA = 20log(.0197)*( s*(1 + s/1848300) / ((1 + s/238360)*(1 + s/39210)));
then ZA phase is mesed up.
How does one deal with k?
0 个评论
回答(1 个)
KALYAN ACHARJYA
2019-2-2
编辑:KALYAN ACHARJYA
2019-2-2
tf2zp how to use k value
When the code exucate the following line
[z,p,k] = tf2zp(num,den);
here k represents the gain of the transfer functuion. The k value avalible in current variable list (workspace), just use the variable k in your code when it required after the tf2zp line.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Digital Filtering 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!