How to improve the matlab code?

2 visualizzazioni (ultimi 30 giorni)
CHEW Yen LI il 9 Mag 2021
Modificato: CHEW Yen LI il 10 Mag 2021
Hi ,recently i have develop the scalar reference governor in the simulink by using the matlab function block.Therefore, I have done my to develop the code, but there is a problem where the output of the system is not really track back the reference and have some undershoot. So I want ask some help how to improve this code or modified this code to make the output of the system become better. This is my output graph and the simulinik file is attached as follow
the red line is the output and the green line is the reference input.
hope to get some help, thx
.
function v = SRG_new(v_previous, r)
%state space eqaution of the closed loop system
A=[-21.22 1;-275.5 0];
B=[11.02;275.5];
C=[1 0];
D=0;
I=eye(2);
%Hx=(C*A);
%Hv= C*(I-A)*((I-A)^-1)*B;
e=0.05;
s=205; %s=max_y
k=1 ; % intialize k
S=100; %
%check the constrain,s is statisfied or not
for i=1:450
if S*(C*((I-A)^-1)*B+D)>(1-e)*s %first row of constriant not statisfied , k will decreases
k=k-0.00001;
else
if (S*C*A^i)+ S*(C*(I-A^i)*((I-A)^-1)*B+D)>s %second oand below row constriant not statisfied , k will decreases
k=k-0.00001;
else
k=k+0.00001; % if statisfied, k will increases
end
end
end
v=v_previous + k*(r-v_previous);
end
0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

Categorie

Scopri di più su Simulink in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by