Loading [MathJax]/extensions/tex2jax.js

離散システムのボード線図を書く

\begin{align}
G=\frac{1}{s+1}
\end{align}

を離散化する。c2dで離散化すると伝達関数は

\begin{align}
G=\frac{0.00995}{z-0.99}
\end{align}

となる。離散システムのボード線図を書くには\(z=e^{j \omega T}\)を代入すればいい。

ソース

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
j=sqrt(-1);
N=2;
omega=10^(-N):0.001:10^(N);
T=0.01;
 
s=tf('s');
  
G=1/(s+1);
  
 
bodegain1=zeros(size(omega));
bodeangle1=zeros(size(omega));
 
bodegain2=zeros(size(omega));
bodeangle2=zeros(size(omega));
  
  
for i=1:1:length(omega)
    bodegain1(1,i)=20*log10(norm(1/(j*omega(1,i)+1)));
    bodeangle1(1,i)=rad2deg(angle(1/(j*omega(1,i)+1)));
end
  
figure;
subplot(2,1,1)
semilogx(omega,bodegain1)
xlim([10^-2,10^2])
grid on
subplot(2,1,2)
semilogx(omega,bodeangle1)
ylim([-90 0])
xlim([10^-2,10^2])
yticks([-90 -45 0])
grid on
 
G2=c2d(G,T,'matched');
 
for i=1:1:length(omega)
    bodegain2(1,i)=20*log10(norm(0.00995/(exp(j*omega(1,i)*T)-0.99)));
    bodeangle2(1,i)=rad2deg(angle(0.00995/(exp(j*omega(1,i)*T)-0.99)));
end
figure
bode(G2)
grid on
xlim([10^-2,10^2])
 
figure;
subplot(2,1,1)
semilogx(omega,bodegain2)
grid on
subplot(2,1,2)
semilogx(omega,bodeangle2)
ylim([-135 0])
yticks([-135 -90 -45 0])
xlim([10^-2,10^2])
 
grid on

コメント

タイトルとURLをコピーしました