diff --git a/c2.tex b/c2.tex index d33a73e..5dc1250 100644 --- a/c2.tex +++ b/c2.tex @@ -426,8 +426,9 @@ C_{ijkl}^{m} \left[ 1-\lambda({\bf r}) \right ] \right\} \section{Разработка модуля расширений платформы моделирования для расчета коэффициентов концентрации напряжений} -\subsection{Алгоритм рассчета коэффициентов концентрации напряжений в слое тканого композита -с искривленными волокнами} +\subsection{Объектная модель модуля расширений платформы для рассчета коэффициентов концентрации +напряжений в слое тканого композита с искривленными волокнами} +\label{c2:classDiagramm} Безразмерные коэффициенты $K_{\sigma_{ij}} = \sigma_{ij}({\bf r}) / \sigma_{ij}^{per}({\bf r})$ вычислялись как отношение компонент тензора @@ -455,27 +456,41 @@ C_{ijkl}^{m} \left[ 1-\lambda({\bf r}) \right ] \right\} Модуль расширения реализуется одним основным и тремя вспомогательными классами: \begin{itemize} - \item TKCalculator --- основной класс для вычисления коэффициентов концентрации напряжений в + \item \verb TKCalculator --- основной класс для вычисления коэффициентов +концентрации напряжений в каждой точке конечно-элементной сетки; - \item TPoint --- вспомогательный класс для описания точки в трехмерном пространстве; - \item TKValues --- вспомогательный класс для описания множества значений коэффициентов концентрации + \item \verb TPoint --- вспомогательный класс для описания точки в трехмерном +пространстве; + \item \verb TKValues --- вспомогательный класс для описания множества +значений коэффициентов концентрации напряжений в каждой точке конечно-элементной сетки; - \item TObjective --- вспомогательный класс для описания параметров задачи, при которых необходимо + \item \verb TObjective --- вспомогательный класс для описания параметров +задачи, при которых необходимо найти значения коэффициентов концентрации напряжений. \end{itemize} +В классе TKCalculator реализован метод для импорта данных из выходных файлов конечно-элементного процессора +Code-Aster, входящего в состав платформы SALOME-MECA (fillFromFile), метод для получения коэффициентов концентрации +напряжений в произвольной точки конечно-элементной сетки по указанным координатам (getKForPoint), а также метод для вывода +коэффициентов концентрации напряжений для каждой точки конечно-элементной сетки в файл (saveKToFile), для последующего +анализа или графического отображения. + Для исключения ошибок использования классов используется 4 перечисления: \begin{itemize} - \item EProblem --- вид задачи, может принимать значения: + \item \verb EProblem --- вид задачи, может принимать значения: \begin{description} - \item [СС\_Without\_Contact]: керамические волокна в поликристаллической матрице без учета контакта с трением; - \item [CC\_With\_Contact]: керамические волокна в поликристаллической матрице при наличии контакта с трением; - \item [CS\_Without\_Contact]: стальные волокна в поликристаллической матрице без учета контакта с трением; - \item [CS\_With\_Contact]: стальные волокна в поликристаллической матрице при наличии контакта с трением. + \item [СС\_Without\_Contact ]: керамические волокна в +поликристаллической матрице без учета контакта с трением; + \item [CC\_With\_Contact ]: керамические волокна в поликристаллической +матрице при наличии контакта с трением; + \item [CS\_Without\_Contact ]: стальные волокна в поликристаллической +матрице без учета контакта с трением; + \item [CS\_With\_Contact ]: стальные волокна в поликристаллической +матрице при наличии контакта с трением. \end{description} - \item ESchema --- схема нагружения, может принимать значения: + \item \verb ESchema --- схема нагружения, может принимать значения: \begin{description} \item [X1X3\_Tension]: двухсторонняя равнокомпонентная деформация растяжения в плоскости слоя; \item [X1\_Tension]: деформация растяжения в направлении волокон основы; @@ -485,7 +500,7 @@ C_{ijkl}^{m} \left[ 1-\lambda({\bf r}) \right ] \right\} \item [X1X3\_Unequal\_Compression]: двухсторонняя неравнокомпонентная деформация сжатия в плоскости слоя. \end{description} - \item EDefect --- дефект, может принимать значения: + \item \verb EDefect --- дефект, может принимать значения: \begin{description} \item [Regular]: идеальная периодическая структура; \item [Fiber\_Skip]: пропуск волокна основы; @@ -497,7 +512,7 @@ C_{ijkl}^{m} \left[ 1-\lambda({\bf r}) \right ] \right\} \item [Pore]: внутренняя технологическая пора. \end{description} - \item EPhase --- фаза, может принимать значения: + \item \verb EPhase --- фаза, может принимать значения: \begin{description} \item [Matrix]: фаза матрицы; \item [Fibers]: фаза волокон. @@ -508,8 +523,9 @@ C_{ijkl}^{m} \left[ 1-\lambda({\bf r}) \right ] \right\} \subsection{Схема базы данных для определения коэффициентов концентрации напряжений в слое тканого композита с искривленными волокнами} -Для увеличения скорости обработки большого объема данных использовалась встраиваемая -система управления базами данных SQLite. +Для систематизации данных, полученных в результате решения краевых задач, а также для увеличения +скорости обработки большого объема данных была разработана база данных, инфологическая схема +которой представлена на рис.~\ref{fig:c2:er}. \immediate\write18{dot -Tpng -o fig/er.png er.dot} \begin{figure}[ht!] @@ -519,6 +535,71 @@ C_{ijkl}^{m} \left[ 1-\lambda({\bf r}) \right ] \right\} \label{fig:c2:er} \end{figure} +В базе данных использовались две стержневые сущности (<> и +<<Точки>>), а также ассоциация между ними. Стержневая сущность <<Точки>> с +составным ключом {\bf X$_1$, X$_2$, X$_3$} предназначена для хранения координат +точек конечно-элементной сетки. Стержневая сущность <<Свойства>> с составным +ключом {\bf Задача, Схема нагружения, Дефект, Фаза} предназначена для хранения +информации о компонентах тензора напряжений и интесивности напряжений для каждой +точки конечно-элементной сетки. Значения атрибутов составного ключа сущности +<<Свойства>> соответсвуют значениям классов-перечислений +\verb EProblem , \verb ESchema , \verb EDefect и \verb EPhase , описаных в +разделе~\ref{c2:classDiagramm}. + +Даталогическая модель базы данных для вычисления коэффициентов концентрации +напряжений представлена на рис.~\ref{fig:c2:datalogical}. + +\begin{figure}[ht!] + \centering + \includegraphics[width=0.5\linewidth]{datalogical} + \caption{Даталогическая модель базы данных для вычисления коэффициентов +концентрации напряжений} + \label{fig:c2:datalogical} +\end{figure} + +Соответствия свойств во всех точках конечно-элементой сетки модели с идеальной +периодической структурой соответствующим точкам конечно-элементной сетки модели +с внутренним технологическим дефектом могут быть найдены с помощью реляционного +выражения~\ref{eq:c2:relP}: + +\begin{equation} + \begin{array}{rl} + P = & (\sigma_{defectId = 0}(Properties~P_1) \\ + & [P_1.pointId = P_2.pointId] \\ + & \sigma_{defectId \neq 0}(Properties~P_2)) \\ + & [P1.pointId = Points.pointId]Points. + \end{array} + \label{eq:c2:relP} +\end{equation} + +Проецируя отношение $P$ на соответствующие атрибуты, найдем значения +коэффициентов концентрации напряжений для каждой точки конечно-элементной сетки +(\ref{eq:c2:relK}): + +\begin{equation} + \begin{array}{rl} + K = & P[X1, X2, X3, \\ + & P_2.sigma\_11/P_1.sigma\_11, P_2.sigma\_22/P_1.sigma\_22, \\ + & P_2.sigma\_33/P_1.sigma\_33, P_2.sigma\_12/P_1.sigma\_12, \\ + & P_2.sigma\_13/P_1.sigma\_13, P_2.sigma\_23/P_1.sigma\_13, \\ + & P_2.sigma\_I/P_1.sigma\_I]. + \end{array} + \label{eq:c2:relK} +\end{equation} + +С помощью ограничения отношения $K$ по атрибутам \verb problemId , \\ +\verb schemaId , \verb defectId и \verb phaseId можно получить значения +коэффициентов концентрации в каждой точке конечно-элементной сетки для +необходимого вида задачи, схемы нагружения, типа дефекта или фазы материала. При +ограничении отношения $K$ по атрибутам \verb X1 , \verb X2 и \verb X3 получим +значения коэффициентов концентрации в необходимой точке конечно-элементной +сетки. + +В качестве системы управления базой данных для реализации физической модели +была выбрана встраиваемая СУБД SQLite 2.8.17. Выбор данной СУБД был обусловлен +простотой использования, отсутсвием необходимости установки и настройки сервера +СУБД, высокой скоростью выполнения запросов, а также доступностью для +большинства операционных систем. \section*{Выводы ко второй главе} \addcontentsline{toc}{section}{Выводы ко второй главе} @@ -534,7 +615,7 @@ C_{ijkl}^{m} \left[ 1-\lambda({\bf r}) \right ] \right\} модели. \item Приведены параметры конечно-элементной сетки, удовлетворяющие условиям условиям сходимости задачи. - \item Приведены блок-схема алгоритма и модель разработанной базы данных для -расчета коэффициентов концентрации в слое тканого композита, вызванных наличием -локальных технологических дефектов. + \item Приведены диаграмма классов и инфологическая модель разработанной базы +данных для расчета коэффициентов концентрации в слое тканого композита, +вызванных наличием локальных технологических дефектов. \end{enumerate} diff --git a/er.dot b/er.dot index 415c1c6..e9c1db5 100644 --- a/er.dot +++ b/er.dot @@ -7,15 +7,18 @@ graph ER { {node [label = <Схема нагружения>] scheme}; {node [label = <Дефект>] defect}; {node [label = <Фаза>] phaze}; - {node [label = "σ_11"] s11}; - {node [label = "σ_22"] s22}; - {node [label = "σ_33"] s33}; - {node [label = "σ_12"] s12}; - {node [label = "σ_13"] s13}; - {node [label = "σ_23"] s23}; - {node [label = "σ_I"] sI}; + {node [label = <σ11>] s11}; + {node [label = <σ22>] s22}; + {node [label = <σ33>] s33}; + {node [label = <σ12>] s12}; + {node [label = <σ13>] s13}; + {node [label = <σ23>] s23}; + {node [label = <σI>] sI}; - node [shape=ellipse]; "X_1"; "X_2"; "X_3"; + node [shape=ellipse]; + {node [label = <X1>] x1}; + {node [label = <X2>] x2}; + {node [label = <X3>] x3}; node [shape=diamond,style=filled,color=lightgrey]; "С-Т"; @@ -32,9 +35,9 @@ graph ER { props -- phaze; props -- "С-Т" [label="m", len=1.00]; "С-Т" -- points [label="n",len=1.00]; - points -- "X_1"; - points -- "X_2"; - points -- "X_3"; + points -- x1; + points -- x2; + points -- x3; fontsize=20; } \ No newline at end of file diff --git a/fig/datalogical.dia b/fig/datalogical.dia new file mode 100644 index 0000000..8502ec8 Binary files /dev/null and b/fig/datalogical.dia differ diff --git a/fig/datalogical.png b/fig/datalogical.png new file mode 100644 index 0000000..a063d73 Binary files /dev/null and b/fig/datalogical.png differ diff --git a/fig/er.png b/fig/er.png index bb9303d..61f5f7a 100644 Binary files a/fig/er.png and b/fig/er.png differ