автореферат диссертации по машиностроению и машиноведению, 05.02.01, диссертация на тему:Моделирование и исследование свойств новых многослойных функциональных покрытий лопаток ГТУ методами количественого рентгеноспектрального микроанализа

кандидата технических наук
Мошников, Алексей Вячеславович
город
Санкт-Петербург
год
1999
специальность ВАК РФ
05.02.01
цена
450 рублей
Диссертация по машиностроению и машиноведению на тему «Моделирование и исследование свойств новых многослойных функциональных покрытий лопаток ГТУ методами количественого рентгеноспектрального микроанализа»

Оглавление автор диссертации — кандидата технических наук Мошников, Алексей Вячеславович

едение.

Современное состояние и тенденции развития термоустойчивых защитных крытий. Требования к аналитическим методам их исследования, (обзор гературы).

Физико-химические основы и перспективы создания защитных покрытий с вышенной жаростойкостью и жароустойчивостью. Новые задачи их агностики. Многослойные многокомпонентные защитные слои в газотурбинных гановках для тепловых жтростанций. Современный количественный рентгеноспектральный кроанализ. 1 Физические основы рентгеноспектрал&ного микроанализа.

2 Методы количественной обработки результатов

РСМА.

2.1 Методы количественного РСМА на основе моделирования траекторий движения электронов в твердом теле ^АР, Монте-Карло).

2.2 Интерполяционные методы на основе эмпирической коррекции (метод оскоэффициентов, метод изогипс).

Выводы.

Разработка количественной имитационной модели рентгеноспектрального кроанализа для исследования многокомпонентных металлических швов.

Выбор модели Монте-Карло и разработка программного обеспечения.

Программа имитационного моделирования взаимодействия электронов с цеством при количественном РСМА.

1 Условия применения.

2 Состав и функции.

Принципы эмпирической корректировки моделей имитационного моделирования и разработка методики корректировки.

Тестирование и применение модели для количественного РСМА многокомпонентных металлических сплавов.

Выводы.

Специальные методики количественного рентгеноспектрального микроанализа.

ЪР\£ - модели для количественного РСМА многокомпонентных материалов особенности, ограничения и возможности).

Нелинейный интерполяционный метод.

Исследование многокомпонентных материалов системы 8п-1п-8е-Те, юлученных металлкерамическим методом.

Способ контроля содержания многокомпонентных фаз близкого состава.

1 Особенности диагностики структуры «ВТСП-пленка - подложка».

2 Методика анализа ВТСП образцов.

Выводы.

Анализ лопаток энергетических газотурбинных установок.:

Коррозионные повреждения лопаток.

Модель коррозионных процессов в защитных покрытиях с внешним керамическим слоем.

Рекомендации, вытекающие из построенной модели.

Выводы.

Особенности анализа защитных покрытий с внешним теплобарьерным слоем.

Особенности протекания диффузии в теплобарьерных покрытиях.

Обсуждение результатов модели вынужденной диффузии примеси в ограниченном теле с частично связывающими границами.

Разработка методик диагностики пористых покрытий.

Анализ межзерениой сегрегации в пористых покрытиях.

Выводы. юпочение. исок цитируемой литературы. иложение.

Введение 1999 год, диссертация по машиностроению и машиноведению, Мошников, Алексей Вячеславович

Актуальность темы

Прогресс в создании новых материалов, способных работать при более высоких температурах, предопределяет развитие атомной, авиационной и ракетной промышленности, металлургического, термического и химического оборудования, энергетического машиностроения и др. Приоритетными направлениями высокотемпературного материаловедения является: разработка интерметаллических сплавов с упорядоченной структурой; разработка специальных керамических материалов (в сочетании с поисковыми исследованиями возможностей самозалечивания дефектов керамики, возникающих при механических и тепловых нагрузках); разработка композиционных материалов на основе твердотельных матриц со случайным или упорядоченным распределением частиц другого материала; а также разработка функциональных защитных (антикоррозионных, антиэрозионных, теплобарьерных, противодиффузионных) покрытий.

В современном газотурбиностроении повышение ресурса надежности эксплуатации лопаточного аппарата в условиях повышенных температур и агрессивной среды осуществляется с помощью многослойных защитных покрытий. При этом возникают новые, ранее неизученные материаловедческие задачи, связанные с увеличением многокомпонентности используемых систем, их фазовой стабильностью, необходимостью учета диффузии между слоями и химического взаимодействия между ними. Структурные преобразования сопровождаются изменениями механических свойств, ухудшением адгезии, отслаиванием. Массоперенос в слоях и массообмен с рабочей атмосферой характеризуется процессами выделения преципитатов и образования вакансионных кластеров и пор, которые с возрастанием концентрации могут существенно влиять на коррозионную стойкость, эрозионную устойчивость и теплозащитные свойства покрытий.

Создание новых многослойных функциональных покрытий и эффективная диагностика ресурса надежности эксплуатируемых 2 материаловедческих систем нуждаются в разработке аналитических методик нового поколения, обеспечивающих получение информации о химическом составе в микрообъемах. Наиболее оптимальным методом является рентгеноспектральный микроанализ (РСМА), аналитический отклик которого представляет собой набор линий характеристических рентгеновских излучений (ХРИ) элементов исследуемого вещества в объеме с локальностями в продольном и поперечном направлениях 1.3 мкм. Однако модельные представления, положенные в основу современных методов количественного РСМА, имеют принципиальные ограничения при анализе состава вблизи границ раздела, а также в случае исследования многокомпонентных материалов. Цель и задачи работы

Целью работы является развитие модельных представлений количественного рештеноспектрального микроанализа (РСМА), разработка экспериментальных методик для локального анализа химического состава многокомпонентных систем, а также процессов протекающих в многослойных защитных покрытиях, включая покрытия с внешним теплобарьерным керамическим слоем.

Для достижения поставленной цели в работе решались следующие задачи:

- разработка количественной имитационной модели РСМА многокомпонентных металлических сплавов;

- развитие принципов эмпирической корректировки моделей на основе процедуры Монте-Карло и тестирование программных продуктов для количественного РСМА многокомпонентных сплавов;

- разработка новой специальной методики РСМА для исследования многокомпонентных твердых растворов с учетом их физико-химических особенностей;

- проведение методических исследований для обеспечения диагностики материалов обладающих высокотемпературной сверхпроводимостью 3

ВТСП), для устройств энергетического машиностроения нового поколения.

- РСМА лопаток энергетических газотурбинных установок;

- Изучение особенностей процессов диффузии и химического взаимодействия в многослойных защитных покрытиях с внешним керамическим слоем;

- исследование пористости и кинетики выделения преципитатов в модельных покрытиях;

- изучение закономерностей коррозионных процессов в защитных покрытиях с внешним керамическим слоем.

Научная новизна и практическая ценность работы состоит в том, что в ней развиты модельные представления количественного рентгеноспектрального микроанализа и созданы новые методики локального анализа состава многокомпонентных и многослойных структур, обеспечивающие решение практических задач современного материаловедения.

Сформулированы новые принципы эмпирической корректировки имитационных моделей по критерию согласования расчетных и экспериментальных значений продольных локальностей для характеристических рентгеновских излучений.

Разработано программное обеспечение имитационного моделирования рентгеноспектрального микроанализа многокомпонентных металлических сплавов.

Предложены методы нелинейной интерполяции для оценки состава многокомпонентных твердых растворов и метод контроля ВТСП - фаз. Методики реализованы при изучении особенностей ВТСП в системах М-Бп-Бе-Те и У-Ва-Си-О.

Проведены исследования поверхностных слоев лопаток газотурбинных установок работающих на низкосортном топливе. Изучены особенности коррозии в лопатках без покрытий и с защитными покрытиями, включая покрытия с внешним керамическим слоем. 4

Предложена модель, описывающая экспериментально установленный факт интенсивного разрастания прослойки А^Оз в интерфейсной зоне между жаростойким покрытием (Ме-Сг-А1-У) и теплобарьерным керамическим слоем на основе 2г02+8%У20з. Объяснены причины неоднородности накопления серы, перераспределения алюминия в реакционной области и наличие инкубационного периода с последующим перколяционным характером роста толщины оксида алюминия и локальным отслаиванием керамического слоя.

Рассмотрено влияние перепада температуры в керамическом слое и характер массопереноса. Проведены эксперименты на модельных пористых покрытиях (БпОг и Бьпор.) по анализу пористости и кинетике выделения преципитатов на межзеренных границах. Основные научные положения, выносимые на защиту

Положение 1. О количественном имитационном моделировании. Сформулированный принцип эмпирической корректировки имитационной модели траекторий движения электронов в твердом теле по значениям продольной локальности характеристического рентгеновского излучения аналитических линий и экспериментальный способ ее определения обеспечивают количественный рентгеноспектральный микроанализ многокомпонентных металлических сплавов, а созданное программное обеспечение на основе скорректированной модели, учитывающей акты упругого и неупругого рассеяния, с выделением из последних энергетических затрат на характеристическое рентгеновское излучение заданной аналитической линии, позволяет осуществлять моделирование многокомпонентных гетерогенных многослойных структур.

Положение 2. О количественном методе РСМА многокомпонентных твердых растворов. Статистический характер распределения изоэлектронных атомов в твердых растворах на основе бинарных соединений и свойство квазибинарности их кристаллизации позволяют решить задачу по оценке состава многокомпонентных материалов этого класса (четырех и 5 пятикомпонентных твердых растворов) в рамках нелинейной интерполяции путем расчета нелинейных поправок, возникающих в многокомпонентном материале, только с использованием известной нелинейности в тройных твердых растворах.

Положение 3. О методике количественного РСМА сверхпроводящей многокомпонентной керамики У-Ва-Си-О. Эффективный контроль содержания ВТСП-фаз состава микронеоднородностей и фаз с обычными свойствами, как в объемных, так и в тонкопленочных образцах системы У-Ва-Си-О рентгеноспектральным микроанализом осуществим по единой методике при отображении результатов измерений в двумерном пространстве с координатами конфигуративной точки, пропорциональными относительным интенсивностям характеристических рентгеновских излучений аналитических линий Ва и Си и определению состава по их отношению.

Положение 4. О новых методиках анализа теплобарьерных слоев. Анализ важнейших параметров теплозащитных слоев (сегрегации выделений на поверхности зерен и пористости включая определение размеров пор) возможен с развитием новых методик на основе методов ядерного магнитного резонанса, внутреннего трения и рентгеноспектрального микроанализа.

Положение 5. О модели описывающей особенности коррозии и отслаивания внешнего керамического слоя в многокомпонентных защитных покрытиях лопаток газотурбинных установок. Модель, учитывающая изменение окисляющей способности кислорода при вариации содержания активирующей примеси (например, 8). Вблизи растущей прослойки оксидной фазы, позволяет объяснить все основные особенности изменения состава и характера отслаивания внешнего керамического слоя 2г02+8%У203 в многослойных защитных покрытиях с промежуточными слоями Ме-Сг-А1-У, включая образование прослойки А120з на границе с керамическим слоем и разное ускорение скорости роста в локальных областях после некоторого 6 инкубационного периода, перераспределения компонентов в процессе эксплуатации, неоднородное выделение (декорирование) серы в условиях работы с низкосортным топливом и ускорения процессов коррозии при увеличении в нем содержания активирующей примеси (серы).

Первая глава содержит обзор литературы по перспективам и тенденциям развития функциональных покрытий и особенностям многослойных защитных покрытий используемых в газотурбиностроении. Также проводится анализ возросших требований к аналитическим методам для решения материаловедческих задач нового поколения и приводятся краткие обобщенные сведения о современных направлениях количественного рентгеноспектрального микроанализа - наиболее оптимального метода для решения материаловедческих задач.

Во второй главе развиты модельные представления имитационного моделирования траекторий движения электронов в твердом теле, сформулирован принцип эмпирической корректировки для количественного имитационного моделирования многокомпонентных материалов. Приводятся результаты тестирования и микроанализа металлических сплавов.

Третья глава посвящена разработкам новых методик количественного рентгеноспектрального микроанализа с учетом физико-химических свойств исследуемых многокомпонентных материалов.

В четвертой главе обобщены экспериментальные результаты по исследованию коррозионных процессов в защитных покрытиях лопаток газотурбинных установок, работающих на низкосортном топливе. Обсуждаются особенности физико-химических процессов, протекающих в многокомпонентных покрытиях с внешним керамическим слоем. Предлагается модель, объясняющая характер перераспределения элементов в процессе коррозии и особенности кинетики роста промежуточного слоя.

Пятая глава содержит результаты по поиску новых физических методов и разработкам методик для диагностики пористости керамических покрытий и кинетики выделения преципитатов на поверхности зерен. 7

1. СОВРЕМЕННОЕ СОСТОЯНИЕ И ТЕНДЕНЦИИ РАЗВИТИЯ ТЕРМОУСТОЙЧИВЫХ ЗАЩИТНЫХ ПОКРЫТИЙ. ТРЕБОВАНИЯ К

АНАЛИТИЧЕСКИМ МЕТОДАМ ИХ ИССЛЕДОВАНИЯ. (ОБЗОР

ЛИТЕРАТУРЫ)

В настоящей главе рассматриваются основные физико-химические принципы развития функциональных покрытий для лопаток газовых турбин. Показано, что перспективы повышения термоустойчивости покрытия связаны с разработкой новых композиционных материалов. Приводится сложившаяся в литературе классификация композиционных материалов и новые материаловедческие подходы, выходящие за ее рамки.

Особое внимание уделяется многослойным защитным покрытиям, уже используемым в энергетическом газотурбиностроении. Сформулированы наиболее актуальные задачи для методов анализа химического взаимодействия между теплозащитным керамическим слоем и жаростойким сплавом.

Задачи по совершенствованию современных защитных покрытий и эффективной разработке покрытий новых поколений требуют расширения аналитических возможностей существующих физических методов микроанализа. Отмечается, что наиболее оптимальным методом для решения многих дискуссионных вопросов является рентгеноспектральный микроанализ. В то же время прогресс в анализе микро- и субмикропористости в теплобарьерных слоях и исследованиях кинетики выделения новых фаз на границах зерен может быть достигнут только при разработке принципиально новых методик. 8

1.1 Физико-химические основы и перспективы создания защитных покрытий.

Требования к аналитическим методам (обзор литературы)

Современное материаловедение уделяет большое внимание созданию материалов, в которых конструкционные свойства одного материала сочетались бы с нужными физико-механическими или (и) физико-химическими свойствами другого. Принципиальным решением вопроса о сочетании свойств материалов в одной композиции является разработка функциональных покрытий. Область научных поисков при создании ограничена трехмерным пространством, осями которого являются «свойства покрытия», «состав материала» и «технология формирования покрытия». При этом «свойство покрытий» определяется эксплуатационными параметрами композиции «подложка - покрытие» [1].

В процессе формирования и эксплуатации покрытий протекают гетерофазные реакции: изменяется состав покрытий. При этом, как правило, часть компонентов (в чистом виде или в виде продуктов реакции) может переходить в газовую фазу, а также на границах раздела могут возникать переходные слои, обусловленные или диффузионной кинетикой взаимодействия между компонентами покрытия и материала или с участием компонентов из газовой среды. При охлаждении композиции от температуры формирования (а также при термоциклировании) в слоях покрытия и в основном материале возможны процессы выделения новообразованных фаз.

Сцепление исходного покрытия с материалом и сохранение адгезионных свойств в процессе эксплуатации является центральной проблемой физико-химии покрытий. Принципы подхода к решению проблемы адгезии были сформированы A.A. Анненом [2] и основаны на термодинамических расчетах изменения свободной энергии системы «покрытие - подложка» при учете химического взаимодействия между ними. Там же на примере систем «оксидные покрытия - металлическая подложка» 9 показано, что адгезия покрытия существенно зависит от физико-химического состояния поверхности контакта в очень тонком слое и от наличия или отсутствия прочно адсорбированного кислорода (например, для системы «оксидные покрытия - железо» от образования на границе раздела фаз БеО, БегОз, Те304).

Большое влияние на прочность сцепления оказывают и чисто физические факторы, основными из которых являются шероховатость поверхности контакта, наличие условий для аннерного сцепления, развитие упругих напряжений из-за разности коэффициентов линейного температурного расширения КЛТР покрытия и подложки.

В [3] предложена классификация покрытий, разделяющая их на стеклокерамические, стеклометаллические, керамоподобные, ситалловые, бескислородные и металлоподобные. Дальнейшее развитие этих идей [4] шло по пути использования многослойных композиций, в которых плавное изменение КЛТР обеспечивало сцепляемость материалов с сильно различающимися значениями КЛТР. В настоящее время наиболее важными, но еще слабо изучеными путями прогресса в области создания эффективных покрытий представляется увеличение многокомпонентности материалов (построение все более сложных диаграмм состояния), управление пористостью материалов и разнообразных сочетаний матричной и дисперсной фаз в исходно гетерофазных покрытиях.

Гетерогенные (диффузионные) покрытия и композиционные материалы основы (подложки) обладают значительно большим термическим потенциалом для повышения рабочей температуры энергетических установок. На рис. 1.1 приведены результаты прогноза возможности материалов энергомашиностроения по данным американских исследователей

10

Как видно из рис. 1.1, современный этап энергетического материаловедения, в котором развиваются жаропрочные материалы с использованием антикоррозийных

Т,'С 18« иоаюоа

809'

