vault backup: 2025-02-28 16:17:23

This commit is contained in:
yz 2025-02-28 16:17:25 +08:00
parent ecc5b3ce29
commit b1d66a91e9
9 changed files with 234 additions and 68 deletions

View File

@ -1,8 +1,8 @@
{
"nodes":[
{"id":"b698e88ca5fb9c51","type":"text","text":"状态指标:\n推进OKR的时候也要关注这些事情它们是完成OKR的保障。\n\n\n","x":-96,"y":80,"width":456,"height":347},
{"id":"58be7961ae7275a7","type":"text","text":"# 计划\n这周要做的3~5件重要的事情这些事情能有效推进实现OKR。\n\nP1 必须做。P2 应该做\n\nP1 多体原理学习 YouTube课程\nP1 根据HEROWind数据结构更新多体模块结构体\nP1 公共模块整理与探讨\nP1 气动模块联合调试,跑通\nP1 多体动力学节点细化\n","x":-620,"y":-307,"width":450,"height":347},
{"id":"2b068bfe5df15a72","type":"text","text":"# 目标:多体动力学模块完善\n### 每周盘点一下它们\n\n\n关键结果建模原理、建模方法掌握 5/10\n\n关键结果对标Bladed模块完成 5/10\n\n关键结果风机多体动力学文献调研情况完成 5/10","x":-96,"y":-307,"width":456,"height":347},
{"id":"b698e88ca5fb9c51","type":"text","text":"状态指标:\n推进OKR的时候也要关注这些事情它们是完成OKR的保障。\n\n\n效率状态 green","x":-96,"y":80,"width":456,"height":347},
{"id":"58be7961ae7275a7","type":"text","text":"# 计划\n这周要做的3~5件重要的事情这些事情能有效推进实现OKR。\n\nP1 必须做。P2 应该做\n\nP1 多体原理学习 YouTube课程 ing\nP1 公共模块整理与探讨 已有初步方案\nP1 气动模块联合调试,跑通 no\nP1 梳理Steady Operational Load计算条件方法及输出结果确定技术路线\nP1 专利答通一稿\n","x":-620,"y":-307,"width":450,"height":347},
{"id":"2b068bfe5df15a72","type":"text","text":"# 目标:多体动力学模块完善\n### 每周盘点一下它们\n\n\n关键结果建模原理、建模方法掌握 6/10\n\n关键结果对标Bladed模块完成 6/10\n\n关键结果风机多体动力学文献调研情况完成 5/10","x":-96,"y":-307,"width":456,"height":347},
{"id":"01ee5c157d0deeae","type":"text","text":"# 推进计划\n未来四周计划推进的重要事情\n\n文献调研启动\n\n建模重新推导\n\n\n","x":-620,"y":80,"width":456,"height":347}
],
"edges":[]

Binary file not shown.

View File

@ -0,0 +1,82 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import sympy as sm\n",
"import sympy.physics.mechanics as me\n",
"me.init_vprinting()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"theta, beta, alpha, l = me.dynamicsymbols('theta, beta, alpha, l')\n",
"A, B, C, D = sm.symbols('A, B, C, D', cls=me.ReferenceFrame)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"B.orient_axis(A, theta, A.z)\n",
"C.orient_axis(B, beta, -B.x)\n",
"D.orient_axis(C, alpha, C.z)\n",
"B.dcm(A)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"r = l *D.x\n",
"r"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.12.4"
}
},
"nbformat": 4,
"nbformat_minor": 4
}

File diff suppressed because one or more lines are too long

View File

@ -4,3 +4,23 @@ r = l dx
A ^ p r/ p theta
partial derivative of r when observed from reference frame A with respect to theta
p r/ p theta is meaningless if no frame is given!
If theta, beta, alpah, l are all themselves functions of time
-> theta(t), beta(t), alpha(t), l(t), time t is the single variable
r(t) = a1(t)ax + a2(t)ay + a3(t)az
A^ d r / dt = da1 / dt * ax + ...
use dot notation
when the measure numbers are expressions containing implict functions of time, eg theta(t), the chain role can be used to calculate the derivative.
A ^ dr /dt = A ^ (p r / p theta) * (d theta / dt) + A ^ (p r / p beta) * (d beta / dt) + ...
if t is explict in expressions 最后要加上 A ^ (p r / p t)
Second (and higher) derivatives

View File

@ -0,0 +1,82 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import sympy as sm\n",
"import sympy.physics.mechanics as me\n",
"me.init_vprinting()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"theta, beta, alpha, l = me.dynamicsymbols('theta, beta, alpha, l')\n",
"A, B, C, D = sm.symbols('A, B, C, D', cls=me.ReferenceFrame)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"B.orient_axis(A, theta, A.z)\n",
"C.orient_axis(B, beta, -B.x)\n",
"D.orient_axis(C, alpha, C.z)\n",
"B.dcm(A)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"r = l *D.x\n",
"r"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.12.4"
}
},
"nbformat": 4,
"nbformat_minor": 4
}

View File

@ -0,0 +1,32 @@
import sympy as sm
import sympy.physics.mechanics as me
me.init_vprinting()
theta, beta, alpha, l = me.dynamicsymbols('theta, beta, alpha, l')
A, B, C, D = sm.symbols('A, B, C, D', cls=me.ReferenceFrame)
B.orient_axis(A, theta, A.z)
C.orient_axis(B, beta, -B.x)
D.orient_axis(C, alpha, C.z)
r = l *D.x
print(r)
print(r.express(C))
print(r.express(B))
print(r.express(A))
print(r.dot(C.x).diff(alpha))
print(r.dot(C.y).diff(alpha))
r_alpha_C = r.dot(C.x).diff(alpha) * C.x + r.dot(C.y).diff(alpha) * C.y
print(r_alpha_C)
print(r.diff(alpha, C).express(C))
t = me.dynamicsymbols._t
print(theta.diff(t))