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

24 ビュー (過去 30 日間)
Adekemi
Adekemi 2013 年 11 月 22 日
コメント済み: Walter Roberson 2015 年 9 月 22 日
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 件のコメント
Yousef Sardahi
Yousef Sardahi 2015 年 9 月 22 日
編集済み: Walter Roberson 2015 年 9 月 22 日
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 2015 年 9 月 22 日
That code is not vectorized. A vectorized approach is
sat = @(x, delta) min(max(x/delta, -1), 1);

サインインしてコメントする。

回答 (1 件)

Walter Roberson
Walter Roberson 2013 年 11 月 22 日
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);

カテゴリ

Help Center および File ExchangeHistorical Contests についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by