- You define input and output names for variables sys and Ci, as if they are meant to represent a plant and the controller, but your plant is stored in variable mot, and your controller is in variable r
- You use function connect in the wrong way - please see documentation on the input arguments and their right order
How to give input from sensor to pid in matlab (mfile)
11 次查看(过去 30 天)
显示 更早的评论
I am trying to implement the system in matlab(mfile)which I have uploaded at:
My system has two portions Image processing(sensor) & control systems. The piece of code is:
clear,close
%your model and its input output
mot=tf(1,[1 1]),
model=ss(mot);
[F,h,c,d]=ssdata(model);
%your pid controller
r=pid(5,1/0.05,10)
sys.inputname='u'
sys.outputname='y'
Ci.inputname='e';
Ci.outputname='u';
som1 = sumblk('e = r - y');
%global model with all conneection
modelg=connect(som1,r,model,'r','y')
%simulation
step(modelg)
Above code is the model representing the PID then statespace and then its output as feedback but I have to give input from my sensor(image processing part e.g 3) and compare it with my reference value. I need to know where that input value will be adjusted in this code. Any guidance would be highly appreciated.
0 个评论
回答(1 个)
Arkadiy Turevskiy
2012-10-23
编辑:Arkadiy Turevskiy
2012-10-23
Your code does not make sense at the moment. Specific issues:
The correct code would be:
clear,close
%your model and its input output
mot=tf(1,[1 1]);
mot.inputname='u';
mot.outputname='y';
%your pid controller
r=pid(5,1/0.05,10);
r.inputname='e';
r.outputname='u';
% summation junction
som1 = sumblk('e = r - y');
%global model with all conneection
modelg=connect(mot,r,som1,'r','y');
%simulation
step(modelg);
% another way to do the same
step(feedback(r*mot,1));
Arkadiy
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 PID Controller Tuning 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!