Skip to content

Commit

Permalink
tools file
Browse files Browse the repository at this point in the history
  • Loading branch information
qdsang committed Jul 8, 2024
1 parent f09c7fa commit 0131bfc
Show file tree
Hide file tree
Showing 14 changed files with 633 additions and 0 deletions.
51 changes: 51 additions & 0 deletions excel/KNSB燃料 (1).txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
硝糖燃料当中综合使用性能最优秀的KNSB燃料。
由前能材吧吧主“阿弗列诺贝尔”(百度ID名)总结整理编写。
--------------------
介绍:
KNSB是一种以硝酸钾和山梨醇为主要成分的固体火箭燃料,一般用于DIY小型火箭。具有比冲较高、燃料塑性好不易断裂、熔铸流动性极好(与水泥浆相当)、自燃温度高、较低的吸湿性等优点。能产生的燃烧产物: 二氧化碳 /一氧化碳/ 水/ 氢气/ 氧气/ 氮气 /碳酸钾 /氢氧化钾,产物具体组成依山梨糖醇-硝酸钾的混合比例而定。
--------------------
标准配方(残渣残留少且燃速快):
硝酸钾KNO3:65%
山梨糖醇C6H14O6:35%

流动性更好的配方(相对标准配方,燃烧残渣残留稍多且燃速较慢,性能稍微下降):
硝酸钾KNO3:60%
山梨糖醇C6H14O6:40%
--------------------
性能数据:
理论比冲:164s
理论特征速度:938m/s
实际特征速度:914m/s
理论燃烧温度:1327摄氏度
实际燃烧温度:1247摄氏度
理论密度:1.841g/cm^3
熔铸密度:1.82g/cm^3
推力系数:1.468
自燃温度: >300℃

KNSB标准配方的燃烧常数和压力指数:
压力范围 a n
Mpa│ Mpa│ mm/s
0.101~0.807│ 10.708│ 0.625
0.807~1.503│ 8.763│ -0.314
1.503~3.792│ 7.852│ -0.013
3.792~7.033│ 3.907│ 0.535
7.033~10.67│ 9.653│ 0.064
--------------------
熔铸工艺:
第一步:
按比例称取硝酸钾置于烤箱里用150℃烤20分钟以上干燥。
第二步:
按比例称取颗粒状的山梨糖醇小火熬化(熔点94~96℃),熬煮过程中需要搅拌,熬到不再产生气泡(熔化过程中,山梨糖醇内部的结晶水会以大量水蒸气的形式缓慢溢出,形成大量的微小的气泡致使液态的山梨糖醇成不透明的乳白色),使山梨糖醇变成全透明水状液体,这样子的山梨糖醇不含结晶水。
第三步:
撤去山梨糖醇的加热源,趁热往熬好的液态山梨糖醇里加硝酸钾,搅拌均匀,此时的燃料颜色是发黄的。
第四步:
将熬好的燃料直接倾倒进模具/发动机内流平,如果单次燃料熬多了,没倒完的时候通常加热容器内的燃料的温度会下降,会变的更粘稠,流动性变差,这种情况不好倒进模具/发动机里头,重新热一下容器就能完全解决。
第五步:
燃料冷却到稍微硬化的时候后脱出芯模,使燃料柱形成空心的中孔(即是燃烧孔)。

备注:
1.通常情况建议使用标准配比,当使用长径比过大的细长的模具/发动机进行熔铸,请使用流动性更好的那个配比,太细的短发动机也是如此。
2.模具分外模和芯模,外模一般是不脱模直接作为发动机隔热层使用(直接往发动机内灌铸燃料的那种,发动机即为外模),芯模需要事先涂抹耐高温脱模剂,方便抽出不黏连。


Binary file added excel/SFS1.xlsx
Binary file not shown.
Binary file added excel/pfc-burn.xls
Binary file not shown.
Binary file added excel/rocket_1.xls
Binary file not shown.
Binary file added excel/rocket_2.xls
Binary file not shown.
Binary file added excel/rocket_3.xlsm
Binary file not shown.
61 changes: 61 additions & 0 deletions excel/储罐厚度计算程序v4_2.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html>
<head>
<title>储罐厚度计算器</title>
<style>
.input-label {
display: inline-block;
width: 150px;
}

.result-label {
font-weight: bold;
}
</style>
<script>
function calculateThickness() {
var kl_1 = parseFloat(document.getElementById("kl_1").value);
var qf_1 = parseFloat(document.getElementById("qf_1").value);
var d_1 = parseFloat(document.getElementById("d_1").value);
var p_1 = parseFloat(document.getElementById("p_1").value);

var kl_2 = kl_1 / 2.6;
var qf_2 = qf_1 / 1.5;
var a_1 = kl_1;

if (kl_2 > qf_2) {
a_1 = qf_2;
}

var b_1 = (p_1 * d_1) / (2 * a_1);
document.getElementById("result").innerHTML = "厚度: " + b_1 + "mm";
document.getElementById("disclaimer").innerHTML = "本程序由铼铱工业编写<br>使用有任何问题反馈邮箱lseqy2024@outlook.com";
}
</script>
</head>
<body>
<h1>储罐厚度计算器</h1>
<div>
<label class="input-label" for="kl_1">抗拉强度MPa:</label>
<input type="number" id="kl_1">
</div>
<div>
<label class="input-label" for="qf_1">屈服强度MPa:</label>
<input type="number" id="qf_1">
</div>
<div>
<label class="input-label" for="d_1">直径mm:</label>
<input type="number" id="d_1">
</div>
<div>
<label class="input-label" for="p_1">压力MPa:</label>
<input type="number" id="p_1">
</div>
<br>
<button onclick="calculateThickness()">计算</button>
<br><br>
<label id="result" class="result-label"></label>
<br><br>
<label id="disclaimer"></label>
</body>
</html>
67 changes: 67 additions & 0 deletions excel/储罐计算器v3_1.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<!DOCTYPE html>
<html>
<head>
<title>储罐计算器</title>
<script>
function calculate() {
var yhj = parseFloat(document.getElementById("yhj").value);
var yhjr = parseFloat(document.getElementById("yhjr").value);
var rl = parseFloat(document.getElementById("rl").value);
var rlr = parseFloat(document.getElementById("rlr").value);
var tim = parseFloat(document.getElementById("tim").value);
var hy = parseFloat(document.getElementById("hy").value);
var hr = parseFloat(document.getElementById("hr").value);

var yhjm = yhj * tim;
var rlm = rl * tim;
var yhjv = yhjm / yhjr;
var rlv = rlm / rlr;
var hy2 = hy * hy * Math.PI;
var hr2 = hr * hr * Math.PI;
var yhjv2 = yhjv / hy2;
var rlv2 = rlv / hr2;

document.getElementById("result_yhjv").innerHTML = yhjv2.toFixed(2) + " cm";
document.getElementById("result_rlv").innerHTML = rlv2.toFixed(2) + " cm";
document.getElementById("result_yhjm").innerHTML = yhjm.toFixed(2) + " g";
document.getElementById("result_rlm").innerHTML = rlm.toFixed(2) + " g";
}
</script>
</head>
<body>
<h1>储罐计算器</h1>
<form>
<label for="yhj">氧化剂质量流量(g/s):</label>
<input type="number" id="yhj" step="0.01"><br>

<label for="yhjr">氧化剂密度(g/cm³):</label>
<input type="number" id="yhjr" step="0.01"><br>

<label for="rl">燃料质量流量(g/s):</label>
<input type="number" id="rl" step="0.01"><br>

<label for="rlr">燃料密度(g/cm³):</label>
<input type="number" id="rlr" step="0.01"><br>

<label for="tim">工作时间(s):</label>
<input type="number" id="tim" step="0.01"><br>

<label for="hy">氧化剂罐半径(cm):</label>
<input type="number" id="hy" step="0.01"><br>

<label for="hr">燃料罐半径(cm):</label>
<input type="number" id="hr" step="0.01"><br>

<button type="button" onclick="calculate()">计算</button>
</form>

<h2>计算结果:</h2>
<p>氧化剂罐长度: <span id="result_yhjv"></span></p>
<p>燃料罐长度: <span id="result_rlv"></span></p>
<p>氧化剂质量: <span id="result_yhjm"></span></p>
<p>燃料质量: <span id="result_rlm"></span></p>
<p>本程序由铼铱工业编写</p>
<p>使用有任何问题反馈邮箱lseqy2024@outlook.com</p>

