Files
BrainWind/app/src/lib/nbr-tables/table-31.ts
T

97 lines
2.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 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;
}
}