Effacer les filtres
Effacer les filtres

problem to create a stable buck-boost state space model

3 vues (au cours des 30 derniers jours)
Mohamed
Mohamed le 12 Avr 2020
Hello Everybody,
I am working to build a state space system for a Buck-Boost converter using the mathematical symbolic formatting in matlab. The problem that I have that the code is generating matrices with unstable system, although the component values that were chosen were tested out of the code and they generated stable buck-boost system.
Can anybody help me to fix my mistakes?
I will incloud the code for reviewing.
Thank you
clear all;
close all;
clc;
%%
E0=48;
Laa=2e-3;
R=10;
Rl=10e-3;
C=5e-5;
V0=70;
% ron=10e-3; rL=10e-3; R=10; rC=10e-3; vd=0.7; L=2e-3; C=5e-5; Iload=10; Vin=48; d=0.5;
% E0=30;
% Laa=1e-3;
% R=2;
% Rl=2.134e-3;
% C=200e-6;
% V0=60;
R11=0.3;
% VG=50; rl=10e-3; L=400e-6; rc=0.05; C=100e-6; R=20; D=0.4; Io=0;
syms laa rl r ilp il E vcp vc D c rc;
eq1=-laa*ilp+E-il*rl-(1-D)*vc==0;
eq2=-c*vcp-(1-D)*il+(1-D)*(1/R)*vc==0;
eq1=subs(eq1,[E laa c r],[E0 Laa C R ]);
eq2=subs(eq2,[E laa c r],[E0 Laa C R ]);
sol=solve([subs(eq1,ilp,0),subs(eq2,vcp,0)],[il,vc]);
sol2=solve([subs(eq1,ilp,0),subs(eq2,vcp,0)],[il,D]);
sol.il;
sol.vc;
D_=0:0.001:1;
Vo_=subs(sol.vc,[D],[D_]);
Vo_1=subs(Vo_,[rl],[Rl]);
Vo_2=subs(Vo_,[rl],[R11]);
%duty cycle calculation
d1=double(subs(sol2.D(1),[vc rl],[V0 Rl]));
d2=double(subs(sol2.D(2),[vc rl],[V0 R11]));
alpha=min(d1,d2)
% alpha=0.55;
%I1
il1=subs(sol.il,[D rl],[alpha Rl]);
il1=double(subs(il1,'D',alpha))
%Vc1
Vc1=subs(sol.vc,[D rl],[alpha Rl]);
Vc1=double(subs(Vc1,'D',alpha))
eq1_=solve(eq1,ilp);
eq2_=solve(eq2,vcp);
ilp_A=[diff(eq1_,il) diff(eq1_,vc)];
vcp_A=[diff(eq2_,il) diff(eq2_,vc)];
ilp_B=[diff(eq1_,D) ];
vcp_B=[diff(eq2_,D) ];
A=[ilp_A; vcp_A];
B=[ilp_B; vcp_B];
A=[subs(ilp_A,[rl D],[Rl alpha]); subs(vcp_A,[rl D],[Rl alpha])];
B=[subs(ilp_B,[rl D vc],[Rl alpha Vc1]); 0];%subs(vcp_B,[rl D il],[Rl alpha il1])];
% for i=1:size(A,1)
% for j=1:size(A,2)
% A1(i,j)=double(A(i,j));
% end
% B1(i,1)=double(B(i,1));
%
%
% end
% A=A1
% B=B1
Caa=[0 1];
Daa=0;

Réponses (0)

Communautés

Plus de réponses dans  Power Electronics Control

Catégories

En savoir plus sur Power and Energy Systems dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by