Т™ 1Н1Э г~ (8» г~~

I ¡- • И510

19?о

Рис. 1.1 Рабочие температуры различных материалов. 1- суперсплавы; 2- металлы, упрочненные направленной кристаллизацией; 3-металлы и сплавы с термозащитными покрытиями; 4- композиционные материалы на локальных основе керамических матриц. и теплозащитных покрытии, предшествует этапу комплексного применения композиционных материалов. В настоящее время композиционные покрытия и композиты для металла - основы являются интенсивным объектом исследования. Эффективность этих исследований сдерживается недостаточным развитием методов количественного анализа состава и структуры материалов.

С физико-химической точки зрения материалы матричной и дисперсной фаз классифицируются по следующим признакам [6]. Роль матричной фазы могут выполнять термоустойчивые стекла, стеклообразующие расплавы, металлидные эвтектики. Дисперсной фазой могут служить вещества с практически не ограниченной гаммой свойств: оксиды, силикаты, металлы, неметаллы, бескислородные тугоплавкие соединения (силициды, бориды, карбиды и др.). При этом различают матричные и дисперсные фазы как первичные (т.е. существующие в исходном состоянии, например, стекло с добавками), так и вторичные, в которых дисперсная фаза выделяется из исходного материала в процессе обработки.

11

По химическому составу покрытия подразделяют на: оксидные, керамоподобные, металлоподобные.

Дополнительная классификация проводится по особенностям технологии получения. Это наиболее существенно для покрытий, так как адгезионные свойства чрезвычайно чувствительны к дисперсности частиц формируемого покрытия, его прочности и химической активности компонентов. Например, в распространенном способе формирования покрытий по порошково-обжиговой технологии исходные материалы в оптимальном интервале температур находятся в твердожидком состоянии и образуют так называемые, пировзвеси. Наличие расплава обеспечивает смачивание, распределение слоя по подложке, контакт с дисперсной фазой и с подложкой. От выбора температуры формирования существенно зависят реологические свойства наносимого покрытия, размер и форма выделений дисперсной фазы. Даже без учета химического взаимодействия в микрореологическом подходе необходимо рассматривать капиллярные явления между частицами, смачивание и растекание расплава по их поверхности, образование «манжет» и т.п. [7]. Так как эти факторы во многом предопределяют сцепление покрытия с подложкой, большой интерес вызывают вопросы развития теоретических представлений для обеспечения ориентированных расчетов по вязкости суспензий. В настоящее время как правило, используются упрощенные модели (шарообразные и монодисперсные частицы, ньютоновский характер жидкости). Однако, имеется ряд работ по использованию цепочных моделей [8]. Обзор модельных представлений по развитию теории ньютоновских жидкостей приведен в [9], развитие которых было стимулировано, в основном, полимерными материалами. В [10] показана возможность предсказания условий перехода от приближений ньютоновского характера суспензии к неньютоновскому.

12

Для создания защитных покрытий от коррозии важным является то, что от реологического поведения суспензий в зависимости от концентрации твердой фазы и типа химического взаимодействия зависит плотность покрытия и распределение пор. [11]. На рис. 1.2 представлена аппроксимация геометрической формы слоя и элементов его структуры при формировании покрытия из стеклопорошка. Даже для этой упрощенной модели, предполагающей отсутствие Рис. 1.2 Аппроксимация геометрической формы порошкового слоя и элементов его структуры химического взаимодействия между частицами и ньютоновское поведение расплава, видно образование многообразных структурных элементов, обусловленных возникновением и развитием локальных перешейков между частицами, перколяционных (пороговых) накалов закрытых пор, сглаживание поверхности. При этом для теоретического моделирования выделяются элементы структуры: 1 - две полированные сливающиеся частицы; 2 - растекающаяся по поверхности частица; 3 - группировка частиц в объеме полислоя; 4 - возникновение каналов; 5 - образование пор; 6 - интерфейсная область (верхний монослой частиц и поверхность расплава); 7 - интерфейс у границы с подложкой.

При учете гетерофазности покрытия, дисперсности частиц твердой фазы, их концентрации и характера химического взаимодействия картина взаимодействия резко усложняется даже в рамках микрореологической

13 модели (рис. 1.2). При отсутствии взаимодействия между частицами контакт между ними начинается при 15 об.%.

Если взаимодействие при контакте отсутствует, но между частицами сохраняются тончайшие жидкие прослойки, ньютоновский характер течения сохраняется и при более высоких концентрациях вплоть до 50 об.%. При увеличении силы контактного взаимодействия между частицами и роста концентрации твердых частиц образуются сначала линейные и разветвленные цепи (5 - 25 об.%), затем двухмерные сетки (15- 35 об.%) и трехмерные каркасы (более 30 об.%). В этом случае необходимо для теоретического моделирования использовать модель рептаций де-Жена [9]. Чем сильнее взаимодействие частиц, тем при более низкой концентрации происходит структурирование суспензии. Суспензия становится неньютоновской, и течение переходит в пластичное (например, в бингамово), а далее в ползучее. Такое же влияние оказывает неизометричность частиц и их кластеров.

Изменением силы взаимодействия между частицами возможно управлять плотностью гетерофазных покрытий. Эту силу можно регулировать путем введения в исходную смесь инертного керамического наполнителя, что соответствует увеличению прослойки между частицами и ослаблению взаимодействия. Стимулирование выделения кристаллов из расплава -напротив приводит к образованию сильной связи, практически равной когезионной прочности фазового контакта кристаллов.

Для эффективного развития гетерофазных покрытий, обладающих требуемыми функциональными свойствами чрезвычайно актуальным является развитие физических методов определения структурных параметров слоя. Особо важным являются проблемы измерения сквозной прочности, оценки размеров каналов.

Отдельной проблемой является определение концентрации твердой дисперсной фазы.

14

Проблема необходимости разработки экспериментальных методик для оценки этих параметров становится еще более очевидней, если учесть, что в настоящее время температурно-временные зависимости скорости зарождения и роста кристаллов известны только для относительно небольшого количества простейших систем [12]. Если же учесть, что практические сплавы, как правило, нестехиометричны, то решающий вклад будет носить кристаллизация поверхности (влияние формы и размеров выделяющихся частиц), то есть образование кластеров необходимо оценивать с привлечением представлений фрактальной геометрии. При малых размерах частиц (менее 1 мкм) определение объемной концентрации твердой фазы затруднено также коллоидными явлениями (сольватации и т.п.).

Еще более сложной задачей является оценка сегрегации выделений второй фазы на границах зерен в процессе эксплуатации покрытий. А именно этот фактор приводит к изменению гетерогенности, фазового состава зерен, переходу компонентов в газовую фазу и, напротив, взаимодействие с компонентами газовой среды.

Для оценки состава выделений, а также прочности, как правило, используют методы просвечивающей электронной микроскопии. А объемную концентрацию оценивают методами стереометрической геометрии [13] по результатам анализа второй фазы на статически выделенных шлифах. Однако, эти приемы не применимы для экспериментальной оценки образования кластеров и каналов сквозных пор, так как геометрия таких структур принципиально связана с организованной необходимостью распределения дефектов. Кроме того, особенно, для оценки диффузионных путей при создании антикоррозионных защитных покрытий, разрешающей способности электронного зонда недостаточно. Необходимы методы с локальностью порядка атомных размеров и способностью регистрации сквозного канала, имеющего сложную конфигурацию в объеме покрытия.

15

Создание гетерофазных покрытий может протекать различными путями. По генезису фаз покрытия могут быть разделены на три группы:

1. Покрытия с нерастворимой дисперсной фазой (Например, стеклокерамические покрытия на основе высококремнеземных стекол с керамическими добавками 8Ю2, А12Оз, 2г0?, Сг20з, [14]. На практике такие покрытия уже используются для повышения коррозионной стойкости титана и его сплавов, а также для создание жаростойкого воздухонепроницаемого покрытия в пористую магнезиальную керамику. В системах «стекло - Мо8Ю2», «стекло - БЮ - 81» получены жаростойкие покрытия для защиты от окисления в воздушной атмосфере до 1500 °С графита, графитосодержащих огнеупоров, некоторых боридов и карбидов

15]).

2. Покрытия с матричной и дисперсной фазами вторичного происхождения. В этих покрытиях окончательная гетерогенная структура образуется в результате специальных обжигов и дополнительных термообработок. С практической точки зрения важно, что с помощью таких покрытий можно повысить устойчивость к резким теплосменам и механическим ударам. Существует возможность регулировать коэффициент термического расширения и получать большие его значения, не прибегая к увеличению содержания щелочных оксидов. На основе стекла состава (%) 78 8Ю2; 5.5 ZnO; 12 1л20; 2.5 К20; 2 Р2С>5 разработаны силикатные покрытия для металлов с высоким КЛТР (нержавеющие стали, никелевые сплавы, медь). Наиболее исследованы технологические режимы получения защитных покрытий для нержавеющих сталей. Изготовление ситалловых покрытий включает две стадии - первичный обжиг и дополнительную термообработку. Обжиг проводят при температуре 980 0 - 1050 °С. Температура обжига выбрана из условий гладкого растекания исходного расплава по защищаемому материалу. После охлаждения композитное

16 покрытие содержит на более, чем 20% выделившейся кристаллической фазы. Эта кристаллизация существенно влияет на ход последующего выделения кристаллов при дополнительной термообработке. Дополнительную термообработку проводят при температурах 600 - 800 °С. В результате доля кристаллической фазы повышается до 70 - 90%, а KJITP достигает значений (135 - 160) х 10~7 К"1. Это обеспечивает хорошее согласование с нержавеющей сталью. Важным достижением покрытий с матричной и дисперсной фазами вторичного происхождения является также увеличение начала температуры деформации под нагрузкой (Тщ). Выше описанные технологические режимы обеспечивают повышение Тнд от 600 °С до 850 - 900 °С.

Дальнейшее совершенствование ситалловых покрытий проводится путем сочетания в одном покрытии двух кристаллизующихся стекол (на литиево-силикатной и пироксеновой основах). При этом повышаются термомеханические, коррозионнозащитные и электроизоляционные свойства. Последнее чрезвычайно актуально для электротехники высоких температур [16].

Разработки высокотемпературных защитных покрытий для сплавов на никелевой основе находятся в стадии активных разработок. Для этой цели интенсивно исследуются диаграммы состояния более многокомпонентных систем. При этом возникают новые особенности в процессах кристаллизации - возможно выделение различных кристаллических фаз и взаимодействие между ними. Это усложняет требование к аналитическим параметрам физических методов. Но в общности физико-химических основ формирования этих покрытий можно выделить общие основные аналитические задачи: определение химического состава микро - и субмикровыделений и их концентрации.

17

Для этих целей наиболее перспективным является электронно-зондовые методы, и особенно рентгеноспектральный микроанализ (РСМА), для которого к настоящему времени достаточно хорошо проработаны теоретические вопросы количественного микроанализа однородных образцов (т.е. когда зона возбуждения характеристического рентгеновского излучения (ХРИ) атомов анализируемого образца и область выхода рентгеновского излучения являются частью гомогенной системы). Это справедливо для микровыделений размерами 3-5 мкм, состоящих из элементов со средними атомными номерами. При анализе более мелких выделений возникают проблемы учета возбуждения двух граничных фаз. Другими осложнениями является многокомпонентность материалов. Точность количественного микроанализа ухудшается при возрастании количества компонентов в исследуемом образце. Кроме того существенное искажение информации могут вносить эффекты гетерогенного фона, накопление заряда на высокоомных участках анализируемого образца и диффузионное размытее интерфейса [17]. Прогресс в решении этих задач актуален для повышения эффективности исследований по созданию жаростойких покрытий нового поколения. 3. Реакционные покрытия. В эту группу покрытий выделены системы, в которых матричная и дисперсная фазы образуются в результате физико-химического взаимодействия компонентов в процессе формирования. К ним в частности, относятся керамоподобные покрытия с реакционным образованием стекломатрицы и кристаллических фаз, а также металлоподобные покрытия с реакционным образованием металлидной эвтектики и дисперсной фазы.

Керамоподобные покрытия формируют из исходного тугоплавкого стекла и наполнителей (Мо812, 8Ю и др.). Покрытия могут работать при

18 высоких рабочих температурах, но требуют также высоких температур закрепления (1350 - 1600 °С) иногда в сочетании с защитной средой.

Механизмы образования реакционных керамоподобных покрытий достаточно сложны и практически не изучены. На практике для защиты борридов Ti, Та, Zr, Mo и др. используют жаростойкие покрытия, полученные в системе MoSi2-Si-Cr-B и Mo2B5-Si-Cr-B-Al. Эти покрытия осуществляют эффективную защиту от окисления при температурах до

1400 °С в течении 100 - 500 ч. [18].

Для защиты от окисления в воздушной атмосфере графитосодержащих огнеупоров, нитрида и карбида кремния до Т = 1400

С используют керамоподобные покрытия, полученные в системах B203-Si

А1 и B203-Si02-Si-Al. Предполагается, что фазообразование протекает по реакциям:

8Si + 5В203 >В60 + SiB4 + 7Si()2 16А1 + 9В203 ЗВбО + 8А1203 Для снижения температуры синтеза реакционных покрытий возможно управление температурным интервалов стеклования, например, за счет добавления бора и боросодержащих соединений, (при этом непосредственно в покрытии в процессе формирования происходит образование легкоплавкого стекла) или путем использования механической смеси из порошков тугоплавких и легкоплавких стекол.

Жаростойкие покрытия на основе тугоплавких стекол имеют ограничения по температуре эксплуатации. При температурах более 1650

1700 °С резко снижается вязкость стекол и покрытие стекает под воздействием центробежных сил или силы тяжести. Технические потребности в более высоких температурах работы (энергетика, космическая и авиационная техники и др.) стимулируют создание жаростойких и теплоизоляционных материалов нового поколения.

Наибольший прогресс достигнут в направлении реакционных покрытий.

19

Такие покрытия создаются с практически отсутствующей стеклофазой. [19]. При этом основными критериями выбора тугоплавких веществ являются высокие температуры плавления их оксидов, тепловое расширение и термическая стабильность в области высоких температур. В настоящее время наилучшие результаты достигнуты для защитных покрытий на углеродных материалах. Для этого используются системы Мо812 - Мо (81,А1) и 7гВ2 - 8[В4. В первом случае защитное действие в воздушной среде оказывает сочетание небольшого количества стеклофазы с муллитом, во втором с диоксидом циркония, которые образуются реакционным путем в приповерхностном слое покрытия.

Эта природа неоднородности реакционного покрытия по толщине является очень перспективной для решения задач всего энергетического материаловедения в целом. Возникает уникальная возможность разрешать казалось бы принципиальные противоречия. Реальные устройства работают в условиях градиента температуры, поэтому чем больше перепад температур на покрытии тем выше может быть температура окружающей среды при той же рабочей температуре материала-основы. Такие теплоизоляционные (теплобарьерные) слои можно создать на основе высокопористых материалов (этот принцип заложен при создании огнеупоров). Но повышение пористости влечет за собой разное снижение защитных свойств от коррозии.

В [20] достигнуты результаты по упрочнению и уплотнению поверхности теплоизоляционных материалов на основе оксида алюминия с объемной плотностью 90%.

Образцы с покрытиями на основе 2гВг [21] были испытаны в пламени кислородно-водородной горелки при температуре 2000 °С в течении 30 минут. Внешний вид покрытия не изменился. Поверхностный слой представлял собой беспористый спек из-за образования Zr02.

20

Во всех реакционных покрытиях наблюдается сильное химическое взаимодействие. Уже через 15 минут при Т = 1400 °С происходит образование выделений новых фаз. Состав и концентрация зависят от состава композиции, соотношение между которыми изменяется в процессе эксплуатации. В [21] были обнаружены кристаллические фазы А12Оз, 9А12Оз-2В2Оз, (для композиции стекло А120з и стекло - А1203 - 81В4), М&А1204, 9А12Оз-2В2Оз (для стекла MgAl204 со временем фаза М&А1204 исчезнет), А120з-ЗА120з-28102 (для стекла - ]У^А1204 - 81В4 со временем останется фаза - ЗА12Оз-28Ю2), для композиций с добавками ZЮ2 (например, стекло - 2г02 - 81В4) из первоначальных фаз 2Ю2, 2г8Ю4 и 2гВ2 останется только 2гВ2. Обнаружено, что 2г8Ю4 не вступает во взаимодействие с алюмоборосиликатной стекломатрицей (в течении по крйней мере 100 часов при Т = 1400 °С), а при введении 81В2 в состав покрытия уже чере 15 минут за счет его взаимодействия образуется

2гВ2. Подложка из А1203 (при 1400 °С) активно взаимодействует со стеклорасплавом с образованием муллита. Благодаря этому обеспечивается хорошее сцепление покрытия с подложкой.

Научно-исследовательские работы по физико-химическому изучению систем, перспективных для создания жаростойких покрытий для установок энергетического машиностроения, в том числе и для газотурбинных установок, близки по физико-химической сущности. Основная проблема -сцепление.

В газотурбинных установках на интерфейсе между керамическим теплозащитным слоем и жаростойким покрытием также образуется А1203. Поэтому разработки по диагностике технического состояния покрытий должны включать методики оценки кинетики процессов фазообразования и химизма взаимодействия фаз.

21

С точки зрения аналитических исследований особенности анализа заключаются в необходимости определения перераспределения элементов в микрообъемах между фазами при сохранении их общего среднего содержания в реакционной зоне. Для этих целей, как правило, привлекаются методы рентгеновской дифрактометрии, дающие информацию о параметрах кристаллической решетки в сформировавшихся средах. (При аморфном состоянии выделений методы дифрактометрии не обладают информативностью).

К реакционным покрытиям также относят, так называемые, металлоподобные покрытия. Сплавы являющиеся основой этих покрытий, приводят в контакт с материалом основы при выполнении условия эвтектического плавления путем выбора оптимальных значений температуры (между солидусом и ликвидусом). Например, для защиты стали 1Х18Н9Т применяют покрытие 1М (70№ - 20Сг - 581 - 5В) при Т = 800 - 950 °С. При этом химизм взаимодействия проявляется в образовании боридов никеля и хрома за счет взаимодействия в твердой фазе. Далее в процессе формирования покрытия металл подложки частично растворяется в расплаве покрытия (с исчезновением жидкофазной составляющей).

В целом химизм взаимодействия еще далеко не изучен, и продолжают оставаться дискуссионными вопросы о движущей силе процесса. В настоящее время в основном разрабатываются теоретические представления о диффузионном характере появления эвтектического расплава [22].

При излучении многослойных (или утолщенных) покрытий, как правило, необходимы методы с предельно высокой локальностью. Из существующих методов здесь могут быть рекомендованы методы оже-спектроскопии и, так называемой, электронной спектроскопии высокого разрешения. В ряде случаев могут оказаться полезными методы атомно-силовой микроскопии и туннельной спектроскопии [23].

22

К типу металлоподобных покрытий относятся и многослойные жаростойкие покрытия, защищающие материал-основы газотурбинных лопаток изготовленных из сплавов на никелевой основе. Этот тип покрытий пока находит наиболее широкое техническое распространение. Поэтому далее будет рассмотрен подробно.

В заключении этого краткого обзора состояния и развития защитных покрытий, их классификации и требованиям к аналитическим методам необходимо сделать некоторые критические замечания.

Сложившая классификация защитных покрытий не охватывает всех новых направлений, возникших в области создания функциональных покрытий. Это связано с тем, что классификация основана на представлениях равновесной термодинамики и предполагает замкнутость анализируемой системы.

Из наиболее значительных технологических достижений для приготовления жаростойких и теплозащитных покрытий следует отметить: ■ метод безгазового горения (самораспространяющийся высокотемпературный синтез).

Теоретические и практические аспекты безгазового горение к настоящему времени достаточно хорошо изучены для стационарных условий. Этим методом получены десятки различных тугоплавких соединений [24]. Сущностью метода является использование мощных экзотермических реакций. Для начала протекания процесса синтеза необходимы значительные энергетические затраты для преодоления активационного барьера. Первоначально разогрев локальную область (например, с помощью лазерного излучения) в начальной части слитка до температуры протекания синтеза, далее реакция распространяется на последующие части объема слитка и поддерживается за счет больших энергий экзотермического процесса.

23

Поэтому метод часто называют Самораспространяющимся высокотемпературным синтезом.

Этот метод положен в основу создания покрытий на базе бескислородных композиций и одного из главных направлений в области изыскания путей разработки защитных покрытий, имеющих жаростойкость в интервале температур предельно возможной эксплуатации тугоплавких сплавов (1600 - 1800 °С) [25]. Поисковые работы ведутся по исследованию составов, взаимодействие компонентов которых протекает с выделением большого количества тепла, достаточного для выделения режима «безгазового горения».

При создании покрытий методом «безгазового горения» процессы формирования имеют принципиально нестационарный характер и для их описания необходимо развитие теории, существенно отличающейся от представлений, основанных на законах равновесной термодинамики. Экспериментальные исследования проводились в основном в системах Мо -Cr - Si - В и Mo - Cr - Si - Nb. Из опытных данных вытекают требования к необходимому развитию аналитических методов. Процесс протекает быстротечно (в течении десятков секунд), с взаимообменом с газовой средой. Отсюда сильная зависимость от состава газовой среды и давления. На границе материала основы и покрытия формируется интерфейсная зона с промежуточным содержанием отдельных компонентов, существенно влияющих на жаростойкость, термоустойчивость и адгезионную прочность покрытия. Состав и структура покрытия изменяются по глубине сформированного слоя, а характер массопереноса наиболее близок к кинетическим моделям, используемым при описании химических транспортных реакций. В слоях выделяются микрофазы, причем на рентгеновских диаграммах регистрируются рефлексы от нескольких фаз, отсутствующих в банке данных ICPDS. Жаростойкость измерялась при 1400

24

С и наилучшие результаты были получены для образцов с покрытиями, созданными в атмосфере аргона (по сравнению с азотом и воздухом) при давлении 1-2x10"4 ат. И соответствовала - 78 ч. Для этих образцов составы микрофазы определенные РСМА и рентгеновской дифрактометрией соответствовали ЫЬ-^г, 1ЧЬВ2, и две неизвестные фазы. Наиболее информативным оказался метод РСМА, с помощью которого установлено, что по толщине покрытия образуется зона, обогащенная Сг. В образцах, полученных в воздушной среде (а также в азоте), это зона интерфейса. Для образцов с покрытиями, синтезированными в условиях остаточного давления аргона, интерфейс обеднен Сг, а зона с повышенным содержанием Сг смещена к поверхности. Из экспериментальных данных следует, что в методе СВС для покрытий газовая среда является не только активным агентом (в атмосфере азота образуются нитриды ниобия, кремния и бора), но и является одним из звеньев в цепи фазообразования, механизмы и этапы которого до сих пор не установлены.

Решение задач диагностики требует теоретической разработки и методик выделения информации по параллельно протекающим процессам -общего характера изменения составляющих компонентов покрытия по толщине и более локальных перераспределений компонентов при фазообразовании. При этом должно учитываться реальное распределение электронов в зонде, так как размеры фаз и границ между ними соизмеримы с размерами зонда. Эта процедура обработки сигнала должна включать в себя операцию обратной свертки. Основная сложность связана с тем, что задача обратной свертки применительно к условиям электронно-зондового микроанализа относится к классу так называемых некорректных задач [26].

Из других технологических методов создания защитных покрытий, выходящих из рамок сложившейся классификации, следует отметить метод создания органосиликатных покрытий и метод «золь-гель» технологии. Для

25 первого из отмеченных методов характерна потеря исходных компонентов (уход в газовую фазу) при полимеризации и структурировании. Таким образом, система является незамкнутой [27-29].

Для «золь-гель» технологии характерны наноразмеры частиц, соответственно, колоссальная энергия поверхности, изменяющая все обычные свойства материала и не позволяющая использовать стандартные термодинамические функции [30].

Для аналитических методов нельзя считать суммарные массы элементов (и тем более компонентов) неизменными из-за активного обмена с внешней газовой средой. Кроме того наличие органики (и кремнийорганики) связано с необходимостью анализа легких элементов (С, Н, О, И), микроанализ которых, как правило, затруднителен. Более того для интерпритации результатов исследований необходима информация о химических связях между элементами. Об этом можно судить по величине химсдвига (методы электронной, рентгеновской и фото-спектроскопии).

1.2 Многослойные многокомпонентные защитные слои в газотурбинных установках для тепловых электростанций

В современном энергетическом машиностроение для газотурбинных лопаток используют сплавы на основе никеля [31,32].

Для повышения жаропрочности и увеличения значений рабочих температур используют защитные функциональные покрытия.

Состав покрытий должен зависит не только от функционального назначения, но также и от состава сплава - основы. В табл.1 приведены данные о химическом составе сплавов на никелевой основе, используемые у нас стране [33]. Аналогичные сплавы используются за рубежом.

Особенность эксплуатации газотурбинных установок для тепловых электростанций (ТЭС) заключается в использовании достаточно

26 низкосортного топлива. Защитные покрытия должны защищать материал -основы в течение длительного времени эксплуатации при температурах 600 -850 °С, в контакте с окружающей атмосферой, состав золы которой [34]: 66.2% Na2So4, 20.4% Fe203, 1.8% V205, 8.3% NiO и 3.3% CaO.

Составы основных жаропрочных сплавов на основе М (концентрация примесей в массовых долях) Таблица 1.1

Сплав С Cr Ti AI W Mo Nb Co

15.0 1.2 1.2 8.5 3.5

ЭИ893 <0.07 17.0 1.6 1.6 10.0 4.5 — —

13.0 1.7 2.4 5.0 2.5

ЭИ826 <0.12 16.0 2.2 2.9 7.0 4.0 - —

17.0 2.0 3.0 2.5 5.0

ЭП539 <0.09 19.0 3.0 4.0 4.0 7.0 — —

9.0 2.2 3.9 5.0 5.0 - 14.0

ЭП220 <0.08 12.0 2.9 4.8 7.0 8.0 — 16.0

9.0 1.4 3.6 4.5 4.0 - 12.0

ЭИ929 <0.10 12.0 2.0 4.5 6.5 6.0 — 16.0

17.0 2.0 3.0 2.5 4.0 1.4 4.0

ЭП958 0.15 18.5 3.0 4.0 3.5 5.5 2.0 6.0

0.13 9.5 2.5 5.0 4.5 3.5 - 4.0

ЖС6К 0.17 12.5 3.2 6.0 5.5 4.5 — 5.5

23.5 0.3 - 13.0 - -

ЭИ1868 <0.1 26.5 0.7 0.5 16.0 -

В таблице 2 приведены обобщенные сведения об используемых защитных жаростойких покрытий на территории России. Необходимо отметить, что близкие по составу защитные покрытия используются и за рубежом.

В многослойных покрытиях эти сплавы используются как пластические промежуточные слои, обладающие гасящим свойством при трещинообразовании, а также выполняющие жаростойкие функции, и частично принимающие перепад температур.

Характерной особенностью этих слоев, является низкое содержание никеля. При использовании нескольких слоев содержание алюминия (обладающего устойчивым окислом) в наружных слоях возрастает. Основную теплобарьерную функцию выполняют керамические слои на основе диоксида циркония, стабилизированного окислами редких земель. В частности КДП1

27

2г02+8%У20з). В работах [35] проводились исследование термоциклической обработки различных сплавов с многослойными покрытиями, также приведено исследование трещинообразования [36], и изменения структуры в различных сочетаниях материала - основы защитных слоев [37]. Результаты обобщены в [38]. Дальнейшей разработке подлежат вопросы изучения интерфейсного взаимодействия между слоями, разработка методов локального химического анализа. Большой интерес представляет изучение природы антикоррозийных свойств керамических слоев.

Состав защитных покрытийТаблица 1.2

Состав Со, °/о №, % Сг, % А1, % У, %

СДП2 Остальное 18-22 11-13 0.3-0.6

СДПЗА Остальное 22-24 11-13 0.2-0.5

СДП8 Остальное 0-2 25-28 9-11 0.2-0.5

СДП11 Остальное 0-2 28-32 5-7 0.3-0.6

СДП11А Остальное 0-2 24-26 3.5-5 0.3-0.6

СДП6 Остальное 6-10 22-24 11-13 0.3-0.5

Многослойные защитные покрытия выполняют следующий ряд функций: механическое упрочение (износостойкость, гашение трещин), теплоизоляция, снижение скорости протекания процессов сульфидо-оксидной коррозии, предотвращение процессов диффузии компонентов из жаростойкого сплава основы.

В зависимости от хронологии разработки и в порядке улучшения защитных свойств покрытия можно условно разделить на четыре поколения [38]. К покрытиям первого поколения относятся диффузионные алюминидные, хромовые, хромоалюминидные, алюмосилицидные, хромоалюмосилицидные, и т.п. Покрытия второго поколения являются комбинированными и состоят из двух слоев: первый слой из благородного металла (платина, родий), второй - вышеперечисленные покрытия первого поколения. К третьему относятся многокомпонентные покрытия состава Ме -Сг - А1 - У, наносимые путем:

28 а) электронно-лучевого испарения в вакууме с последующей конденсацией; б) плазменным методом при низком давлении; и в последнее время также методами: в) ионно - плазменной технологии (катодное распыление, магнетронное напыление, осаждение из электрических разрядов (ВЧ, СВЧ, дугового и тлеющего), лазерное распыление мишени и нанесение покрытия с помощью плазменных ускорителей).

Покрытия четвертого поколения представляют собой многослойные покрытия, состоящие из одного или более металлических слоев и внешнего керамического слоя. В зарубежном газотурбиностроении для нанесения таких покрытий в основном используется вакуумно-плазменная технология и, реже, технология электронно-лучевого испарения и конденсации в вакууме.

Однокомпонентные диффузионные покрытия (алюминидные диффузионные покрытия) получают путем выдержки детали при 900-1000 °С в порошковой смеси алюминия, хлористого аммония и инертного вещества, тормозящего спекание смеси. В результате диффузии алюминия в сплав образуются алюминиды никеля. Запдитные свойства покрытия объясняются образованием на его поверхности пассивирующей пленки А^Оз. Срок службы определяется временем сохранения в покрытии достаточно высокой концентрации алюминия. В условиях сульфидно-оксидной коррозии в течение длительного времени эти покрытия нестойки. Увеличение концентрации алюминия в покрытии, требуемое для повышения его стойкости, снижает пластичность покрытия. Этот недостаток устраняют введением хрома, получая хромоалюминидное покрытие с повышенной концентрацией пластичной фазы N¡3А!, При этом граница раздела «основа -покрытие» обогащается хромом и алюминием, что приводит к замедлению диффузионного взаимодействия моноалюминида никеля с основой и

29 увеличивает долговечность покрытия. Алюминидные покрытия развиваются в сторону усложнения как химического состава, так и технологии нанесения. Жаростойкие диффузионные покрытия дополнительно могут содержать хром, кремний, иттрий, платину, тантал и другие «облагораживающие» элементы, придающие защитные свойства, пластичность и термическую стабильность структуре покрытий.

Микроструктура и толщина диффузионного алюминидного покрытия регулируется временем, температурой и количеством смеси галогенного активатора.

Алюминидные покрытия второго поколения (платиноалюминидные) получили свое развитие после того, как было обнаружено, что присутствие платины в алюминидных покрытиях существенно улучшает их коррозионную стойкость. Такие покрытия получают в два приема: гальваническим путем нанося барьерный слой платины или родия толщиной 7. 10 мкм, затем производится алитирование или хромирование.

Испытания покрытия показали, что коррозионная стойкость платино-алюминидных покрытий гораздо выше, чем алюминидных. Однако, успех применения таких покрытий для лопаток газовых турбин зависит от конкретных условий эксплуатации.

Зависимость защитных свойств диффузионных покрытий от химического состава металла защищаемых лопаток снижает эффективность покрытий в жестких условиях эксплуатации: в случае применения агрессивных топлив, попадания солей морской воды в горячий тракт турбины, увеличения температуры газа, при частых теплосменах и т. д. Интенсивная разработка новых систем и способов получения покрытий, обладающих высокой коррозионной стойкостью, термической стабильностью и долговечностью в экстремальных условиях, обусловила создание вакуумных методов нанесения жаростойких покрытий, в частности, методов

30 плазменного и электронно-лучевого испарения и конденсации металлических и неметаллических материалов. Защитные покрытия, получаемые осаждением в вакууме, широко используются в газотурбиностроении, где срок службы рабочих и направляющих лопаток турбины во многом определяется надежностью антикоррозийной защиты.

Жаростойкие сплавы, используемые для испарения и получения покрытий, объединены в одну группу Ме - Сг - А1 - У. В зависимости от назначения и условий работы защищаемых изделий, в качестве основы покрытий (Ме), используют железо, кобальт, никель й их сочетания.

При вариации содержание хрома и алюминия в испаряемых сплавах, имеются возможности получать различные сочетания пластичности, жаростойкости, сопротивления термической усталости и эрозионной стойкости конденсационных покрытий (с учетом характеристик защищаемого сплава) в условиях циклического окисления и сульфидно-оксидной коррозии.

Модифицирование жаростойких покрытий Ме - Сг - А1 - У путем введения в испаряемые сплавы небольших количеств (2.5%) гафния, платины, кремния, тантала, при использовании электронно-лучевой технологии, затруднено из-за низкой упругости паров этих элементов. Вакуумно-плазменное напыление тонкодисперсных легированных порошков позволяет получать более сложные по химическому составу защитные покрытия. Однако, трудности, связанные с высокой стоимостью тонких порошков, необходимость компьютерного обеспечения технологического процесса и расход достаточно больших количеств очищенного аргона (гелия), затрудняют широкое применение данной технологии.

Покрытия, получаемые плазменным напылением на воздухе, имеют ряд существенных недостатков, которые не позволяют их использовать для защиты лопаток турбин от высокотемпературной газовой коррозии: сопутствующая пористость, низкая адгезия покрытия с подложкой, наличие

31 оксидных включений в защитном слое и, особенно, на границе покрытия с основным металлом.

Многослойные покрытия с внешним керамическим слоем разделяются по функциональному назначению на теплозащитные и упрочняющие (антикоррозионные и антиэрозионные).

В основе применения керамических материалов в качестве защитных покрытий лежат их специфические свойства: высокая коррозионная стойкость и низкая теплопроводность.

Основными требованиями, предъявляемыми к керамическим материалам, используемым для защитных покрытий, являются максимально возможный термический коэффициент линейного расширения, низкая газопроницаемость, повышенная вязкость разрушения.

Главной задачей, которую позволяют решить теплозащитные покрытия, является ограничение теплового потока, идущего от продуктов сгорания топлива к металлу основы.

Процесс создания теплозащитных покрытий состоит из трех основных этапов: исследование физико-механических характеристик материала, разработка состава и конструкции покрытия, создание такой технологии нанесения покрытия, которая обеспечила бы его максимальную надежность в работе.

Теплозащитные покрытия представляют собой, как правило, двухслойные системы, из керамического слоя толщиной 40.500 мкм и жаростойкого внутреннего слоя, например, Ме - Сг - А1 - У, толщиной 30.200 мкм. В качестве керамического материала при нанесении ТЗП используют низкотеплопроводные оксиды на основе ЪхОг, А120з, СегО, УгОз, ВеО, НЮ2 и т. д., а также их комбинации. Совместимость керамического слоя с металлическим подслоем во многом обеспечивается благодаря согласованию их теплофизических свойств, в том числе максимальной

32 близостью значений ТКЛР керамики и металла. Этим достигается снижение уровня остаточных напряжений в ТЗП и, соответственно, повышение его долговечности.

Наиболее широкое распространение в качестве материала керамического слоя получил диоксид циркония.

С целью предотвращения окисления жаропрочного сплава перед осаждением керамического слоя на защищаемое изделие наносится покрытие (подслой) МеСгА1У, которое помимо высокой жаростойкости, должно обладать достаточной пластичностью для компенсации напряжений, возникающих между керамическим слоем и основным металлом. В процессе окисления на границе подслоя с керамическим покрытием образуется пленка, состоящая в основном из оксида алюминия. Близость ТКЛР оксида алюминия и диоксида циркония заметно повышает адгезионные характеристики и термостойкость керамического слоя по сравнению с тем случаем, когда на границе раздела формируется оксид никеля (это происходит в том случае, когда керамический слой наносится непосредственно на защищаемый жаропрочный сплав).

Главная трудность в практическом использовании ТЗП состоит в том, что пока не удается обеспечить в течение длительного времени при циклических изменениях температуры сплошность керамики и ее адгезию с материалом внутреннего слоя. Это обусловлено многими причинами, главными из которых являются термические напряжения, возникающие в покрытии при нанесении и эксплуатации, процессы окисления и коррозии металлического жаростойкого подслоя, которые усугубляются диффузионными процессами на границе контакта металл/керамика.

В настоящее время основными методами получения ТЗП на лопатках ГТД являются плазменное напыление и электронно-лучевое испарение и конденсация в вакууме. Для нанесения ТЗП могут также использоваться

33 процессы катодного распыления, детонационного напыления, погружения в расплав. Однако они не получили широкого распространения.

1.3 Современный количественный рентгеноспектральный микроанализ

Для решения задач по диагностике современных защитных покрытий газотурбинных установок (п. 1.2) и эффективной разработке покрытий новых поколений (п. 1.1) необходимо развитие аналитических возможностей локальных физических методов исследования состава. Наиболее актуальным представляется развитие количественного рентгеноспектрального микроанализа покрытий, с помощью которого принципиально возможно выполнение большинства требований. Ниже приводится краткий обзор современного состояния рентгеноспектрального микроанализа.

Заключение диссертация на тему "Моделирование и исследование свойств новых многослойных функциональных покрытий лопаток ГТУ методами количественого рентгеноспектрального микроанализа"

5.5 Выводы

1. Показано, что внедрение в практику многослойных защитных покрытий с внешним теплобарьерным слоем приводит к необходимости пересмотра как теоретических представлений, так и создание методик диагностики материалов на новых физических принципах. К первоочередным задачам должны быть отнесены:

• развитие представлений о массоперераспределении между слоями и диффузии компонентов с учетом приложения новой обобщенной силы (градиенте температуры на тепловом барьере)

• поиск физических методов и реализация возможностей контроля выделения преципитатов и адсорбционного захвата примесей на границах зерен.

2. Предложена модель, описывающая вынужденную диффузию в многослойных структурах. Постановка задачи осуществлена в рамках

161 теории необратимой термодинамики в приближении Онзагера. При введении дополнительного вспомогательного уравнения с использованием подстановки Смолуховского получено аналитическое решение задачи вынужденной диффузии в ограниченном теле с частично связывающими границами для одномерного случая.

3. Из анализа решения идеализированной задачи следует, что массообмен между слоями и сквозная диффузия при дополнительном воздействии обобщенной силы (перепад температуры, электрическое поле и т.д.) приводит к существенной трансформации концентрационных профилей. При частичном уходе компонентов из слоя возникает размытее профиля со смещением максимума по глубине. Степень смещения зависит от времени и значения обобщенной силы. Полученный результат позволяет углубить понимание причин возникновения немонотонных концентрационных профилей в многослойных структурах при условии массообмена между ними.

4. Полученное аналитическое решение может быть использовано для интерпретации результатов изменения фазового состава слоя при процессах обмена с соседними слоями (или рабочей атмосферы) в условиях перепада температуры. При этом область применимости ограничивается условием однородности протекающих процессов по всей поверхности покрытий. Отказ от приближения массопереноса только в одном направлении, учет каналов быстрой диффузии (например, по границам зерен) или химических реакций может приводить к еще большим усложнениям концентрационных профилей в реальных системах.

5. Для диагностики системы пор со сложной пространственной ориентацией предложена методика на основе метода ядерного магнитного резонанса (ЯМР) и рентгеноспектрального микроанализа

162

РСМА). Методики апробированы на модельном покрытии из пористого кремния. Особенность методики на основе измерений ЯМР основана на специальной процедуре насыщения пор водяными парами. Высокая проникающая способность молекул воды в открытые поры субмикронных размеров и наличие в молекуле воды атомов водорода, имеющих нескомпенсированный ядерный сплин, обеспечивают оценку суммарного объема пор по количеству сорбированной области, а различие энергий сорбции первых слоев от последующих позволяет оценить размеры пор. Методика РСМА основана на различии тормозной способности электронов на участках траектории с разным содержанием пор и реализуется на базе предложенной имитационной модели п.2.

5. Проведены эксперименты на модельных образцах из кремния с различной пористостью (от до %). Установлено, что обе методики дают удовлетворительное согласие с экспериментом и между собой. Методика на основе ЯМР обладает преимуществом при анализе объемных образцов с открытой пористостью и оценке размеров пор. Достоинством методики на основе РСМА является возможность исследования тонкопленочных покрытий.

7. На модельных покрытия из пористого диоксида олова, легированного теллуром экспериментально исследована возможность диагностики выделения легкоплавких фаз (Те) на поверхности зерен и в межзеренном пространстве, а также преципитатов в объеме зерна.

163

ЗАКЛЮЧЕНИЕ

1. Показано, что задачи по совершенствованию современных защитных покрытий и эффективной разработке покрытий новых поколений требуют расширения аналитических возможностей существующих физических методов микроанализа. Отмечается, что наиболее оптимальным методом для решения многих дискуссионных вопросов является рентгеноспектральный микроанализ. В то же время прогресс в анализе микро- и субмикропористости в теплобарьерных слоях и исследованиях кинетики выделения новых фаз на границах зерен может быть достигнут только при разработке принципиально новых методик.

2. Сформулирован принцип эмпирической корректировки имитационных моделей на основе метода Монте-Карло, обеспечивающий количественное моделирование для многослойных многокомпонентных структур. Создано программное обеспечение, проведено тестирование и на примере семикомпонентной стали показана применимость выполненых разработок для микроанализа металлических покрытий.

3. Предложен метод и реализованы методики для количественного рентгеноспектрального микроанализа с учетом квазибинарности и статистического распределения атомов в подрешетках многокомпонентных твердых растворов. Учет в алгоритме фундаментального свойства твердых растворов, заключающегося в строго заданном соотношении между количествами атомов в разных подрешетках, позволил расширить аналитические возможности по исследованию концентрационных зависимостей свойств многокомпонентных систем для случаев, когда традиционные методы несостоятельны из-за характерных погрешностей определения индивидуальных концентраций анализируемых элементов.

4. Предложенным методом проведены эксперименты, позволившие установить особенности в зависимостях параметров сверхпроводящих

164 переходов в системе 8п1.х1пх8еуТе1.у для х = 0.16 и значений у от 0.02 до 0.16.

5. Предложен метод микроанализа четырехкомпонентных систем, содержащих различные соединения, включая многокомпонентные с близкими формульными составами. Метод основан на информативности отображения конфигуративных точек, соответствующих составу соединений в пространстве концентрационного тетраэдра, на двумерную систему координат, образованную осями, на которых откладывается интенсивность характеристических рентгеновских излучений аналитических линий двух элементов.

6. На основе метода РСМА разработана методика анализа состава микровыделений и многокомпонентных фаз близкого формульного состава, включая фазу, обладающую эффектом высокотемпературной сверхпроводимости (ВТСП), в системе У-Ва-Си-О. При этом реализуется эффективный контроль состава объемных и тонкопленочных образцов ВТСП - фазы (УВагСизС^-х), представляющей интерес для создания энергетических устройств нового поколения.

7. Проанализированы особенности процессов массопереноса в теплобарьерных слоях: С использованием представлений необратимой термодинамики в приближении Онзагера получены аналитические выражения для решения одномерной задачи вынужденной диффузии в ограниченном теле с частично связывающими границами. Показано, что учет вынужденного характера (например, перепада температуры) приводит к серьезной трансформации концентрационных профилей. Профили теряют монотонный характер. Максимум концентрации может находиться внутри и вне слоя, а его координаты могут изменяются со временем. '

8. Предложена модель, описывающая экспериментально установленный факт интенсивного разрастания прослойки АЬОз в интерфейсной зоне между жаростойким покрытием (Ме-Сг-А1-У) и теплобарьерным керамическим

165 слоем на основе 2г02+8%У20з. Объяснены причины неоднородности накопления серы, перераспределения алюминия в реакционной области и наличие инкубационного периода с последующим перколяционным характером роста толщины оксида алюминия и локальным отслаиванием керамического слоя.

9. На модельных покрытиях из пористого кремния изучены возможности диагностики концентрации и размеров пор. Показано, что для диагностики этих параметров теплобарьерных слоев информативны методы ядерного магнитного резонанса (после предварительного насыщения водяными парами), а также рентгеноспектрального микроанализа с использованием разработанной имитационной модели на основе процедуры Монте-Карло.

10. Установлено, что для анализа кинетики выделения в теплобарьерных слоях легкоплавких фаз (с температурой плавления ниже 500 °С) на поверхности зерен, в порах, а также легкоплавких преципитатов могут быть эффективными методики на основе снятия температурных зависимостей внутреннего трения (ВТ). Методика на основе ВТ апробирована при анализе модельного пористого покрытия на базе 8п02, легированного теллуром. Обнаружено, что в процессе эксплуатации происходит выделение теллура на границах зерен с последующей сублимацией в газовую фазу. При этом наблюдается изменение в интенсивности характеристического пика, связанного с температурой плавления и концентрацией выделевшегося теллура, и смещение температуры пика в процессе сублимации.

166

Библиография Мошников, Алексей Вячеславович, диссертация по теме Материаловедение (по отраслям)

1. Жабрев В.А. Кинетические принципы формирования покрытий. Кинетика гетерофызных реакций при формировании и эксплуатации покрытий // В кн.: Температуроустойчивые функциональные покрытия, т.1 СПб.- отдел опер, полиграфии НИИХ СПбГУ.- 1997, с.5-16

2. Аппен A.A. Температуроустойчивые неорганические покрытия. Изд.2, перераб. и дополн. Л.:Химия, 1976, 296 с.

3. Аппен A.A. Физико-химические процессы в покрытиях, получаемых из расплавов и полурасплавов / В кн.: Проблемы химии силикатов. Л.: Наука ЛО, 1974.

4. Антонова Е.А., Сазонова М.В., Ситникова А.Я. Физико-химические принципы получения гетерофазных неорганических покрытий / В кн.: Температуроустойчивые функциональные покрытия, т. 1 СПб - Отдел опер полиграфии НИИХ СПбГУ. - 1997, с. 39-49

5. Фистуль В.И. Новые материалы (Состояние , проблемы и перспективы): Учебное пособие М.: МИСИС. - 1995 - 142 с.

6. Попель С.И. Поверхностные явления в расплавах. М.: Металлургия. 1994. -432 с.

7. Мошель В.В., Иванов В.А. Реологическое поведение концентрированных неньютоновских суспензий. М.: Наука. 1990. - 88 с.

8. Бибик Е.Е. Реология дисперсных систем Л.: Изд. ЛГУ. 1981 .-171с.

9. Берд Р.Б., Кертнес Ч.Ф. Удивительные полимерные жидкости // В кн.: Физика за рубежом. Пер. с англ. М.: Мир, 1986, с. 29-51.

10. Ю.Певзнер Б.З. Реология формирования порошково-обжиговых покрытий // В кн.: Температуроустойчивые функциональные покрытия, т.1 СПб - Отдел опер, полиграфии НИИХ СПбГУ - 1997, с. 54-66

11. П.Салтыков С.А. Стереометрическая металлургия. М.: Металлургия. -1976

12. Антонова Е.А., Петрова Е.П., Ефименко Л.П. / В кн.: Жаростойкие нерганические покрытия. Л., Наука, 1990, с. 44-47

13. Певзнер Б.З., Веремчук B.C., Лихицкая Л.И., Цыгулев О.В. // В кн.: Коррозионно-стойкие покрытия. СПб: Наука 1992. - с. 216-219167

14. Гиммельфарб Ф.А. Рентгеноспектральный микроанализ слоистых материалов. М: Металлургия, 1986: 286 с.

15. Microanalysis of solids./Eds. B.G.Yacobi, D.B.Holt and L.L.Kazmerski. N.Y.: Plenum press, 1997.

16. Сазонова М.В., Баньковская И Б., Горбатова Г.Н., Филипович В.Н. Жаростойкие покрытия для углеродных материалов // Неорганические материалы, 1995, Т.31, №8, с. 1072-1077

17. Баньковская И.Б;, Филипович В.Н. Стеклокерамические покрытия для алюмооксидных материалов // Журнал прикладной химии, 1997, т.70, №7, с. 1203-1205

18. Баньковская И.Б., Горбатова Г.Н., Сазонова М.В., Карпиченко Е.А. Гетерогенные покрытия для неметаллических материалов // В кн.: Температуроустойчивые функциональные покрытия, т.1. СПб: Отдел опер.полиграфии НИИХ СПбГУ 1997, с. 67-726

19. Петрова Л.П., Ефименко Л.П. Закономерности взаимодействия в системе Zr (порошковый слой) Fe (подложка) // В кн.: Термоустойчивые функциональные покрытия. СПб: Отдел опер, полиграфии НИИХ СПбГУ. -1997-4.2-с. 50-54

20. Birmig G., Quate C.F., Gerber Ch. The atomic force microscope // Phis/ Rev. Lett. 1996. - v.56. - p. 930-93823 .A practical guide to scanning probe microscope / Ed Christy Symanski: Park Scientific Ins.: CA USA. 1996

21. Мержанов А.Г. CBC процесс: теория и практика горения. Черноголовка: Изд-во ОИХФ АН СССР. 1980 31 с.168

22. Хашковский C.B., Островский В.В., Жуковская И.В. О возможности создания жаростойких покрытий с использованием нестационарной технологии // В кн.: Коррозионностойкие покрытия. СПб: Наука, 1992. с. 245-248

23. Тихонов А.Н., Арсенин В.Я. Методы решения некорректных задач. 2 изд.: М: Наука-1979

24. Харитонов Н.П., Кротиков В .А., Островский В.В. Органосиликатные композиции: Каталог справочник Д.: Наука, Лен.отд., 1980, 91 с.

25. Кротиков В.А. Труды Н.П. Харитонова в области органосиликатных ' покрытий и их развитие // В кн.: Температуроустойчивые функциональные покрытия, СПб.: Отдел опер, полиграфии НИИХ СПбГУ, т.1 - 1997. - с. 148155

26. ЗО.Чепик Л.Ф., Трошина Е.П., Мащенко Т.С. Золь-гель синтез тонких стекловидных неорганических пленок на полупроводниковых материалах. В кн. «Температуроустойчивые функциональные покрытия, СПб.: Отдел опер, полиграфии НИИХ СПбГУ, т.1 - 1997. - с.105-109

27. Мовчан Б.А., Малашенко И.С. Жаростойкие покрытия, осаждаемые в вакууме. Киев: Наукова думка, 1983. - 232 с.

28. Патон Б.Е., Строганов Г.Б., Кишкин С Т. и др. Жаропрочность литейных никелевых сплавов и защита их от окисления. Киев: Наукова думка, 1987. -256 с.

29. Паршин A.M., Богоявленский Е.К. Повышение качества, надежности и долговечности изделий из конструкционных жаропрочных ' и инструментальных сталей и сплавов. Л.: ЛДНТП, 1985. - 48 с.169

30. Rybnikov A.I., Osyka A.S., Malashenko I.S. Coated blade operation experience with a peak load power gas turbine // Surface and Coating Technology, 1994, v.68/69 p.38-44.

31. Rybnikov A.I., Getsov L.B., Malashenko I.S. // Thermal cycle responce of EB PVD yttria-stabilized zirconia / CoCrAlY coatings / Thin Solid Films, 1995, v.270. -p. 247-252

32. Tchizic A.A., Rybnikov A.I., Getsov L.B., Malashenko I.S. // Greep studies of EB PVD coatings and ceramic layer / Thin Solid Films, 1995, v.270. p. 243-246

33. Movchan B.A.,Rybnikov A.I., Malashenko I.S. // Two- and Three-layer coatings produced by deposition in vacuum for gas turbine blade protection / Surface and Coating Technology, 1994, v.67 p.55-63.

34. Рыбников А.И. Защитные покрытия для лопаток стационарных газовых турбин. Дисс. на соиск. уч. ст. д.т.н. СПб.: НПО ЦКТИ им. И.И.Ползунова, 1995-320 с.

35. Кальнер В.Д., Зильберман А.Г. Практика микрозондовых методов исследования металлов и сплавов. -М.:Металлургия, 1981. -214 с.

36. Рид С. Электронно-зондовый микроанализ /пер.с англ. -М.:Мир, 1979.-423 с

37. Ашихмина Т.Я. Рентгёнофазовый анализ соединений. Киров, 1994.

38. С.Г.Конников, А.Ф.Сидоров Электронно-зондовые методы исследования полупроводниковых материалов и приборов. -М.:Энергия, 1978. -135 с.

39. Тронева Н.В., Тронева М.А. Электронно-зондовый микроанализ неоднородных поверхностей. -М.:Металлургия, 1996. -205 с.

40. Электронно-зондовый микроанализ, /пер. с англ. под ред. Боровского. -М.: Мир, 1974. -260 с.

41. Количественный электронно-зондовый микроанализ, /под ред. В.Скотта, Г.Лава. -М.: Мир, 1986. -352 с.

42. Мошников В.А. Локальные энергетические воздействия в исследований и получении полупроводниковых твердых растворов. Дис. на соиск. уч. ст. д.физ.-мат.наук, СПб, -СПбГЭТУ, 1997.170

43. Мошников В.А., Яськов Д.А. Рентгеноспектральный микроанализ в физической химии полупроводников, /уч. пос. -Л.ЛЭТИ, 1986, 47 с.

44. Павлова Л.А., Парадина Л.Ф. Рентгеноспектральный микроанализ и его применение в минералогии. -Якутск: Якутский научн.центр СО АН, 1990.

45. Афанасьев В.П., Лубченко А.В., Рыжов А.А. Потери энергии киловольтными электронами при простреле слоев твердого тела //Поверхность. Рентгеновские, синхронные и нейтронные исследования. -1996 . -т.1. -с.20.

46. Михеев Н.М., Степович М.А. Распределение энергетических потерь при взаимодействии электронного зонда с веществом // Зав. лаб. -1996 -№ 4. -с.20.

47. Руколайне С.А. Диффузионное приближение уравнения переноса электронов в количественном рентгеноспектральном микроанализе многослойных гетероструктур./ Препр. АН СССР ФТИ им.А.Ф.Иоффе, Л., 1990,22 с.

48. Ю.Белозерова, Л.А.Павлова, А.Л.Финкелыптейн. Рентгеноспектральный микроанализ твердых осадков снегового покрова. /X Рос. Симп. по растр, электронной микроскопии и аналит. методам исслед. тв. тел (РЭМ-97) Тез.докладов -Черноголовка, июнь 1997. -с.50.

49. Лебедь В.И., Афонин В.П. Развитие методов имитации на ЭВМ поведения электронного пучка в веществе. //Сб. статей «Рентгеновская и электронная спектроскопия». -Черноголовка, -1985. -с.29.

50. Green М.А. A Monte-Carlo calculation of spatial distribution X-ray production in a solid target. //-Proc.Phys.Soc. -1963. -v.82. -N 526. -p.204.

51. Goudsmit G., Saunderson S.L. //Phys.Rev. -1940. -v.57. -p.36.171

52. Moliere G. Therie der streuung schneller gelladener teilchen. I einzelstreuung am abgeschirmten coulomb-feld. -Teit.Naturf. -1947. -2a. -p.133.

53. Maurice F., Henoc J. Application de la methode de Monte-Carlo a la simulation des trajectoriees deselectros de 10 a 30 keV dans les cibles epaises. -Report CEA-R-4615, A.32. C.E.N. -Saclay, B.P. -1975. -N 2.

54. Reimer L. Monte-Carlo-rechnungen sur electronendeffusion. -Optic, 1968, B.27. -№ 2. -p.86.

55. Riley М.Е., MacCallum С.J., Biggs F. Atomic Data and Nucl. Data Tables, -1975.-v.15.-N5.-p.443.

56. Shimizu R., Kataoka Y., Ikuta T. et.al. Monte-Carlo approach to the direct simulation of electron penetration in solids. //J.Phys.D:Appl.Phys. -1976. -9. -№ 1. -p.101.

57. Green A.J., Leckey R.C. Scattering of 2-20 keV electrons in aluminium.//J. Phys. D: Appl.Phys. -1976. -9. -N 14. -p.2123.

58. Krukov I.I., Moshnikov A.V., Rybnikov A.I., Rumyantseva A.I. EPMA of multicomponent multilayer coatings. Abs. of MRS'97 Spring meeting, Strasbourg (France), February 1, 1997.172

59. Маренков О.С., Комяк Н.И. Фотонные коэффициенты взаимодействия в рентгенорадиометрическом анализе. Справочник. Л.: Энергоатомиздат. Ленингр. Отд. 1988.

60. Справочник по специальным функциям с формулами, графиками и математическими таблицами. Под ред. М. Абрамовича и И. Стиган.: Пер. с англ. под ред. В.А. Диткина и Л.Н. Кармазиной. М.: Наука, 1973, с. 746.

61. Дьяконов В.П. Справочник по алгоритмам и программам на языке Бейсик для персональных ЭВМ. М.: Наука, 1987.

62. Рид С. Электронно-зондовый микроанализ. М.: Мир, 1979.

63. Кастен Р., Энок Ж. Распределение по глубине характеристического рентгеновского излучения // Физические основы рентгеноспектрального локального анализа.-М: Наука, 1973. с. 85-91.

64. Cosslet V.E., Thomas R.M. Multiply scattering of 5-30 keV electrons in evaporated metal films//J. Appl. Phys. 1964. - v.5, №8 - p. 883-908; 1965. - №>6 -p. 779-795.173

65. Энок Ж., Морис Ф. Практический количественный анализ массивных образцов // Микроанализ и растровая электронная микроскопия. М.: Металлургия, 1985. - с. 218-250

66. Штройбель П.Ш., Боровений И.Б. Экспериментальный способ получения ионизации ф(р,х) // Физика металлов и металловедение 1969. - №1 - с. 5766.

67. Kulenkampff Н., Spyra W. Energieverteilung ruckdiffundierten Electronen // Z. Physik. 1954. -Bdl37. - s. 416-425

68. Гоулдстейн. Растровая электронная микроскопия и ренгеновский микроанализ. В. двух кн. Пер. с англ. P.C. Гвоздовер и Л.Ф. Комоловой. М.: Мир, 1984,351 с.

69. Сорокин Н.Д. Локальные методы исследования минералов/ В кн. Современные физические методы в геохимии. -Л.: ЛГУ, 1990.

70. Мошников A.B., Румянцева А.И., Черняев A.B. Рентгеноспектральный микроанализ четверных полупроводниковых твердых растворов // Докл. I Гор. студ. конф. по физике полупроводников и полупроводниковой наноэлектронике. СПб, СПбГТУ, 28 ноября 1997, с. 50.

71. Мошников В.А., Мошников A.B., Немов С.А., Парфеньев Р.В., Румянцева А.И., Черняев A.B. Рентгеноспектральный микроанализ четверных полупроводниковых твердых растворов и его применение к системе (SnTe -SnSe):In. //ФТТ, 1999, т.41, вып.4, с. 52-57.

72. Крюков И.И., Мошников A.B., Румянцева А.И., Рыбников А.И. Исследование многослойных покрытий методом рентгеноспектрального микроанализа// Сб. научн. трудов «Известия ГЭТУ», 1998, вып. 517, с. 75-81.174

