diff --git a/hw2_work/.ipynb_checkpoints/hw2_work-checkpoint.ipynb b/hw2_work/.ipynb_checkpoints/hw2_work-checkpoint.ipynb
index d39ff0f..a802c7d 100644
--- a/hw2_work/.ipynb_checkpoints/hw2_work-checkpoint.ipynb
+++ b/hw2_work/.ipynb_checkpoints/hw2_work-checkpoint.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 2,
"metadata": {
"collapsed": true,
"slideshow": {
@@ -16,7 +16,7 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 3,
"metadata": {
"collapsed": true,
"slideshow": {
@@ -30,7 +30,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 4,
"metadata": {
"collapsed": true,
"slideshow": {
@@ -74,9 +74,9 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 12,
"metadata": {
- "collapsed": true,
+ "collapsed": false,
"slideshow": {
"slide_type": "subslide"
}
@@ -87,12 +87,12 @@
"wnapprox=@(w) sqrt(0.7*g-w^2);\n",
"ode1=@(t,r,w) [r(2);-(0.49*r(2).^2.*r(1)+(0.7*g-w^2).*r(1))./(1+0.49*r(1).^2)];\n",
"\n",
- "[t1,r1]=ode23(@(t,r) ode1(t,r,1), [0 1.1*8*pi/wnapprox(1)], [10 0]);"
+ "[t1,r1]=ode23(@(t,r) ode1(t,r,2), [0 20], [10 0]);"
]
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 13,
"metadata": {
"collapsed": false,
"slideshow": {
@@ -178,33 +178,23 @@
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t2\n",
- "\t\n",
- "\n",
- "\n",
- "\t\t\n",
- "\t\t4\n",
+ "\t\t\n",
+ "\t\t5\n",
"\t\n",
"\n",
"\n",
"\t\t\n",
- "\t\t6\n",
- "\t\n",
- "\n",
- "\n",
- "\t\t\n",
- "\t\t8\n",
+ "\t\t10\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t10\n",
+ "\t\t\n",
+ "\t\t15\n",
"\t\n",
"\n",
"\n",
"\t\t\n",
- "\t\t12\n",
+ "\t\t20\n",
"\t\n",
"\n",
"\n",
@@ -227,7 +217,7 @@
"\n",
"\n",
"\n",
- "\t\n",
+ "\t\n",
"\t\n",
"\n",
"\n",
@@ -256,7 +246,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 11,
"metadata": {
"collapsed": false,
"slideshow": {
@@ -306,82 +296,92 @@
"\n",
"\n",
"\t\n",
- "\t\t\n",
+ "\t\t\n",
"\t\n",
"\n",
"\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t10\n",
+ "\t\t\n",
+ "\t\t0\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t15\n",
+ "\t\t\n",
+ "\t\t100\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t20\n",
+ "\t\t\n",
+ "\t\t200\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t25\n",
+ "\t\t\n",
+ "\t\t300\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t30\n",
+ "\t\t\n",
+ "\t\t400\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t35\n",
+ "\t\t\n",
+ "\t\t500\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
+ "\t\t\n",
+ "\t\t600\n",
+ "\t\n",
+ "\n",
+ "\n",
+ "\t\t\n",
+ "\t\t700\n",
+ "\t\n",
+ "\n",
+ "\n",
+ "\t\t\n",
"\t\t0\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t1\n",
+ "\t\t\n",
+ "\t\t20\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t2\n",
+ "\t\t\n",
+ "\t\t40\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t3\n",
+ "\t\t\n",
+ "\t\t60\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t4\n",
+ "\t\t\n",
+ "\t\t80\n",
"\t\n",
"\n",
"\n",
"\t\t\n",
- "\t\t5\n",
+ "\t\t100\n",
"\t\n",
"\n",
"\n",
"\n",
"\n",
- "\t\n",
+ "\t\n",
"\n",
"\t\n",
"\t\tposition (m)\n",
"\t\n",
"\n",
"\n",
- "\t\n",
+ "\t\n",
"\t\ttime (s)\n",
"\t\n",
"\n",
@@ -391,7 +391,7 @@
"\n",
"\n",
"\n",
- "\t\n",
+ "\t\n",
"\t\n",
"\n",
"\n",
@@ -413,7 +413,7 @@
}
],
"source": [
- "[t5,r5]=ode23(@(t,r) ode1(t,r,5), [0 5], [10 0]);\n",
+ "[t5,r5]=ode23(@(t,r) ode1(t,r,5), [0 100], [10 0]);\n",
"plot(t5,r5(:,1))\n",
"xlabel('time (s)')\n",
"ylabel('position (m)')"
@@ -447,7 +447,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 19,
"metadata": {
"collapsed": false,
"slideshow": {
@@ -460,12 +460,12 @@
"l=1;\n",
"wnapprox=@(w) sqrt(g/l-w^2);\n",
"ode2= @(t,r,a) [r(2); a*w^2/l*cos(r(1))-(g/l-cos(r(1))*w^2).*sin(r(1))];\n",
- "[t0,r0]=ode23(@(t,r) ode2(t,r,0), [0 2*2*pi/wnapprox(w)],[pi/9,0]);"
+ "[t0,r0]=ode23(@(t,r) ode2(t,r,0), [0 2*2*pi/wnapprox(w)],[0,0]);"
]
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 20,
"metadata": {
"collapsed": false,
"slideshow": {
@@ -522,32 +522,32 @@
"\n",
"\n",
"\t\t\n",
- "\t\t-20\n",
+ "\t\t0\n",
"\t\n",
"\n",
"\n",
"\t\t\n",
- "\t\t0\n",
+ "\t\t20\n",
"\t\n",
"\n",
"\n",
"\t\t\n",
- "\t\t20\n",
+ "\t\t40\n",
"\t\n",
"\n",
"\n",
"\t\t\n",
- "\t\t40\n",
+ "\t\t60\n",
"\t\n",
"\n",
"\n",
"\t\t\n",
- "\t\t60\n",
+ "\t\t80\n",
"\t\n",
"\n",
"\n",
"\t\t\n",
- "\t\t80\n",
+ "\t\t100\n",
"\t\n",
"\n",
"\n",
@@ -609,7 +609,7 @@
"\t\n",
"\n",
"\n",
- "\t\n",
+ "\t\n",
"\t\n",
"\ta=10 m\n",
"\n",
@@ -618,7 +618,7 @@
"\t\n",
"\n",
"\n",
- "\t\n",
+ "\t\n",
"\t\n",
"\n",
"\n",
@@ -640,8 +640,7 @@
}
],
"source": [
- "[t10,r10]=ode23(@(t,r) ode2(t,r,10), [0 2*2*pi/wnapprox(w)],[pi/9,0]);\n",
- "\n",
+ "[t10,r10]=ode23(@(t,r) ode2(t,r,10), [0 2*2*pi/wnapprox(w)],[0,0]);\n",
"plot(t0,r0(:,1)*180/pi,t10,r10(:,1)*180/pi)\n",
"xlabel('time (s)')\n",
"ylabel('angle (deg)')\n",
@@ -906,7 +905,7 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 21,
"metadata": {
"collapsed": false,
"slideshow": {
@@ -1274,7 +1273,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 23,
"metadata": {
"collapsed": false,
"slideshow": {
@@ -1283,12 +1282,12 @@
},
"outputs": [],
"source": [
- "[t,r]=ode23(@(t,r) ode4(t,r,10,0.5),[0 5],[0.5 0.1 0 2.5/0.5]);"
+ "[t,r]=ode23(@(t,r) ode4(t,r,10,0.1),[0 5],[0.5 0.1 0 2.5/0.5]);"
]
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 24,
"metadata": {
"collapsed": false,
"slideshow": {
@@ -1433,7 +1432,7 @@
"\n",
"\n",
"\n",
- "\t\n",
+ "\t\n",
"\t\n",
"\n",
"\n",
diff --git a/hw2_work/hw2_work.ipynb b/hw2_work/hw2_work.ipynb
index d39ff0f..a802c7d 100644
--- a/hw2_work/hw2_work.ipynb
+++ b/hw2_work/hw2_work.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 2,
"metadata": {
"collapsed": true,
"slideshow": {
@@ -16,7 +16,7 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 3,
"metadata": {
"collapsed": true,
"slideshow": {
@@ -30,7 +30,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 4,
"metadata": {
"collapsed": true,
"slideshow": {
@@ -74,9 +74,9 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 12,
"metadata": {
- "collapsed": true,
+ "collapsed": false,
"slideshow": {
"slide_type": "subslide"
}
@@ -87,12 +87,12 @@
"wnapprox=@(w) sqrt(0.7*g-w^2);\n",
"ode1=@(t,r,w) [r(2);-(0.49*r(2).^2.*r(1)+(0.7*g-w^2).*r(1))./(1+0.49*r(1).^2)];\n",
"\n",
- "[t1,r1]=ode23(@(t,r) ode1(t,r,1), [0 1.1*8*pi/wnapprox(1)], [10 0]);"
+ "[t1,r1]=ode23(@(t,r) ode1(t,r,2), [0 20], [10 0]);"
]
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 13,
"metadata": {
"collapsed": false,
"slideshow": {
@@ -178,33 +178,23 @@
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t2\n",
- "\t\n",
- "\n",
- "\n",
- "\t\t\n",
- "\t\t4\n",
+ "\t\t\n",
+ "\t\t5\n",
"\t\n",
"\n",
"\n",
"\t\t\n",
- "\t\t6\n",
- "\t\n",
- "\n",
- "\n",
- "\t\t\n",
- "\t\t8\n",
+ "\t\t10\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t10\n",
+ "\t\t\n",
+ "\t\t15\n",
"\t\n",
"\n",
"\n",
"\t\t\n",
- "\t\t12\n",
+ "\t\t20\n",
"\t\n",
"\n",
"\n",
@@ -227,7 +217,7 @@
"\n",
"\n",
"\n",
- "\t\n",
+ "\t\n",
"\t\n",
"\n",
"\n",
@@ -256,7 +246,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 11,
"metadata": {
"collapsed": false,
"slideshow": {
@@ -306,82 +296,92 @@
"\n",
"\n",
"\t\n",
- "\t\t\n",
+ "\t\t\n",
"\t\n",
"\n",
"\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t10\n",
+ "\t\t\n",
+ "\t\t0\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t15\n",
+ "\t\t\n",
+ "\t\t100\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t20\n",
+ "\t\t\n",
+ "\t\t200\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t25\n",
+ "\t\t\n",
+ "\t\t300\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t30\n",
+ "\t\t\n",
+ "\t\t400\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t35\n",
+ "\t\t\n",
+ "\t\t500\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
+ "\t\t\n",
+ "\t\t600\n",
+ "\t\n",
+ "\n",
+ "\n",
+ "\t\t\n",
+ "\t\t700\n",
+ "\t\n",
+ "\n",
+ "\n",
+ "\t\t\n",
"\t\t0\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t1\n",
+ "\t\t\n",
+ "\t\t20\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t2\n",
+ "\t\t\n",
+ "\t\t40\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t3\n",
+ "\t\t\n",
+ "\t\t60\n",
"\t\n",
"\n",
"\n",
- "\t\t\n",
- "\t\t4\n",
+ "\t\t\n",
+ "\t\t80\n",
"\t\n",
"\n",
"\n",
"\t\t\n",
- "\t\t5\n",
+ "\t\t100\n",
"\t\n",
"\n",
"\n",
"\n",
"\n",
- "\t\n",
+ "\t\n",
"\n",
"\t\n",
"\t\tposition (m)\n",
"\t\n",
"\n",
"\n",
- "\t\n",
+ "\t\n",
"\t\ttime (s)\n",
"\t\n",
"\n",
@@ -391,7 +391,7 @@
"\n",
"\n",
"\n",
- "\t\n",
+ "\t\n",
"\t\n",
"\n",
"\n",
@@ -413,7 +413,7 @@
}
],
"source": [
- "[t5,r5]=ode23(@(t,r) ode1(t,r,5), [0 5], [10 0]);\n",
+ "[t5,r5]=ode23(@(t,r) ode1(t,r,5), [0 100], [10 0]);\n",
"plot(t5,r5(:,1))\n",
"xlabel('time (s)')\n",
"ylabel('position (m)')"
@@ -447,7 +447,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 19,
"metadata": {
"collapsed": false,
"slideshow": {
@@ -460,12 +460,12 @@
"l=1;\n",
"wnapprox=@(w) sqrt(g/l-w^2);\n",
"ode2= @(t,r,a) [r(2); a*w^2/l*cos(r(1))-(g/l-cos(r(1))*w^2).*sin(r(1))];\n",
- "[t0,r0]=ode23(@(t,r) ode2(t,r,0), [0 2*2*pi/wnapprox(w)],[pi/9,0]);"
+ "[t0,r0]=ode23(@(t,r) ode2(t,r,0), [0 2*2*pi/wnapprox(w)],[0,0]);"
]
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 20,
"metadata": {
"collapsed": false,
"slideshow": {
@@ -522,32 +522,32 @@
"\n",
"\n",
"\t\t\n",
- "\t\t-20\n",
+ "\t\t0\n",
"\t\n",
"\n",
"\n",
"\t\t\n",
- "\t\t0\n",
+ "\t\t20\n",
"\t\n",
"\n",
"\n",
"\t\t\n",
- "\t\t20\n",
+ "\t\t40\n",
"\t\n",
"\n",
"\n",
"\t\t\n",
- "\t\t40\n",
+ "\t\t60\n",
"\t\n",
"\n",
"\n",
"\t\t\n",
- "\t\t60\n",
+ "\t\t80\n",
"\t\n",
"\n",
"\n",
"\t\t\n",
- "\t\t80\n",
+ "\t\t100\n",
"\t\n",
"\n",
"\n",
@@ -609,7 +609,7 @@
"\t\n",
"\n",
"\n",
- "\t\n",
+ "\t\n",
"\t\n",
"\ta=10 m\n",
"\n",
@@ -618,7 +618,7 @@
"\t\n",
"\n",
"\n",
- "\t\n",
+ "\t\n",
"\t\n",
"\n",
"\n",
@@ -640,8 +640,7 @@
}
],
"source": [
- "[t10,r10]=ode23(@(t,r) ode2(t,r,10), [0 2*2*pi/wnapprox(w)],[pi/9,0]);\n",
- "\n",
+ "[t10,r10]=ode23(@(t,r) ode2(t,r,10), [0 2*2*pi/wnapprox(w)],[0,0]);\n",
"plot(t0,r0(:,1)*180/pi,t10,r10(:,1)*180/pi)\n",
"xlabel('time (s)')\n",
"ylabel('angle (deg)')\n",
@@ -906,7 +905,7 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 21,
"metadata": {
"collapsed": false,
"slideshow": {
@@ -1274,7 +1273,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 23,
"metadata": {
"collapsed": false,
"slideshow": {
@@ -1283,12 +1282,12 @@
},
"outputs": [],
"source": [
- "[t,r]=ode23(@(t,r) ode4(t,r,10,0.5),[0 5],[0.5 0.1 0 2.5/0.5]);"
+ "[t,r]=ode23(@(t,r) ode4(t,r,10,0.1),[0 5],[0.5 0.1 0 2.5/0.5]);"
]
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 24,
"metadata": {
"collapsed": false,
"slideshow": {
@@ -1433,7 +1432,7 @@
"\n",
"\n",
"\n",
- "\t\n",
+ "\t\n",
"\t\n",
"\n",
"\n",
diff --git a/hw2_work/octave-workspace b/hw2_work/octave-workspace
index 35088d6..80a32a8 100644
Binary files a/hw2_work/octave-workspace and b/hw2_work/octave-workspace differ
diff --git a/hw2_work/ode4.m b/hw2_work/ode4.m
index 5e47023..7c884f2 100644
--- a/hw2_work/ode4.m
+++ b/hw2_work/ode4.m
@@ -2,6 +2,9 @@ function dr=ode4(t,r,k,m)
% first order ODEs for two masses attached by a linear spring
% k is spring stiffness (assume le=0)
% m is mass of each
+ % r=[ radius, d(radius)/dt, theta, d(theta)/dt]
+ %dr=[ d(radius)/dt,dd(radius)/ddt, d(theta)/dt, dd(theta)/ddt]
+ %
dr=zeros(size(r));
dr(1)=r(2);
dr(3)=r(4);
diff --git a/octave-workspace b/octave-workspace
index 7c017c0..41ef164 100644
Binary files a/octave-workspace and b/octave-workspace differ
diff --git a/plate.png b/plate.png
new file mode 100644
index 0000000..d03a2a7
Binary files /dev/null and b/plate.png differ
diff --git a/rotating_ball_bearing.ipynb b/rotating_ball_bearing.ipynb
new file mode 100644
index 0000000..7962499
--- /dev/null
+++ b/rotating_ball_bearing.ipynb
@@ -0,0 +1,316 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "%plot --format svg"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "setdefaults\n",
+ "pkg load odepkg"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "A ball bearing is rolling in a track without slipping as shown in Figure 1. The track\n",
+ "is spinning at a constant $\\Omega$. The ball\n",
+ "bearing weighs m=0.1 kg and has a radius of r=5 mm. The track has a radius of R=50 mm.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "function dy=myode(t,y,Omega,r,R)\n",
+ " g=9.81;\n",
+ " dy=zeros(size(y));\n",
+ " dy(1)=y(2);\n",
+ " dy(2)=5/7*Omega^2*sin(y(1)).*cos((y(1)))-g/(R-r)*sin(y(1));\n",
+ "end"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "wn =\n",
+ "\n",
+ "@(omega) sqrt (-(5 / 7 * omega .^ 2 - 9.81 / 45e-3))\n",
+ "\n",
+ "T =\n",
+ "\n",
+ " 0.42555 0.51899\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "wn=@(omega)sqrt(-(5/7*omega.^2-9.81/45e-3))\n",
+ "T=2*pi./wn([0,10])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "[t0,y0]=ode23(@(t,y) myode(t,y,0,5e-3,50e-3),[0,0.85],[pi/4,0]);\n",
+ "[t10,y10]=ode23(@(t,y) myode(t,y,10,5e-3,50e-3),[0,1.02],[pi/4,0]);"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ ""
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot(t0,y0(:,1)*180/pi,t10,y10(:,1)*180/pi)\n",
+ "xlabel('time (s)')\n",
+ "ylabel('theta (deg)')\n",
+ "legend('w=0 rad/s','w=10 rad/s')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Octave",
+ "language": "octave",
+ "name": "octave"
+ },
+ "language_info": {
+ "file_extension": ".m",
+ "help_links": [
+ {
+ "text": "MetaKernel Magics",
+ "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md"
+ }
+ ],
+ "mimetype": "text/x-octave",
+ "name": "octave",
+ "version": "0.19.14"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/rotating_plate.ipynb b/rotating_plate.ipynb
new file mode 100644
index 0000000..e2df2f8
--- /dev/null
+++ b/rotating_plate.ipynb
@@ -0,0 +1,406 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "%plot --format svg"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "setdefaults\n",
+ "pkg load odepkg"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "![square plate](./plate.png)\n",
+ "\n",
+ "Square plate 50 mm-by-50 mm is pinned at center of top and rotates with a torque, $\\tau(t)$=2 N-m. The plate has mass, m=0.8 kg. What is the rotation rate of the system and the resulting $\\theta(t)$? The plate starts at rest at 10$^{o}$ off the vertical position"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "function dy=myode(t,y,L,m,tau)\n",
+ " g=9.81;\n",
+ " dy=zeros(size(y));\n",
+ " dy(1)=12/m/L^2*tau-(6*y(1).*y(3).*sin(y(2)).*cos(y(2)))./(1+3*sin(y(2)).^2); % d/dt(dpsi/dt)=...\n",
+ " dy(2)=y(3); % d/dt(theta)=dtheta/dt\n",
+ " dy(3)=-12*g/L/2*sin(y(2))-3*y(1).^2.*sin(y(2)).*cos(y(2)); %d/dt(dtheta/dt)=...\n",
+ "end"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "[t,y]=ode23(@(t,y) myode(t,y,50e-3,0.8,0.05),[0,0.5],[0,pi/18,0]);"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ ""
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot(t,y(:,2)*180/pi)\n",
+ "xlabel('time (s)')\n",
+ "ylabel('theta (deg)')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ ""
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot(t,y(:,1))\n",
+ "xlabel('time (s)')\n",
+ "ylabel('rotational speed (rad/s)')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Octave",
+ "language": "octave",
+ "name": "octave"
+ },
+ "language_info": {
+ "file_extension": ".m",
+ "help_links": [
+ {
+ "text": "MetaKernel Magics",
+ "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md"
+ }
+ ],
+ "mimetype": "text/x-octave",
+ "name": "octave",
+ "version": "0.19.14"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}