{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Example with a MIMO (Multiple Inputs Multiple Outputs) two tank system" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Import the libraries" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import scipy.signal as scipysig\n", "import cvxpy as cp\n", "import matplotlib.pyplot as plt\n", "\n", "from typing import List\n", "from cvxpy.expressions.expression import Expression\n", "from cvxpy.constraints.constraint import Constraint\n", "from pydeepc import DeePC\n", "from pydeepc.utils import Data\n", "from utils import System\n", "\n", "### To ignore warnings about cp.ECOS not being available\n", "import warnings\n", "warnings.simplefilter(action='ignore', category=FutureWarning)\n", "warnings.simplefilter(action='ignore', category=UserWarning)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define the loss callack for DeePC and the constraints" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Define the loss function for DeePC\n", "def loss_callback(u: cp.Variable, y: cp.Variable) -> Expression:\n", " horizon, M, P = u.shape[0], u.shape[1], y.shape[1]\n", " ref = np.ones(y.shape)\n", " return cp.norm(y-ref,'fro')**2\n", "\n", "# Define the constraints for DeePC\n", "def constraints_callback(u: cp.Variable, y: cp.Variable) -> List[Constraint]:\n", " horizon, M, P = u.shape[0], u.shape[1], y.shape[1]\n", " # Define a list of input/output constraints\n", " # no real constraints on y, input should be between -1 and 1\n", " return [u >= -1, u <= 1]\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define parameters and simulate DeePC" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Simulating with 300 initial samples...\n" ] }, { "data": { "image/png": "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RERERO0Ng24fMDeW6VaC7g5sokZERERERNTeMOj2AaW83HkjNeuabma6iYiIiIiI2h0G3T5gbLSRmpLpZtBNRERERETU3jDo9gGTsqa7sfJyNlIjIiIiIiJqdxh0+4DavdxZpruCjdSIiIiIiIjaKwbdPuByyzBjDVBbJr5mIzUiIiIiIqJ2h0G3Dyjl5fr6mW6liZouCAgIa+VRERERERERkb8x6PYBl5lu+/XckpP13kRERERERHRFY9DtAya1e7mLoJudy4mIiIiIiNolBt0+YLQo3cvrl5crmW6u5yYiIiIiImqPGHT7gNniKtNtXdPNTDcREREREVG7xKDbB5Tycj0z3URERERERGSHQbeXZNmdRmoMuomIiIiIiNojBt1essbbAFheTkRERERERI4YdHvJbB90s7yciIiIiIiI7DDo9pLLTLcsAzUl4uuQ6NYdFBEREREREbUJDLq9ZJ/pdmikVlcFWEzi68CIVh0TERERERERtQ0Mur2kBN2SBGjtM92Xy8RnjR7QB7X+wIiIiFpYSUkJZsyYgbCwMERERODee+9FZWVlo7e59tprIUmSw8cDDzzQSiMmIiJqfTp/D+CXTgm6GzRRU4LuwHARkRMREV1hZsyYgQsXLiA7OxtGoxFz5szB/fffj48++qjR282dOxfPPPOM+n1wcHBLD5WIiMhvGHR7yRZ01ysauFwqPgeGt+p4iIiIWsPBgwexdu1abN++HcOGDQMA/PWvf8WkSZPw0ksvITEx0eVtg4ODER/PnT2IiKh9YNDtJaWRWoM9upVMd1BEq46HiIioNeTm5iIiIkINuAEgMzMTGo0GW7duxS233OLyth9++CE++OADxMfHY8qUKXj66acbzXbX1taitrZW/b68vBwAYDQaYTQaffDTkDKPnE/f4Zz6FufT9zin3nN37hh0e0nJdOvrbxdmX15ORER0hcnPz0dsbKzDMZ1Oh8jISOTn57u83V133YWUlBQkJibip59+wuOPP47Dhw/j008/dXmbpUuXYsmSJQ2Or1+/nqXpPpadne3vIVxxOKe+xfn0Pc5p81VXV7t1PQbdXnJrTTcREdEvxIIFC/DnP/+50escPHiw2fd///33q1/3798fCQkJuO6663D8+HF069bN6W0WLlyIrKws9fvy8nIkJydj7NixiIqKavZYyMZoNCI7Oxvjx4+H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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "# DeePC paramters\n", "s = 1 # How many steps before we solve again the DeePC problem\n", "T_INI = 2 # Size of the initial set of data\n", "T_list = [300] # Number of data points used to estimate the system\n", "HORIZON = 50 # Horizon length\n", "LAMBDA_G_REGULARIZER = 2 # g regularizer (see DeePC paper, eq. 8)\n", "LAMBDA_Y_REGULARIZER = 0 # y regularizer (see DeePC paper, eq. 8)\n", "LAMBDA_U_REGULARIZER = 0 # u regularizer\n", "EXPERIMENT_HORIZON = 100 # Total number of steps\n", "\n", "# model of two-tank example\n", "A = np.array([\n", " [0.70469, 0. ],\n", " [0.24664, 0.70469]])\n", "B = np.array([[0.75937, 0.75937], [0.12515, 0]])\n", "C = np.array([[1, 0.], [0, 1.]])\n", "D = np.zeros((C.shape[0], B.shape[1]))\n", "\n", "dim_x, dim_u = B.shape\n", "sys = System(scipysig.StateSpace(A, B, C, D, dt=1), noise_std=1e-2)\n", "\n", "fig, ax = plt.subplots(1, 2, figsize=(10,4))\n", "plt.margins(x=0, y=0)\n", "\n", "\n", "# Simulate for different values of T\n", "for T in T_list:\n", " print(f'Simulating with {T} initial samples...')\n", " sys.reset()\n", " # Generate initial data and initialize DeePC\n", " \n", " data = sys.apply_input(u = np.random.normal(size=(T, dim_u)).reshape((T, dim_u)))\n", " deepc = DeePC(data, Tini = T_INI, horizon = HORIZON)\n", "\n", " # Create initial data\n", " data_ini = Data(u = np.zeros((T_INI, dim_u)), y = np.zeros((T_INI, dim_x)))\n", " sys.reset(data_ini = data_ini)\n", "\n", " deepc.build_problem(\n", " build_loss = loss_callback,\n", " build_constraints = constraints_callback,\n", " lambda_g = LAMBDA_G_REGULARIZER,\n", " lambda_y = LAMBDA_Y_REGULARIZER,\n", " lambda_u = LAMBDA_U_REGULARIZER)\n", "\n", " for _ in range(EXPERIMENT_HORIZON//s):\n", " # Solve DeePC\n", " u_optimal, info = deepc.solve(data_ini = data_ini, warm_start=True)\n", "\n", " # Apply optimal control input\n", " _ = sys.apply_input(u = u_optimal[:s, :])\n", "\n", " # Fetch last T_INI samples\n", " data_ini = sys.get_last_n_samples(T_INI)\n", "\n", " # Plot curve\n", " data = sys.get_all_samples()\n", " for i in range(dim_x):\n", " ax[0].plot(data.y[T_INI:, i], label=f'$y_{i}(t)$')\n", " ax[1].plot(data.u[T_INI:, i], label=f'$u_{i}(t)$')\n", " ax[0].legend(fancybox=True, shadow=True)\n", " ax[1].legend(fancybox=True, shadow=True)\n", "\n", "ax[0].set_ylim(0, 1.5)\n", "ax[1].set_ylim(-1.2, 1.2)\n", "ax[0].set_xlabel('t')\n", "ax[0].set_ylabel('y')\n", "ax[0].grid()\n", "ax[1].set_ylabel('u')\n", "ax[1].set_xlabel('t')\n", "ax[1].grid()\n", "ax[0].set_title('Closed loop - output signal $y(t)$')\n", "ax[1].set_title('Closed loop - control signal $u(t)$')\n", "plt.suptitle(f'$s={s}, T={T}, T_i={T_INI}, N={HORIZON}$')\n", "\n", "plt.tight_layout()\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": ".venv", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.9" } }, "nbformat": 4, "nbformat_minor": 2 }