73. Крюков И.И., Мошников A.B., Рыбников А.И. Разработка методик количественного рентгеноспектрального микроанализа многокомпонентных материалов // Изв. РАН сер. физическ., 1998, т.62, №3, с. 559-564.

74. Абрикосов H.X., Шелимова JI.E. Полупроводниковые материалы на основе соединений А™ В™. -М.: Наука, 1975. -196 с.

75. Березин А.В.,Житинская М.К., Немов С.А. и др. Сверхпроводящие свойства твердых растворов SnjxGexTe, легированных индием. //ФТТ -1992. -т.34 -вып.4. -с. 1216.

76. Немов С.А., Равич Ю.И. Примесь таллия в халькогенидах свинца: методы исследования и особенности. //УФН. -1998 -т.168. -8. -с.817.

77. Кайданов В.И., Равич Ю.И. Глубокие и резонансные состояния в полупроводниках типа А4В6. / /УФН. -1985. -т.45. -№ 1. -с.51.

78. Кайданов В.И., Немов С.А.,.Равич Ю.И. Резонансное рассеяние носителей тока в полупроводниках типа А^В^/АЭТЛ. -1992. -26. -вып.2. -с.201

79. Никитин В.И. Коррозия и защита лопаток газовых турбин.//Л.: Машиностроение. 1987,272 с.

80. Малашенко И.С., Мяльница Г.К., Жирицкий О.Г. Повышение долговечности лопаток транспортных ГТК путем применения защитных покрытий. //Пробл. спец. Электрометаллургии. 1981. - вып. 15. С.52-59.

81. Goward G.W. Low-temperature hot-corrosion in gas turbines: a review of causes and coatings therefore. // Turbomach. Int. 1985. № 5-6, p.24-26.175

82. Burgel R. Beschichtungen gegen Hochtemperaturkorrosion in thermischen Maschinen. // VDI BERICHTE. 1986. №624. - s. 185-240.

83. Кубашевски О., Гопкинс Б. Окисление металлов и сплавов. М.: Мир, 1965-330 с.

84. Ю2.Волькенштейн Ф.Ф. Электронные процессы на поверхности полупроводников при хемосорбции. М.: Наука, 1987. 432 с. 103.Morrison S.R. Selectivity in semiconductor gas sensors. // Sensors and actuators, 1987, v.5, p. 425-440.

85. Ю4.Мясников П.А., Сухарев В.Я., Куприянов Л.Ю., Завьялов С.А. Поликристаллические сенсоры в физико-химических исследованиях. М.: Наука. 1991 327 с.

86. Surface science and catalysis by Non-Metals / Eds. I.P.Bannela et al. N.Y.: D. Reidel Publ. Co., 1983

87. Weiser O., Landa S. Sulfide Catalysis. Their Properties and Aplications. Prague.: Academia, 1972.

88. Мошников A.B., Мошников В.А., Носков П.А., Томаев В.В. Особенности рентгеноспектрального анализа вблизи раздела фаз. // Тез. III Межд. конф. «Устойчивое развитие горных территорий». Владикавказ, 1998, с. 276.

89. Kperep Ф. Химия несовершенных кристаллов. / Пер. с англ. В.П.Зломакова, М.:Мир, 1969.

90. Болтакс Б.И. Диффузия в полупроводниках. М-Л.: Физматгиз, 1961, 364 с.

91. Атомная диффузия в полупроводниках. / Под ред. Д.Шоу. Пер с англ. М.:мир, 1975.

92. Крапухин В.В., Соколов И.А., Кузнецов Г.Д. Технология материалов электронной техники. 2-ое изд. М.:МИСиС, 1995

93. Krukov I.I., Moshnikov Al.V., Moshnikov Art.V., Rybnikov A.I. Diffusion in ceramic coatings of gas turbines blades // In abstracts MRS'98 Spring meeting, San-Francisco 1998, Z19084

94. Крюков И.И., Мамыкин А.А., Мошников А.В., Рыбников А.И. Исследование тонкой структуры пор в пористом покрытии // Труды 5 Межд. конф. «Пленки и покрытия'98», 23-25 сент. 1998, СПбГТУ, СПб.: Полиплазма, 1998, с. 411-413.

95. Dimitrov D.Tz., Krukov I.I., Moshnikov A.V., Moshnikov V.A., Rybnikov A.I., Yaroslavtsev N.P. Control of technological parámeters using the intemal friction method // Electrónica'98, Botevgrad, 1998, p. 64-69

96. Поликристаллические полупроводники. / Под ред. Г. Харбеке. Пер. с англ., (М.: Мир, 1989).177

97. Grost HJ., Spaepen F., Journ. Physique, 43, Сб-73 (1982).

98. Vitek V., Sutton A.P., Smith D.A., Pond R.C., Grain Boundary .Structure abd Kinetics, A.S.M., Metal Park (1980).

99. Balutti R.W., Bristowe P.D., Sun C.P., Journ. Amer.Soc., 64,29 (1981).

100. Pontikis V., Journ. Physique, 43, C6-65 (1982)

101. Briant C.L., Mesmer R.D., Journ. Physique, 43, C6-255 (1982)

102. Morrison R.S. Sensor and Actuators №12, p.425 (1987).

103. Horer L. Polprgzewodnikowe materialy ceramiczhe z aktywnymi granicami zranicami ziaru. Warszawa: PWN 1990.

104. Фельдман Д., Майер Д. Основы анализа поверхности и тонких пленок. Пер. с англ.,(М.Мир, 1989.)

105. Bakin A.S., Bestaev M.V., Dimitrov D.Ts., et al // Thin Solid Films, 296, 168 (1997)

106. Митрохин В.И., Ярославцев Н.П., Рембеза С.И., Песоцкий Г.С., Измайлов Н.В. A.C. 105/42 СССР G01N11/16 (1985).

107. Измайлов Н.В., Ильин Ю.Л., Мошников В.А., Томаев В.В., Ярославцев Н.П., Яськов Д.А. Журнал физической химии, 12, № 5, 1370-1373. (1988).

108. Даринский Б.М., Ярославцев Н.П. Высокочистые вещества, № 3, 80-83. (1990).

109. Assenov R., Moshnikov V.A., Yaskov D.A. Cryst.Res.Technol., 21, 1553-1558(1986).i TVMonteCarlo; •sioh 2.0t 11. S->6384,8192,655360}

110. Crt, Dos, Graph, Objects, Drivers, Meaory, Views, Menus, Dialogs, StdDlg, Validate, fipp, TVS;1. MaxNunEls = 9; 1. MaxNutaLrs = 5; cutout = 101; hcflbout = $B003cnApproxiaate = 102; hcApproxiaate = $B004

111. Numeral : firray tl.MaxNu«Lrs. of String = ('1st1, *2sd'

112. Ec s Array 'K'.'L'. of Real; Ex : Array PK'.-'L', ,aI.'S'] of Real; Constructor Load(var S •• TStrea»); Procedure Store (var S : TStrea»); Virtual; end;

113. PConponent = ATCo*ponent; TCoaponent = Object(TObject) Idx : Byte; Els : PElement; C, J, N : Real;

114. Constructor Init(ftldx : Constructor Load(var S Procedure Store(var S s end;

115. Player = "TLayer; TLayer = Object(TObject) Caps

116. Byte; AN : Real); ! TStreaa); TStrean); Virtual}1. PCollection;1. TArray3dReal;1. Real;

117. Op, Ep, Jp, Thickness, Density Constructor Init;

118. Constructor Load(var S : TStrean); Procedure Store(var S s TStreaa); Virtual; Destructor Done; Virtual; end;

119. PHintLine = ATHintLine; THintLine = Object(TStatusLine)

120. Function Hint(ToHelpCtxs Word): String; Virtual; end;

121. TMonteCarlo = Object(TApplication) Constructor Init;

122. Procedure HandleEvent(var Event: TEvent); Virtual; Procedure InitDesktop; Virtual; Procedure InitMenuBar; Virtual; Procedure InitStatusLine; Virtual; Procedure HriteShelllteg; Virtual; Function SetPalette : PPalette; Virtual; end;

123. Const RElsData : TStreanRec = ( ObjType : 1001;

124. VntLink s Ofs(TypeOf(TElsData)A); Load : §TElsData.Load; Store : eTElsData.Store); RElenent : TStreaaRec = ( ObjType : 1002;

125. VntLink : Ofs (TypeOf (TEleisent)A); Load : @TEleuent.Load; Store : 8TEleaent.Store); RConponent : TStreaaRec = ( ObjType : 1003;

126. VntLink : Ofs(TypeOf(TConponent)A); Load : STConponent.Load; Store s §TCoaponent.Store); RLayer ; TStreaaRec = ( ObjType : 1004;

127. VntLink : Ofs(TypeOf(TLayer)A); Load : iTLayer.Load; Store : §TLayer.Store);

128. Var MonteCarlo ! TMonteCarlo;

129. Elenents, Layers : PCollection; cdOutpToPrn, cdBraphHode, cdFluCalc, cdSaoothOn : Boolean;cdDataReady, cdDataSaved : Boolean;

130. NunEls, NuuLrs, Top : Byte;

131. Alfa, D, Eo, Ne, Sx, Sz, Teta : Real;

132. DataFileNane, SanpleNane : String;

133. ScatteredE, Scatteredr : TArraylOOReal;