</body>
</html>
Binary file not shown.
121 changes: 121 additions & 0 deletions excel/压力计算锥形喷管v9_1.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>压力计算锥形喷管</title>
<style>
body {
font-family: Arial, sans-serif;
padding: 20px;
}
.container {
max-width: 600px;
margin: 0 auto;
background-color: #f9f9f9;
padding: 20px;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
form {
margin-bottom: 20px;
}
label {
font-weight: bold;
}
</style>
</head>
<body>
<div class="container">
<h2>压力计算锥形喷管</h2>

<form id="nozzleForm">
<div>
<label for="Cc">入口直径 (mm): </label>
<input type="number" id="Cc" step="any" required>
</div>
<div>
<label for="h">喉部直径 (mm): </label>
<input type="number" id="h" step="any" required>
</div>
<div>
<label for="pc">室压 (MPa): </label>
<input type="number" id="pc" step="any" required>
</div>
<div>
<label for="pe">出口压力 (MPa): </label>
<input type="number" id="pe" step="any" required>
</div>
<div>
<label for="r">比热比 (γ): </label>
<input type="number" id="r" step="any" required>
</div>
<div>
<label for="CTc">收敛角度: </label>
<input type="number" id="CTc" step="any" required>
</div>
<div>
<label for="CTe">扩张角度: </label>
<input type="number" id="CTe" step="any" required>
</div>
<button type="button" onclick="calculateNozzle()">计算</button>
</form>

<div id="results" style="display: none;">
<h3>计算结果:</h3>
<p id="LcpResult"></p>
<p id="LepResult"></p>
<p id="CeResult"></p>
</div>

<p>本程序由铼铱工业编写。</p>
<p>使用有任何问题反馈邮箱:<a href="mailto:lseqy2024@outlook.com">lseqy2024@outlook.com</a></p>
</div>

<script>
function calculateNozzle() {
var Cc = parseFloat(document.getElementById('Cc').value);
var h = parseFloat(document.getElementById('h').value);
var pc = parseFloat(document.getElementById('pc').value);
var pe = parseFloat(document.getElementById('pe').value);
var r = parseFloat(document.getElementById('r').value);
var CTc = parseFloat(document.getElementById('CTc').value);
var CTe = parseFloat(document.getElementById('CTe').value);

// Convert pressures from MPa to Pa
pc *= 1000000;
pe *= 1000000;

var z1 = Math.pow((pe / pc), (1 / r));
var z2 = (2 * r) / (r - 1);
var z3 = Math.pow((pe / pc), ((r - 1) * r));
var z4 = (1 - z3) * z2;
var z5 = Math.sqrt(z4) * z1;
var z6 = Math.sqrt(r);
var z7 = (r + 1) / (2 * (r - 1));
var z8 = Math.pow((2 / (1 + r)), z7) * z6;

var Ce = z8 / z5;
var Ae = Ce * Math.pow((h / 2), 2) * Math.PI;
var de1 = (4 * Ae) / Math.PI;
var de2 = Math.sqrt(de1);
var Lep1 = (de2 - h) / 2;
var Lcp1 = (Cc - h) / 2;
var Lep2 = Lep1 / Math.tan(Math.radians(CTe));
var Lcp2 = Lcp1 / Math.tan(Math.radians(CTc));

document.getElementById('LcpResult').textContent = "收敛段长度: " + Lcp2.toFixed(2) + " mm";
document.getElementById('LepResult').textContent = "扩张段长度: " + Lep2.toFixed(2) + " mm";
document.getElementById('CeResult').textContent = "扩张比: " + Ce.toFixed(4);

document.getElementById('results').style.display = 'block';
}

// Function to convert degrees to radians
Math.radians = function(degrees) {
return degrees * Math.PI / 180;
};
</script>
</body>
</html>

68 changes: 68 additions & 0 deletions excel/扩张比计算锥形喷管v8_1.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>扩张比计算锥形喷管</title>
</head>
<body>
<h2>扩张比计算锥形喷管</h2>

<form id="nozzleForm">
<label for="Cc">入口直径 (mm): </label>
<input type="number" id="Cc" step="any" required><br><br>

<label for="h">喉部直径 (mm): </label>
<input type="number" id="h" step="any" required><br><br>

<label for="Ce">扩张比: </label>
<input type="number" id="Ce" step="any" required><br><br>

<label for="CTc">收敛角度: </label>
<input type="number" id="CTc" step="any" required><br><br>

<label for="CTe">扩张角度: </label>
<input type="number" id="CTe" step="any" required><br><br>

<button type="button" onclick="calculateNozzle()">计算</button>
</form>

<div id="results" style="display: none;">
<h3>计算结果:</h3>
<p id="Lcp">收敛段长度: <span id="LcpResult"></span> mm</p>
<p id="Lep">扩张段长度: <span id="LepResult"></span> mm</p>
</div>

<p>本程序由铼铱工业编写。</p>
<p>使用有任何问题反馈邮箱:<a href="mailto:lseqy2024@outlook.com">lseqy2024@outlook.com</a></p>


<script>
function calculateNozzle() {
var Cc = parseFloat(document.getElementById('Cc').value);
var h = parseFloat(document.getElementById('h').value);
var Ce = parseFloat(document.getElementById('Ce').value);
var CTc = parseFloat(document.getElementById('CTc').value);
var CTe = parseFloat(document.getElementById('CTe').value);

var Ae = Ce * Math.pow((h/2), 2) * Math.PI;
var de1 = (4 * Ae) / Math.PI;
var de2 = Math.sqrt(de1);
var Lep1 = (de2 - h) / 2;
var Lcp1 = (Cc - h) / 2;
var Lep2 = Lep1 / Math.tan(Math.radians(CTe));
var Lcp2 = Lcp1 / Math.tan(Math.radians(CTc));

document.getElementById('LcpResult').textContent = Lcp2.toFixed(2); // Display Lcp2 with 2 decimal places
document.getElementById('LepResult').textContent = Lep2.toFixed(2); // Display Lep2 with 2 decimal places

document.getElementById('results').style.display = 'block'; // Show the results div
}

// Function to convert degrees to radians
Math.radians = function(degrees) {
return degrees * Math.PI / 180;
};
</script>
</body>
</html>
Loading

0 comments on commit 0131bfc

Please sign in to comment.