using sat(.) function i.e y=sat (x) function
223 views (last 30 days)
Show older comments
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
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
on 22 Sep 2015
That code is not vectorized. A vectorized approach is
sat = @(x, delta) min(max(x/delta, -1), 1);
Answers (1)
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);
0 Comments
See Also
Categories
Find more on Logical 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!