{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "*This notebook contains course material from [CBE30338](https://jckantor.github.io/CBE30338)\n", "by Jeffrey Kantor (jeff at nd.edu); the content is available [on Github](https://github.com/jckantor/CBE30338.git).\n", "The text is released under the [CC-BY-NC-ND-4.0 license](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode),\n", "and code is released under the [MIT license](https://opensource.org/licenses/MIT).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [PID Control with Setpoint Weighting](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/04.02-PID_Control_with_Setpoint_Weighting.ipynb) | [Contents](toc.ipynb) | [PID Control with Anti-Reset-Windup](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/04.04-PID-Control-with-Anti--Reset--Windup.ipynb) >
"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# PID Control with Bumpless Transfer"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Switching from Manual to Automatic Control\n",
"\n",
"The following cells simulate a common situation where a system is manually controlled to a desired steady state, then a controller turned on to maintain that state without further operator intervention. Examples include a pilot switching to autopilot of an aircraft at cruising altititude, or a car driver turning on cruise-control once at a desired highway driving speed.\n",
"\n",
"For this simulation we use PID control with setpoint weighting."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"def PID(Kp, Ki, Kd, MV_bar=0, beta=1, gamma=0):\n",
" # initialize stored data\n",
" eD_prev = 0\n",
" t_prev = -100\n",
" I = 0\n",
" \n",
" # initial control\n",
" MV = MV_bar\n",
" \n",
" while True:\n",
" # yield MV, wait for new t, SP, PV\n",
" t, SP, PV = yield MV\n",
" \n",
" # PID calculations\n",
" P = Kp*(beta*SP - PV)\n",
" I = I + Ki*(SP - PV)*(t - t_prev)\n",
" eD = gamma*SP - PV\n",
" D = Kd*(eD - eD_prev)/(t - t_prev)\n",
" MV = MV_bar + P + I + D\n",
" \n",
" # update stored data for next iteration\n",
" eD_prev = eD\n",
" t_prev = t"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The desired setpoint is 50°C which is acheived with a power setting of approximately 50%. We'll start out at the power setting for a period of 400 seconds, then turn on the controller."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
" "
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}