using sat(.) function i.e y=sat (x) function
32 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi all,
can someone put me through this I need to use a sat function in a sliding mode control problem : below is the alternate code I saw Y=(atan(5.*s*1/e)-atan(-5.*s*1/e))/(pi); where s is the sliding manifold,e=1 but I intend to use: And is the same with sat function even though I got result
function Y=sat(s);
% % sat is the saturation function with unit limits and unit slope.
% if s>1
% Y=1;
% elseif s<-1
% Y=-1;
% else
% Y=s;
% end
2 commentaires
Yousef Sardahi
le 22 Sep 2015
Modifié(e) : Walter Roberson
le 22 Sep 2015
The saturation function can be coded as follows :
function y=sat(x,delta)
kk=1/delta;
% sat is the saturation function with unit limits and unit slope.
if abs(x)>delta
% elseif x<-delta
y=sign(x);
else
y=kk*x;
end
Walter Roberson
le 22 Sep 2015
That code is not vectorized. A vectorized approach is
sat = @(x, delta) min(max(x/delta, -1), 1);
Réponses (1)
Walter Roberson
le 22 Nov 2013
Your existing code would have a problem if you were to input a vector or matrix of values. I suggest instead,
sat = @(s) min(max(X, -1), 1);
0 commentaires
Voir également
Catégories
En savoir plus sur Historical Contests 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!