% Conversor Flyback - Desmagnetização completa
clear all
close all;
clc
w=logspace(1,6);

% Filtro de saída e Carga
rc = 0.035;
Co = 440e-06;
R = 4;
% Controle - Led e Filtro emissor fototransistor
Rled = 470;
CTR = 0.7;
Rf = 820;
Cf = 10e-9;
% atenuador do UC3844 e rshunt
atenuador = 1/3;
rshunt = 0.25;
% Modelo flyback
Lp = 170e-06;
f = 100e3;
r1 = 10e3;
r2 = 67.7e3;

Ip = 3.4;
Vo = 19;

fcrossover_malha_tensao = 2000;
MF_malha_tensao = 60;

% função de transferencia filtro de saída e carga;
numfiltrocarga = R*[rc*Co 1];
denfiltrocarga = [Co*(R+rc ) 1];
filtrocarga = tf(numfiltrocarga, denfiltrocarga)
% função de transferência filtro fotoacoplador;
numacoplador = CTR*Rf;
denacoplador = Rled*[Rf*Cf 1];
acoplador = tf(numacoplador, denacoplador)
% função de transferencia UC3844;
UC3844 = atenuador/rshunt;
% Ganho de delta Ip do modelo da planta;
Gvoip = Lp*Ip*f/Vo
% Função de transferência do filtro e realimentação da corrente de carga do
% modelo
Gvoio = filtrocarga/(1+filtrocarga/R)
amostragem = r1/(r1+r2);

FT = acoplador*UC3844*Gvoip*Gvoio*amostragem

% 
% 
% % Diagrama de Bode da função de transferência PWM+planta+realimentação
% % Cálculo do ganho e margem de fase do conversor na frequencia de crossover
% % Cálculo do fator k
% % atan(sqrt(k)) = alfa e atan(1/sqrt(k)) = beta
% % alfa + beta = 90 graus
% % fase_boost = -90 + 2*(alfa-beta) = -90 + 2*(alfa-(90-alfa)) = -270 + 4*alfa
% 
figure(1);
bode(FT,w);
grid;
[magfcrossover_malha_tensao,phasefcrossover_malha_tensao] = bode(FT,2*pi*fcrossover_malha_tensao);
fase_boost_malha_tensao = MF_malha_tensao - 180 - phasefcrossover_malha_tensao;
k_malha_tensao =  ( tan(fase_boost_malha_tensao*pi/180/4 + 3*pi/2/4) )^2;



[compensador_malha_tensao] = compensadorII(fcrossover_malha_tensao,k_malha_tensao,magfcrossover_malha_tensao);
hold on;
bode(compensador_malha_tensao,w);


% Compensador + conversor
malha_tensao_aberta = FT*compensador_malha_tensao;
hold on;
bode(malha_tensao_aberta,w);

% Calculo dos valores dos resistores
wc_malha_tensao = 2*pi*fcrossover_malha_tensao;
Rin = r1*r2/(r1+r2)
C1 = magfcrossover_malha_tensao/(k_malha_tensao*wc_malha_tensao*Rin)
C2 = C1*(k_malha_tensao^2-1)
R3 = k_malha_tensao^2*Rin/(k_malha_tensao^2-1)/magfcrossover_malha_tensao

