clear all
clc
close all
s = tf('s');
G = (s+20)/(s*(3*s+1)*(s+10)^2)
%G = zpk(G);
%G.DisplayFormat = 'Frequeny';

wc = 8
kd = 5
kh = 1/kd
kg = 0.2
sovrael = 0.25

Mr = (1 + sovrael)/0.95
fm = (2.3 - Mr)/1.25
fm_deg = rad2deg(fm)

e_ramp = 0.01
kc = (kd^2)/(e_ramp*kg);

%provo ora C RICORDA IL KC E IL KH

L = kc * kh * G %sistema di tipo 1 
[m,f] = bode(L,wc)
m_dB = 20*log10(m)

my_margin = f + 180

epsilon = 10
dfm = fm_deg - my_margin + epsilon

%%2 reti anticipatrici e una ritardatrice

dfm = dfm/2
disp('devo farne 2')

alpha = (1-sind(dfm))/(1+sind(dfm))
tau = 1/(wc*sqrt(alpha))

Ca = (1+tau*s)/(1+tau*alpha*s)

L1 = Ca*Ca*L
bode(L1,wc)