problem while tuning PID controller

5 次查看(过去 30 天)
I try to tune a PID-Controller in Matlab2010b if i use a discrete one i get the error Message "The second input argument of the "d2d" command must be a positive scalar." if i use a continuous one i get "Input to SVD must not contain NaN or Inf." what i have to pay attention that this block works fine? My system can became NaN due to a Sqrt-expression....

采纳的回答

Arkadiy Turevskiy
What is the purpose of the memory block that you are using at the output of the PID controller? Long story short, that is what creates the problem.

更多回答(4 个)

Arkadiy Turevskiy
Arkadiy Turevskiy 2011-12-12
Can you provide the plant model?

Martin1986
Martin1986 2011-12-13
yes sure i put it on file exchange or you go to here
the file is created on linux with 2010b it is only a part of the system, the massflow(the output which i try to control) will normally have a influence to the 3. input of the subsystem too...

Yoni
Yoni 2012-1-19
Hi Martin,
I've had the same problem.
It seems the discrete PID option does not handle a sampling time of "-1" (should have inherited the sampling time it that case)
So the workaround for your problem is to enter your own explicit expression for the sampling time. do not leave it on "-1".
This should eliminate the "The second input argument of the "d2d" command must be a positive scalar."
Cheers, Yoni

Martin1986
Martin1986 2012-2-8
o.O actually this was a try to avoid this problems(and avoid a algebric loop because the starting value must be 0), finally i made some small changes in my Model and than it works also fine ;) i think the block works fine but the debuging is a little bit problematic ;) because if you have a bigger plant it is quite tricky to find the exact cause of the problem

类别

Help CenterFile Exchange 中查找有关 PID Controller Tuning 的更多信息

标签

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by