feat: unified 0 and 90 degree PDF envelope and category descriptors
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
/**
|
||||
* Tabela 31 — Parâmetros γ e ξ para a determinação de efeitos
|
||||
* dinâmicos (NBR 6123:2023, sec. 9.3.1).
|
||||
*
|
||||
* Fonte: NBR 6123:2023, p. 62 (Tabela 31).
|
||||
* Última auditoria: 2026-07-08 — auditado e condizente com a norma.
|
||||
*/
|
||||
|
||||
export interface DynamicStructureParams {
|
||||
/** Expoente γ do modo fundamental */
|
||||
gamma: number;
|
||||
/** Taxa de amortecimento crítico ξ (em %) */
|
||||
xiPercent: number;
|
||||
/** Fórmula para frequência aproximada (Hz) */
|
||||
freqFormula: string;
|
||||
}
|
||||
|
||||
export const TABLE_31: readonly DynamicStructureParams[] = [
|
||||
{
|
||||
gamma: 1.2,
|
||||
xiPercent: 2.0,
|
||||
freqFormula: 'f₁ ≈ 0,05 + 0,015/h (h em m)',
|
||||
},
|
||||
{
|
||||
gamma: 1.0,
|
||||
xiPercent: 2.0,
|
||||
freqFormula: 'f₁ ≈ 0,05 + 0,015/h',
|
||||
},
|
||||
{
|
||||
gamma: 2.7,
|
||||
xiPercent: 1.5,
|
||||
freqFormula: 'f₁ ≈ 0,02·h (h em m)',
|
||||
},
|
||||
{
|
||||
gamma: 1.7,
|
||||
xiPercent: 1.0,
|
||||
freqFormula: 'f₁ ≈ 0,015·h',
|
||||
},
|
||||
{
|
||||
gamma: 1.2,
|
||||
xiPercent: 1.0,
|
||||
freqFormula: 'f₁ ≈ 0,20/h − 0,04',
|
||||
},
|
||||
{
|
||||
gamma: 1.7,
|
||||
xiPercent: 0.8,
|
||||
freqFormula: 'f₁ ≈ dependente da estrutura',
|
||||
},
|
||||
{
|
||||
gamma: 0,
|
||||
xiPercent: 3.0,
|
||||
freqFormula: 'f₁ ≈ dependente da estrutura',
|
||||
},
|
||||
] as const;
|
||||
|
||||
export type StructureDynamicType =
|
||||
| 'portal-concrete'
|
||||
| 'concrete-shearwall'
|
||||
| 'concrete-tower-variable'
|
||||
| 'concrete-tower-uniform'
|
||||
| 'steel-welded'
|
||||
| 'steel-tower-uniform'
|
||||
| 'wood';
|
||||
|
||||
export function getDynamicParams(type: StructureDynamicType): DynamicStructureParams {
|
||||
const idx: Record<StructureDynamicType, number> = {
|
||||
'portal-concrete': 0,
|
||||
'concrete-shearwall': 1,
|
||||
'concrete-tower-variable': 2,
|
||||
'concrete-tower-uniform': 3,
|
||||
'steel-welded': 4,
|
||||
'steel-tower-uniform': 5,
|
||||
wood: 6,
|
||||
};
|
||||
return TABLE_31[idx[type]];
|
||||
}
|
||||
|
||||
/**
|
||||
* Estimativa simplificada da frequência fundamental f₁ (Hz) para edifícios.
|
||||
* f₁ = γ · h / ... (Tabela 31 fornece fórmulas por tipo)
|
||||
*/
|
||||
export function estimateFundamentalFrequency(type: StructureDynamicType, height: number): number {
|
||||
switch (type) {
|
||||
case 'portal-concrete':
|
||||
case 'concrete-shearwall':
|
||||
return 0.05 + 0.015 / height;
|
||||
case 'concrete-tower-variable':
|
||||
return 0.02 * height;
|
||||
case 'concrete-tower-uniform':
|
||||
case 'steel-tower-uniform':
|
||||
return 0.015 * height;
|
||||
case 'steel-welded':
|
||||
return Math.max(0.5, 0.2 / height - 0.04);
|
||||
case 'wood':
|
||||
return 0.5;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user