是否可以通过函数替换matlab中的3相逆变器

时间:2017-03-01 00:40:22

标签: matlab optimization real-time simulink

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

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

  • 可能吗?
  • Matlab / Simulink中是否存在这样的哲学?
  • 如果是的话,你们可以向我推荐一些可以帮助我的文件吗?

谢谢你。

1 个答案:

答案 0 :(得分:1)

理论

你的朋友想说:将三相逆变器转换为s-transfer功能型号。现在要点明白了

  1. System Modeling是工程而非MATLAB,您也可以将三相逆变器等任何系统建模为状态空间 s-等模型传递函数多项式拟合神经网络等。
  2. 要通过型号拟合或近似系统,请遵循以下注意事项
    1. 如果系统是非线性的,不连续的或数据点是分散的正常模型,如状态空间将无法工作。 明智地选择您的模型
    2. 您必须具有全范围的输入和输出,才能为您的IGBT生成模型。
    3. 对于真实模拟系统的建模,离散步长需要变小,因此您需要平衡精度与模型计算时间(如果它是循环的一部分
  3. 动作

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

    OPTIMIZE MODEL INSTEAD 如下:

    1. 尝试尽可能使用内置的Fcn块而不是S函数。 S函数写成MATLAB文件并且速度慢。通过将MATLAB文件转换为MEX文件,可以大大提高性能。此外,只要有可能,使用内置块来模拟S函数。

    2. 增加步长,如果模型精度允许,则无需以非常小的步长计算。我们可以在步骤1e-20或1e-2设置simulink calucations。但是,1e-2的步长会快得多。通过实验查找步长

    3. 调整模型公差,假设系统输出在1e-2以下无关紧要,那么我们不应该选择计算公差为1e-3(为什么计算更多?)。寻找模型容差asjustments

    4. 缩短时间尺度,为什么要一次性计算一小时。这种方式系统将尝试保留更多内存,并且在磁盘缓存的情况下可能会变慢。计算较小的周期可以说几分钟。

    5. 尝试使用快速但相对简单的模型求解器和速度更快的求解器。 Solver List

    6. 从模拟中删除图形元素,在图形更新缓慢的情况下绘制模拟后的结果。