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

31 views (last 30 days)
Adekemi
Adekemi on 22 Nov 2013
Commented: Walter Roberson on 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 Comments
Yousef Sardahi
Yousef Sardahi on 22 Sep 2015
Edited: Walter Roberson on 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 on 22 Sep 2015
That code is not vectorized. A vectorized approach is
sat = @(x, delta) min(max(x/delta, -1), 1);

Sign in to comment.

Answers (1)

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

Categories

Find more on Historical Contests in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!