Main
~~(~~:~~toggle init=hide id=~~mpc~~ hide=mpc~~_~~siso~~_tclab.~~gif show=mpc_mimo_tclab.gif:)~~
~~Attach~~:mpc_siso_tclab.gif

(:toggle hide mimo buttonshow=~~"Show MIMO MPC":)~~

(:div id=mimo:)

Attach:mpc_mimo_tclab.gif

(:divend:)
~~Attach:mpc_mimo_tclab.gif~~
~~These labs are~~ hands-on applications of advanced temperature control with two heaters and two temperature sensors. The labs reinforce principles of model development, estimation, and advanced control methods.
~~This lab is an application~~ of advanced temperature control with two heaters and two temperature sensors.

~~The heater power output is adjusted to maintain a desired temperature setpoint. Thermal energy from the heater is transferred by conduction, convection, ~~and ~~radiation to the temperature sensor. This lab is a resource for model identification, estimation, and advanced control development~~.
~~The~~ advanced control lab ~~explores~~ multivariate control with Multiple Input Multiple Output (MIMO) modeling, estimation, and control.

%width=500px%Attach:tclab_schematic.png
~~%width=400px%~~Attach:tclab_device.png

## Advanced Temperature Control

## Main.AdvancedTemperatureControl History

Hide minor edits - Show changes to output

Changed line 67 from:

to:

Attach:mpc_mimo_tclab.gif

Changed line 67 from:

(:toggle init=hide id=mpc~~ button=1~~ hide=mpc_siso_tclab.gif show=mpc_mimo_tclab.gif:)

to:

(:toggle init=hide id=mpc hide=mpc_siso_tclab.gif show=mpc_mimo_tclab.gif:)

Changed line 67 from:

(:toggle init=hide button hide=mpc_siso_tclab.gif show=mpc_mimo_tclab.gif:)

to:

(:toggle init=hide id=mpc button=1 hide=mpc_siso_tclab.gif show=mpc_mimo_tclab.gif:)

Changed line 67 from:

(:toggle init=hide hide=mpc_siso_tclab.gif show=mpc_mimo_tclab.gif:)

to:

(:toggle init=hide button hide=mpc_siso_tclab.gif show=mpc_mimo_tclab.gif:)

Changed lines 67-72 from:

(:toggle hide mimo button

(:div id=mimo:)

Attach:mpc_mimo_tclab.gif

(:divend

to:

(:toggle init=hide hide=mpc_siso_tclab.gif show=mpc_mimo_tclab.gif:)

Added lines 69-73:

(:toggle hide mimo button show="Show MIMO MPC":)

(:div id=mimo:)

Attach:mpc_mimo_tclab.gif

(:divend:)

(:div id=mimo:)

Attach:mpc_mimo_tclab.gif

(:divend:)

Deleted line 90:

Changed lines 84-86 from:

* [[Attach:Lab_H_MHE_and_MPC.pdf|Lab H - Moving Horizon Estimation with MPC]]

to:

* [[Attach:Lab_H_MHE_and_MPC.pdf|Lab H - Moving Horizon Estimation with MPC]]

Attach:mpc_mimo_tclab.gif

Attach:mpc_mimo_tclab.gif

Changed line 5 from:

to:

This Arduino lab is a hands-on applications of advanced temperature control with two heaters and two temperature sensors. The labs reinforce principles of model development, estimation, and advanced control methods.

Changed lines 5-6 from:

to:

These labs are hands-on applications of advanced temperature control with two heaters and two temperature sensors. The labs reinforce principles of model development, estimation, and advanced control methods.

(:html:)

<iframe width="560" height="315" src="https://www.youtube.com/embed/dzl-h9_jP0o" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>

(:htmlend:)

The heater power output is adjusted to maintain a desired temperature setpoint. Thermal energy from the heater is transferred by conduction, convection, and radiation to the temperature sensor.

(:html:)

<iframe width="560" height="315" src="https://www.youtube.com/embed/dzl-h9_jP0o" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>

(:htmlend:)

The heater power output is adjusted to maintain a desired temperature setpoint. Thermal energy from the heater is transferred by conduction, convection, and radiation to the temperature sensor.

Changed line 15 from:

to:

This lab is a resource for model identification, estimation, and advanced control development with full source code examples available in MATLAB and Python.

Changed line 76 from:

* [[Attach:Lab_H_MHE_and_MPC|Lab H - Moving Horizon Estimation with MPC]]

to:

* [[Attach:Lab_H_MHE_and_MPC.pdf|Lab H - Moving Horizon Estimation with MPC]]

Changed line 75 from:

* [[Attach:Lab_G_Nonlinear_MPC.pdf|Lab G - Nonlinear Model Predictive Control]]

to:

* [[Attach:Lab_G_Nonlinear_MPC.pdf|Lab G - Nonlinear Model Predictive Control]] with [[https://youtu.be/eoZRcbilKTU|MATLAB and Python]]

Changed line 74 from:

* [[Attach:Lab_F_Linear_MPC.pdf|Lab F - Linear Model Predictive Control]] with [[https://youtu.be/P_tPc0LvHJY|Python]] and [[https://youtu.be/7WMVUMM5Dt0|MATLAB]]~~ Solutions~~

to:

* [[Attach:Lab_F_Linear_MPC.pdf|Lab F - Linear Model Predictive Control]] with [[https://youtu.be/P_tPc0LvHJY|Python]] and [[https://youtu.be/7WMVUMM5Dt0|MATLAB]]

Changed line 74 from:

* [[Attach:Lab_F_Linear_MPC.pdf|Lab F - Linear Model Predictive Control]] ~~and~~ [[https://youtu.be/P_tPc0LvHJY|Python ~~(GEKKO) Solution]] and ~~[[https://youtu.be/7WMVUMM5Dt0|MATLAB~~ Solution~~]]

to:

* [[Attach:Lab_F_Linear_MPC.pdf|Lab F - Linear Model Predictive Control]] with [[https://youtu.be/P_tPc0LvHJY|Python]] and [[https://youtu.be/7WMVUMM5Dt0|MATLAB]] Solutions

Changed line 74 from:

* [[Attach:Lab_F_Linear_MPC.pdf|Lab F - Linear Model Predictive Control]] and [[https://youtu.be/P_tPc0LvHJY|Solution]]

to:

* [[Attach:Lab_F_Linear_MPC.pdf|Lab F - Linear Model Predictive Control]] and [[https://youtu.be/P_tPc0LvHJY|Python (GEKKO) Solution]] and [[https://youtu.be/7WMVUMM5Dt0|MATLAB Solution]]

Changed line 74 from:

* [[Attach:Lab_F_Linear_MPC.pdf|Lab F - Linear Model Predictive Control]]

to:

* [[Attach:Lab_F_Linear_MPC.pdf|Lab F - Linear Model Predictive Control]] and [[https://youtu.be/P_tPc0LvHJY|Solution]]

Changed line 74 from:

* [[Attach:Lab_F_Linear_MPC.pdf|Lab F - Linear ~~MPC~~]]

to:

* [[Attach:Lab_F_Linear_MPC.pdf|Lab F - Linear Model Predictive Control]]

Changed line 76 from:

* [[Attach:Lab_H_MHE_and_MPC|Lab H - Estimation with MPC]]

to:

* [[Attach:Lab_H_MHE_and_MPC|Lab H - Moving Horizon Estimation with MPC]]

Changed lines 55-56 from:

to:

This advanced control lab is for multivariate control with Multiple Input Multiple Output (MIMO) modeling, estimation, and control.

Changed lines 75-77 from:

to:

* [[Attach:Lab_G_Nonlinear_MPC.pdf|Lab G - Nonlinear Model Predictive Control]]

* [[Attach:Lab_H_MHE_and_MPC|Lab H - Estimation with MPC]]

* [[Attach:Lab_H_MHE_and_MPC|Lab H - Estimation with MPC]]

Changed lines 5-6 from:

This lab is an application of advanced temperature control with two heaters and two temperature sensors.~~ ~~The heater power output is adjusted to maintain a desired temperature setpoint. Thermal energy from the heater is transferred by conduction, convection, and radiation to the temperature sensor. This lab is a resource for model identification, estimation, and advanced control development.

to:

This lab is an application of advanced temperature control with two heaters and two temperature sensors.

%width=550px%Attach:tclab_schematic.png

The heater power output is adjusted to maintain a desired temperature setpoint. Thermal energy from the heater is transferred by conduction, convection, and radiation to the temperature sensor. This lab is a resource for model identification, estimation, and advanced control development.

%width=550px%Attach:tclab_schematic.png

The heater power output is adjusted to maintain a desired temperature setpoint. Thermal energy from the heater is transferred by conduction, convection, and radiation to the temperature sensor. This lab is a resource for model identification, estimation, and advanced control development.

Deleted lines 43-44:

%width=500px%Attach:tclab_schematic.png

Changed line 7 from:

Attach:tclab_device.png

to:

%width=350px%Attach:tclab_device.png

Changed line 7 from:

to:

Attach:tclab_device.png

Added lines 70-74:

* [[Attach:Lab_E_Hybrid_Estimation.pdf|Lab E - Hybrid Model Estimation]] and [[https://youtu.be/eEjjkHb1e_E|Solution]]

'''Model Predictive Control'''

* [[Attach:Lab_F_Linear_MPC.pdf|Lab F - Linear MPC]]

'''Model Predictive Control'''

* [[Attach:Lab_F_Linear_MPC.pdf|Lab F - Linear MPC]]

Changed lines 63-65 from:

* [[~~Main/~~Lab_A_SISO_Model.pdf|Lab A - Single Heater Modeling]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoModeling|Solution]]

* [[~~Main/~~Lab_B_MIMO_Model.pdf|Lab B - Dual Heater Modeling]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoModeling2|Solution]]

* [[

to:

* [[Attach:Lab_A_SISO_Model.pdf|Lab A - Single Heater Modeling]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoModeling|Solution]]

* [[Attach:Lab_B_MIMO_Model.pdf|Lab B - Dual Heater Modeling]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoModeling2|Solution]]

* [[Attach:Lab_B_MIMO_Model.pdf|Lab B - Dual Heater Modeling]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoModeling2|Solution]]

Changed lines 68-69 from:

* [[~~Main/~~Lab_C_Parameter_Estimation.pdf|Lab C - Parameter Estimation]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoEstimation2|Solution]]

* [[~~Main/~~Lab_D_2nd_Order_Estimation.pdf|Lab D - Empirical Model Estimation]] and [[https://youtu.be/Cp6fPUptc74|Solution]]

* [[

to:

* [[Attach:Lab_C_Parameter_Estimation.pdf|Lab C - Parameter Estimation]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoEstimation2|Solution]]

* [[Attach:Lab_D_2nd_Order_Estimation.pdf|Lab D - Empirical Model Estimation]] and [[https://youtu.be/Cp6fPUptc74|Solution]]

* [[Attach:Lab_D_2nd_Order_Estimation.pdf|Lab D - Empirical Model Estimation]] and [[https://youtu.be/Cp6fPUptc74|Solution]]

Changed lines 63-65 from:

* [[Main/Lab_A_SISO_Model.pdf|A~~:~~ Single Heater Modeling]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoModeling|Solution]]

* [[Main/Lab_B_MIMO_Model.pdf|B~~:~~ Dual Heater Modeling]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoModeling2|Solution]]

* [[Main/Lab_B_MIMO_Model.pdf|B

to:

* [[Main/Lab_A_SISO_Model.pdf|Lab A - Single Heater Modeling]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoModeling|Solution]]

* [[Main/Lab_B_MIMO_Model.pdf|Lab B - Dual Heater Modeling]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoModeling2|Solution]]

* [[Main/Lab_B_MIMO_Model.pdf|Lab B - Dual Heater Modeling]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoModeling2|Solution]]

Changed lines 68-69 from:

* [[Main/Lab_C_Parameter_Estimation.pdf|C~~:~~ Parameter Estimation]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoEstimation2|Solution]]

* [[Main/Lab_D_2nd_Order_Estimation.pdf|D~~:~~ Empirical Model Estimation]] and [[https://youtu.be/Cp6fPUptc74|Solution]]

* [[Main/Lab_D_2nd_Order_Estimation.pdf|D

to:

* [[Main/Lab_C_Parameter_Estimation.pdf|Lab C - Parameter Estimation]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoEstimation2|Solution]]

* [[Main/Lab_D_2nd_Order_Estimation.pdf|Lab D - Empirical Model Estimation]] and [[https://youtu.be/Cp6fPUptc74|Solution]]

* [[Main/Lab_D_2nd_Order_Estimation.pdf|Lab D - Empirical Model Estimation]] and [[https://youtu.be/Cp6fPUptc74|Solution]]

Added lines 1-72:

(:title Advanced Temperature Control:)

(:keywords Arduino, PID, temperature, control, process control, course:)

(:description Temperature Control with an Arduino Device:)

This lab is an application of advanced temperature control with two heaters and two temperature sensors. The heater power output is adjusted to maintain a desired temperature setpoint. Thermal energy from the heater is transferred by conduction, convection, and radiation to the temperature sensor. This lab is a resource for model identification, estimation, and advanced control development.

%width=400px%Attach:tclab_device.png

(:toggle hide purchase button show="Get Temperature Control Lab":)

(:div id=purchase:)

The lab kit includes:

* Arduino Uno

* Temperature control PCB shield

* USB barrel jack power cable for heaters

* 5V USB power supply (US plug)

* USB cable for serial connection to MacOS, Windows, or Linux computer

* Small cardboard box

%width=550px%Attach:arduino_lab_kit.png

(:html:)

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">

<input type="hidden" name="cmd" value="_s-xclick">

<input type="hidden" name="hosted_button_id" value="CZWTTVAV9BJ8C">

<table>

<tr><td><input type="hidden" name="on0" value="Lab Type">Lab Type</td></tr><tr><td><select name="os0">

<option value="Basic (PID) and Advanced Control (MPC) Kit">Basic (PID) and Advanced Control (MPC) Kit $35.00 USD</option>

</select> </td></tr>

<tr><td><input type="hidden" name="on1" value="Firmware (can change later)">Arduino Firmware (can change later)</td></tr><tr><td><select name="os1">

<option value="MATLAB and Simulink">MATLAB and Simulink </option>

<option value="Python">Python </option>

</select> </td></tr>

<tr><td><input type="hidden" name="on2" value="Other notes (e.g. EU Plug)">Other notes (e.g. EU Plug)</td></tr><tr><td><input type="text" name="os2" maxlength="200"></td></tr>

</table>

<input type="hidden" name="currency_code" value="USD">

<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">

<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">

</form>

(:htmlend:)

(:divend:)

%width=500px%Attach:tclab_schematic.png

!!!! Lab Resources

Lab software is available in MATLAB, Python, and Simulink. The [[http://gekko.readthedocs.io/en/latest/|GEKKO package]] is recommended for Python or first-time users without a language preference.

* [[https://github.com/APMonitor/arduino|TCLab Files on GitHub]]

A basic version of this lab is also available. The more basic lab instructions are for tuning a Proportional Integral Derivative (PID) controller with Single Input Single Output (SISO) control.

* [[https://apmonitor.com/heat.htm|Basic (PID) Control Lab]]

The advanced control lab explores multivariate control with Multiple Input Multiple Output (MIMO) modeling, estimation, and control.

!!!! Lab Instructions

The advanced control lab has three phases including model development, parameter and state estimation, and advanced control. The models developed and tuned in the initial phase are used directly in model predictive control. Model forms are from empirical identification or fundamental energy balance relationships and include single (SISO) and dual heater (MIMO) modules. Relationships may be linear or nonlinear with continuous or discrete variables.

'''Model Development'''

* [[Main/Lab_A_SISO_Model.pdf|A: Single Heater Modeling]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoModeling|Solution]]

* [[Main/Lab_B_MIMO_Model.pdf|B: Dual Heater Modeling]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoModeling2|Solution]]

'''Parameter and State Estimation'''

* [[Main/Lab_C_Parameter_Estimation.pdf|C: Parameter Estimation]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoEstimation2|Solution]]

* [[Main/Lab_D_2nd_Order_Estimation.pdf|D: Empirical Model Estimation]] and [[https://youtu.be/Cp6fPUptc74|Solution]]

(:keywords Arduino, PID, temperature, control, process control, course:)

(:description Temperature Control with an Arduino Device:)

This lab is an application of advanced temperature control with two heaters and two temperature sensors. The heater power output is adjusted to maintain a desired temperature setpoint. Thermal energy from the heater is transferred by conduction, convection, and radiation to the temperature sensor. This lab is a resource for model identification, estimation, and advanced control development.

%width=400px%Attach:tclab_device.png

(:toggle hide purchase button show="Get Temperature Control Lab":)

(:div id=purchase:)

The lab kit includes:

* Arduino Uno

* Temperature control PCB shield

* USB barrel jack power cable for heaters

* 5V USB power supply (US plug)

* USB cable for serial connection to MacOS, Windows, or Linux computer

* Small cardboard box

%width=550px%Attach:arduino_lab_kit.png

(:html:)

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">

<input type="hidden" name="cmd" value="_s-xclick">

<input type="hidden" name="hosted_button_id" value="CZWTTVAV9BJ8C">

<table>

<tr><td><input type="hidden" name="on0" value="Lab Type">Lab Type</td></tr><tr><td><select name="os0">

<option value="Basic (PID) and Advanced Control (MPC) Kit">Basic (PID) and Advanced Control (MPC) Kit $35.00 USD</option>

</select> </td></tr>

<tr><td><input type="hidden" name="on1" value="Firmware (can change later)">Arduino Firmware (can change later)</td></tr><tr><td><select name="os1">

<option value="MATLAB and Simulink">MATLAB and Simulink </option>

<option value="Python">Python </option>

</select> </td></tr>

<tr><td><input type="hidden" name="on2" value="Other notes (e.g. EU Plug)">Other notes (e.g. EU Plug)</td></tr><tr><td><input type="text" name="os2" maxlength="200"></td></tr>

</table>

<input type="hidden" name="currency_code" value="USD">

<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">

<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">

</form>

(:htmlend:)

(:divend:)

%width=500px%Attach:tclab_schematic.png

!!!! Lab Resources

Lab software is available in MATLAB, Python, and Simulink. The [[http://gekko.readthedocs.io/en/latest/|GEKKO package]] is recommended for Python or first-time users without a language preference.

* [[https://github.com/APMonitor/arduino|TCLab Files on GitHub]]

A basic version of this lab is also available. The more basic lab instructions are for tuning a Proportional Integral Derivative (PID) controller with Single Input Single Output (SISO) control.

* [[https://apmonitor.com/heat.htm|Basic (PID) Control Lab]]

The advanced control lab explores multivariate control with Multiple Input Multiple Output (MIMO) modeling, estimation, and control.

!!!! Lab Instructions

The advanced control lab has three phases including model development, parameter and state estimation, and advanced control. The models developed and tuned in the initial phase are used directly in model predictive control. Model forms are from empirical identification or fundamental energy balance relationships and include single (SISO) and dual heater (MIMO) modules. Relationships may be linear or nonlinear with continuous or discrete variables.

'''Model Development'''

* [[Main/Lab_A_SISO_Model.pdf|A: Single Heater Modeling]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoModeling|Solution]]

* [[Main/Lab_B_MIMO_Model.pdf|B: Dual Heater Modeling]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoModeling2|Solution]]

'''Parameter and State Estimation'''

* [[Main/Lab_C_Parameter_Estimation.pdf|C: Parameter Estimation]] and [[http://apmonitor.com/pdc/index.php/Main/ArduinoEstimation2|Solution]]

* [[Main/Lab_D_2nd_Order_Estimation.pdf|D: Empirical Model Estimation]] and [[https://youtu.be/Cp6fPUptc74|Solution]]