Skip to content

Instantly share code, notes, and snippets.

@peko
Created January 14, 2019 13:50
Show Gist options
  • Save peko/d8c0b980dc3939d89d94ad6beb3ffc58 to your computer and use it in GitHub Desktop.
Save peko/d8c0b980dc3939d89d94ad6beb3ffc58 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"# Optimal moon landing\n",
"\n",
"\n",
"* $F = m a$\n",
"* $s = s_0 + v t + a \\frac{t^2}{2}$\n"
]
},
{
"cell_type": "code",
"execution_count": 472,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[-20, 50, -10, 0, 0, -1]\n",
"[0, 0, 0, 0, 0, 0]\n",
"[[1. 0. 1. 0. 0.5 0. ]\n",
" [0. 1. 0. 1. 0. 0.5]\n",
" [0. 0. 1. 0. 1. 0. ]\n",
" [0. 0. 0. 1. 0. 1. ]\n",
" [0. 0. 0. 0. 1. 0. ]\n",
" [0. 0. 0. 0. 0. 1. ]]\n",
"[[0 0]\n",
" [0 0]\n",
" [0 0]\n",
" [0 0]\n",
" [1 0]\n",
" [0 1]]\n"
]
}
],
"source": [
"# Generate data for control problem.\n",
"import numpy as np\n",
"from cvxpy import *\n",
"\n",
"np.set_printoptions(precision=1, suppress=True)\n",
"# time step\n",
"t = 1\n",
"\n",
"n = 6 # feature dimension -> pos, vel, acc\n",
"m = 2 # control dimension -> acc\n",
"T = 50 # Time steps\n",
"\n",
"g = 1 # moon gravitation\n",
"\n",
"# Start parameters\n",
"x_0 = [\n",
" -20, # p_x\n",
" 50, # p_y (altitude) \n",
" -10, # v_x (orbital velocity)\n",
" 0, # v_y\n",
" 0, # a_x\n",
" -g] # a_y\n",
"\n",
"# Terminal vector zero position, velocity and acceleration\n",
"x_T = [0,0,0,0,0,0]\n",
"\n",
"# Gravity constant\n",
"c = np.array([0,0,0,0,0,-g]).T\n",
"\n",
"\n",
"\n",
"# physics p = p0+ v*t +a*t*t/2\n",
"A = np.array([\n",
" [1,0,t,0,t*t/2,0],\n",
" [0,1,0,t,0,t*t/2],\n",
" [0,0,1,0,t,0],\n",
" [0,0,0,1,0,t],\n",
" [0,0,0,0,1,0],\n",
" [0,0,0,0,0,1]])\n",
"\n",
"B = np.array([\n",
" [0,0],\n",
" [0,0],\n",
" [0,0],\n",
" [0,0],\n",
" [1,0],\n",
" [0,1]])\n",
"\n",
"print(x_0)\n",
"print(x_T)\n",
"\n",
"print(A)\n",
"print(B)"
]
},
{
"cell_type": "code",
"execution_count": 485,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[-20. -30. -39.2 -46.2 -49.5 -47.9 -41.9 -32.9 -22.5 -12.1 -3.4 2.4\n",
" 4.5 3.9 2.2 0.7 -0. -0.2 -0.1 -0.1 -0. 0. 0. 0.\n",
" 0. 0. -0. -0. -0. -0. 0. 0. 0. 0. 0. -0.\n",
" -0. -0. -0. -0. 0. 0. 0. 0. -0. -0. -0. -0.\n",
" -0. -0. -0. ]\n",
" [ 50. 49.5 47.6 44. 39.3 33.9 28.4 23.3 19.1 16.2 15. 14.3\n",
" 13.2 12. 11. 10. 9. 8. 7. 6. 5. 4. 3. 2.\n",
" 1.1 0.5 0.1 0. 0. 0. 0. 0. 0. 0. 0. 0.\n",
" 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n",
" 0. 0. -0. ]\n",
" [-10. -10. -8.5 -5.5 -1. 4.2 7.9 10.1 10.8 9.9 7.6 3.8\n",
" 0.4 -1.5 -1.9 -1.1 -0.4 0. 0.1 0.1 0. 0. -0. -0.\n",
" -0. -0. -0. 0. 0. 0. 0. -0. -0. -0. -0. -0.\n",
" 0. 0. 0. 0. 0. -0. -0. -0. -0. 0. 0. 0.\n",
" 0. 0. 0. ]\n",
" [ 0. -1. -2.9 -4.3 -5.2 -5.5 -5.4 -4.8 -3.7 -2.1 -0.3 -1.\n",
" -1.3 -1. -1. -1. -1. -1. -1. -1. -1. -1. -1. -1.\n",
" -0.8 -0.5 -0.2 -0. 0. 0. -0. -0. -0. -0. -0. 0.\n",
" 0. 0. 0. -0. -0. -0. -0. -0. 0. 0. -0. -0.\n",
" -0. -0. 0. ]\n",
" [ 0. 1.5 3. 4.5 5.2 3.7 2.2 0.7 -0.8 -2.3 -3.8 -3.4\n",
" -1.9 -0.4 0.8 0.7 0.4 0.1 -0. -0. -0. -0. -0. 0.\n",
" 0. 0. 0. -0. -0. -0. -0. -0. 0. 0. 0. 0.\n",
" 0. -0. -0. -0. -0. 0. 0. 0. 0. 0. -0. -0.\n",
" -0. -0. -0. ]\n",
" [ -1. -1.9 -1.4 -0.9 -0.4 0.1 0.6 1.1 1.6 1.8 -0.7 -0.2\n",
" 0.3 0. -0. 0. -0. 0. -0. 0. -0. 0. -0. 0.2\n",
" 0.3 0.3 0.1 0. -0. -0. -0. 0. 0. 0. 0. 0.\n",
" -0. -0. -0. -0. -0. -0. 0. 0. 0. -0. -0. -0.\n",
" -0. 0. -0. ]]\n",
"[[ 1.5 1.5 1.5 0.7 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 0.4 1.5 1.5 1.3\n",
" -0.1 -0.4 -0.3 -0.1 -0. 0. 0. 0. 0. 0. -0. -0. -0. -0.\n",
" 0. 0. 0. 0. 0. -0. -0. -0. -0. 0. 0. 0. 0. 0.\n",
" -0. -0. -0. -0. -0. 0. 0. 0. ]\n",
" [ 0.1 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.1 -1.5 1.5 1.5 0.8 0.9\n",
" 1.1 0.9 1. 1. 1. 1. 1. 1. 1.2 1.1 0.9 0.9 0.9 1.\n",
" 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.\n",
" 1. 1. 1. 1. 1. 1. 1. 1. ]]\n"
]
}
],
"source": [
"x = Variable((n, T+1))\n",
"u = Variable((m, T))\n",
"\n",
"cost = 0\n",
"constr = []\n",
"for t in range(T):\n",
" cost += sum_squares(x[:,t+1]) + sum_squares(u[:,t])\n",
" constr += [\n",
" x[:,t+1] == A*x[:,t] + B*u[:,t] + c,\n",
" norm(u[:,t], 'inf') <= g*1.5,\n",
" x[:,t][1]>=0]\n",
" \n",
" # altitude constrain to awoid montains\n",
" if t<T:\n",
" constr+=[x[:,t][1]>=25-t]\n",
" \n",
"\n",
"# sums problem objectives and concatenates constraints.\n",
"constr += [\n",
" x[:,0] == x_0,\n",
" x[:,T] == x_T]\n",
"\n",
"problem = Problem(Minimize(cost), constr)\n",
"problem.solve()\n",
"\n",
"print(x.value)\n",
"print(u.value)"
]
},
{
"cell_type": "code",
"execution_count": 486,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f9b4089c160>]"
]
},
"execution_count": 486,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1008x2016 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"## %matplotlib inline\n",
"\n",
"import matplotlib.pyplot as plt\n",
"plt.figure(figsize=(14,28))\n",
"plt.axes().set_aspect('equal')\n",
"plt.plot(u.value[0], u.value[1], \"ro\")\n",
"\n",
"# velocity\n",
"plt.quiver(\n",
" x.value[0], x.value[1], \n",
" x.value[2], x.value[3], \n",
" angles=\"xy\", scale_units='xy', scale=1, \n",
" width=0.002, color='blue', alpha=0.25, linestyle=':')\n",
"\n",
"# acceleartion\n",
"plt.quiver(\n",
" x.value[0], x.value[1], \n",
" x.value[4], x.value[5], \n",
" angles=\"xy\", scale_units='xy', \n",
" scale=1, width=0.002, color='red', alpha=0.25)\n",
"\n",
"# control\n",
"plt.quiver(\n",
" x.value[0,:-1], x.value[1,:-1], \n",
" u.value[0], u.value[1], \n",
" angles=\"xy\", scale_units='xy', \n",
" scale=1, width=0.002, color='red', alpha=0.8, linestyle=':')\n",
"\n",
"#plt.plot(x.value[0], x.value[1], \"ro\", color=\"0.75\")\n",
"plt.plot(x.value[0], x.value[1], alpha=0.5)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment