我正在 Opal-RT模拟器中进行实时模拟,使用 RT-LAB& MATLAB / Simulink 用于有源电力滤波器。
我想在实时中运行模拟,但超支正在发生,因为模型显然太大,所以我有优化它,其中一个消耗大量计算时间的块是三相逆变器(基于IGBT),一位朋友告诉我有可能用简单的矩阵替换块(S函数或传递函数我不确定),他说这将减少模型的计算时间,并将帮助我实时运行它。
谢谢你。
答案 0 :(得分:1)
你的朋友想说:将三相逆变器转换为s-transfer功能型号。现在要点明白了
System Modeling
是工程而非MATLAB,您也可以将三相逆变器等任何系统建模为状态空间, s-等模型传递函数,多项式拟合,神经网络等。如果你知道逆变器的传递函数方程,那么试着拟合并找到系数。否则结果将不准确。神经拟合提供了最佳结果,但超出了范围。
OPTIMIZE MODEL INSTEAD 如下:
尝试尽可能使用内置的Fcn块而不是S函数。 S函数写成MATLAB文件并且速度慢。通过将MATLAB文件转换为MEX文件,可以大大提高性能。此外,只要有可能,使用内置块来模拟S函数。
增加步长,如果模型精度允许,则无需以非常小的步长计算。我们可以在步骤1e-20或1e-2设置simulink calucations。但是,1e-2的步长会快得多。通过实验查找步长
调整模型公差,假设系统输出在1e-2以下无关紧要,那么我们不应该选择计算公差为1e-3(为什么计算更多?)。寻找模型容差asjustments
缩短时间尺度,为什么要一次性计算一小时。这种方式系统将尝试保留更多内存,并且在磁盘缓存的情况下可能会变慢。计算较小的周期可以说几分钟。
尝试使用快速但相对简单的模型求解器和速度更快的求解器。 Solver List
从模拟中删除图形元素,在图形更新缓慢的情况下绘制模拟后的结果。