2012-02-29 96 views
2

我想运行我的simulink文件,其中有PID控制器连接到S功能块。Simulink与S函数的性能

当我设置pid的三个值参数是比例,积分和微分时,运行整个过程需要很长的时间。为什么发生这种情况?

在我的pid图的对话框中,对于porportional值,它等于对应于恒幅振荡的值。

然后对于积分,它等于Kcu/Ti。 Ti是最终期限(Pu)/ 2和

最后为衍生物,其相等的tu Kcu * Td和Td是Pu/8。这是指齐格勒尼科尔斯方法。再次我的问题是为什么它运行该文件需要很长时间?

回答

3

MATLAB S函数很慢,因为它们在MATLAB解释器中运行。考虑使用Simulink块或使用“嵌入式MATLAB函数”(R2011a前)或“MATLAB函数”(R2011a +)块来实现。

阅读GuySeth对模拟性能的看法。

+0

有用的评论和非常有趣的链接。谢谢! +1 – 2012-02-29 18:52:27

1

@Nzbuu是正确的关于Matlab S函数。

但我认为这里的问题可能在其他地方:@Syarina你是说,Simulink仿真变得更慢你设置控制器的比例系数?如果单独模拟工厂,在这种情况下是S函数,您是否注意到执行速度存在显着差异?如果真的如此,我想PID控制器使得ODE系统stiff。这意味着ODE系统的不同状态具有非常不同的动态 - 有些非常快,有些非常缓慢。使用一个不适合僵硬方程的颂歌求解器,你会发现模拟速度要慢得多(如果它收敛的话,你会有运气)。

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

+0

是的sir.thank you.before这个我用ode45.then后更改为ode15,其运行速度更快。谢谢 – rina 2012-03-02 01:00:54