查看: 1425|回复: 9|关注: 0

[已解决] simulink中的步长太大了,如何减小

[复制链接]

新手

9 麦片

财富积分


050


15

主题

27

帖子

0

最佳答案
运行的时候出现了这个错误“Nonlinear iteration is not converging with step size reduced to hmin (3.5527136788005009E-15) at time 1.1999999999999964.  Try reducing the minimum step size and/or relax the relative error tolerance”,提示我“Open Solver Profiler to explore such issues”,我打开了solver profiler但是好像只有原因的具体描述但是没有具体改正,我想知道该去如何改正这个错误,哪位大佬清楚指点一下小弟!谢谢

论坛优秀回答者

专家

2806 麦片

财富积分


20003000


4

主题

5165

帖子

612

最佳答案
  • 关注者: 871
发表于 2018-11-14 14:15:06 | 显示全部楼层
从报错信息看,减小步长应该不能解决你的问题,请检查系统是否有发散或除零

新手

9 麦片

财富积分


050


15

主题

27

帖子

0

最佳答案
 楼主| 发表于 2018-11-15 18:50:24 | 显示全部楼层
halleyhit 发表于 2018-11-14 14:15
从报错信息看,减小步长应该不能解决你的问题,请检查系统是否有发散或除零 ...

我的原始系统是发散的,但是我编写了一个pid的S函数,这样不就会使发散的系统收敛吗,从而达到我想要的
目的。

这个是我的simulink

这个是我的simulink

这个是我pid的S函数

这个是我pid的S函数

论坛优秀回答者

专家

2806 麦片

财富积分


20003000


4

主题

5165

帖子

612

最佳答案
  • 关注者: 871
发表于 2018-11-15 20:28:50 | 显示全部楼层
keepRunner 发表于 2018-11-15 18:50
我的原始系统是发散的,但是我编写了一个pid的S函数,这样不就会使发散的系统收敛吗,从而达到我想要的
...

微分和阶跃环节背锅,建议用自带的pid模块

新手

9 麦片

财富积分


050


15

主题

27

帖子

0

最佳答案
 楼主| 发表于 2018-11-16 18:37:12 | 显示全部楼层
halleyhit 发表于 2018-11-15 20:28
微分和阶跃环节背锅,建议用自带的pid模块

我按照您的方法试了,得到了下面的结果,pid和s函数没有起一点作用,阶跃和正弦信号直接就是原信号。我没有改变s函数,pid采用了simulink自己有得block这是什么原因?

阶跃信号输出

阶跃信号输出

正弦信号输出

正弦信号输出

新手

9 麦片

财富积分


050


15

主题

27

帖子

0

最佳答案
 楼主| 发表于 2018-11-16 18:44:21 | 显示全部楼层
keepRunner 发表于 2018-11-16 18:37
我按照您的方法试了,得到了下面的结果,pid和s函数没有起一点作用,阶跃和正弦信号直接就是原信号。我没 ...

这个是我的S函数程序,不加pid的情况下运行的结果时一个发散的图像,现在就是加不了pid控制

S函数程序

S函数程序

论坛优秀回答者

专家

2806 麦片

财富积分


20003000


4

主题

5165

帖子

612

最佳答案
  • 关注者: 871
发表于 2018-11-16 19:45:07 | 显示全部楼层
keepRunner 发表于 2018-11-16 18:44
这个是我的S函数程序,不加pid的情况下运行的结果时一个发散的图像,现在就是加不了pid控制
...

这不是说明pid的控制性能极佳么?完美跟踪。。。
另外,看不出有什么问题

新手

9 麦片

财富积分


050


15

主题

27

帖子

0

最佳答案
 楼主| 发表于 2018-11-16 19:56:57 | 显示全部楼层
halleyhit 发表于 2018-11-16 19:45
这不是说明pid的控制性能极佳么?完美跟踪。。。
另外,看不出有什么问题 ...

哦哦,我明白了。我还想问一下,为什么我用s函数实现的pid就会出现我之前的错误,而现在用自带的block没有问题,是不是我的s函数有问题。

论坛优秀回答者

专家

2806 麦片

财富积分


20003000


4

主题

5165

帖子

612

最佳答案
  • 关注者: 871
发表于 2018-11-16 20:50:41 | 显示全部楼层 |此回复为最佳答案
keepRunner 发表于 2018-11-16 19:56
哦哦,我明白了。我还想问一下,为什么我用s函数实现的pid就会出现我之前的错误,而现在用自带的block没 ...

一开始就说过了,微分和阶跃环节背锅
具体原因,你可以认为阶跃的微分是无穷,所以错了

新手

9 麦片

财富积分


050


15

主题

27

帖子

0

最佳答案
 楼主| 发表于 2018-11-17 10:02:55 | 显示全部楼层
halleyhit 发表于 2018-11-16 20:50
一开始就说过了,微分和阶跃环节背锅
具体原因,你可以认为阶跃的微分是无穷,所以错了 ...

哦哦,明白了,谢谢,十分感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表