応答スペクトルのケースファイル
case fileは1つの応答スペクトル解析を定義するJSON documentです。ランダム応答では別形式のfileを使用し、その仕様は ランダム応答ページ。と同じ情報が含まれています。 *SPECTRUM, *RESPONSE SPECTRUM、および *MODAL DAMPING キーワードブロックなので、ケースファイルと Abaqus ステップを 1 つの定義から作成できます。
完全なケースファイルには 4 つのトップレベルキーがあり、それらはすべて必須です。
{
"spectra": {
"DESIGN": {
"type": "ACCELERATION",
"gravity": null,
"rows": [
[0.8, 0.5, 0.02], [22.0, 50.0, 0.02], [5.0, 5000.0, 0.02],
[0.6, 0.5, 0.05], [14.0, 50.0, 0.05], [4.0, 5000.0, 0.05]
]
}
},
"excitations": [
{"spectrum": "DESIGN", "direction": [1, 0, 0], "scale": 1.0, "duration": null},
{"spectrum": "DESIGN", "direction": [0, 1, 0], "scale": 0.7, "duration": null},
{"spectrum": "DESIGN", "direction": [0, 0, 1], "scale": 0.4, "duration": null}
],
"modal_summation": "CQC",
"directional_summation": "SRSS",
"damping": {"mode_ranges": [[1, 10, 0.05], [11, 20, 0.08]]}
}1 スペクトル
spectra 名前を 1 つのスペクトル定義にマップします。名前は励起がスペクトルを指す方法であるため、励起と同じ役割を果たします。 NAME のパラメータ *SPECTRUM.
| 分野 | 必須 | 説明 |
|---|---|---|
type |
いいえ | ACCELERATION (デフォルト)、 VELOCITY, DISPLACEMENT、または G |
gravity |
のためだけに G |
モデルの単位系における重力加速度 |
rows |
はい | 大きさ、時間当たりのサイクル数、および減衰比の表 |
各行は、次と同じ順序のトリプルです。 *SPECTRUM データ行: 最初に大きさ、次に周波数、次に臨界減衰の関連する割合。同じ減衰比の行が 1 つの曲線を形成します。減衰比をできるだけ多くの曲線を与えてください。それらは自動的に並べ替えられますが、減衰比が繰り返されるとエラーになります。
曲線内では、周波数は正で厳密に増加する必要があり、大きさも正である必要があります。どちらの制限も補間に続きます。つまり、振幅は周波数の対数スケールで線形に補間され、テーブルの端を超えて一定に保たれます。 2 つの減衰曲線間では、補間重みは減衰比において線形であり、大きさは対数的に補間されます。表にされた範囲外の減衰は、最も近い曲線にクランプされます。
A G スペクトルは次の値を乗算することで加速度スペクトルに変換されます。 gravity。 3 つの物理タイプはすべて交換可能です。どのタイプを指定しても、ユーティリティはそれを、指定された出力に必要なタイプに変換します。 \(S^\text{D} = S^\text{V} / \omega = S^\text{A} / \omega^2\)、Abaqus が同じ目的で使用する非減衰関係。
2 加振
excitations 1 ~ 3 つのエントリのリストで、それぞれが次の 1 つのデータ行に対応します。 *RESPONSE SPECTRUM.
| 分野 | 必須 | 説明 |
|---|---|---|
spectrum |
はい | のエントリの名前 spectra |
direction |
はい | 単位ベクトルとしての方向余弦。たとえば、 [1, 0, 0] |
scale |
いいえ | スペクトルの大きさを乗算する係数。デフォルトは 1.0 |
duration |
のためだけに DSC |
強震の持続時間(モデルの時間単位) |
方向は、Abaqus が 2 番目と 3 番目のスペクトルラインに要求するのとまったく同じように、単位ベクトルであり、相互に直交している必要があります。同じスペクトルは、複数の励起によって名前が付けられる場合があります。
3 合成則
modal_summation 個々のモードのピーク応答をどのように組み合わせるかを選択します。
| 値 | 規則 |
|---|---|
ABS |
各モードピークの絶対値を総和する最も保守的な推定 |
SRSS |
二乗和平方根 |
NRL |
Naval Research Laboratory: 最大モードピークと残りの二乗和の平方根 |
TENP |
10パーセント法。相互の 10% 以内のモードの交差項を追加します |
CQC |
Der Kiureghian 相互相関係数を使用した完全な 2 次結合 |
GRP |
Grouping法。周波数group内を合計した後、group間を二乗和平方根で合成します |
DSC |
ダブルサムの組み合わせには、 duration 興奮するたびに |
directional_summation 加振方向をどのように組み合わせるかを選択します。
| 値 | 規則 |
|---|---|
ALGEBRAIC |
モード振幅を符号付きで加算し、 前に モード合成 |
SRSS |
方向ごとのピークの二乗和の平方根 |
R40 |
ASCE 4-98 の 40 パーセントルール |
R30 |
ASCE 4-98 の 30 パーセントルール |
ALGEBRAIC スペクトルが任意方向に作用する同一の基礎運動の成分である場合に使用します。加振が統計的に独立している場合は他の方向合成則を使用します。処理順序が重要です。 ALGEBRAIC は最初に方向をマージしてからモードを結合しますが、他の 3 つは最初に各方向内のモードを結合します。
4 モード減衰
damping 方法に一致する 3 つのスペルを受け入れます *MODAL DAMPING 臨界減衰の割合を指定できます。
単一の数値により、各モードに 1 つの減衰比が適用されます。
{"damping": 0.05}mode_ranges 次のようにモード番号ごとに比を与えます。 [first, last, ratio] 1 をベースとし、これを含むトリプル。どの範囲にもカバーされていないモードは、Abaqus のようにダンピングがゼロになります。
{"damping": {"mode_ranges": [[1, 10, 0.05], [11, 20, 0.08]]}}frequency_table 周波数ごとの比率を次のように示します。 [frequency, ratio] ペア。値はエントリ間の周波数で線形に補間され、表の範囲外では一定に保たれます。
{"damping": {"frequency_table": [[30.0, 0.02], [3000.0, 0.08]]}}ダンピングは結果に 2 回入力されます。各モードがスペクトルをサンプリングする場所を選択します。 CQC および DSC ルールはこれを使用してモード間の相関関係を計算します。
5 Pythonからのケースファイル作成
ケースファイルは通常の JSON なので、どのツールでも作成できます。ユーティリティが内部で使用するのと同じオブジェクトからオブジェクトを構築するには、次を使用します。 dump_case:
from respspec import (
DirectionalSummation, Excitation, ModalDamping,
ModalSummation, ResponseSpectrumCase, Spectrum, SpectrumType,
)
from respspec.case_file import dump_case
spectrum = Spectrum.from_rows(
"DESIGN",
[(0.8, 0.5, 0.05), (22.0, 50.0, 0.05), (5.0, 5000.0, 0.05)],
SpectrumType.ACCELERATION,
)
case = ResponseSpectrumCase(
excitations=(
Excitation(spectrum, (1.0, 0.0, 0.0)),
Excitation(spectrum, (0.0, 1.0, 0.0), scale=0.7),
),
modal_summation=ModalSummation.CQC,
directional_summation=DirectionalSummation.SRSS,
damping=ModalDamping(uniform=0.05),
)
dump_case(case, "mycase.json")同じオブジェクトが Abaqus キーワードブロックとしてレンダリングされます。 respspec.abaqus_keywordsこれは、検証モデルが入力デッキと Python ケースを一致させる方法です。