Is it possible to design a controller in simulink using experimental data only?
1 次查看(过去 30 天)
显示 更早的评论
Hi, Please I am new to Simulink, I need to design a controller from experimental data(input is Speed and output is differential pressure). I have a model designed using simulink blocks, now I need a controller to tune this model. Each time I try to linearize I get this error In "linearize(modelname,io)" using block substitution the block Control_plant_input_output/PID Controller cannot be substituted due to an error in the MATLAB function Speed. The error is: Undefined function 'Speed' for input arguments of type 'struct'.. Any pointer on what to do next. please help.
0 个评论
采纳的回答
Arkadiy Turevskiy
2014-6-24
2 个评论
Arkadiy Turevskiy
2014-6-24
If you want more specific help, please attach the model as well as the description of what you did.
更多回答(2 个)
Arkadiy Turevskiy
2014-6-26
The model as provided does not quite make sense, as it uses positive feedback.
Here is what I did to get some sort of controller design (without really understanding physics of the system):
- I commented though the lookup table block for now
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/175165/image.jpeg)
- I changed sum block to use negative feedback
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/175166/image.jpeg)
- Changed step block parameters
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/175167/image.jpeg)
- Changed PID to PI and set integrator initial condition to 0.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/175168/image.jpeg)
I then pressed "tune" button in the PID Controller block and accepted default tuning the too, came up with:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/175169/image.jpeg)
I then unchecked the limit on the number of data points shown in the display block
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/175170/image.jpeg)
and ran the simulation getting this result:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/175171/image.jpeg)
The overshoot is a bit high, so I went to the PID Tuner and reduced the bandwidth by an order of magnitude:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/175172/image.jpeg)
I updated block parameters with tuned value, and ran the simulation for 5 secs (as it seems nothing is really happening after 5 secs):
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/175173/image.jpeg)
As this image shows, we got rid of the overshoot but disturbance rejection is now worse than with the original design. The disturbance is coming from here:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/175174/image.jpeg)
To check that I set the ramp slope to 0 and reran the simulation. response looks pretty good.
Hope this helps you get started.
Magdi Nabi
2017-10-3
Hi, i need to design model like yours but the input is flow ( 2 inputs) and 1 out put i need to control the flow by vary the speed of both pumps so could you please guide me how to do that using simulink?
i know how to design the controller, my problem is to design simulation model by experimental data?
thank you very much
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!