%esercizio 2
clear
close all
clc

s = tf('s');
G = (50*(s+10))/((s^2+s+10)*(s+20))
G = zpk(G)
G.DisplayFormat = 'Frequency'
% 
% kg = 2.5
 kd = 10
 kh = 1/kd
% 
% e_ramp = 0.1
% kc = (kd^2)/(e_ramp*kg)
% 
% %Proviamo 
% C = kc/s
% 
% L = C * G * kh
% 
% Bw = 15
% wc = 10 %7.5 --- 12
% 
% sovraelongaz = 0.15
% Mr = (1+sovraelongaz)/0.9   %1.15 ---- 1.352
% 
% fm = (2.3 - Mr)/1.25  %da 43.45 ---  52.71
% fm_deg = rad2deg(fm) %47°
% 
% 
% [m,f] = bode(L,wc)
% my_margin = f +180
% m_dB = 20*log10(m)
% 
% epsilon = 15
% dfm = fm_deg - my_margin + epsilon
% 
% %devo guadagnare 120°, sono tanti, due reti anticipatrici e una
% %ritardatrice per il modulo
% 
% dfm = dfm/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
% [m,f]=bode(L1,wc)
% m_dB = 20*log10(m)
% %Ritardatrice
% m_dB = m_dB / 2
% alpha = (10^(-m_dB/20))
% tau = 100/wc
% 
% Cr = (1+tau*alpha*s)/(1+tau*s)
% 
% L2 = Cr*Cr*L1
% 
% [m,f]=bode(L2,wc)
% %eps = 12, verificato, wc = 10, margin 46.8°
% 
% W = feedback(L2,1)
% bode(W)
% figure(2)
% step(W)

%%Parte 2 esercizio 2, stabilizzare G con un proporzionale
C = 0.5
L = C*G*kh

bode(L)
W = feedback(L,1)
%step(W)
