using sat(.) function i.e y=sat (x) function

32 vues (au cours des 30 derniers jours)
Adekemi
Adekemi le 22 Nov 2013
Commenté : Walter Roberson le 22 Sep 2015
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
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
Walter Roberson le 22 Sep 2015
That code is not vectorized. A vectorized approach is
sat = @(x, delta) min(max(x/delta, -1), 1);

Connectez-vous pour commenter.

Réponses (1)

Walter Roberson
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);

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!

Translated by