134. Constructor TElsData.Load; begin { TElsData.Load > S.Read(Nane, SizeOf(Nane)); S. Read (A, SizeOf(A));

135. S.Read(Ze, SizeOf(Ze)>; S.Read(Ec, SizeOf<Ec)); S.Read(Ex, SizeOf(Ex)); end; { TElsData.Load >

136. Procedure TElsData.Store; begin { TElsData.Store > S.Write(Nase, SizeOf(Name))} S.Write(ft, SizeOf(ft)); S.WritetZe, SizeOf(Ze)); S. Write (Ec, SizeOf(Ec)); S.Write(Ex, SizeOf(Ex)); end; { TElsData.Store >

137. Constructor TEleaent.Init; begin { TEleaent.Init > TObjeet.Init; Name := fiElsDataA.Narae; Ze := ftElsData".Ze; ft != flElsDataA.fl; Ec := flElsDataA.Ec; Ex := fiElsDataA.Ex; end; { TElenent.Init >

138. Constructor TEleaent. Load; begin { TEleaent. Load > Inherited Load(S); S. Read (ßLCXR, SizeOf (ßLCXR)); S. Read (Coeff, SizeOf(Coeff)); S. Read(ElMflC, SizeOf(ElMftC)); S.Read(Quant, SizeOf(Quant)); end; { TEleaent.Load >

139. Procedure TEleaent. Store; begin i TEleaent.Store > Inherited Store(S); S.Write(ßLCXR, SizeOf(ALCXR)) S.Write(Coeff, SizeOf(Coeff)) S.Write(E1№C, SizeOf(E1WC)) S.Write(Quant, SizeOf(Quant)) end; { TEleaent.Store >

140. Constructor TConponent.Init; var PtrEls : PEleaent; begin { TConponent. Init > Inherited Init; Idx := fildx;

141. Els := EleaentsA,At(Idx); J •.= (9.76*Els\Ze + 58.8*exp( N := (»I; end; i TCoaponent. Init >

142. Constructor TConponent.Load; begin { TConponent.Load > S.Read(Idx, SizeOf(Idx)); S. Read(Els, SizeOf(Els)); Els := Elements".ftt(Idx); S.Read(C, SizeOf(C))-, S.Read(J, SizeOf(J)); S.Read(N, SizeOf(N)); end; { TConponent.Load >

143. Procedure TCoaponent.Store; begin { TConponent.Store } S. Hriteddx, SizeOf (Idx)); S.Write(Els, SizeOf(Els)); S. Write 1С, SizeOf (D); S.WriteU, SizeOf (J)); S.Write(N, SizeOf(N)); end} t TCoaponent.Store >

144. Constructor TLayer.lnit; begin { TLayer.Init } Inherited Init;

145. Caps := Neu(PCollection, InitU, 11); end; { TLayer.lnit }

146. Procedure TLayer.Store; begin { TLayer. Store > S. Put (Cups)

147. S.Write(MAC, SizeOf(МЙС)); S. Write (ftp, SizeOf(flp)); S. Write (Ep, SizeOf (Ep)); S.Write(Jp, SizeOf Up)); S.Urite(Thickness, SizeOf(Thickness)); S.Write(Density, SizeOf(Density)); end; { TLayer.Store }

148. Destructor TLayer.Done; begin { TLayer. Done > Dispose(Caps, Done); Inherited Done; end; { TLayer.Done >

149. Procedure ChangeMenuField(Coraand : Word; NewField : String); var MenuField : PMenuIter«;

150. Function FindltenuItendnMenu : PHenu; Conaand : Word) : PMenuIten; var Menulten, SubMenuItea : PHenuItere; begin { FindMenuItem > Mermltea := InHenuA.Itees; While Menultea 0 Nil do begin1. (MenuIte«r\Coaeand = 0) and (ltenuItenA.Nane 0 Nil) then begin

151. SuWtenuIten := FindMenuItem(HenuIte«A.SubMenu, Coumarrd) If SubMenuIteo 0 Nil then begin

152. FindMenuItee := Subftenulte»; Exit endend else beginif fllenultetr". Cowaand = Cosaarid) and not !MeriuItesiA. Disabled) then begin1. FindWenuIten := Henultem;1. Exit end end;

153. Henulten := Menultea*. Next end;

154. FindMenuIten := Nil end; { FindMenuItea } begin { ChangeHenuField > HenuField := FindHenuIteis{HenuBarA.Menu, Conmand); If HenuField 0 Nil then HenuFieldA.NareA s= NewField end; { ChangeHenuField >

155. Procedure ChangeMode; begin1. cdBraphHode = True then ChangeMenuField(cBChMode, 'Screen "Wode Text') else ChangeHenuField (caChllode, 'Screen "Ifode Braphic'); cdGraphMode := Not(cdGraphHode) end;

156. Procedure SwitchFluCalc; begin1. cdFluCalc = True then ChangeHenuField(eBSweFluCalc, 'fluorescence Off') else ChangeHenuField(caSwcFluCalc, 'fluorescence On'); cdFluCalc s= Not(cdFluCalc) era);

157. Procedure SwitchSwooth; begin1. cdSnoothOn = True then ChangeHenuField (ciSwcSMooth, 'f sooth else ChangeHenuField(cwSncS»ooth, '"IT*mooth cdSmoothOn := Not(cdSaoothOn) end;

158. Procedure ChangeDest; begin1. cdOutpToPrn = True then ChangeHenuField(nChOutpDev, 'destination Disk') else ChangeHenuField(cnChOutpDev, '"ITestination Printer'); cdOutpToPrn := Not(cdOutpToPrn) end;$1 106 >1 SMS >1 HDG >1 fiPG >

159. Constructor TMonteCarlo. Init; var ic : Integer;

160. Node : SearchRec; begin { TMonteCarlo.Init J FindFirstPMCB.MDB', ftnyFile, Node); If DosError 0 0 then begin

161. WriteLnCCant not find file MCB.MDB'); Halt; encT;ic != RegisterBBIdriver(§EGftV6ffflriverProc); GraphDriver := Detect; InitBraph(BraphDriver,BraphMode,"); ErrCode := BraphResult; If ErrCode 0 grOk then begin

162. WriteLnCBraphics errors', BraphErrorMsg(ErrCode)); Halt; end; Xo := 100; C§5e 6raphDriver of

163. EnableComandsticoEdit, esSave, cnSaveAs, cnSiaulate.); If Ne ) 1000 then begin

164. Procedure TMonteCarlo.InitDesktop; var R .• TRect;begin { TMonteCarlo.InitDesktop } Merited InitDesktop; Desktop".Background".Pattern := ' '; end; { TMonteCarlo.InitDesktop >

165. Procedure TMonteCarlo.InitMenuBar; var R : TRect;begin { TMonteCarlo.InitMenuBar } BetExtent(R); R.B.Y := R.A.Y + 1;

166. MenuBar := New(PMenuBar, Init(R, NewMenuf NewSubMenuCirata', hcMenuData, NewMenu(

167. NewIteaCTTew', kbNoKey, cmNew, hcNew, . NewItefflCVpen.', 'F3', kbF3, cnOpen, hcOpen, NeHlteBt'^dit', kbNoKey, cnEdit, hcEdit, NewIteuC^ave', 'F2', kbF2, craSave, hcSave,

168. NewIte»('Save "Vs.1, kbNoKey, cmSavefts, hcSavefts, NewLine(

169. NewIteisC"Change dir.', kbNoKey, emChangeDir, hcCbangeDir, NewItemC-TTOS Shell', kbNoKey, caDosShell, hcDosShell, NewIteaJ'EVit', 'filt-X', kbfiltX, cmQuit, hcExit, NewLinel

170. NewIteaP About.', ", kbNoKey, cmfibout, hcflbout, Nil)))))))))))), NewSubHenuC^inulate', hcMenuSinulate, NewMenui NewIt08(,'vS'"iiiiulate', 'F4', kbF4, emSimulate, hcSiaulate, NewLiret

171. NewlteuC Screen Tode Text', ", kbNoKey, raChMode, hcChMode, Nil)))),

172. NewSubMenu('handle data', hcMenuHandleData, NewMenui NewIteaCAandle data', 'F5', kbF5, caHandleData, hcHandleData, NewLinet

173. NewIteaPAaooth On', ", kbNoKey, onSwcSaooth, hcSwcSaooth,

174. NewIteaPfluorescence Off', ", kbNoKey, cinSwcFluCalc, hcSwcFluCalc, NewIteaPdestination Disk', ", kbNoKey, caChOutpDev, hcChOutpDev, Nil)))))),

175. NewSubMeriuO Approximate', hcHenuftproxia, NewMenul NewIteaP Approxinate',' F6', №6, cmflpproximate, hcflpproxiisate, NewIteaP Calculate','F7', kbF7, ^Calculate, hcCalculate, Nil))), Nil))))end; { TMonteCarlo.InitMenuBar >

176. Procedure TMonteCarlo. InitStatusLine; var R: TRect;begin { TMonteCarlo. InitStatusLine > SetExtent(R); R.A.Y := R.B.Y 1;

177. StatusLine := New(PHinttine, InitlR, >

178. Procedure TMonteCarlo. WriteShellMsg; begin { TMonteCarlo.WriteShellMsg >

179. PrintStrPType EXIT to return to Monte-Carlo.'); end; { WriteShellMsg >

180. Function TMonteCarlo. GetPalette;4oconst MtcColor s TPalette = CflppColor; begin { TMonteCarlo.GetPalette > MtcColorti. s= «17.J { Background } GetPalette s= §HtcColor; end; { TMonteCarlo.GetPalette >

181. Begin HonteCarlo.Init; MonteCarlo.Run; MonteCarlo.Done

182. Type PSapDataDlg = ATSmpDataDlg; TSspDataDlg = Object(TDialog) NewData : Boolean;

183. Constructor InittANewData : Boolean); Procedure SetSnpOata; Procedure 6etSfflpData; end;

184. PLrsDataDlg = ATLrsDataDlg; TLrsDataDlg = Object(TSerollDialog) NewData : Boolean; Database : PCollection; Constructor Init(ftflewData : Boolean); Procedure SetLrsData; Function GetLrsData : Boolean; Destructor Done; Virtual; end;

185. PMACDataDlg = "THACDataDlg; TMflCDataDlg = Object«TScrollDialog) Nun : Word;

186. Constructor lriit(ANewData : Boolean; ftNum : Word); Procedure SetMACData; Procedure SetHACData; end;

187. R. Assign(20, 12, 30, 14);1.sert (New(PButton, Init(R, 'Or", caQk, bfDefault))); R.flssign(40, 12, 50, 14);1.sert (New(PButton, Init(R, 'Cancel', «Cancel, bfNornal))); end else begin

188. R. Assign (18, 12, 30, 14);1.sert(New(PButton, InittR, ' "-Change', caOk, bfNorwal))); R.Assign(40, 12, 52, 14);1.sert (New (PButton, InittR, 'CVntinue', caCancel, bfDefault))); end;

189. SelectNext(False); end; { TSfapDataDlg. Init >

190. Procedure TSapDataDlg.SetSapData; var NewSnpData : Record1. Naae : StringC363;1. NuaL, NunE : StringC23;

191. StSr, StSz, StEo, StD, St Alfa, StTeta : Stringt63; end;1. SspData ; Record1. Naae : String361;

192. StSr, StSz, StEo, StD, St Alfa, StTeta : String 63; end;begin { TSmpDataDlg,SetSrapData } If NewData then begin

193. Procedure TSrapDataDlg. GetSsipData; var Res : Word;1. NewSopData : Record

194. StSr, StSz, StEo, StD, Stfllfa, StTeta s String&3; end;1. SapData : Record1. Nane ! String 361

195. With SmpData do begin SarapleName := Nane; VaHStSr, Sx, Res); VaKStSz, Sz, Res); VaKStEo, Eo, Res); VaKStO, D, Res); Val(StAlfa, Alfa, Res); ValCStTeta, Teta, Res); end;end;

196. Sx ¡= Sx*1.0e-06; Sz := Sz*1.0e-06; D := D*1.0e-04; fllfa := Alfa*Pi/180.0; Teta := Teta*Pi/180.0; end; { TSfflpDataOig.BetSnpData >

197. Constructor TLrsDataDlg.Init; var R : TRect;

198. PtrEls s PElenent; ic, jc *. Word; ,

199. StaticText : String; DataFile : TDosStream; begin { Init } If NuaEls <= 4 then begin

200. R.Assign«), 0, 20+Il*NuBLrs, ll+2*NumEls); Merited Init(R, 'Layers', False, 0, 0, 0); end else begin

201. R.Assign(0, 0, 20+ll*NumLrs, 19); Merited Init(R, 'Layers', True, il+2*Nu«El5, 2, 15) end;

202. Options := Options or ofCentered; Flags s= Flags and Not wfClose; HelpCtx s= hcLrsDataDlg; NewData := ANewData; StaticText := 'Name ftL CXR'; For ic 1 to NusLrs do

203. StaticText := StaticText + ' ' + NumeralCic! + ' layer'; R.Assign(4, 2, 18+ll*NumLrs, 3); Insert(New(PStaticText, InitiR, StaticText))); For ic 1 to NumEls do begin If NewData then begin

204. R.Assign(4, 2+2*ic, 8, 3+2*ic); Insert(New(PInputName, InitiR))); R.Assign(12, 2+2*ic, 16, 3+2*ic); Insert(New(PInputALCXR, Init(R))); end else begin

205. PtrEls := Elements".At(ic-1); R.Assign(5, 2+2*ic, 7, 3+2*ic); Insert(New(PStaticText, Init(R, PtrEls*.Name))); R.Assign(13, 2+2*ic, 15, 3+2*ic); Insert(New(PStaticText, InitiR, PtrElsA.ALCXR + ' end;

206. For jc := 1 to NuaLrs do begirt

207. R.flssigrti9+l 1*jc, 2+2*ie, 16+ll*jc, 3+2*ic);1.sert(New(PlnputNuaber, Init(R, 5, False, 'mole concent ration', 0.0, 100.0))) end;end;

208. R. Assign (4, 4+2*NuaEls, 20, 5+2*Nus£ls); Insert(New(PStaticText, Init(R, 'Thickness (jib)'))); For ic := 1 to NuaLrs do begin

209. R.Assign(9+ll*ic, 4+2*Nui£ls, 16+ll*ic, 5+2*NuraEls);1.sert (New (PlnputNumber, Init(R, 5, False, 'thickess of layer', 1.0e-38, 20.0))); end;

210. R.Assign(4, 6+2*NuuEls, 20, 7+2*NubE1s); Insert(New(PStaticText, Init(R, 'Density (g/cM3)'))); For ic := 1 to NuaLrs do begin

211. R.Assign(9+1i*ic, 6+2*NuaEls, 16+ll*ic, 7+2*NumE1s);1.sert (New (PlnputNumber, Init(R, 5, False, 'density of layer', 1.0e-3fl, 100.0))); end;ic s= Round(5.5*Nu»Lrs)-3; jc ¡= 8 + 2*NuaEls; If NewData then begin

212. R.Assign(ic, jc, ic+10, jc+2);1.sert (New (PButton, Init(R, '0T', cinOk, bfDefault)));

213. R.Assignfic, jc, ic+12, jc+2);1.sert (New (PButton, IwitJR, '"Change', caOk, bfNoraal))); R.Assign(ic+13, jc, ic+25, jc+2);1.sert(New(PButton, Init(R, 'CVntinue', caCancel, bfDefault))); end else begin

214. R.Assign(ic-2, jc, ic+10, jc+2);1.sert (New (PButton, Init(R, 'Thange', cmOk, bfNormal))); R.Assign(ic+15, jc, ic+27, jc+2);1.sert(New(PButton, Init(R, 'CVntinue', caCancel, bfDefault))); end;

215. SelectNext(False); end; { Init }

216. Procedure TLrsDataDlg.SetLrsData; var LrsData : Pointer;1. PtrEls s PElement;1. PtrCap : PCoaponent;1. PtrLrs s PLayer;1. PtrStr : PString;

217. Aseg, Aofs, ic, jc : Word; Function ThisCoapdtea : PCoaponent) : Boolean; Far; begin

218. ThisComp := (IteaMdx = (ic-D);end;begin { SetLrsData > If NewData then GetMen(LrsData, t6*NuBEl5+12*Nuri.rs+6*Nus£ls*Nu«Lrs))else GetMera(LrsData, (12*NunLrs+6*Nui£ls»NufflLrs)); Aseg := Seg(LrsData")j flofs Ofs(LrsDataA); For ic := 1 to NuaEls do begin

219. PtrEls := ElementsMltUc-i); If NewData then begin

220. PtrStr := Ptr(ftseg, flofs); PtrStr" := PtrEls".Nase; Irciflofs, 3);

221. PtrStr := Ptr(flseg, flofs); PtrStr" := PtrElsA.fiLCXR + #224; IrctAofs, 3); end;

222. For jc := 1 to NuaLrs do begin

223. PtrLrs := Layers", flt(jc-l); PtrStr := Ptriflseg, flofs); PtrCtsp ;= PtrLrsA.Caps". FirstThat(9ThisCo»p); If PtrCap 0 Nil then Str(PtrQ»p".N:5:2, PtrStrA) else PtrStr" := 1 0.00';1.c(Aofs,6); end; jend;

224. For ic := 1 to NuaLrs do begin

225. PtrLrs i= Layers",fit(ic-1); PtrStr := Ptr(ftseg, flofs); Str((PtrLrsA.Thicknes5*i.0e+04):5:2, PtrStrA); Inc(ftofs,6); end;

226. For ic s= 1 to Nuri-rs do begin

227. PtrLrs := LayersA.flt(ic-l); PtrStr := Ptriflseg, flofs); Str(PtrLrsA.Density:5!2, PtrStr"); Inc(flofs,6); end;

228. SetData(LrsData"); Dispose(LrsData); end; { SetLrsData >

229. Function TLrsDataDlg.SetLrsData;var LrsData : Pointer;1. PtrStr : PString;1. PtrEls s PEleaent;1. PtrEdt : PElsData;1. PtrLrs : PLayer;1. OK : Boolean;ftseg, flofs, ic, jc, Res : Word;1. Trying : Real;1. Error : String;1.Layers ; Array 1,

230. Function Found(RElsData PElsData) s Boolean; Far; begin

231. Found := RElsData".Name = PtrStr";end;begin { GetLrsData) If NewData then BetMemiLrsData, (6*NumEl5+12*NuM.r5+6*NuBEl5*Nunlrs))else GetMeffltLrsData, (12*NuiiLrs+6*Nuȣls*Nuid.rs)); Aseg := Seg(LrsData"); flofs := Ofs(LrsData"); 6etData(LrsData");

232. Not (NewData) then For ic := 1 to NumLrs do teg in

233. PtrLrs := Layers".At(ic-1); PtrLrsA. Cmps". Freefll1; end;

234. For ic != 1 to NumEIs do begin If NewData then begin

235. PtrStr s= Ptrifiseg, ftofs); PtrEdt := DatabaseA.FirstThat(GFound); PtrEls := New<PEleuent, Init(PtrEdt)); I net flofs j 3);

236. PtrEls". flLCXR s= Chr(MemtAseg:(Aofs+l)3); Inc (flofs, 3); Elements*. Insert(PtrEls); InLayersCicl := False; end;

237. For jc s= 1 to NumLrs do begin

238. PtrLrs := Layers*.fit(jc-1); PtrStr s= Ptr(flseg, ftofs); Val(PtrStrA, Trying, Res); If Trying 0 0.0 then begin

239. PtrLrs".Caps".Insert(New(PComponent, Init((ic-1), Trying))) InLayerstic. := True; end; Inc (flofs, 6); end;end;

240. For ic := 1 to NuaLrs do begin

241. PtrLrs ;= Layers", fit (ic-1); PtrStr := Ptr(Aseg, flofs); Val(PtrStrA, PtrLrs".Thickness, Res); PtrLrs".Thickness s= PtrLrs".Thickness*!.0e-04; Inc (ftofs, 6); end;

242. For ic := 1 to NuaLrs do begin

243. PtrLrs := Layers".fit(ic-1); PtrStr := Ptr(flseg, flofs); Val(PtrStr", PtrLrs".Density, Res); Inc(flofs,6); end; OK := True;

244. Error := #3' Can not find in layers such elements'#1313'as '; For ic := 1 to Nun£ls do If Not(InLayerstic!) then begin OK := False;

245. PtrEls := Elements".At(ic-1); Error := Error + PtrEls".Name + ', ';end; If Not(OK) then begin

246. Dec(MemSeg(Error):0fs(Error)3, 2); MsgBox(2, 'Error', Error); end; OK := True;

247. Error ;= #3'Can not find elements in such layers'#l3#3'as '; For ic := 1 to NunLrs do begin

248. PtrLrs := LayersA.At(ic-l); If PtrLrsA.C«psA. Count = 0 then begin OK := False;

249. Error := Error + Numeralic. + ', '; end;end; If Not(OK) then begin

250. Dec(MemtSeg(Error):0fs(Error)3, 2); MsgBox(2, 'Error', Error); end;

251. Dispose(LrsData); SetLrsData s= OK; end; { GetLrsData)

252. Destructor TLrsDataDlg.Done; begin { TLrsDataDlg.Done > If NewData then Dispose(Database, Done); Merited Done; end; { TLrsDataDlg.Done }

253. Constructor TMACDataDlg.Init; var R : TRect;

254. PtrEls >. PEleisent; ci, cj : Char; ic, jc : Word; StaticText s String; begin { TMACDataDlg.Init > PtrEls := Elements", ftt MWua-1); If Nun£ls (= 6 then begin

255. R. Assign(0, 0, 53, 8+2*Nua£ls);

256. Merited Init (R, 'MAC for ALCXR of ' +PtrElsA.Name, False, end else begin1. R. Assign«), 0, 58, 20);

257. Merited Init(R, 'MAC for ALCXR of '+PtrElsA.Name, True, fend; Nun != ANum;

258. PtrEls s= Elements".fit(ic-1); R.Assign(fi, 3+2*ic, 10, 4+2*ic); Insert(New(PStaticText, Iriit(R, PtrElsA.Na«e))); end;

259. For ic := 1 to NunEls do For jc s= 1 to 4 do begin

260. R. Assign (5+10* jc, 3+2*ic, 14+10*jc, 4+2*ic); Insert(New(PlnputNumber, Init(R, 7, False, 'Bass abs. coeff.', 1.0e-38, 1.0e+7)));end;ic := 5 + 2*Nus£ls; If ANewData then begin

261. R.Assign(17, ic, 27, ic+2);1.sert (New(PButton, Init(R, '0T', cnOk, bfDefault))); R.Assign(32, ic, 42, ic+2);1.sert (New (PButton, Init(R, '""Cancel1, csCancel, bfNornal))); end else begin

262. R.Assign(15, ic, 27, ic+2);1.sert (New(PButton,0 Init (R, 'Change', craOk, bfNorraal))); R.Assign(32, ic, 44, ic+2);1.sert (New (PButton, Init(R, ' CVntinue', raCancel, bfDefault))) end; x

263. SelectNext(False); end; { TMACDataDlg.Init >

264. Procedure TMACDataDlg.SetMACData; var MACData : Pointer;1. PtrStr : PString;1. PtrEls : PEleaent;ci, cj : Char;

265. Aseg, Aofs, ic, jc ! Word; begin { TMACDataDlg.SetMACData > BetMea(MACData, (32*NumE1s)); Aseg := Seg(MACDataA); Aofs := Ofs(MACDataA); For ic := 1 to NuisEls do begin

266. PtrEls := EleaentsA.At(ic-l); For ci := 'K' to 'L' do For cj 'a' to '0' do With PtrElsA do begin

267. PtrStr s= Ptr(Aseg, Aofs); PtrStrA := NuraStr(ElMACci,cj.[Nuin3, 7); Inc(Aofs,8); end;end;

268. SetData(MACDataA); Dispose(MACData); end; { TMACDataDlg.SetMACData }

269. PtrEls s= ElerientsA.flt(ic-i); For ci := 'K' to 'L' do For cj ¡= 'a' to »8* do begin

270. PtrStr != Ptr(flseg, flofs);

271. Val(PtrStrA, PtrElsA.ElMflCci,cj.CNuffl], Res);1.œ(ftofs,8) ;end;end;

272. Dispose(MflCData); end; { TMftCDataDlg.GetMACData)

273. Procedure About; begin { About } MsgBox(6, 'About', #3'Monte-Carlo version 2.0t'#13 + #13 +end; { About > Function InputSaapleData(ANewData : Boolean) Word;

274. Eo 0 OldEo) or (D 0 OldD) or (Alfa {> OldAlfa))) then begin

275. PSmpDataDlg; : Boolean; s Word;end;endelse InputSanpleData := cmCancel;end;end;

276. Dispose(Dig, Done); end; { InputSanpleData >

277. Function InputLayersData(ANewData : Boolean) : Word; var Dig : PLrsDataDlg;

278. K, NewData : Boolean; DlgRes : Word; begin ■£ InputLayersData > Dig New(PLrsDataDlg, Init(ANewData)); NewData := ANewData; Repeat CM := True;

279. Not(NewData) then DlgA.SetLrsData; DlgRes s= DesktopA.ExecView(Dlg); InputLayersData := DlgRes; If DlgRes 0 cmCancel then begin NewData := False;1. ((Ne ) 0.0) and tot (ANewData) ) then begin

280. Dispose(Dlg, Done); end; { InputLayersData >

281. Function InputMACData(NewData : Boolean) : Word; var D : PMACDataDlg;

282. DlgRes, ic : Word; begin { InputHACData > DlgRes := cmOK; InputHACData cmCancel; For ic 1 to Nun£ls do If (Not(NewData) or (DlgRes 0 cmCancel)) then begin

283. D := New(PMACDataDlg, Init(NewData, ic)); If Not (NewData)' then IT. SetMACData; DlgRes := DeskTopA.ExecView(D); If DlgRes 0 cmCancel then D".SetMACData; If NewData then InputHACData := DlgRes else

284. DlgRes = cm® then InputHACData := DlgRes; Dispose(D, Done); end;end) (InputHflCData >

285. Procedure FirstHandle; var PtrEls : PEleraent; PtrCrap : PConponent; PtrLrs : PLayer; ci : Char;ic, jc, kc : Integer; ftsrap, Nsap : Real; GraphFile : File; begin { FirstHandle > Ne := 0.0;

286. For ic s= 1 to NuaEls do begin >

287. PtrEls :== EleaentsA. fit (ic-1); With PtrEls" do begin

288. For ci := 'K' to 'L1 do For jc := 0 to 100 do For kc := 0 to 100 do Quantci,jc,kcl := 0; For jc := 1 to NaxNumEls do CoeffLjc. := 0.0; end;end;

289. For ic := 0 to 100 do begin

290. ScatteredECicI := 0.0; Scatteredrticl := 0.0; end;ftssign(GraphFile, Copy(DataFileNa®e, 1, Pos('.', DataFileNaae))+'GDG') «I->1. Reset(GraphFile); {$1+}

291. IOResult = 0 then begin Close(GraphFile); Erase(GraphFile); end;

292. For ic := 1 to NuaLrs do begin

293. PtrLrs := Layers".fit(ic-1); With PtrLrs" do begin temp := 0.0; Nsap := 0.0;

294. For jc :=1 to Craps".Count do begin

295. PtrCnp != Caps", fit (jc-l); With PtrCmp" do beginfismp := ftstap + N*Els".fi; Nsnp := Nsinp + N; end;end;

296. For jc :=1 to Caps".Count do begin

297. PtrQsp := Craps", fit (jc-l); With PtrCmp" do begin C := N*Els".ft/Asatp; N := N/Nsmp; end;end;ftp := 0.0; Ep '.= 100.0; Jp := 0.0; Nsmp != 0.0; For jc:=l to CtipsA. Count do begin

298. PtrCrap != QspsA.flt(jc-l); With PtrCnp", PtrCapA.ElsA do begin ftp := flp + C*fl;

299. EcERLCXRl <= Ep then Ep != EctftLCXRl; Jp != Jp + N*Ze*Ln(J); Nsrip := Nasp + N*ElsA.Ze; end;end;1. Jp := Exp(Jp/Nsrap); end;end;cdDataSaved := False; end; { FirstHandle 3

300. Procedure CalculateMfiC; var PtrCrap : PComponent; PtrLrs : PLayer; ci, cj * Char; ic, jc, kc ; Integer; ftetap, Nsnp : Real; begin { Calculated } For ic s= 1 to Nusirs do begin

301. PtrLrs := Layers", fit(ic-l); With PtrLrsA do begin

302. For ci i= 'K' to 'L' do For cj := 'a' to 'S1 do For jc s= 1 to NubEIs do begin

303. MftCCciHcjHjcJ := 0; For kc s= 1 to CopsA.Count do begin1. PtrCftp CapsA.flt(kc-l);

304. With PtrCapA do «ftCtcil CcjKjc3 := WflCCci3 tcjl Ljc3 C*ElsA.El№CEci,cj3Cjc3;end;end;end;end;cdDataSaved := False; end; Í Calculate«® >

305. Procedure EditData; var DataChanged : Boolean; begin { EditData > DataChanged := False;

306. InputSarapleData(False) 0 coCancel then DataChanged : If InputLayersData(False) 0 craCancel then DataChanged i If DataChanged then begin FirstHandle; Calculated; end;

307. InputWflCData(False) 0 cmCancel then Calculated; cdDataReady := True;1. True; = True;end; { EditData }

308. Procedure SaveDataAs; var FileNaue : FNaaeStr; begin { SaveDataAs } FileName ";

309. MonteCarlo.ExecuteDialog(New(PFileDialog, Init('*.tC6', 'SaveData '"S^ave data as', fdOKButton, 100)), 0FileName) 0 craCancel then begin

310. Pos('.', FileNaue) 0 0 then DataFileNane := FileNameelse DataFileNane FileNaae + '.MCS'; SaveData; end;end; { SaveDataAs >

311. Procedure DestroyData; begin { DestroyData > Dispose(Elements, Done); Dispose(Layers, Done); end; ■£ DestroyData >

312. Function SaveChangedData : Word; var DlgRes : Word; begin { SaveChangedData > SaveChangedData := caOk; If Not(cdDataSaved) then begin

313. DlgRes := YesNod, #3'Data is not saved. Save ?'); If DlgRes = caYes then SaveDataAs; SaveChangedData := DlgRes end;end; { SaveChangedData >

314. Procedure NewData; var ic : Integer; begin { NewData > If SaveChangedData 0 cmCancel then If InputSampleData(True) 0 cmCancel then begin1. cdDataReady then begin DestroyData;

315. DataFileNaae := 'NONAME.MCG'; cdDataReady := False; end;

316. Procedure OpenData; var DataFile : TDosStreara;

317. Type PSimulateDlg = TSisulateDlg; TSinwlateDlg = Object(TDialog) NusiElc s PStaticText; Constructor Init;

318. Procedure UpdateNusElctWunEIc : Real); end;

319. PElectron = "TElectron; TElectron = Object(TObject)

320. CurrLayer, ix, iz : Integer;

321. E, Zbl, Zel, s, x, z : Real;

322. CosAlf, SinAlf, CosGan, SinGan : Real;

323. Constructor Init(ACurrLayer i Integer;

324. RE, AZbl, flZel, Ax, Az : Real;

325. ACosAlf, ASinAlf, ACosGam, ASinGam : Real);end;

326. Constructor TSiaulateDlg.Init; var R : TRect;

327. Procedure TSimulateDlg. UpdateNumElc;var ValStr : String; begin { TSiraulateDlg.UpdateNu«£k } DisposeStr(NuhE1ca.Text); Str(ANun£lc:7:0, ValStr); Nun£lcA.Text := NewStr(ValStr); Nus£lcA.DrawView; end; { TSimulateDlg.UpdateNumElc >

328. Procedure EraseString(xc, yc, Len : Integer); var ViewPort s ViewPortType; begin { EraseString > GetViewSett ings(ViewPort);

329. SetViewPort(xc~4*Len, yc-4, xc+4*Len, yc+4, ClipOn); ClearViewPort;

330. With ViewPort do SetViewPort(xl, yl, x2, y2, Clip) end; i EraseString >

331. Constructor TElectron.Init; begin { TElectron.Init > Inherited Init; CurrLayer s= ACurrLayer;ix := Round (3*Ax/Sx) + IS); iz := Round(3*Az/Sz);

332. E := AE; Zbl s= AZbl; Zel := ftZel; s := 0.0;x s= fix; z := fiz;

333. Cosftlf := ACosAlf; SinAlf := ASinAIf; CosGan := ACosSaa; SinGan := ASin6an; end; { TElectron.Init }

334. Procedure ScreenToFile; var BrFile ! File; ic, Size ! Integer; Buffer : Pointer; begin

335. Assign(GrFile, Copy(DataFileNas®, i, Pos('.', DataFileName))+'6DG') Case GraphDriver of

336. VGA : SetViewPort(0, 0, 639, 479, ClipOn); EBA : SetViewPort(0, 0, 639, 349, ClipOn); end;

337. Size:=laageSize(339, 0, 639, 29); Rewrite(GrFile, Size); Get Item(Buffer, Size); For ic := 0 to 9 do begin

338. Getlmage(339, Top+ic*30, 639, Top+ic*30+29, Buffer"); BlockWriteiGrFile, Buffer", 1) end;

339. FreeMe«(Buffer, Size); Close(GrFile) end;

340. Procedure FileToScreen; var SrFile : File; ic, Size : Integer; Buffer : Pointer;

341. Assign(GrFile, Copy(DataFileNarae, 1, Post'.', DataFileNarae))+'6DG') ; Case GraphDriver of

342. VGA ; SetViewPort(0, 0, 639, 479, ClipOn); EGA : SetViewPort(0, 0, 639, 349, ClipOn); end;

343. Size:=ImageSize(339, 0, 639, 29); Reset(GrFile, Size); GetMem(Buffer,Size); For ic := 0 to 9 do begin

344. BlockRead(6rFile, Buffer", 1); PutImage(339, Top+ic*30, Buffer", CopyPut) end;

345. FreeMem(Buffer,Size); Close(GrFile) end;

346. Procedure SetGraphicMode; Const CXRPattern : FillPatternType =$FF, $FF, $FF, $FF, $FF, $FF, $FF, IFF) ; var PtrLrs : PLayer; PtrEls : PElement; ic, iz, Jst : Integer; z : Real;

347. Str((ic*Sz*2.0e+5h3:l, DynText); OutTextXY(320, Top+ic*60, DynText); end;

348. Layers".Count 0 1 then begin z := 0;

349. For ic := 1 to Layers".Count do begin

350. PtrLrs := Layers".At(ic-l); z := z + PtrLrs".Thickness; iz := Top + Round(3*z/Sz); Line(0, iz, 300, iz); Line(340, iz, 639, iz); end;end;

351. FindFirst((Copy(DataFileName, 1, Pos('.', DataFileName))+'GDG'), AnyFile, If DosError = 0 then FileToScreen; If GraphDriver = VGA then begin1. Str(Ne:5;0, DynText);

352. QutTextXY(150, Top+340, 'Number of electrons: ' + DynText); Str(Eo:7:4, DynText);

353. Out Text XY (4%, Top+340, 'Electron energy: ' + DynText + ' keV'); Jst := 340 35*NumEls;

354. For ic := 1 to NusiEls do begin

355. QutTextXY(490, Top+315, 'Electron energy: ' + DynText + ' keV'); end;end; { SetBraphicMode >

356. Procedure Simulate; const Ready : Boolean = False; Start : Boolean = True; SecondValue : Real = 0.0; var PtrLayer : PLayer; Event : TEvent; Dig : PSimulateDlg;

357. Continue : Boolean; ic, jc, kc : Integer; IntNe : Longlnt; 6aoa, x : Real; DynText : String; Electrons : PCollection;

358. Ratio := E/EcflLine.; If Ratio < 88.0 then1.nSec := flPtrDip".C*b»Ln(4*Ratio/(1.55+2.35*Expil.0-Ratio)))/E*EcflLirle. else IonSec := flPtrCmp".C*b«Ln(4*Ratio/l.65)/E*Ee[flLine];endelse IonSec := 0.0; end; { IonSec }

359. Function DiffSectflE, AW, ftEc : Real) : Real; var We, Wc, 11 : Real; begin { DiffSec > If ((AW < AE) and (AEc ( AE)) then(e2)2 costBon multiplier > We := AW/AE; Wc := AW/AEc; U := 1.0 + AEc/AE;

360. DiffSec := Exp(Ln(1-We)/(1+Wc))/Sqr(AW)/Wc/U/Sqrt(U)* (Wc-We+1.333*Ln(2.7+Sqrt(AE/f£c-Wc)));endelse DiffSec := 0,0; end; { DiffSec }

361. Procedure CalcAngletvar CosB, ACosAlf, ASinAlf, ACosGam, ASinSaa var Fi, Cs, Sn, CosA, SinA, SinB : Real; begin { CalcAngle > SinB := Sqrt(1.0-Sqr(CosB)); Fi := Pi*Randota;

362. CosA := ACosAlf; SinA := ASinAlf; ACosAlf := CosACosB + SinA*SinB*Cos(Fi); ASinAlf := SqrtU.O-Sqr(ACosAlf)); If ((SinA 0 0.0) and (ASinAlf 0 0.0)) then begin

363. Cs := (CosB-CosA*ACosAlf) / (SinA*ASiriAlf); Sn -.= SinB»Sin(Fi)/ASinfllf end else begin Cs := Cos(Fi); Sn := Sin(Fi) end;

364. CosA := ACosGaa; SinA i= ASinBan; ACosBam := CosA*Cs SinA*Sn; ASinSaa := SinAtCs + CosA»Sn end; { CalcAngle >1. Real);

365. Procedure Trajectory(AElectron : PElectron); Far; const Na = 6.023e+23;var PtrEls ! PElenent;1. PtrCmp s PCosiponent;

366. PtrCurrLrs, PtrLrs s PLayer;1. ALine, Shell : Char;

367. Cls, ic, jc, kc, jx, jz : Integer;

368. SuaSec:=0; SuuSda:=0; For ic := 1 to Craps".Count do begin

369. PtrCmp ¡= Clips". At (ic-1); With PtrCmp". Els" do begin

370. ScrParamticl := 3.4e-3*exp(Ln(Ze)*£/3)/E; SprSectic. := 4.069e-21*PtrCsip".C*Sqr(Ze)/Sqr(E); SprSec ic] := SprSec [ i cl / (Scr Par asi [ i c3 * (Scr Par a» [ i c 1+1)) If E ) 0.0 then1. Ratio := E/PtrCHpA.J;

371. NspSectic. := PtrCfflpA.C*Ze/!Sqr(PtrCrapA. J)*Na); NspSectic] := NspSectic]/ (1.18e-5*Sqrt(Ratio)+l. 47e-6*Ratio) endelse NspSectic! := 0.0; SumSec := SumSec + SprSectic. + NspSectic]; SuraSda ;= SumSda + (SprSectic] + NspSectic])/ft; end;end;

372. PtrCap s= QipsA.fit(Cls-l);

373. Sum := Sua + (SprSectCls.+NspSectCls])/(SumSda*PtrCMpA.ElsA,ft); Until Sua )= Rand; Rand:=Rartdon;1. ((NspSectClsl/iSprSectClsl+NspSectCls.)) > Rand) then begin

374. P ) Rand then Shell ¡= 'K' .else Shell := 'L'; Es := PtrC«pA.ElsA.EctShell.; If (ic in t0. 100]) and (jc in t0.100])then Inc(PtrCmpA.ElsA.QuanttShel1,ic,jcl); If (cdSraphMode and (Shell = PtrCapA.ElsA.ftLCXR)> then begin

375. SetViewPort(339, Top, 639, Top+300, ClipDn); PutPixel (jx, jz, ColorCXRtPtrCmpMdx+1.); end;

376. Ratio != (E Es)/100.0; DeltaE != Es;

377. ProbHtO. := DiffSec(E, DeltaE, Es); For ic := 1 to 100 do begin1. DeltaE := DeltaE + Ratio;

378. ProbWtic. s= ProbWCic-13 + DiffSec(E, DeltaE, Es); end; ic := 0;

379. ProbWCO. := ProbUt0]/ProbWtl00]; Rand := Random;

380. While ProbWCic. ( Rand do begin Inc(ic);

381. ProbWCic. != ProbWCicl/ProbWHOO]; end;

382. DeltaE := ic*Ratio; E := E Es - DeltaE; If DeltaE > Ep then begin

383. CosB := Sqrt(DeltaE/(E+DeltaE)); NewCosAlf := Cosfllf; NewSinAlf := SinAlf; NewCosBaa := CosBani; NewSinBan := SinBati;

384. CalcAngle(CosB, NewCosAlf, NewSinfllf, NewCosBam, NewSinBam); Electrons". Insert(New(PElectron, Init(CurrLayer, DeltaE, Zbl, Zel, x, z, NewCosAlf, NewSinAlf, NewCosBam, NewSinSara)));end;

385. CosB := Sqrt(E/(E+DeltaE)); CalcAngle(CosB, CosAlf, SinAlf, CosBam, SinBam); end else begin DeltaE:=0;

386. For ic := 1 to Cmps".Count do

387. PtrCap := Cmps".At{ic-l); DeltaE := DeltaE + NspSecCicl1.nSec(PtrCfflp, E, 'KM -IonSec(PtrCmp, E, 'L'5;end;

388. E := E DeltaE*Jp*Na*Density*s/Ap; s != 0; end;1. Str(E:7:4, DynText);1. 6raphDriver = V6A then begin

389. SetViewPort(0, 0, 639, 479, ClipOn);

390. EraseString(540, Top+340, B);0utTextXY(542, Top+340, DynText); end else begin

391. SetViewPort(0, 0, 639, 349, ClipOn);

392. EraseString(540, Top+315, 8);0utTextXY(542, Top+315, DynText); end;end;end else begin P := Random;

393. CosB s= l-2*ScrParamtCls.*P/(l+&rParamCls]-P); CalcAnglefCosB, Cosfllf, SinAlf, CosBam, SinBam); end;end else begin If (z > Zel) thenbeginbegin1 ¡= l-iz-ZeD/CosAlf; Inc(CurrLayer); z := Zeis

394. CurrLayer in 0.Layers",Count-13 then begin

395. PtrLrs := Layers".fit(CurrLayer)i Zbl := Zel; Zel := Zbl + PtrLrs".Thickness; end;endelse If (z ( Zbl) then begin1 := l-(Zbl-z)/CosAlf; Dec(CurrLayer); z ¡= Zbl;

396. CurrLayer in 0.Layers".Count-13 then begin

397. PtrLrs ;= Layers".At(CurrLayer); Zel := Zbl; Zbl := Zel PtrLrs".Thickness; end;end;x := x + l*SinAlf*CosGam; jx := Round(3*x/Sx) + 150; jz s= Round(3*z/Sz); end;1. cdGraphKode then begin

398. Not((CurrLayer in 0.Layers".Count-13) and (E )= PtrLayer".Ep)) then Electrons".Free(AElectron);end;end; { Trajectory }

399. Function NormRandos : Real; var Argument, Factor : Real; begin { NormRandoa } If Start then begin, Start := False; Randomize; end;

400. Not(Ready) then begin Ready s= True;

401. Factor := D*Sqrt(-Ln(Random)/18.0)/cos(Alfa); Argument := 2.0*Pi*Random; SecondValue := Factor*Sin(Argument); NormRandom := Factor*Cos(Argument) end else begin

402. Ready := False; NorraRandotn := SecondValue endend; { NormRandom }begin { Simulate > If Not(cdDataSaved) then SaveData; Dig .•= New(PSiaulateDlg, Init); DeskTop".Insert(Dig); If cd6raphMode then begin SaveScrsen; SetGraphicKode; end;

403. Electrons := New(PCollection, Initil, 1)); Continue := True; Randomize; Repeat Ne ;= Ne + 1; If cdSraphMode then begin

404. Str(Ne:5:0, DynText); If GraphDriver = VGA then begin

405. SetViewPort(0, 0, 639, 479, ClipOn); EraseString(234, Top+340, 5); 0utTextXY(234, Top+340, DynText); Str(Eo:7:4, DynText); EraseString(542, Top+340, 7); 0utTextXY(542, Top+340, DynText); end else begin

406. SetViewPort(0, 0, 639, 349, ClipOn); EraseString(234, Top+315, 5); 0utTextXY(234, Top+315, DynText); Str(Eo:7;4, DynText); EraseString(542, Top+315, 7); 0utTextXY(542, Top+315, DyjiText); end;endelse Dig". UpdateNuaElc(Ne); PtrLayer := Layers".fit (0);

407. Repeat x := NoraRandon Until (x )= -50*Sx) and (x (= 50*Sx); Gaaa := 2*Pi*Randoa;

408. Electrons".Insert(New(PElectron, Init(0, Eo, 0.0, PtrLayer".Thickness, x, 0.0,

409. Cos(fllfa), Sin(fllfa), Cos(Gaaa), Sin(Gama)))) While ((Electrons".Count О 0) and Continue) do' begin

410. Electrons". ForEach ((»Trajectory); Dig".GetEvent(Event); If Event.What О evNothing then begin

411. Dig".HandleEvent(Event); If Event.What = evCoaaand then begin

412. Case Event.Comand of emSave : begin1. SaveData;1. cdGraphMode then ScreenToFile; end;cmChKode : if cdGraphMode then begin ScreenToFile; CloseSraph; Changeflode;

413. MonteCarlo.SetScreenMode(smCOBO) RestoreScreen; DlgA.UpdateNunElc(Ne); end else begin SaveScreen; ChangeHode; SetGraphicWode; end;esCancel : begin1. cdBraphHode then begin ScreenToFile; CloseGraph;

414. MonteCarlo,SetScreenMode iswCOBO) RestoreScreen; DlgA.UpdateNuBiElc(Ne); end; SaveData;

415. DeskTop".Delete(Dig); Continue := False; end;end;endelse DlgA.ClearEvent(Event);endelse D1gA.ClearEvent(Event);end;1.tNe := Round(Ne);1. (((IntNe nod 10) = 0) and cdGraphMode) then fiigin

416. SetViewPort(3, Top+2, 298, Top+298, ClipOn); ClearViewPort; end;1. (IntNe nod 500) = 0 then begin SaveData;1. cdGraphMode then ScreenToFile; end;

417. Until Not (Continue); Dispose(Dig, Done);

418. Function LocalRis ! TflrraylOOReal) : Real; var ic, jc • Integer;

419. Suml, Sum2 ; Real; begin { LocalR } If cdSraoothQn then begin Suml := 0;

420. For ic := 0 to 100 do Suml s= Suml + sCic.; Suml := 0.95*Suml; Sum2 st503; ic ;= 0;

421. While ((SuaS ( Suml) and (ic < 50)) do begin Inc(ic);

422. Sum2 s= Sura2 + s50+ic. + s[50-ic3; end;1.calR := £.Oe+4*Sx*(ic+(Sumi-Sum2)/(sC50+ic.+5C50-ic])); end else begin

423. Suml := 0.05*sC1003; , ic := 0;

424. While ((sC50-ic. ) Sural) and (ic (50)) do Inc(ic); Sura2 := 0.35»sCl(K)3 ? jc s= 0;

425. While ((st50+jc3 ( Sua2) and (jc (50)) do Inc(jc); LocalR := 1.0e+4*Sx*(ic-(SuMi-sta)-ic.)/(st51-ic]-s50-ic])+ jc-(Sum2-sE50+jc3)/(s[49+jc3-sC50+jc3))end;end; { Lcx:alR }

426. Function LocalZ(s : TftrraylOOReal) : Real; var ic : Integer;

427. Suml, Sum2 : Real; begin { LocalZ > If cdSmoothOn then begin Suml := 0;

428. For ic := 0 to 100 do Suml ;= Suml + sCicl; Suml 0.95»Sunl; Sum2 := sC03; ic := 0;

429. While ((SuhS ( Suml) and (ic ( 100)) do begin Inc(ic);1. Sum2 := Sum2 + slid; end;1.calZ := 1.0e+4*Sz*(ic+(Suml-SumS)/sic3); end else begin Suml := 0.95*s[1003; ic := 0;

430. While ((sic3 ( Suml) and (ic ( 100)) do Inc(ic); LocalZ := 1.0e+4*Sz*(ic-(s[ic3-Suml)/(sCic3-s[ic-13)); end;end; { LocalZ J

431. Procedure Smooth (var s : TflrraylOOReal; Norsi : Real); var k : Integer;r : TftrraylOOReal;

432. Function Maximum(Arg : TfirraylOOReal) i Real; var ic : Integer;

433. Max : Real; begin C Max ¡= -1.0e38;

434. For ic := 0 to 100 do If ArgEic. > Max then Max := ArgEic3; Maxima := Max; end;

435. Procedure Suaaary(var s : TfirraylOOReal; Nori : Real); var k : Integer;r : TfirraylOOReal; begin { Summary >rE03 := s03/Nora; ;

436. Continue, FluCalcOK Ch, ci, cjic, je, kc, lc, hc, nc, pc, qc bi, ei, bzi, ezi, qi, xi, zi uc, vc

437. Extx, Extz, Lax, Laz, Lgx, Lgz AbsQ, MaxAbs, Sxc, Szc, Zc, Zs FluQ, CosPci, I, Io, R, rk, s, w Depth

438. Genx, AbsSenx, Senz, AbsGenz Flux, AbsFlux, Fluz, AbsFluz1. PEleaent;flayer;1. PCoaponent;1. PStatusDlg;1. TEvent;1. Boolean;1. Char;1.teger;1.teger;1.teger;1. Real;1. Real;1. Real;

439. Array 0.MaxNuslrs3 Of Real; TArraylOOReal; TArraylOOReal;

440. Sum, AbsSumx, Subz, flbsSuaz : TflrraylOOReal; ResultFile i Text;

441. Function Beendtea : PComponent) s Boolean; Far; begin

442. Been ;= (Item".Els = PtrEls); end;

443. PtrLrs s= Layers".fit(ic-l); DepthCic. := DepthCic-l] + PtrLrs".Thickness; end;

444. PtrLrs := Layers".fit(0); PtrCwp := PtrLrs".Caps".FirstThat(SBeen); Zc := 0.0; flbsQ 1.0; For kc := 0 to 100 do begin

445. PtrCrap 0 Nil then For Ic := 0 to 100 do begin

446. PtrLrs := Layers", fit (jc-1); PtrCmp := PtrLrs". Cups".FirstThat(iBeen); end; With PtrLrs" do

447. PtrLrs := Layers".At(0); PtrCmp := PtrLrs".Cmps".FirstThat(ffieen); Zc := 0.0; AbsQ := 1.0; For kc := 1 to 33 do begin { z of absorten > ;

448. PtrCmp 0 Nil then For lc s= 1 to 33 do begin { x of absorten > FluQ := 0.0; For pc := 1 to 33 do begin { z of radiator > zi := 3#pc-l; Zs zi*Sz; rtc := 0;

449. Repeat Inc(nc) Until (Zs ( DepthEncl);1. nc ) jc then begin bi := jc; ei := nc; bzi:=3*kc-l; e;else begin bi := nc; ei := jc; bzi:=zi; ezi:= For qc := I to 33 do begin { x of radiator > xi := 3*qc-l;1.:= 0.0;

450. With PtrRadA do For uc := -1 to 1 do

451. PtrCur := Layers".fit(bi-1); With PtrCur" do I I€xp(-MfiCEci,cj3E»c3*Den5ity* (DepthEbi3-bzi*Sz)/CosPci); For qi := bi+1 to ei-1 do begin

452. PtrCur := Layers".ftt (qi-1); With PtrCurA do I := 1* Exp(-HACEci,cj3 Eac3*Density*Thickness/CosPci);end;

453. PtrCur := Layers".fit(ei-1); With PtrCurA do I := I* Exp(-WKci,cj3[Mc3*Den5ity*(ezi*Sz-Depth[ei-13)/CosPci)end;

454. AbsFluxE1003 := (5»AbsFluxE983 2»AbsFluxE953)/3.9; AbsFluztlOOl := (5*AbsFluzE983 - 2*AbsFluzE953)/3.0; end;

455. Sxc := Sx*i.0e+4; Szc s= Sz*l,0e+4; If cdSmoothOn then begin1. Smooth(6enx, (Ne*Sxc));1. Smooth(Genz, (Ne*Szc)); l

456. Smooth (flbsSenx, (Ne*Sxc)); Smooth (AbsSenz, (№*Szc)); If (cdFluCalc and FluCalcOK) then begin

457. Smooth(Flux, (Ne*Sxc>); Smooth(Fluz, (Ne«Szc))$ Smooth(AbsFlux, (Ne*Sxc)); Smooth(AbsFluz, (Ne*Szc)); ersd;end else begin

458. Summary(Senx, (Ne*Sxc)); Summary(Genz, (Ne*Szc)); Summary(AbsSenx, (Ne*Sxc)); Summary(AbsGenz, (Ne*Szc)); If (cdFluCalc and FluCalcOK) then begin

459. Summary(Flux, (Ne*Sxc)); Summary(Fluz, (Ne*Szc)); Summary(AbsFlux, (Ne*Sxc));

460. SuiBBiary tftbsF 1 uz, (Ne*Szc)); end;end;1. (cdFluCalc and FluCalcOK) then begin

461. For jc := 0 to 100 do begin

462. SuMxljcl := 6enxjc3 Fluxtjcl; SuaztjcJ := Senz[jc. + FluzCjc]; flbsSmaxCjc] := ftbsBenxCjcl + flbsFluxCjc]; flbsSuBzCjcl := AbsGenzEjc] + flbsFluztjcl; end;

463. Extx := 0.01*(Trunc(Maxima(Su«x)*100)+5); Extz := 0.01*(Trunc(Maxiniua{SuBz)*100)+5}; end else begin

464. Extx := 0.01*(Trunc(Maxi»u»(Genx)*100)+5); Extz s= 0.01*(Trunc(«axiBun(Benz)*100)+5); end;end;

465. For jc.=l to Trunc(30-Length(SanpleNaise) /2) do Write(ResultFile,' '); WriteLn(ResultFile, 'Sample: ', SanpleNane); Write(ResultFile, ' Eo: Eo:4sl, <№ »¿«»¡¿(1: ', ftlfa:4:l);

466. WriteLn (ResultFile,' ¿a. №(TiMi ', Teta*180/Pi:4:l, ' ¿a.'); WriteLn(ResultFile,' WriteLn(ResultFile,' WriteLn(ResultFile,' WriteLn(ResultFile,' WriteLn(ResultFile,' WriteLn(ResultFile,' For jcs=0 to 50 do

467. Writeln(ResultFile,' (2*jc*Szc)¡5:2,' ¡',Genz2*jc3:ll:6,' |',flbsGenzC2*jc.:ll:6,' ', ',((2*jc-50)«Sxc):5:2,' |', SenxC2*jcl:11:6,' |', flbsSenx[2*jc3¡11:6,'-!');

468. SMaflT;«« W;fiQtanfSMfS j'jz 1R2 RTtO MuM9fiitf1 8 nrfTO x ififl mrSira MAWS; ¿fl 0 nifra MfiMSR^n

469. UriteLn(ResultFile,' Writeln(ResultFile,' Lz,V* WriteLn(ResultFile,' If (cdFluCalc are! FluCalcOK) then begin

470. WriteLn(ResultFile, Chr(12)); WriteLn(ResultFile,' WriteLn(ResultFile,' WriteLn(ResultFile,' WriteLn(ResultFile,' WriteLn(ResultFile,' WriteLn(ResultF i1e,' For jc:=0 to 50 do1.z!8!2,' j',Laz!8!2,'1.,4-*',Lgx:8i2,'l',Lax:8:2,' -1'):

471. MBRTJM Din«aiWjjf5irj«fi '!z ifffi nrfTi HtfMtefii^ S uriTO Miiwa^n x ifJ2 HTfiTi S nfm51. Writeln(ResultFile,'2*jc*Szc):5:2,' j',FluzC2*jc3:ll:6,' l',ftbsFluz2*jc.:li:6,' ', 1,((2*jc-50)*Sxc):5:2,' I',Flux[2*jc3;11:6,' I',flbsFluxC2*jc]:11:6,'

472. WriteLniResultFile, ' I-L.

473. Mûwea-.tn MûWfi^ft MÛW«^ MùMWjtnli"m1.,V*1.z:8:2,4 |',Laz:B:2,'J1.,*n|j\Lgx:8:2,' Jl1. Name+ALCXR+'a','z,jus',

474. WriteLn(ResultFile,' WritelntResultFile,1 WriteLntResultFile,' end;

475. Close(ResultFile); SaveScreen;1.itGraphModeP Press any key to continue'); Maxflbs := 100*Szc;

476. OutputGraphic(Genz,'For-and-aft distribution of

477. MaxAbs, 0.0, Ext.z, 0.0, Xo,Yo, Dx, Dy, Sol idLn, ThickWidth,White,False); OutputGraphic(Abs6enz,'For-and-aft distribution of '+Name+ALCXR+'a','z, jua',

478. Maxflbs, 0.0, Extz,0.0, Xo, Yo, Dx, Dy, DottedLn, ThickWidth, White, True) ; If (cdFluCalc and FluCalcOK) then begin

479. OutputGraphic¡Fluz,'For-and-aft distribution of ' +Name+ALCXR+'a','z,

480. Maxflbs,0.0,Extz,0.0,Xo,Yo,Dx,Dy,SolidLn, ThickWidth,LightMagenta,True); OutputGraphicffibsFluz,'For-and-aft distribution of '+Narae+ALCXR+'a', ' z, n»',

481. Maxflbs, 0.0, Extz, 0.0, Xo, Yo, Dx, Dy, DottedLn, ThickWidth, LightMagenta, True) ; OutputGraphic(Suaz,'For-and-aft distribution of ' +Naae+fiLCXR+1b',1z, )»',

482. Maxflbs,0.0, Extz, 0.0, Xo,Yo, Dx, Dy, SolidLn, ThickWidth,Yellow, True) ; OutputGraphiciAbsSumz,'For-and-aft distribution of '+Najne+ALCXR+'«','z, jib',

483. Maxflbs, 0.0, Extz, 0.0, Xo, Yo, Dx, Dy, DottedLn, ThickWidth, Yellow, True) ;end; Ch := ReadKey; ClearViewPort; Maxflbs != 50*5xc;

484. MonteCarlo.SetScreenMode(sraCOBO); RestoreScreen; end;r>i1.x:8:2 -l')iend;end; { HandleData } Type PftppDataDlg = "TftppDataDlg; TflppDataDlg = Object(TDialog) Constructor Init;

485. Procedure SetAppData(Params, Delta s TftrrayldReal); Procedure GetftppData(var Parans, Delta : TftrrayldReal); end;

486. Procedure TAppDataDlg.SetAppData; var AppData : Record

487. Ro, Xc, R, Dr, k, Dk, A, Da, n, Dn : String£133; end;begin { TAppDataDlg.SetAppData > With AppData do begin

488. Str<Para«s63*Ne: 13, Ro); Str(Paraast53*1.0e+4s13, Xc); Str(Params[13!l3, R); Str(Deltatl3!l3, Dr); Str(Params[23!l3, k); Str(DeltaC23;13, Dk); Str(Params[33:13, A); Str(Delta[33:13, Da); Str(ParamsC43:13, n); Str(Delta[43:13, Dn); end;

489. SetData(AppData); end; { TAppDataDlg. SetAppData >

490. Procedure TAppDataDlg.6etAppData; . var Res : Integer; AppData : Record

491. Ro, Xc, R, Dr, k, Dk, A, Da, n, Dn : String133; end;begin { TAppDataDlg. SetAppData > GetData(AppData); With AppData do begin

492. Val(Ro, Params63, Res); Val(Xc, ParamsCSl, Res); Val(R, Paramstll, Res); Val(Dr, Delta[13, Res); Val(k, Paraiis[23, Res); Val (Dk, Delta(23, Res); Val(A, ParaasC33, Res); Val(Da, Delta[33, Res); Val(n, Params[43, Res); Val(Dn, Delta[43, Res); end;

493. Params6. := Pararas[63/Ne; Parai»s[5] := Paraiss[5]*1.0e-4; end; { TAppDataDig.SetAppData >

494. Function OptFunciAPtrEls : PEleaent;

495. Params : TArrayldReal; AGenz : TArraylOOReal; var Value : TArraylOOReal) : Real; var PtrCmp ! PComponent;1. PtrLrs : PLayer;ic, jc : Integer;

496. Summary, Ner, Nxr, RoS, Sigma, Zel : Real;

497. Function Been(Item : PComponent) : Boolean; Far; begin { Been }

498. Been s= (Item".Els = APtrEls); end; i Been }begin { QptFunc > With APtrEls" do begin Summary := 0; ic := 0;

499. PtrLrs := Layers".At(ic); Zel := PtrLrs".Thickness;

500. PtrQsp := PComporent (PtrLrs". Cmps". First That (№een)); Sigma := ParaBs3./(Exp(Params[43*Ln(Eo))

501. Exp(ParamsM3*Ln(EcALCXR3))); For jc s= 0 to 100 do begin RoS := jc*Sz; If RoS >= Zel then begin Inc(ic);

502. PtrLrs := Layers".At(ic); Zel := Zel + PtrLrs".Thickness; PtrCmp s= PComponent (PtrLrs". Cmps". First That (Iffieen)); end;1. PtrCmp 0 Nil then begin

503. RoS ¡= RoS*PtrLrs".Density; Nxr := ParamsK.»PtrLrs". Density;

504. RoS (= Nxr then Ner := Exp(-Sigma»Nxr)*(l-(RoS-Nxr)*Sigma)else Ner := Exp(-Sigma*RoS); ' Ner s= Ner/Exp(-Sigma*Nxr)/(l+Nxr*Sigma); Valuejc. := PtrCmp".C*(Params[13-(Params[13-Params[6]/PtrCBp".C)*

505. Exp(-Abs<Params23)*RoS))*Ner*Ne; Suraaary := Summary+Abs(Value[jc3-AGenz[jc3); endelse ValueCjcI := 0.0;end;end;

506. OptFunc '.= Summary; end; { OptFunc }1. Procedure Approximate;var PtrEls : PElement;1. Dig : PAppDataDlg;1. Ch : Char;xs, ys : Byte; DlgRes, is, js, ks, Xext : Integer;1. Sum, Yext, Yapp : Real;

507. Been : Boolean; BeginValue, Delta, Epsilon : TArrayldReal;1. Senz : TArraylOOReal;

508. Procedure Optiaize(flPtrEls : PElement;1. NuraPararaeters : Byte;var Parameters, DeltaP : TftrrayldReal;1. Epsilon : TftrrayldReal);var SucOpt, SucRes s Boolean;ic, kc, Ic, mc ; Integer;

509. Mean, DldMean, MaxValue, Maxfibs : Real;1. HorizAsisLabel : String;1. Event : TEvent;

510. SimpleSearch, Base i TftrrayldReal;

511. NewArray, OldArray : TftrraylOOReal;

512. Procedure Research(var BasicPoint : TftrrayldReal;var MeanlnBase : Real; var Success : Boolean); var jc : Byte; AttMean : Real; Attempt : TftrrayldReal; begin { Research > Attempt := BasicPoint; Success := False; For jc s= 1 to NumParameters do begin

513. Attempt jcl := BasicPoint [jc. + DeltaPCjc]; AttMean := DptFunctAPtrEls, Attempt, Benz, NewArray); If AttMean < MeanlnBase then c begin

514. BasicPointCjc3 s= Attemptjcl; MeanlnBase ;= AttMean; Success := True; end else begin

515. AttemptCjc3 := BasicPointCjc3 DeltaPCjcl; AttMean := OptFunctAPtrEls, Attempt, Benz, NewArray); If AttMean ( MeanlnBase then begin

516. BasicPointjc. := Attempt[jc3; MeanlnBase := AttMean; Success := True; end;end;end;end; { Research >begin { Optimize > With APtrElsA do begin

517. HorizAsisLabel := 'For-and-aft distribution of 1 4*lame+ALCXR+' a'; MaxValue := 0.0; For ic := 0 to 100 do

518. SenzEicl > MaxValue then MaxValue := Benztie.; MaxValue := 16*Trunc(MaxValue/10); MaxAbs := (Trunc(Sz*1.0e+07)+l)/10.0; SaveScreen;1.itBraphModeC"isc* Cancel');

519. OutputSraphic(Eeinz,HorizAsisLabel,' z, jim',MaxAbs,0.0,MaxValue,-MaxValue/4,Xo,Yo,Dx,Dy,DottedLn,ThickWidth,Yellow,False) SucOpt := False;

520. Mean := DptFunctAPtrEls, Parameters, Benz, NewArray); Base := Parameters;

521. QutputGraphiciNewftrray,HorizflsisLabel,1 z, p',Maxflbs,0.0,MaxValue,-MaxValue/4,Xo,Yo, Dx,Dy, SolidLn,ThickWidth,White,True); Oldflrray ;= Newflrray; Repeat

522. Research(Parameters, Mean, SucRes)} If SucRes then begin

523. OptFunctftftrEls, Parameters, Senz, Newflrray); 0utput6raphic(01dflrray,HorizflsisLabel,'z, jib',Maxfibs,0.0,MaxValue,

524. For ic s= 1 to NumPararaeters do

525. SimpleSearchtic. := H*Parametersic3 Base[ic3; Base := Parameters; Research(SimpleSearch, Mean, SucRes); If SucRes then begin

526. DeltaPEic. := DeltaPic3/(3.0*Pi); SucOpt := SucOpt and (DeltaPCicl ( Epsilonticl) endend;1. SetKeyEvent(Event);1. ((Event.What = evKeyDown) and (Event.KeyCode = kbEsc)) then SucOpt := True; Until SucOpt; CloseGraph;

527. MonteCar1o.SetScreenMode(snCOSO); RestoreScreen; end;end; { Optimize }begin { Approximate > For is := 1 to NuraEls do begin

528. PtrEls := ElementsA.At(is-l>;

529. For js C to 100 do Genztjs. := 0.0;

530. For js := 0 to 100 do For ks := 0 to 100 do GenzEjsl s= GenzEjs3 + PtrElsA.QuantPtrElsA.PLCXR,ks,js.; Yext := 0.0;

531. For js ;= 0 to 100 do If Yext ( SenzCjs. then begin Yext != GenzEjs3; Xext := js; end;

532. For js s= 1 to 4 do EpsilonEjsl ¡= BeginValueEjs3*1.0e-12; Repeat

533. Optinize(PtrEls, 4, BeginValue, Delta, Epsilon); Dig s= New(PAppDataDlg, Init); DlgA.SetAppData(BeginValue, Delta); DlgRes := Desktop".ExecView(Dlg);

534. DlgRes 0 cnCancel then DlgA.GetftppData(BeginValue, Delta) Dispose(Dig, Done); Until (DlgRes = caCaricel); PtrEls".Coeff := BeginValue; PtrEls". Coeff73 $=1.0; end;end;end; { Approximate }

535. PtrEls := Eleaents".At(ic-l); If PtrEls".CoeffE73 = 1.0 then With PtrEls" do begin

536. For jc := 0 to 100 do 6enzjc3 := 0.0; For jc := 0 to 100 do For kc ;= 0 to 100 do GenzEjc3 := 6enzEjc3 + PtrEls". QuantEPtrEls".ALCXR,kc,jc3; HorizAsisLabel := 'For-and-aft distribution of ' +Name+alcxr+'a' HaxValue ;= 0.0;