echo off;
clear
clc
disp('[step 1]から[step 7]において読み取った振幅比と位相差の値をボード線図上にプロットします．')
disp('[step 1]から[step 7]で読み取った振幅比[dB]と位相差[deg]の値を入力してください');

amp1=input('[step 1]の振幅比=');
phase1=input('[step 1]の位相差=');
amp2=input('[step 2]の振幅比=');
phase2=input('[step 2]の位相差=');
amp3=input('[step 3]の振幅比=');
phase3=input('[step 3]の位相差=');
amp4=input('[step 4]の振幅比=');
phase4=input('[step 4]の位相差=');
amp5=input('[step 5]の振幅比=');
phase5=input('[step 5]の位相差=');
amp6=input('[step 6]の振幅比=');
phase6=input('[step 6]の位相差=');
amp7=input('[step 7]の振幅比=');
phase7=input('[step 7]の位相差=');


echo on;
% --------------------------------------------------------
% 読み取った振幅比と位相差をボード線図上にプロットします．
% --------------------------------------------------------

pause	% press any key to continue.

figure(3)

semilogx(0.01,amp1,'o')
set(gca,'Ylim',[-80 20]);
xlabel('\omega [rad/s]','fontsize',12)
ylabel('Gain [dB]','fontsize',12)
title('ゲイン線図','fontsize',12)
grid on
hold on
semilogx(0.1,amp2,'o')
semilogx(0.5,amp3,'o')
semilogx(0.7,amp4,'o')
semilogx(1.0,amp5,'o')
semilogx(2,amp6,'o')
semilogx(10,amp7,'o')
semilogx(100,-80,'o')

pause	% press any key to continue.

figure(4)
semilogx(0.01,phase1,'o')
set(gca,'Ylim',[-270 90]);
xlabel('\omega [rad/s]','fontsize',12)
ylabel('Phase [deg]','fontsize',12)
title('位相線図','fontsize',12)
grid on
hold on
semilogx(0.1,phase2,'o')
semilogx(0.5,phase3,'o')
semilogx(0.7,phase4,'o')
semilogx(1.0,phase5,'o')
semilogx(2,phase6,'o')
semilogx(10,phase7,'o')
semilogx(100,-180,'o')

pause	% press any key to continue.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 読み取った振幅比と位相差の値がボード線図上にプロットされました．
% 読み取った値(点)が，角周波数 w=1.0[rad/s] の近くで，大きくなり
% 周波数の増加に伴って右下がりになっていることを確認してください．
% また，位相差は右下がりになっていることを確認してください．
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

pause	% press any key to continue.

% --------------------------------------------------------
% ボード線図のシミュレーション応答を重ねてプロットし，
% 読み取った値と比較します．
% --------------------------------------------------------

pause	% press any key to continue.

figure(3)
w=logspace(-2,2,1000);
wn=1;
zeta=0.1;
[num1,den1]=ord2(wn,zeta);
[g,p]=bode(num1,den1,w);
semilogx(w,20*log10(g));
hold on

pause	% press any key to continue.

figure(4)
semilogx(w,p);

pause	% press any key to continue.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 読み取った値(点)が，シミュレーション応答による曲線に沿って
% いるかどうかを確認してください．
%
% 以上の結果から，2次系では角周波数が 1.0[rad/s] に近づくに
% したがってゲインが大きくなり，角周波数 1.0[rad/s] でゲイン
% の最大値をとり，その点を過ぎると，ゲインが減少することを確認
% してください．また，高周波域では，ゲインが -40[dB/dec] で
% 減少することに注意してください．さらに，2次系では，位相が最大
% で-180[deg] 遅れることも確認してください．
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

pause	% press any key to continue.

