blob: 858626f39f81f6386c0d085264b0920617afcfd7 (
plain)
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
|
s=poly(0,'s');
F=syslin('c',[1/((1+0.5*s)*s*(s*0.2+1))])
fmin=0.1; //Min freq in Hz
fmax=20; //Max freq in Hz
scf(1);clf;
bode(F,fmin,fmax); //Plots frequency response of open-loop system in Bode diagram
disp("without including k")
[GainMargin,freqGM]=g_margin(F) //Calculates gain margin [dB] and corresponding frequency [Hz]
disp(GainMargin,"GM=")
disp(freqGM*2*3.14,"omegaPC=")
[PhaseMargin,freqPM]=p_margin(F) //Calculates phase [deg] and corresponding freq [Hz] of phase margin
disp(PhaseMargin,"PM=")
disp(freqPM*2*3.14,"omegaGC")
show_margins(F) //display gain and phase margin and associated crossover frequencies
// TO FIND K FOR GM=6dB
k= 10^(6/20) //20*logk=6
disp(k,"k for GM=6 is")
// TO FIND K FOR PM=25 degrees
k= 10^(6/20) //20*logk=6
disp(k,"k for PM=25 degrees is")
|