Skip to content

Instantly share code, notes, and snippets.

@jonathan-taylor
Last active September 7, 2019 22:09
Show Gist options
  • Save jonathan-taylor/68bb2be26534addbd25d0f1c0959466d to your computer and use it in GitHub Desktop.
Save jonathan-taylor/68bb2be26534addbd25d0f1c0959466d to your computer and use it in GitHub Desktop.
Problem 1
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"g = 9.8\n",
"mass = 4.0\n",
"angle_at_axis = np.arccos(1/1.25)\n",
"tension_upper = 70.\n",
"tension_gravity_upper = 4 * 9.8 \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 1A)\n",
"\n",
"### Working out tension in bottom rope.\n",
"\n",
"We know that the sum of the vertical forces is 0 acting on the weight. For the vertical we have the vertical\n",
"component on the top string, which is $70 * \\cos(\\theta) = 70 * 1/1.25=56$. Gravity pulls down contributing $-4*9.8$. So the total vertical tension on the bottom string must be\n",
"$$\n",
"56 - 4 * 9.8\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"16.799999999999997"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vertical_bottom = 56 - 4 * 9.8\n",
"vertical_bottom"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The total tension on the lower rope must be\n",
"$$\n",
"16.8 / (1 / 1.25) = 16 * 1.25\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(21.0, 12.600000000000005)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"total_tension_bottom = 16.8*1.25\n",
"horizontal_bottom = np.sqrt(total_tension_bottom**2 - vertical_bottom**2)\n",
"total_tension_bottom, horizontal_bottom"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"42.0"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"horizontal_upper = np.sqrt(70**2 - 56**2)\n",
"horizontal_upper"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 1B)\n",
"\n",
"### Working out RPM\n",
"\n",
"The horizontal tensions must sum in magnitude to the centripetal force.\n",
"The total horizontal tension is\n",
"$$\n",
"42+12.6=54.6\n",
"$$\n",
"\n",
"We then have the equation\n",
"$$\n",
"\\frac{mv^2}{r} = 54.6\n",
"$$\n",
"or\n",
"$$\n",
"\\frac{4 v^2}{0.75} = 54.6\n",
"$$\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3.1996093511552313"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"v = np.sqrt(54.6*0.75/4)\n",
"v"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### RPMs\n",
"\n",
"One revolution has length $2\\pi 0.75$ and there are 60s/min."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"40.738691535952555"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"RPM = (v / (2 * np.pi * 0.75)) * 60\n",
"RPM"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 1C when lower cord goes slack\n",
"\n",
"The lower cord will be slack when the vertical tension in the upper is exactly that of gravity. We also know the triangle will look the same at this point (when it is just slack), so from this we can get the total tension in the upper cord. Using its horizontal component will give is the centripetal force, from which we can find velocity and RPM.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(49.0, 29.399999999999995)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vertical_upper_tension_at_slack = 4 * 9.8\n",
"total_upper_tension_at_slack = vertical_upper_tension_at_slack * 1.25\n",
"horizontal_upper_tension_at_slack = np.sqrt(total_upper_tension_at_slack**2 - vertical_upper_tension_at_slack**2)\n",
"total_upper_tension_at_slack, horizontal_upper_tension_at_slack"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(2.347871376374779, 29.894026823521436)"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"v_slack = np.sqrt(horizontal_upper_tension_at_slack*0.75/4)\n",
"RPM_slack = (v_slack / (2 * np.pi * 0.75)) * 60\n",
"v_slack, RPM_slack"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"# 1D\n",
"\n",
"When spinning slower than this, the vertical tension on the upper string must remain the same but the\n",
"centripetal force will be lower (due to slower speed). This means the horizontal component of tension\n",
"on the upper cord will be *smaller* than at slack (i.e. smaller than 29.4). This means that the angle\n",
"the upper cord makes with the vertical rod will be smaller, because its tangent will be smaller. So, the radius of the circle the mass spins in will get smaller -- it will spin closer to the rod."
]
}
],
"metadata": {
"jupytext": {
"cell_metadata_filter": "all,-slideshow"
},
"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.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment