I am working on a MIMO control problem. But for making it easy for starting I am only considering a SISO system. I have a wood burning stove with air blown into it by a dc fan. I want to control the combustion i.e. temperature of the stove by blowing appropriate amount of air in the stove. Temperature is the process variable and blower speed (PWM controlled) is the control variable in my problem. Would it be possible to use a Model Predictive Control employing an Arduino board for this problem? I also want to use Machine learning for developing model for MPC.
I am new to control theory and don't know where to start. I would appreciate any help from you guys.
Probably want a bit of grunt in the hardware, like a Teensy4.
Model predictive control uses a non-trivial model of the process, refining its model parameters as it goes, while controlling and observing the system behaviour.
Well that's my understanding. Its quite data intensive as typically you record history as well as the evolving state-model.
Not sure how you'd build a good model without a lot of sensors.
control the combustion i.e. temperature of the stove by blowing appropriate amount of air
PID control would be a fine place to start, and probably sufficient for this simple control problem. It has been done many times, and tutorials have been posted on line. One or more Arduino PID libraries are available for you to try. Search for "arduino wood stove control" for examples.
Basically, I have a stove burning wood and with forced injection of air by using a PWM-controlled dc motor. I am recording temperature of the flue gases and oxygen percentage in chimney, which can give me information about the state of combustion inside the stove. I am collecting data after a time stamp from both the blower and thermocouple using Arduino. I want to design a close-loop control for the stove such that using temperature as a feedback/process variable to control the speed of the fan. I can also record the weight of the wood lost during every time stamp in sync with air flow and temperature.
What I want to do is develop a model using machine learning based upon the data collected from a large number of burning tests. And use that model for Model predictive control.
My first question is- is that possible using an Arduino?
Secondly, if it is possible, what would be a right approach to start with?
Thank you for your reply. What I know is that PID control is not well suited for multiple input multiple output system (MIMO) like I am having. I have on input side: air flow rate and weight of wood recorded during burning and on the output side: temperature and oxygen percentage. So, I think MPC is best suited for such a problem.
As, I will be performing a number of burning tests, I will have data and want to build a data-driven model using Machine learning and employ that for MPC. I am just doubtful about its feasibility and from where should I start for MPC.
Hi, I have a project using MPC to employ in Arduino board like you, have you found a way to your problem? If so, can you share the way you employed MPC to Arduino? Thank you very much.
Could you provide more details? What kind of solver are you using right now? What tools and libraries are you using? Are you doing linear or nonlinear MPC? What's the horizon length, number of states, number of inputs etc.? Do you have any state or input constraints? What are your real-time requirements? Which Arduino will you be using?
This is for my small project Position Servomechanism, and I’m planning using nonlinear MPC, sample time is 0.1s, prediction horizon is 20 and prediction control is 4, about the constraints, I set the min max (-220,220) for the input voltage and I’m using arduino uno