Mihail66> Так вот! Если ты пересчитаешь корпус диаметром 60мм, при условии, что укладка идет без зазоров, то у тебя должно получиться предельное давление около 260-270атм, и это будет как раз 0,95 от заявленной прочности угля.
Ваше значение 3426МПа имеет 0 вероятность в проведенном мной эксперименте, а следовательно ложно.
Сейчас всё строго с применением доверительного интервала 95% для всех вводных и расчётных величин с указанием их отклонений.
Исходные данные:
Диаметр внутренний измеренный: (62±0,2)мм;
Толщина стенки измеренная: (0,45…0,6)мм из неё 2/3 – кольцевой слой (0,32…0,4)мм;
Давление разрушения измеренное: (19,5±0,5)МПа;
Массовая доля смолы в композите измеренная: (0,5…0,55) или (0,525±0,025), что соответствует объёмной доли углеродного волокна (0,38±0,03).
Итого:
Напряжения в композите: (1,7±0,2)ГПа;
Напряжения в волокне: (4,54±0,59)ГПа;
Доверительный интервал 95%.
Расчётная выборка 100000 значений, распределение по Гауссу.
Счётная ошибка исключена, расчёт выполнялся численно на ЭВМ.
Код:
procedure TMainForm.Button5Click(Sender: TObject);
var I, K, N: Integer;
D : Double;//Внутренний диаметр
P : Double;//Давление разрушения
S : Double;//Толщина кольцевой стенки
Us : Double;//Массовая доля смолы
G : Double;//Напряжения в оболочке композита
Gy : Double;//Напряжения в волокне
Py : Double;//Плотность углеродного волокна
Ps : Double;//Плотность смолы
dD : Double;//отклонение Внутренний диаметр
dP : Double;//отклонение Давление разрушения
dS : Double;//отклонение Толщина кольцевой стенки
dUs : Double;//отклонение Массовая доля смолы
dG : Double;//отклонение Напряжения в оболочке композита
dGy : Double;//отклонение Напряжения в волокне
dPy : Double;//отклонение Плотность углеродного волокна
dPs : Double;//отклонение Плотность смолы
dIn : Double;//доверительный интервал
Uy : Double;//Массовая доля волокна
Vy : Double;//Объёмная доля волокна
Vs : Double;//Объёмная доля смолы
Rb : Double;//Радиус внутренний
Rn : Double;//Радиус наружный
U1, U2, DX, UX: Double;//Радиус наружный
M: array[1..100000] of Double;
MS: Double;
begin
D := 0.062; //Внутренний диаметр
dD := 0.0002; //отклонение Внутренний диаметр
S := 0.00036; //Толщина кольцевой стенки
dS := 0.00004; //отклонение Толщина кольцевой стенки
P := 19500000;//Давление разрушения
dP := 500000; //отклонение Давление разрушения
Us := 0.525; //Массовая доля смолы
dUs := 0.025; //отклонение Массовая доля смолы
Py := 1.8; //Плотность углеродного волокна
dPy := 0.02; //отклонение Плотность углеродного волокна
Ps := 1.2; //Плотность смолы
dPs := 0.05; //отклонение Плотность смолы
dIn := 0.95;//Задаёмся общепринятым доверительным интервалом 95%
N := 100000;
MS := 0.0;
For I := 1 to N do
begin
//Расчёт массовой доли угля
UX := RandG(Us, dUs * 0.5);//Берём значения массовой доли смолы из интервала 0,525±0,025
Uy := 1.0 - UX;
//Расчёт диаметра
DX := RandG(D, dD * 0.5) * 0.5; //Берём значения внутреннего диаметра из интервала (62±0,2)мм
//Расчёт квадрата внутреннего радиуса кольцевой намотки
Rb := SQR(DX + 0.0002);//Добавка толщины продольного слоя 0,2мм
//Расчёт квадрата внешнего радиуса кольцевой намотки
Rn := SQR(DX + 0.0002 + RandG(S, dS * 0.5));//Берём значения толщины кольцевой намотки из интервала (0,36±0,04)мм
//Расчёт объёмной доли смолы
//Берём значения плотности смолы из интервала (1,2±0,05)мм
U1 := UX / RandG(Ps, dPs * 0.5);
//Берём значения плотности смолы из интервала (1,8±0,02)мм
U2 := Uy / RandG(Py, dPy * 0.5);
Vy := U2 / (U1 + U2);
//Расчёт напряжений в кольцевой стенке композита
G := RandG(P, dP * 0.5) * Rb * (1 + Rn / Rb) / (Rn - Rb);//Берём значения давления из интервала (19,5±0,5)МПа
//Расчёт напряжений в углеродном волокне
Gy := G / Vy;
//Расчёт статистики
M[I] := Gy;
MS := MS + M[I];
end;
Gy := MS / N;//Среднее значение разрывных напряжений в волокне
dGy := 0.01; //Задаём минимальное начальное относительное отклонение от средней величины Gyp
While dGy < 0.99 do
begin
K := 0;//Обнуляем счётчик К
For I := 1 to N do
If abs(Gy - M[I]) / Gy < dGy then
Inc(K);
//Если достигнута требуемая доверительность, то прерываем подбор интервала отклонения
If K / N > dIn then
Break;
dGy := dGy + 0.01;
end;
ShowMessage('(' + MyFloatToStrExW(Gy * 0.000001, 3) + '±' +
MyFloatToStrExW(dGy * Gy * 0.000001, 3) + ')МПа' + #10#13 + 'Достоверная точность: ' +
MyFloatToStrExW(K/N * 100, 2) + '%');
end;
Наглядно распределение выглядит так: