Matlab S函数的Simulink性能

Matlab S函数的Simulink性能,matlab,simulink,Matlab,Simulink,我正在尝试运行我的simulink文件,该文件将pid控制器连接到s功能块 当我设置pid的三个参数值,即比例、积分和导数时,整个过程的运行时间太长。为什么会这样 在我的pid图的对话框中,对于比例值,它等于对应于恒定振幅振荡的值 对于积分,它等于Kcu/Ti。Ti为极限周期(Pu)/2,且 最后,对于导数,其等于tu Kcu*Td和Td为Pu/8。这是指ziegler-nichols方法。我的问题是,为什么运行这个文件需要太长时间 Matlabs函数运行缓慢,因为它们在MATLAB解释器中运行

我正在尝试运行我的simulink文件,该文件将pid控制器连接到s功能块

当我设置pid的三个参数值,即比例、积分和导数时,整个过程的运行时间太长。为什么会这样

在我的pid图的对话框中,对于比例值,它等于对应于恒定振幅振荡的值

对于积分,它等于Kcu/Ti。Ti为极限周期(Pu)/2,且


最后,对于导数,其等于tu Kcu*Td和Td为Pu/8。这是指ziegler-nichols方法。我的问题是,为什么运行这个文件需要太长时间

Matlabs函数运行缓慢,因为它们在MATLAB解释器中运行。考虑使用Simulink块或使用“嵌入式Matlab函数”(PRE-R2011A)或“Matlab函数”(R2011A+)块实现。
阅读并思考仿真性能。

MATLAB s函数运行缓慢,因为它们在MATLAB解释器中运行。考虑使用Simulink块或使用“嵌入式Matlab函数”(PRE-R2011A)或“Matlab函数”(R2011A+)块实现。
请阅读并了解作者关于仿真性能的想法。

@Nzbuu对Matlabs函数的看法是正确的

但我认为这里的问题可能在其他地方:@Syarina你是说在设置控制器的比例系数后,Simulink模拟会变慢?如果您单独模拟工厂,在本例中为S函数,您是否注意到执行速度的显著差异?如果真的是这样,我想PID控制器使ODE系统。这意味着ODE系统的不同状态有着真正不同的动力学——有些非常快,有些非常慢。使用不适用于刚性方程的ode解算器,您会发现模拟速度要慢得多(实际上,如果它完全收敛,您会很幸运)


我的建议是尝试更改解算器-例如。

@Nzbuu关于Matlabs函数是正确的

但我认为这里的问题可能在其他地方:@Syarina你是说在设置控制器的比例系数后,Simulink模拟会变慢?如果您单独模拟工厂,在本例中为S函数,您是否注意到执行速度的显著差异?如果真的是这样,我想PID控制器使ODE系统。这意味着ODE系统的不同状态有着真正不同的动力学——有些非常快,有些非常慢。使用不适用于刚性方程的ode解算器,您会发现模拟速度要慢得多(实际上,如果它完全收敛,您会很幸运)


我的建议是尝试更改解算器-例如。

有用的评论和非常有趣的链接。谢谢+1有用的评论和非常有趣的链接。谢谢+1是的,先生。谢谢。在此之前,我使用了ode45。然后在更改为ode15后,它运行得更快。谢谢,先生。谢谢。在此之前,我使用了ode45。然后在更改为ode15后,它运行得更快。谢谢