Defining-rock-properties.typ 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. #import "/.template/lib/index.typ": corp-table, formula, vref, vrefs, eqref, numbered-list
  2. #let img-width = 14cm
  3. = Определение физико-механических свойств массива
  4. Для выполнения численного моделирования и оценки устойчивости бортов карьеров в программном комплексе Prorock необходимо принять физико-механические свойства породного массива.
  5. Назначение параметров выполнялось на основе:
  6. - данных блочной геомеханической модели,
  7. - эмпирических зависимостей Хука--Брауна @hoekHoekBrownFailureCriterionGSI2019,
  8. - особенностей реализации метода в Prorock (#vref(<features>, "р")).
  9. В качестве исходных данных для расчёта физико-механических свойств использованы параметры блочной модели участка Кварцитовый:
  10. - $"UCS"$ -- предел прочности при одноосном сжатии;
  11. - $m_i$ -- материальная константа интактной породы в критерии Хука--Брауна @hoekHoekBrownFailureCriterion2002;
  12. - $"GSI"$ -- геологический индекс прочности @hoekStrengthRockMasses1994;
  13. - $"Density"$ -- плотность;
  14. - $D$ -- коэффициент нарушенности массива.
  15. Для каждого литотипа определялись средневзвешенные значения UCS и GSI с учётом пространственного распределения параметров в пределах разрезов.
  16. Импорт физико-механических свойств из блочной модели не исключает необходимости предварительного задания параметров материалов по умолчанию в ПО Prorock: блочная модель не всегда обеспечивает полное покрытие расчётной области, и часть конечных элементов может оказаться вне области интерполяции, на слабо обеспеченных данными участках либо в зонах, где сопоставление параметров выполнено некорректно или не выполнено вовсе. В таких условиях свойства по умолчанию выполняют роль базовых параметров, необходимых для полного заполнения модели, корректной инициализации расчёта и предотвращения ошибок, связанных с наличием элементов без назначенных характеристик.
  17. == Коэффициент нарушенности массива
  18. Коэффициент нарушенности массива (Disturbance factor, $D$) задан distance-функцией в блочной модели с помощью ПО Leapfrog. Результат расчёта distance-функции показан на #vref(<d_zone_example>, "п").
  19. #figure(
  20. image("/assets/images/d_zone_example.png", width: img-width),
  21. caption:[Пример работы distance-функции в блочной модели]
  22. )<d_zone_example>
  23. == Учёт порового давления
  24. Для задания порового давления в численных моделях использованы результаты гидрогеологических расчётов в ПО Rocscience Slide2. По результатам осреднения значений по всем моделям принят коэффициент гидростатического воздействия $H_u = 0","755$.
  25. == Расчёт физико-механических свойств
  26. Резервные параметры массива (свойства материалов по умолчанию) и свойства литотипов рассчитаны по эмпирическим зависимостям Хука--Брауна @hoekHoekBrownFailureCriterionGSI2019, широко применяемым для описания прочности трещиноватых массивов. Величина $sigma_3$ принята по исходным паспортам RocData для скальных пород.
  27. По формулам, приведённым в #vref(<calculation>, "п"), из параметров блочной модели UCS, $"GSI"$ и $m_i$ через постоянные массива ($m_b$, $s$, $a$) получены:
  28. - модуль упругости ($E$),
  29. - сцепление ($C$),
  30. - угол внутреннего трения ($phi$),
  31. - предел прочности при растяжении ($"UTS"$).
  32. Плотность $rho$ принята по данным блочной модели.
  33. В рамках метода конечно-дискретных элементов существенную роль играет задание параметров контактов и трещинных элементов, определяющих поведение массива при разрушении.
  34. Свойства тектонических разломов приняты из блочной модели.
  35. Для трещинных элементов приняты параметры, полученные по результатам испытаний на сдвиг по естественной трещине и по распилу @geomechKvarcitovyi2026:
  36. - угол внутреннего трения по трещине ($phi$),
  37. - сцепление по трещине ($C$),
  38. - предел прочности при растяжении ($"UTS"$).
  39. Параметр штрафа $p$ и остальные расчётные параметры приняты по умолчанию согласно руководству @prorockDocumentation2x.
  40. Результаты расчёта физико-механических параметров сведены в #vref(<tab:fms_properties>, "в"), которая включает значения свойств всех материалов и параметры трещинных элементов, используемых в расчётах.
  41. // Данные таблицы: материалы по строкам CSV, параметры выводятся по столбцам
  42. #let fms-properties = csv("/assets/tables/properties.csv").slice(1)
  43. #let fms-format(v) = if v == "" { [--] } else if v == "1E^6" { $1 dot 10^6$ } else { v.replace(".", ",") }
  44. #block(breakable: false)[
  45. #figure(
  46. corp-table(
  47. columns: (1fr, 1.2fr, 1.2fr, 1.2fr, 1.2fr, 1.2fr),
  48. align: right + horizon,
  49. table-align: "center",
  50. text-size: 10pt,
  51. body-inset: (x: 5pt, y: 4pt),
  52. repeat_header: true,
  53. continuation: true,
  54. [Параметр], ..fms-properties.map(row => row.first()),
  55. [$rho$, кг/м³], ..fms-properties.map(row => fms-format(row.at(1))),
  56. [$E$, ГПа], ..fms-properties.map(row => fms-format(row.at(2))),
  57. [$nu$], ..fms-properties.map(row => fms-format(row.at(3))),
  58. [VD], ..fms-properties.map(row => fms-format(row.at(4))),
  59. [$C$, МПа], ..fms-properties.map(row => fms-format(row.at(5))),
  60. [$phi$, град.], ..fms-properties.map(row => fms-format(row.at(6))),
  61. [UTS, МПа], ..fms-properties.map(row => fms-format(row.at(7))),
  62. [$phi_r$, град.], ..fms-properties.map(row => fms-format(row.at(8))),
  63. table.cell(inset: (x: 5pt, y: 8pt), breakable: false)[#text(size: 12pt)[$frac(S_p, h)$]], ..fms-properties.map(row => fms-format(row.at(9))),
  64. table.cell(inset: (x: 5pt, y: 8pt), breakable: false)[#text(size: 12pt)[$frac(S_r, S_p)$]], ..fms-properties.map(row => fms-format(row.at(10))),
  65. table.cell(inset: (x: 5pt, y: 8pt), breakable: false)[#text(size: 12pt)[$frac(O_p, h)$]], ..fms-properties.map(row => fms-format(row.at(11))),
  66. table.cell(inset: (x: 5pt, y: 8pt), breakable: false)[#text(size: 12pt)[$frac(O_r, O_p)$]], ..fms-properties.map(row => fms-format(row.at(12))),
  67. [$p$, ГПа], ..fms-properties.map(row => fms-format(row.at(13))),
  68. ),
  69. caption: [Физико-механические свойства материалов расчётных моделей],
  70. ) <tab:fms_properties>
  71. ]
  72. Примечание: для зоны влияния тектонических разломов свойства импортированы из блочной модели и учитываются в расчёте.
  73. Расшифровка и описание параметров свойств приведены в документации Prorock 2.x @prorockDocumentation2x.
  74. == Параметры системной трещиноватости
  75. Трещиноватость породного массива обусловливает анизотропию физико-механических свойств, поэтому в моделях дополнительно задано направление систем трещин.
  76. Пересечение домена с разрезом принято по каркасам, построенным в ПО Leapfrog: на разрезе определялись попадающие в его плоскость домены, после чего сопоставлялись азимут разреза и азимут соответствующей системы трещин. Системы, азимут которых отличался от азимута разреза более чем на 40°, при задании анизотропии не учитывались.
  77. Кажущийся угол падения системы трещин в плоскости разреза определён проецированием @jointsProjectionOnSection:
  78. #formula[$"DIP"_"разрез" = -arctan(cos("AZ"_"разрез" - "AZ"_"системы") dot tan("DIP"_"системы"))$]
  79. где $"DIP"_"разрез"$ -- спроецированный угол падения системы трещин на разрезе, °, $"AZ"_"разрез"$ -- азимут профильной линии, °, $"AZ"_"системы"$ -- азимут падения системы трещин, °, $"DIP"_"системы"$ -- истинный угол падения системы трещин, °.
  80. Принятые значения азимутов, истинных и спроецированных углов падения систем трещин по профильным линиям приведены в #vref(<tab:anisotropy_angles>, "п").
  81. // Данные таблицы: по одной строке на домен системы трещин, попавший в плоскость разреза
  82. #let anisotropy-angles = csv("/assets/tables/anisotropy_angles.csv", delimiter: ";").slice(1)
  83. // Пустая ячейка в столбце профильной линии -- продолжение предыдущей строки,
  84. // в столбцах домена прочерк означает отсутствие данных.
  85. #let anisotropy-format(v, i) = if v == "" { if i == 0 { [] } else { [--] } } else if v == "-" { [--] } else { v.replace("-", "−") }
  86. // Ячейки тела таблицы: если у профильной линии несколько систем трещин,
  87. // столбец «№/Азимут» объединяется по высоте на все её строки-домены.
  88. // Строка другой линии со всеми «=» в столбцах домена относится к тем же
  89. // доменам, что и первая строка предыдущего блока: если она идёт сразу
  90. // за ней, её ячейки доменов накрываются объединением по высоте,
  91. // иначе (между ними строка-домен той же линии) значения повторяются
  92. // явно. Кажущийся угол падения зависит от азимута линии, поэтому
  93. // собственный у каждой строки и не объединяется. Объединённые
  94. // по высоте ячейки выравниваются по центру по вертикали.
  95. #block(breakable: false)[
  96. #let anisotropy-cells(rows) = {
  97. let cells = ()
  98. let i = 0
  99. while i < rows.len() {
  100. let span = 1
  101. while i + span < rows.len() and rows.at(i + span).at(0) == "" { span += 1 }
  102. let head = rows.at(i)
  103. // Блок следующей линии с «=» в столбцах домена делит их с первой строкой этого блока
  104. let share-next = (
  105. i + span < rows.len()
  106. and rows.at(i + span).at(0) != "" and rows.at(i + span).at(1) == "="
  107. )
  108. // Объединение по высоте возможно, только когда строка «=» идёт сразу за первой
  109. let merge-next = share-next and span == 1
  110. let line = anisotropy-format(head.at(0), 0)
  111. if span == 1 {
  112. cells.push(line)
  113. } else {
  114. cells.push(table.cell(rowspan: span, align: right + horizon, line))
  115. }
  116. // Столбцы домена -- с 1-го по 4-й: азимут падения, № домена, № системы, угол падения
  117. for j in range(span) {
  118. let row = rows.at(i + j)
  119. let rowspan = if j == 0 and merge-next { 2 } else { 1 }
  120. for k in range(1, 5) {
  121. if rowspan > 1 {
  122. cells.push(table.cell(rowspan: rowspan, align: right + horizon, anisotropy-format(row.at(k), k)))
  123. } else {
  124. cells.push(anisotropy-format(row.at(k), k))
  125. }
  126. }
  127. cells.push(anisotropy-format(row.at(5), 5))
  128. }
  129. i += span
  130. // Блок линии с общими доменами («=»): домены берутся из первой строки
  131. // предыдущего блока, выводятся столбец профильной линии и собственный
  132. // кажущийся угол каждой строки.
  133. if share-next {
  134. let eq-span = 1
  135. while i + eq-span < rows.len() and rows.at(i + eq-span).at(0) == "" { eq-span += 1 }
  136. let eq-line = anisotropy-format(rows.at(i).at(0), 0)
  137. if eq-span == 1 {
  138. cells.push(eq-line)
  139. } else {
  140. cells.push(table.cell(rowspan: eq-span, align: right + horizon, eq-line))
  141. }
  142. if not merge-next {
  143. for k in range(1, 5) { cells.push(anisotropy-format(head.at(k), k)) }
  144. }
  145. cells.push(anisotropy-format(rows.at(i).at(5), 5))
  146. for j in range(1, eq-span) {
  147. let row = rows.at(i + j)
  148. for k in range(1, 5) { cells.push(anisotropy-format(row.at(k), k)) }
  149. cells.push(anisotropy-format(row.at(5), 5))
  150. }
  151. i += eq-span
  152. }
  153. }
  154. cells
  155. }
  156. // Шапка таблицы: горизонтальные заголовки переносятся только по словам
  157. // (перенос по слогам отключён), ширины столбцов подобраны под самый
  158. // длинный заголовок «Спроецированный угол падения системы, °».
  159. #figure(
  160. corp-table(
  161. columns: (1.3fr, 1fr, 1.05fr, 1fr,1.05fr, 1.35fr),
  162. align: right + top,
  163. table-align: "center",
  164. text-size: 10pt,
  165. body-inset: (x: 5pt, y: 4pt),
  166. header-hyphenate: false,
  167. [№/Азимут профильной линии, °], [Азимут падения системы трещин, °], [№ структурного домена], [№ системы трещин], [Истинный угол падения системы, °], [Спроецированный угол падения системы, °],
  168. ..anisotropy-cells(anisotropy-angles),
  169. ),
  170. caption: [Азимуты и углы падения систем трещин, принятые для учёта системной трещиноватости],
  171. ) <tab:anisotropy_angles>
  172. ]
  173. Примечание: профильная линия №6 не пересекается с системами трещин с разницей азимутов падения менее 40$degree$, поэтому влияние направления трещин на устойчивость борта на данном разрезе не учитывается.