首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用函数代替matlab中的三相逆变器是否可行?

用函数代替matlab中的三相逆变器是否可行?
EN

Stack Overflow用户
提问于 2017-03-01 00:40:22
回答 1查看 81关注 0票数 0

我正在Opal模拟器中进行实时仿真,使用MATLAB& MATLAB/Simulink进行有源电力滤波器

我想在实时中运行模拟,但是溢出正在发生,因为模型显然太大了,所以我不得不对进行优化,其中一个消耗大量计算时间的块是--三相逆变器(基于IGBT)E 215,一位朋友告诉我,可以用一个简单的矩阵(S-函数或传递函数,我不确定)代替这个块,他说这将减少模型的计算时间,并将帮助我实时运行它。

  • 这有可能吗?
  • 这种哲学是否存在于Matlab/Simulink中?
  • 如果是的话,你们能给我推荐一些能帮我的文件吗?

谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2017-03-01 05:35:36

理论

您的朋友想说的是:将三相逆变器转换为s传输函数模型.现在要理解的是

  1. System Modeling是工程而不是MATLAB,你也可以把任何像三相逆变器这样的系统建模成状态空间、s传递函数、多项式拟合、神经网络等模型。
  2. 为了适应或通过模型近似一个系统,需要采取的注意事项如下:
    1. 如果系统是非线性的,dis-连续的或数据点是分散的,像状态空间这样的正常模型将无法工作。明智地选择您的模型,
    2. 您必须有完整的输入,诗句输出,以生成您的IGBT模型。
    3. 对于模拟系统的建模,离散步长需要变小,所以你需要平衡精度和模型计算时间(如果它是循环的一部分)。

动作

如果你知道逆变器的传递函数方程,那么就试着去拟合和找出系数。否则结果将是不准确的。神经拟合提供最好的结果,但超出了范围。

因此,优化模型而不是,如下所示:

  1. 尽可能使用内置的Fcn块,而不是S-函数。S-函数编写成MATLAB文件,速度慢.通过将MATLAB文件转换成MEX文件,可以大大提高性能.此外,只要有可能,使用内置块来建模S-函数。
  2. 增加步长,如果模型精度允许的话,不需要计算非常小的步长.我们可以在步骤1e-20或1e-2设置simulink计算。但是是的,1e-2的步长要快得多。通过实验找出步长
  3. 调整模型公差,如果系统输出在1e-2以下,那么我们不应该选择计算公差为1e-3 (为什么要计算更多?)寻找模型公差调整
  4. 减少时间尺度,为什么一次计算一个小时。这样,系统将尝试保留更多的内存,并且在磁盘缓存的情况下可能会变慢。计算较小的周期,比如分钟。
  5. 尝试移动到一个快速,但相对简单的解决您的模型和一个提供更快的速度。求解者列表
  6. 删除图形元素从模拟,绘图结果后模拟,因为图形更新是缓慢的。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42521281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档