我正在尝试运行我的simulink文件,该文件将pid控制器连接到s-function块。
当设定pid的比例、积分和导数三个数值参数时,整个过程运行时间太长。为什么会发生这种情况?
在我的pid图的对话框中,对于分配值,它等于对应于恒幅振荡的值。
那么对于积分,它等于Kcu/Ti。Ti是最终句点(Pu)/2,并且
最后,对于导数,它等于tu Kcu*Td,Td是Pu /8,这是参照ziegler nichols方法。我的问题再一次是,为什么运行这个文件需要这么长时间?
发布于 2012-02-29 19:02:13
MATLAB S函数很慢,因为它们是在MATLAB解释器中运行的。考虑使用Simulink块或使用“嵌入式MATLAB函数”(R2011a之前的版本)或"MATLAB函数“(R2011a+)块来实现它。
阅读Guy和Seth对仿真性能的思考。
发布于 2012-03-01 03:11:29
@Nzbuu关于Matlab S函数的看法是正确的。
但我认为这里的问题可能出在其他地方:@Syarina,你是说在之后,Simulink的模拟变慢了,,你为控制器设置了比例系数?如果您单独模拟工厂,在本例中是S函数,您是否注意到执行速度的显著差异?如果真的是这样,我认为PID控制器使常微分方程系统stiff。这意味着ODE系统的不同状态具有真正不同的动态-有些非常快,有些非常慢。使用不适合刚性方程的常微分方程求解器,你会发现模拟要慢得多(实际上,如果它收敛了,你会很幸运)。
我的建议是尝试更改求解器-例如ode15s。
https://stackoverflow.com/questions/9497749
复制相似问题