[已答复] 请问如何用matlab给符号函数求积分?

[复制链接]
mzzjuve 发表于 2019-4-23 16:15:02
本帖最后由 mzzjuve 于 2019-4-24 12:12 编辑

复制代码

  1. function u = fcn(s)%s为输入,u为输出
  2. %#codegen
  3. u1=0;u2=0;
  4. u=u1+u2;
  5. if abs(u)>1
  6.     u1=int(-u);
  7. elseif abs(u)<=1
  8.     u1=int(-2*sign(s)); %W=2,就是这里有问题
  9. end;
  10. if abs(s)>100 %s0=100
  11.     u2=-500*100^0.5*sign(s); %lambda=500,rho=0.5

  12. elseif abs(s)<=100
  13.     u2=-500*(abs(s))^0.5*sign(s);
  14. end;
  15. u =u1+u2;
复制代码

错误信息:
The storedInteger function can only be used with fi objects that have a fixed-point, scaled double, double, or single data type.

Function 'MATLAB Function' (#23.103.118), line 9, column 8:
"int(-2*sign(u))"
如图,我在用二阶滑模超螺旋算法控制倒立摆,用matlab function搭建该函数,但是在对sign(u)求积分时出错,是int函数的用法错了吗?求指教,谢谢。

原函数

原函数

4 条回复


mzzjuve 发表于 2019-4-24 12:12:39
求教!:lol:lol:lol

halleyhit 发表于 2019-4-24 16:04:03
把你所有的if都去掉
符号运算中只有阶跃函数heaviside,用多个阶跃的累加去写你的分段

mzzjuve 发表于 2019-4-24 22:24:18
halleyhit 发表于 2019-4-24 16:04
把你所有的if都去掉
符号运算中只有阶跃函数heaviside,用多个阶跃的累加去写你的分段 ...

不好意思,我不太明白,能再说详细一点吗?

1414908217 发表于 2021-6-8 20:02:49
你好,请问解决了吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表