我是靠谱客的博主 迷路微笑,最近开发中收集的这篇文章主要介绍matlab nan变成0_Matlab/Simulink 仿真出现积分状态变量数据奇异-解决办法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Simulink Derivative of state...Integrator....is not finite

报错全文如下:

Derivative of state '1' in block 'Subsystem/Integrator1' at time 0.0 is not finite. The simulation will be stopped. There may be a singularity in the solution. If not, try reducing the step size (either by reducing the fixed step size or by tightening the error tolerances)

b23efe1704e8103e7f148906b6e3bef8.png

--------------------------分割------------------------------------

一. 最近做 关于电机+螺旋桨的Simulink仿真,模拟含电机环的螺旋桨推力扭矩。Solver为变步长,auto。仿真模型如下:

08f0e766794cd90d305b3c75200d9307.png
仿真模型,Thrust函数计算推力扭矩

搭建模型之后仿真,出现报错:

6ccc43299c116edb475cd080d61fe96c.png
Simulink报错提示,在仿真0时刻就出现非有限

二. 查阅资料,最初以为是出现了代数环,考虑添加Delay模块:

8ed49b29c9dac3a2016a00af73753dd6.png
添加delay模块,delay0.01s

仿真正常运行了,

5d0920c2464a82e9fdf48ec747d92648.png

****----------------------------------****

三. 本以为解决了问题,但是当修改变步长为fixed时候(步长设0.001),又报错:

202bf3ef7a10732589ab15fda287233e.png
fixed步长,计算报错

仿真终止在Delay结束的时候。(因为Delay设置为0.01s)

通过log selected signals,查看0~0.01s内的变量变化。发现在第 0 s时候,推力T与扭矩Q都是NaN。推测是因为:NaN作为输入,导致积分变量出现not finite。

b38d4ba2b0a6db320be016d11ed985d7.png
log selected signals查看信号变化

回头查看公式,发现进速系数J的计算中:

在 0 s,积分器取初始值,默认值零;

则角速度为零-->转速n为零-->出现了进速系数J0分母为零,J0为NaN-->T、Q为NaN。

J0

四 . 最终解决办法:

在角速度的那个 积分器初始值取一个极小数(如0.0001),不影响全局。

这样最开始添加的 Delay不用,也可以。

5f3d0399a741d27d5606b739c8f9e3de.png
去除Delay,积分器初始值设置为较小数

639f05bb013fc756c503b56e3ab7326d.png
仿真正常

总结:

  1. 仿真出现故障时候,可通过log selected signals,分析查看信号的具体变化过程。
  2. 出现Simulink Derivative of state...Integrator....is not finite时候,检查在该时刻下,是否出现了分母为零?或者零比零的情况。
  3. Simulink仿真时候,是有计算优先级的。一般含有闭环系统,会先从积分器开始,积分器有Initial condition。

---------------------------------

更新:

Simulink仿真中,由于初始条件一般为0。当存在除法时候,很容易出现NaN。

一个更加通用的解决办法是:给分母加上eps。(eps是matlab内置的函数,表示浮点相对精度。)

参考:

施法前摇:漫谈Simulink:真假代数环

最后

以上就是迷路微笑为你收集整理的matlab nan变成0_Matlab/Simulink 仿真出现积分状态变量数据奇异-解决办法的全部内容,希望文章能够帮你解决matlab nan变成0_Matlab/Simulink 仿真出现积分状态变量数据奇异-解决办法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部