Дипломы, курсовые, рефераты, контрольные...
Срочная помощь в учёбе

Формализованный синтез структур и законов управления системами газоснабжения стартовых комплексов космических ракет

ДиссертацияПомощь в написанииУзнать стоимостьмоей работы

Согласно первому варианту структура СГ (назовем ее СГ1) предполагает наличие одной секции, а закон управления ею предписывает ее постоянное подключение к магистрали выдачи газа потребителю на всем интервале времени, определяемом заданной циклограммой потребления. Объем и давление в секции выбраны так, чтобы кривая падения давления в секции (сплошная плавная линия) всегда располагалась выше… Читать ещё >

Содержание

  • Предисловие
  • Глава 1. Формализация задачи синтеза структур и законов управления системами газоснабжения стартовых комплексов космических ракет, анализ возможных подходов к ее решению
    • 1. 1. Математическая постановка задачи синтеза структур и законов управления системами газоснабжения стартовых комплексов космических ракет
    • 1. 2. Анализ возможных подходов к решению задачи
    • 1. 3. Основные результаты
  • Глава 2. Метод синтеза структур и законов управления системами газоснабжения стартовых комплексов космических ракет
    • 2. 1. Задача синтеза структур и законов управления системой газоснабжения в случае одной секции источника питания и одной магистрали (задача 1—>1) и алгоритм ее решения
    • 2. 2. Использование модельного времени в алгоритме решения задачи 1—>
    • 2. 3. Задача синтеза структур и законов управления системой газоснабжения в случае п секций источника питания и одной магистрали (задача п—>1) и алгоритм ее решения
      • 2. 3. 1. Алгоритм решения задачи в случае двух секций источника питания и одной магистрали
      • 2. 3. 2. Алгоритм решения задачи в случае п секций источника питания и одной магистрали
      • 2. 3. 3. Использование модельного времени в алгоритме решения задачи п—>
    • 2. 4. Задача синтеза структур и законов управления системой газоснабжения в случае п секций источника питания и ш магистралей (задача п—>т) и алгоритм ее решения
    • 2. 5. Использование привязки моментов переключения функции управления к фронтам циклограммы потребления
    • 2. 6. Формирование множества обобщенных потребителей
    • 2. 7. Этапы метода формализованного синтеза структур и законов управления системами газоснабжения стартовых комплексов космических ракет
    • 2. 8. Основные результаты
  • Глава 3. Автоматизированная система синтеза структур и законов управления системами газоснабжения стартовых комплексов космических ракет
    • 3. 1. Общие сведения об автоматизированной системе синтеза структур и законов управления системами газоснабжения стартовых комплексов космических ракет
    • 3. 2. Описание логической структуры данных и алгоритмов автоматизированной системы синтеза структур и законов управления системами газоснабжения стартовых комплексов космических ракет
    • 3. 3. Функциональные возможности программы синтеза структур и законов управления системами газоснабжения стартовых комплексов космических ракет
    • 3. 4. Основные результаты
  • Глава 4. Практическая апробация метода синтеза структур и законов управления системами газоснабжения стартовых комплексов космических ракет
    • 4. 1. Синтез структур и законов управления системой газоснабжения, обеспечивающей предстартовую подачу гелия на борт ракеты «3EHHT-3SL»
    • 4. 2. Синтез структур и законов управления системой газоснабжения, обеспечивающей предстартовую подачу азота на борт ракеты «3EHHT-3SL»
    • 4. 3. Основные результаты

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

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

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

Газ в СГ указанного класса хранится в баллонах, объединенных в секции.

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

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

Таким образом, в данной работе решается задача управления проиессом выдачи газа с учетом возможности переменного подключения секций ИП к магистралям СГ.

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

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

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

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

В результате возникает задача многокритериальной оптимизации структур и законов управления СГ. Её решение оказывается невозможным без применения вычислительной техники.

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

Работа выполнялась в рамках НИР №№ 95−70, 96−22, 97−20, 98−01, проводимых Тульским государственным университетом по заказу конструкторского бюро «Арматура» (г. Ковров), в рамках научно-исследовательской темы «Гибкие системы газоснабжения — 96», утвержденной Российским космическим агентством.

Автор выражает благодарность: кандидату технических наук, доценту Владимиру Анатольевичу Мозжечкоеу — за руководство и замечательные идеи по улучшению разработанного в диссертации метода, а также за разумную осторожность по отношению к получаемым результатам, которая заставляла автора снова и снова совершенствовать алгоритм решениядоктору технических наук Евгению Михайловичу Халатову— за бесценные данные по реальным системам газоснабжения и многочисленные консультации по теме диссертациисвоей жене Маргарите Радченко — за бесконечное терпение и поддержку в сложных жизненных ситуациях.

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

Газ в СГ указанного типа хранится в баллонах стандартного объема, допускающих заполнение до известного предельно допустимого давления. Баллоны могут объединяться в секции посредством соединения их постоянными (непереключаемыми) линиями.

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

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

В отличие от предшествующих работ [1−3] учтем в постановке задачи синтеза СГ возможность переменного подключения к магистралям выдачи газа различных секций ИП в различные моменты времени и, следовательно, возможность управления процессами в СГ за счет совершения указанных переключений, то есть будем решать задачу управления процессом выдачи газа с учетом возможности переменного подключения секций ИП к магистралям СГ.

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

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

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

Выбор структуры и закона управления СГ существенно влияет на важнейшие показатели качества СГ, в частности стоимость и надёжность.

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

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

Рис. В.1. Два варианта заполнения полости.

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

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

В качестве второго примера рассмотрим два варианта структур и законов управления СГ, осуществляющей выдачу газов некоторому потребителю. Уровни давления, запрашиваемого потребителем, в данном случае заданы циклограммой потребления в форме кусочно-постоянной функции (рис. В.2.), что типично для рассматриваемого класса СГ.

Согласно первому варианту структура СГ (назовем ее СГ1) предполагает наличие одной секции, а закон управления ею предписывает ее постоянное подключение к магистрали выдачи газа потребителю на всем интервале времени, определяемом заданной циклограммой потребления. Объем и давление в секции выбраны так, чтобы кривая падения давления в секции (сплошная плавная линия) всегда располагалась выше запрашиваемого давления (сплошная ломаная линия), определяемого циклограммой потребления.

Согласно второму варианту, структура СГ (назовем ее СГ2) предполагает наличие двух секций, а закон управления ими предписывает подключение к магистрали выдачи газа потребителю вначале первой, а затем второй секции. Объем и давление в секциях и момент времени их переключения выбраны так, чтобы кривые падения давлений в секциях (пунктирная линия) всегда располагались выше Р.

П=1.

•ч.

— 1 г.

Рис. В.2. Два варианта выдачи газов из СГ. запрашиваемого давления на всем интервале времени подключения соответствующей секции к магистрали выдачи газа потребителю.

Из рис. В.2 видно, что в случае СГ2 обе секции можно опорожнять до меньшего давления, в сравнении с вариантом СГ1. Учитывая одинаковый уровень начального давления в секциях СГ и одинаковость отдаваемой массы газа в обоих вариантах (отдаваемая масса определяется только запросами потребителей и не зависит от свойств СГ при ее исправной работе), приходим к выводу о возможности обойтись меньшим запасом газа в СГ2 в сравнении с СГ1.

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

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

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

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

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

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

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

Таким образом, задача синтеза структур и законов управления СГ является задачей многокритериальной оптимизации.

Задача оптимизации структур и законов управления СГ весьма актуальна.

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

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

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

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

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

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

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

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

Достижение указанной цели предполагает решение следующих задач:

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

2. Анализ эффективности применения классических методов теории управления и оптимизации к решаемой задаче.

3. Разработка математического, алгоритмического и программного обеспечения для решения задачи синтеза структур и законов управления системами газоснабжения.

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

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

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

Она освещает широкий спектр вопросов проектирования систем газоснабжения стартовых комплексов космических ракет. В ней отражена современная передовая теория и практика проектирования такого рода систем газоснабжения.

Однако, структура СГ в ней рассматривается как жесткая, не перестраиваемая, не допускающая переменного подключения секций ИП к магистралям выдачи газа.

Более ранние монографии по данной тематике, в частности известная работа [2], освещающая проблематику синтеза систем пневмоавтоматики ракетно-космических систем, энциклопедия [3] также не затрагивали проблемы синтеза СГ с многосекционными источниками питания, переключаемыми в процессе функционирования СГ.

Концепция гибкого построения СГ, предполагающая использование многосекционного источника питания и наличие нескольких переключаемых магистралей, снабжающих конечных потребителей газом впервые в окончательно сформировавшемся виде нашла отражение в статье [4].

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

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

Фундаментальными работами в области формализации процессов функционирования СГ в части вопросов термодинамики, на которые в значительной мере опираются результаты, представленные в диссертации, являются работы [5−14]. Важные проблемы данной области освещены также в работах [15, 16].

Формализация решаемой задачи потребовала привлечения результатов, полученных в теории автоматического управления и нашедших отражение, в частности, в работах [17−29].

Полученные в диссертации результаты, касающиеся метода решения рассматриваемой задачи, в значительной мере опираются на работы по оптимальному управлению [23−30], на работы по численным методам оптимизации [3140], на работы, отражающие результаты исследований по применению машинно-ориентированных методов синтеза структур и законов управления динамическими объектами [4145].

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

• разработка методов и программного обеспечения для проектирования структур СГ и выбора их компонентов [46−55];

• разработка методов и программного обеспечения для моделирования процессов, происходящих в СГ [56−60];

• разработка методов управления СГ [61].

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

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

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

Научная новизна результатов диссертации состоит в следующем.

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

2. Разработан формализованный метод синтеза структур и законов управления СГ стартовых комплексов космических ракет, оптимальных по совокупности показателей качества.

3. Разработаны способы ускорения анализа отдельных вариантов и отсечения множеств заведомо неприемлемых либо неоптимальных вариантов структур и законов управления СГ стартовых комплексов космических ракет.

Практическая ценность работы.

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

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

Внедрение результатов работы.

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

• внедрены на предприятии КБ «Арматура» (г. Ковров), действующем в составе Российского космического агентства,.

• переданы в фонд алгоритмов и программ САПР Российского космического агентства с рекомендацией использования его на предприятиях агентства.

Апробация работы.

Основные результаты и положения диссертационной работы докладывались и обсуждались на научно-технических конференциях (НТК) в Ковровской государственной технологической академии в 1996, 1998 гг., в Тульском артиллерийском инженерном институте в 1999 г., на ежегодных конференциях профессорско-преподавательского состава Тульского государственного университета (ТулГУ) в 1996;1999 гг., на НТК, посвященной 40-летию кафедры систем автоматического управления ТулГУ в 1997 г.

Диссертация содержит введение, 4 главы, заключение и приложение.

Основные результаты диссертации отражены в публикациях [6269].

Заключение

.

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

Решение указанной задачи опирается на следующие научные и практические результаты диссертационной работы:

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

2. Систематизированы и математически описаны основные критерии сопоставления и выбора оптимальных структур и законов управления СГ стартовых ракетных комплексов космических ракет.

3. Проведен анализ возможности решения рассматриваемой задачи известными методами теории оптимального управления, включая методы вариационного исчисления, принцип оптимальности Понтрягина, метод динамического программирования Беллмана.

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

5. Разработан высокоформализованный метод синтеза структур и законов управления СГ стартовых комплексов космических ракет, оптимальных по совокупности показателей качества.

6. Предложены способы ускорения анализа отдельных вариантов и отсечения множеств заведомо неприемлемых либо неоптимальных вариантов структур и законов управления СГ стартовых комплексов космических ракет.

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

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

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

10. Показана эффективность разработанного метода и программного обеспечения на примерах синтеза структур и законов управления СГ азотом и гелием стартового комплексов космической ракеты «Зенит-ЗЗЬ».

11. Алгоритмическое и программного обеспечение синтеза оптимальных структур и законов управления СГ, созданное в результате работ над диссертацией, внедрены на предприятии КБ «Арматура» (г. Ковров), действующем в составе Российского космического агентства и переданы в фонд алгоритмов и программ САПР Российского космического агентства с рекомендацией использования его на предприятиях агентства.

Показать весь текст

Список литературы

  1. Ю.Л., Петров P.A., Халатов Е. М. Системы газоснабжения и устройства пневмоавтоматики ракетно-космических комплексов.— М.: Машиностроение, 1997. — 464 с.
  2. В.Ф. Пневмоавтоматика ракетно-космических систем./Под ред. акад. B.C. Будника — М.: Машиностроение, 1979. — 168 с.
  3. Космонавтика. Энциклопедия / Под ред. В. П. Глушко — М.: Сов. Энциклопедия, 1985. — 528 с.
  4. Е.М. Концепция гибкой структуры систем газоснабжения стартовых комплексов космических ракет // Справочник. Инженерный журнал. — 1998. — № 1 — с.48−52.
  5. М.А. Некоторые случаи течения газа. — М. Оборонгиз, 1951. — 490 с.
  6. М.А. Вопросы термодинамики тела переменной массы. — М.: Оборонгиз, 1961. — 528 с.
  7. Е.В., Крейнин Г. В. Теория и расчет силовых пневматических устройств. — М: АН СССР, 1960. — 278 с.
  8. Пневматические устройства и системы в машиностроении: Справочник. / Под общ. редакцией Е. В. Герц. — М. Машиностроение, 1981. —408 с.
  9. М.П., Новиков И. И. Техническая термодинамика. — М., 1968,-304 с.
  10. Г. Н. Прикладная газовая динамика. — М. 1969. — 824 с.
  11. .М. Введение в динамику тепломеханических систем. — Тула: ТПИ, 1969. — 102 с.
  12. .М. Основы динамики тепломеханических систем. Учебное пособие. — Тула.: ТулПИ, 1982. — 83 с.
  13. .М. Основы управления и регулирования тепломеханических систем. Учебное пособие. — Тула.: ТулПИ, 1982. — 59 с.
  14. .М. Тепломеханика. Учебное пособие. — Тула: ТПИ, 1984. — 100 с.
  15. В.И. Некоторые вопросы динамики пневматического редуктора давления. — Известия ВУЗ-ов. — 1966. — № 8. — с. 115−119.
  16. Е.Е., Чекмазов В. И. Газовые и гидравлические системы управления: учебное пособие. — Тула, ТПИ, 1885. — 79 с.
  17. Справочник по теории автоматического управления. /Под ред. A.A. Красовского — М.: Наука, Гл. ред. Физ.-мат. Лит. 1987. -— 712 с.
  18. Я.Н. Автоматическое управление. — М. Наука, 1978.
  19. Е.П. Теория линейных систем автоматического регулирования и управления. — М. 1978. — 256 с.
  20. Теория автоматического управления. 4.1. Теория линейных систем автоматического управления. / Под ред. A.A. Воронова — М., «Высшая школа», 1977. — 303 с.
  21. Теория автоматического управления. 4.2. Теория нелинейных систем автоматического управления./ Под ред. A.A. Воронова — М., «Высшая школа», 1977. — 320 с.
  22. JI.C., Болтянский В. Г., Гамкрелидзе В. В., Мищенко Е. Ф. Математическая теория оптимальных процессов. — М., Наука, 1969.
  23. В.Г. Математические методы оптимального управления. — М., Наука, 1969. — 408 с.
  24. A.A. Основы теории оптимальных автоматических систем. — М. Физматгиз. 1963.
  25. В.А., Фалдин Н. В. Теория оптимальных систем автоматического управления. — М.: Наука, Гл. ред. физ.-мат. Лит. 1981. — 336 с.
  26. М., Фалб П. Оптимальное управление. — М.: Машиностроение. 1968.
  27. Р. Динамическое программирование. — М. ИЛ, 1960. -400с.
  28. Р., Дрейфус С. Прикладные задачи динамического программирования. — М.: Наука, 1965.
  29. Р., Каллаба Р. Динамическое программирование и современная теория управления. — М.: Наука, 1969.
  30. Д. Прикладное нелинейное программирование.— М.: Мир, 1975. — 532 с.
  31. Гил Ф., Мюррей У., Райт М. Практическая оптимизация. — М.: Мир, 1985. — 509с.
  32. Дж., Малькольм М., Моулер К. Машинные методы математических вычислений. — М., 1980. — 360 с.
  33. H.H. Методы оптимизации — М. Наука, 1978. — 562с.
  34. H.H. Численные методы в теории оптимальных систем.— М. Наука, 1971. — 523 с.
  35. H.H. Элементы теории оптимальных систем. — М. Наука, 1975. —458 с.
  36. A.A., Финкелынтейн Ю. Ю. Дискретное программирование — М. Сов. Радио. — 1969.
  37. О.П., Адельсон-Вельский Г.М. Дискретная математика для инженера. — М. Энергоатомиздат, 1988. — 480 с.
  38. Д.Б., Гольштейн Е. Г. Линейное программирование. Теория, методы и приложения. — М.: Наука, 1969.
  39. Современное состояние теории исследования операций. /Под ред. H.H. Моисеева. — М.: Наука, 1979. — 464с.
  40. М. Введение в методы оптимизации. — М.: Наука. 1977. —343 с.
  41. И.П. Введение в автоматизированное проектирование технических устройств и систем. — М.: Высшая школа, 1980. —312 с.
  42. Т. Исследования сложных систем по частям — диакоптика. — М.: Наука, 1972.
  43. Ю.Х. Методы автоматического поиска решений при проектировании сложных технических систем. — М.: Радио и связь, 1982. — 152 с.
  44. В.Н. Основы автоматизации схемотехнического проектирования. — М.: Энергия. 1979. — 392 с.
  45. JI.C. Оптимизация больших систем. / Под ред. A.A. Первозванского. — М.: Наука, 1975. — 431 с.
  46. Projectirung mit intelligenter Rechnerunterstutzung / Feldmann Dierk G., Nisser Kay Peter // Olhydraul und Pneum. — 1992., — 36 № 3 — стр. 169−175. 129. — Нем., рез. англ.
  47. САЕ in der Hydraulik — Dichtung und Warheit // Technica (Suisse). — 1993. — 42, № 8. — стр. 14−17. — Нем.
  48. B.B. // Совершенствование и автоматизация производственных процессов: Тезисы доклада. / Челябинский государственный технический университет. — Челябинск, 1991. — стр. 4−5 — Рус.
  49. Optimisierte Auslegung von Pneumatikanlagen // Druklufttechnik. — 1994. — № 7−8. стр. 48−49. Нем.
  50. Shaltmen-Projectprogram hat zusatzliches Revisionsmodul // Maschinenmarkt. — 1994. — 100 № 12 стр. 79. Нем.
  51. Progettazione con ELCAD di impianti oleoidraulici // Fluid: Appar. idraul. e pheum. — 1993. — 33. № 353 — стр. 99. Ит.
  52. Konstructions-Software fur den Rohrleistungs- und Anlagenbau. // Ind. — Anz. 1994. — 166, № 27−28, стр. 53 — Нем.
  53. Zhang Xianglin e.a. // Jichuang yu yeya = Mach, tool and Hydraul. — 1994. — № 6 — стр. 321−324. — Кит.- рез. англ.
  54. Fluid power software showcase / Hitchcox A. // Hydraul and Pneum. (USA) — 1995. — 48, № 2. — стр. 31−33. Англ. Место хранения — ГПНТБ.
  55. Planungsshinweise fur Druckluftnetze / Schmitter Wolfgang // Drucklufttechnik. — 1995., № 9−10. Стр. 52, 54−56.
  56. Simulare Fmpianto // Fluid: Appar. idraul. e pheum. — 1991. — 31. № 330 —стр. 42. Ит.
  57. Modellazione di sistemi pneumatici / Ferrarezi Carlo // Fluid: Appar. idraul. e pheum. — 1993. — 33. № 346 — стр. 48−59. Ит.
  58. Сравнение методов расчёта динамики пневматических исполнительных механизмов. // Донской А. С., Лазариди Х. С., Свидская Н.Е.- СПб. гос. университет технологии и дизайна. — СПб., 1995. — 10 с. рус. деп. в ЦНИИТЭИлегпром 8.8.95, №№ 3614-лп 95.
  59. Kanda Kunio // Yuatsu to Kukiatsu = J. Jap. Hydraul. and Pneum. Soc. — 1996. — 26, № 1 — стр. 95−97 — Яп.
  60. Simularea sistemelor hidraulice metode de studiu si modelare matematica / Auram M., Aupei O. // Constr. mas. — 1994. — 46., № 11−12, стр. 17−21, VIII, IX — Рум., рез. англ., фр., нем.
  61. П.Д. Обратные задачи динамики управляемых систем. Линейные модели. — М.: Наука, 1987.
  62. Е.М., Петрищев П. К., Мозжечков В. А. Оптимизация законов управления системами газоснабжения стартовых комплексов космических ракет. // ТулГУ. — Тула, 1998. 42 с. Деп. в ВИНИТИ 17.06.98, № 1818-В98.
  63. P.A., Халатов Е. М., Петрищев П. К., Мозжечков В. А. Синтез оптимальных структур и законов управления системами газоснабжения стартовых комплексов комических ракет. // Справочник. Инженерный журнал. — 1999. — № 1. — с. 18−25.
  64. П.К., Халатов Е. М., Мозжечков В. А. Автоматизированный синтез оптимальных структур и законов управления систем газоснабжения стартовых комплексов. ЦНИИМАШ. Фонд алгоритмов и программ по ракетно-космической технике. Per. № 4083, 1999 г.
  65. П.К., Мозжечков В. А. Методы решения задачи оптимального синтеза систем газоснабжения стартовых комплексов // Сборник тезисов докладов XII НТК Тульского АИИ. — Тула, 1999. — с. 676, 677.
  66. Основная программа. Файл Sps tv. pas$A-, B-, D+, E+, F+, G-, I+, L+, N+, 0~, P-, Q-, R-, S+, T-, V+, X+}$M 16 384,0,655 360}$Define TurboVision }
  67. Program SintezOfPneumoSystems —
  68. Uses Simula, Types, Crt, Dos, Keys, ThingCol, Objects,
  69. BGI6, Graphics, GPrint, Graph, Math, RealLn, SPSDlg, App, Menus, Drivers, Views, Memory, Dialogs, MsgBox, StdDlg, Gadgets, Look — Const NW: Longlnt = 0 —
  70. NumWritten: IntType = 0 — Const NStep: Word = 100 W: RealType =4 001. NSepMax Word = -mMax Word = 3nMax Word = 41. NSepMin Word = 4mMin Word = 3nMin Word 31. Объём одного баллона }
  71. MaxSection = 255 — Var fg, fq, fqM: PGraphic -tau, fqi, fgi: PThingCollection
  72. SepTimes Variants mfg, mfq Users Oper User U,
  73. BeginU, PlaceU, ShortU: nSep { N m, n, d Fronts: Counts: I S
  74. PThingCollection PThingCollection PCollection — PCollection — POperation — PUser —
  75. Времена переключений } { Полная информация о вариантах }1. String }, 1. Boolean Char —
  76. OMem, OMax: Longint — Begin
  77. OMem := MemAvail — OMax := MaxAvail — SPS. Init — SPS. Run — SPS. Done —
  78. WriteLn ('© DP Technology, Corp &1. Forward Forward Forward
  79. DP CrazyGraphics, Inc, 1996−99')
  80. Типы данных, используемые в программе. Файл Types. pas$ F+}
  81. Unit Types — { Базовые объектные типы для программы SPS } InterFace
  82. Uses Simula, Graph, Graphics, Objects, ThingCol, Crt — { Давление атмосферы } { Расход — г/сек 10.5000 } { Время — минуты } { Объем — литры } Const LName = 30 -1.omment = 100 — LField = 20 —
  83. PSNGraph = ATSNGraph — TSNGraph = Object (TGraphic)1. Constructor Init —
  84. Procedure InsertPoint (XCoord, YCoord: Real -1. Comment: String) -1. Procedure Draw -1. End -1.tType = Longlnt —
  85. PSpecialStringCollection = ATSpecialStringCollection — TSpecialStringCollection = Object (TStringCollection)
  86. Function Compare (Keyl, Key2: Pointer: Integer -1. Virtual -1. End —
  87. PNoSortStringCollection = ATSpecialStringCollection — TNoSortStringCollection = Object (TStringCollection)
  88. Function Compare (Keyl, Key2: Pointer: Integer -1. Virtual -1. End —
  89. TRealFunction = Function (t: RealType) TIntFunction = Function (t: IntType) PGas = ATGas -1. RealType — IntType -1. TGas = Record1. Name Comment mM1. End —
  90. PSection = ATSection TSection = RecordС1. Po, Pe n W1. End -1. PUser = ATUser —
  91. TUser = Object (TCollection)
  92. String LName. — String [ LComment ] Real -1. RealType1. RealType Word — RealType
  93. Емкость секции } { Начальное и } { конечное давление } { Количество баллонов в секции } { Объем баллона }
  94. Name: String — { Уникальное имя потребителя } V: RealType — { Объем }t0: RealType — { Начало первой операции } Constructor Init (N: String — aV: RealType) ,
  95. Destructor Done — Virtual —
  96. Function te: RealType — { Конец последней операции } Function q (t: RealType): RealType — { Запрашиваемоедавление }
  97. Function g (t: RealType): RealType — { Расход } Procedure Save (Var f: File) — Procedure Load (Var f: File) — Procedure Print (FName: String) -1. End —
  98. POperation = ATOperation — TOperation = Object (TObject) {Record}1. OName UName ONumber OTypeнаддув }1. CBegin PrevOpзавершены }1. BTime, ETime Gas Pдавление }1. Go, tgпадения расхода }mгаза }
  99. Constructor Init (ON, UN: String — ONum: Word) —
  100. Destructor Done — Virtual —
  101. Procedure Save (Var f: File) —
  102. Procedure Load (Var f: File) —
  103. Length (SI) <= Length ( S2 ) Then Compare If Length ( SI )> Length (S2) Then Compare1. End —
  104. TNoSortStringCollection } Function TNoSortStringCollection. Compare -1. Begin {-1 if Keyl Key2 }1. Compare := -1 -1. End — { TUser }
  105. Constructor TUser. Init — Begin1. herited Init (1, 1) —
  106. String — { Уникальное имя операции }
  107. String — { Имя пользователя }: Word — { Номер операции }: Byte — { Тип операции продувка или
  108. Byte — { Условие начала }: PStringCollection — { Коллекция имен ONameопераций, которые должны быть
  109. Время начала операции }: RealType — { Время завершения операции }: TGas — { Газ }
  110. RealType — { Достигаемое/поддерживаемое
  111. Начальное значение расхода }: RealType — { Постоянная времени экспоненты
  112. RealType — { Требуемая/прокачиваемая масса1. N — = aV —
  113. MaxLonglnt — { Просто очень большое число }1. Name Vto1. End —
  114. Destructor TUser. Done — Begin1. herited Done1. End —
  115. Procedure TUser. Save — Var I: Integer — Begin
  116. BlockWrite (f, Name, SizeOf (Name)) — BlockWrite (f, V, SizeOf (V)) — I := Count 1 —
  117. BlockWrite (f, I, SizeOf (I)) —
  118. For I := 0 To Count 1 Do TOperation (At (I)Л).Save (f) -1. End —
  119. Procedure TUser. Load — Var I, J: Integer — Begin
  120. Procedure TUser. Print — Var I: Integer -f: Text — Begin1. Fname = '' Then Begin
  121. AssignCRT (f) — Rewrite (f)1. End Else Begin1. Assign (f, FName) -$ 1-}1. Append (f) -$ 1+}
  122. IOResult <> 0 Then Rewrite (f)1. End —
  123. WriteLn (f, 'Name: ', Name) — WriteLn (f, ' V: ', V: 20: 5) — Close (f) —
  124. For I := 0 To Count 1 Do TOperation (At (I)л).Print (FName)1. End —
  125. Function TUser. te — Var I: Integer -r: RealType — Beginr := Self. tO -1. For I := 0 To Count 1 Do
  126. TOperation (At (I)л J. ETime > r
  127. Then r := TOperation (At (I)A).ETime -te := r1. End -1. Function TUser. q —
  128. Var NCountOp: Integer — { Номер текущей операции } CountOp: POperation — { Текущая операция } Found: Boolean — Begin1. Found := False —
  129. For NCountOp := 0 To Count 1 Do Begin
  130. CountOp := At (NCountOp) — If (t ≥ CountOpA. BTime) Andt ≤ CountOpA. ETime) Then Begin Found := True — Break End1. End —
  131. Пока условия завершенности предыдущих операций опускаются } If Not Found Then q := 0 Else q := CountOp''4. P -1. End -1. Function TCJser. g —
  132. Function PaintG (tB, gB, { Начальное время и расход }tg, { Постоянная времени экспоненты }t { Текущее время }1. RealType): RealType -1. Var PG: RealType — Begin
  133. Экспонента, спадающая от точки tB, gB }до нуля с постоянной времени tg }
  134. PG := Exp (tg * t + Ln (gB) + tg * tB) — PaintG := PG1. End —
  135. Var NCountOp: Integer — { Номер текущей операции } CountOp: POperation — { Текущая операция } Found: Boolean — Begin1. Found := False —
  136. For NCountOp := 0 To Count 1 Do Begin
  137. CountOp := At (NCountOp) — If (t ≥ CountOpA. BTime) Andt ≤ CountOpA. ETime) Then Begin Found True — Break End1. End —
  138. Пока условия завершенности предыдущих операций опускаются } If Not Found Then g := 0 Else Case CountOpA. OType Of Produv: g := CountOpA. Go —
  139. Nadduv: g := PaintG (CountOpA.BTime, CountOpA. Go, 1. CountOpA. tg, t) -1. Nadduv: With CountOpA Dog := Exp (tg * t + Ln (Go) + tg * BTime)1. End1. End -1. TOperation }
  140. Constructor TOperation. Init — Begin1. herited Init —
  141. PrevOp := New (PStringCollection, Init (1, 1)) -1. Complete := False —
  142. OName ON — UName := UN — ONumber := ONum1. End —
  143. Destructor TOperation. Done — Begin
  144. Dispose (PrevOp, Done) — Inherited Done1. End —
  145. Procedure TOperation. Save -1. Var I: Integer -1. PS: PString — Begin
  146. BlockWrite (f, PSA, SizeOf (PS"")) -1. WriteLn (I)1. End —
  147. BlockWrite fr BTime r SizeOf BTime)) —
  148. BlockWrite f, ETime r SizeOf ETime)) —
  149. BlockWrite f, Gas f SizeOf Gas)) /
  150. BlockWrite f, P r SizeOf P))
  151. BlockWrite fr Go / SizeOf Go)) f
  152. BlockWrite f, tg r SizeOf tg)) T
  153. BlockWrite f, m r SizeOf m)) -1. End —
  154. Procedure TOperation. Load — Var I, J: Integer -1. S: String — Begin
  155. BlockRead (f, S, SizeOf (S)) —
  156. PrevOp Insert (NewStr (S)) -1. End —
  157. BlockRead (fr BTime f SizeOf { BTime)
  158. BlockRead (f, ETime f SizeOf (ETime)
  159. BlockRead (f, Gas t SizeOf (Gas))
  160. BlockRead (fr P r SizeOf (P)) —
  161. BlockRead (fr Go f SizeOf (Go))
  162. BlockRead (fr tg t SizeOf (tg)) —
  163. BlockRead (fr m / SizeOf (m)) -1. End —
  164. Procedure TOperation. Print — Var I: Integer — PS: PString — f: Text — Begin1. Fname = '' Then Begin
  165. AssignCRT (f) — Rewrite (f)1. End Else Begin1. Assign (f, FName)1. Append if)-1. End r
  166. WriteLn f, ' OName: ', OName) —
  167. WriteLn fr ' UName: ', UName) —
  168. WriteLn f, ' ONumber: ', ONumber) —
  169. WriteLn fr ' OType: ', OType) —
  170. WriteLn fr ' CBegin: ', CBegin) —
  171. WriteLn (f, ' BTime: ', BTime: 20: 5) /
  172. WriteLn (f, ' ETime: ', ETime: 20: 5) i
  173. WriteLn (f, ' Gas: ', Gas Name) —
  174. WriteLn (f, ' P: P: 20: 5) r
  175. WriteLn (f, ' Go: ', Go 20: 5 —
  176. WriteLn (f, ' tg: ', tg 20: 5 -1. WriteLn (f, ' m: m) r
  177. For I := 0 To PrevOpA. Count-1 Do Begin1. PS := PrevOpA. At (I) —
  178. WriteLn (f, ' Completed: PSA) -1. End -1. Close (f) -1. End -1. TSNGraph }
  179. Constructor TSNGraph. Init — Begin
  180. TThingCollection.Init (10, 10, SizeOf (TCommentCoord)) -1. XUp := 0 -1. XDown: = 0 -1. YUp := 0 -1. YDown := 0 -1. HeightX := 0 -1. WidthY := 0 -1. End —
  181. Procedure TSNGraph. InsertPoint — Var Coord: TCommentCoord — Begin1. Count = 0 Then Begin
  182. MaxX := XCoord — MaxY := YCoord — MinX := XCoord — MinY := YCoord -1. End Else Begin
  183. XCoord > MaxX Then MaxX := XCoord — If YCoord > MaxY Then MaxY := YCoord — If XCoord < MinX Then MinX := XCoord — If YCoord < MinY Then MinY := YCoord —
  184. End — Coord. X := XCoord — Coord. Y := YCoord — Coord. Comment := Comment — Insert (NewThing (Coord))1. End —
  185. Procedure TSNGraph. Draw — Var OGC: Word -1. PC: PCommentCoord —
  186. Calculator: Integer — Begin
  187. OGC := GraphColor — GraphColor := GetBkColor — Inherited Draw — PC := At (0) — GraphColor := OGC —
  188. For Calculator := 0 To Count 1 Do Begin1. PC := At (Calculator) —
  189. PieSlice (TGraphic.X (PCA.X), TGraphic. Y (PCA.Y), 0, 360, 2)
  190. Процедуры рисования графиков. Файл DrawGr. inc
  191. Var vFile: File Of TVariant — Const vName = 'Variants.$$$ 1 —
  192. Function Pc (Rest: RealType — Baloons: Word — U: String): RealType — Forward —
  193. Function Rel (Baloons: Word — U: String): RealType — Forward — { Процедуры рисования графиков }
  194. Procedure DrawStatusLine (StatLine: String) —
  195. Var ViewPort: ViewPortType -1. Begin
  196. GetViewSettings (ViewPort) —
  197. SetViewPort (0, GetMaxY TextHeight ('Gg'), GetMaxX, GetMaxY, ClipOff) -1. ClearViewPort —
  198. OutTextXY (0, 0, StatLine) —
  199. With ViewPort Do SetViewPort (XI, Yl, X2, Y2, Clip) -1. End —
  200. Procedure DrawGraph (Graphic: PSNGraph) -1. Var Key: Char — {gd, gm: Integer -1. Begin$IfDef TurboVision } DoneSysError- DoneEvents- DoneVideo- DoneMemory- {$EndIf }1.itScreen -gd := Detect -1.itGraph (gd, gm, ' ') —
  201. Graphic".SetWindow (100, 10, GetMaxX 20, GetMaxY — 30) — Graphic".SetColors (White, White, White, White) — Graphic".SetDiv (SepOn, SepOn, LinesOff, LinesOff) — Graphic".SetText (10, 4 0) — Graphic".Draw — Repeat
  202. DrawStatusLine ('FlO-печать Esc-закончить просмотр1) -1. Key := ReadKey -1. Key = ExtCode Then1. ReadKey = FlOKey Then1. Begin1. Repeat
  203. InitPrn (PrnNum) Then Begin
  204. DrawStatusLine ('Esc-прервать печать') — CopyToPrn (0, 0, GetMaxX, GetMaxY 20,
  205. GetBkColor, 1, 1, 1, False) — ClearViewPort — Graphic".Draw — Break1. End Else Begin
  206. DrawStatusLine ('Принтер не готов ! Escпрервать Enter-продолжить') —
  207. ReadKey = EscKey Then Break1. End -1. Until False1. End —
  208. Until Key = EscKey — DoneScreen — {$IfDef TurboVision } InitMemory-1.itVideo- InitEvents- InitSysError- Application".Redraw- {$EndIf } End —
  209. Procedure DrawNRest — Var Graphic: PSNGraph —
  210. Vars: PThingCollection — I, J: Integer — V, W: TVariant — Find: Boolean — Sm, SNSep, Sd: String — Begin1. ReSet (vFile) —
  211. Vars := New (PThingCollection, Init (5, 1, SizeOf (TVariant))) — Graphic := New (PSNGraph, Init) —
  212. For I := 0 To Variants'*.Count 1 Do
  213. While Not EoF (vFile) Do Begin
  214. V := TVariant (Variants".At (I)A) —
  215. Read (vFile, V) — Find := False —
  216. For J := 0 To VarsA. Count 1 Do Begin
  217. W := TVariant (VarsA.At (J)A) — If (V.n = W. n) And (V.m = W. m) Then Begin
  218. Find := True — If V. Rest < W. Rest
  219. Then TVariant (VarsA.At (J)A) := V1. End -1. End —
  220. Not Find Then VarsA. Insert (VarsA.NewThing (V)) -1. End —
  221. For I := 0 To VarsA. Count 1 Do Begin
  222. V := TVariant (VarsA.At (I)A) — Str (V.m, Sm) —
  223. Str (V.NSep, SNSep) — Str (V.d, Sd) —
  224. GraphicA.InsertPoint (V.n, V. Rest, 'N=' + SNSep + ' m=' + Sm + ' d=' + Sd) — End -1. nMax = nMin Then
  225. Begin GraphicA. MaxX := nMax + 1 — GraphicA. MinX := nMin 1 End — DrawGraph (Graphic) — Dispose (Graphic, Done) — Dispose (Vars, Done) -1. End —
  226. Procedure DrawDRest — Var Graphic: PSNGraph — I: Integer — V: TVariant — Sm, SNSep, Sn: String — Begin1. ReSet (vFile) —
  227. Graphic := New (PSNGraph, Init) —
  228. For I := 0 To Variants".Count 1 Do
  229. While Not EoF (vFile) Do Begin
  230. Объектные типы данных для интерфейса. Файл TVTypes. inc1. Типы TV } Туре1. PSPSInfо = ATSPSInfo —
  231. TSPSInfо = Object (TInfoStatus)
  232. Params: PStaticText — Constructor Init (T: String) Procedure UpdateParams (Status1. Word1. NSep, n, m, d: Byte)1. Virtual {
  233. Procedure UpdateVectors (Status
  234. Word — U: String — Rest: RealType)1. Virtual1. End
  235. SPSApp = Object (TApplication)1.foWindow: PSPSInfо — E: TEvent -f: Text — Heap: PHeapView- UserWindow: PUserWindow — NumOfComb,
  236. CalculatedComb: RealType — Constructor Init — Destructor Done — Virtual — Procedure InsertVar (NSep, m, n, d :
  237. Rest: RealType nBaloons: Word U: String) — Function q (Users: PCollection — t RealType — { Обобщенное запрашиваемое давление }
  238. Function g (gUsers: PCollection — t: RealType — { Обобщенный расход }
  239. Procedure CalcQ (Users: PCollection — Procedure CalcG (CgUsers: PCollection1. Byte -r. r1. RealType) :1. RealType) :fq: PGraphic) — fg: PGraphic)1. Virtual
  240. Procedure PrintResult (Name: String) —
  241. Procedure Calculation — Procedure N20ne — Procedure N20neM — Procedure N2M —
  242. Procedure OutOfMemory — Virtual — Procedure Idle — Virtual — Procedure About —
  243. End — { Implementation } { SPSApp }1. Constructor SPSApp. Init -1. Var R: TRect -1. Begin
  244. Users := New (PCollection, Init (1, 1)) —
  245. DisableCommands (cmDel, cmDelAll, cmNRest, cmDRest, cmStNad .) — SepTimes := New (PThingCollection, Init (5, 1, SizeOf (RealType)))
  246. Variants := New (PThingCollection, Init (5, 1, SizeOf (TVariant
  247. Assign (vFile, vName) — Inherited Init — GetExtent® — Dec (R.B.X) —
  248. R.A.X := R.B.X 9- R.A.Y := R.B.Y — 1- Heap := New (PHeapView, Init®) — Insert (Heap)-1. End -1. Destructor SPSApp. Done -1. Begin {
  249. Dispose (Gl, Done) — Dispose (G2, Done) —
  250. Dispose (SepTimes, Done) —
  251. Dispose (Variants, Done) -$ 1-}
  252. Erase (vFile) — If IOResult <> 0 Then -$ 1+}
  253. Dispose (Users, Done) — Dispose (Heap, Done) — Inherited Done1. End —
  254. Function SPSApp. SelectSys -1. Var R: TRect -1. Begin1. UsersA. FreeAll —
  255. GetFileName ('*.sps', DataFile) = cmCancel Then Begin SelectSys := False — Exit End — tO := MaxLonglnt — te := 0 -1.adUsers (DataFile) —
  256. EnableCommands (cmCalculation .) -1. SelectSys := True —
  257. ApplicationA.GetExtent (R) -1. R.B.X := R.B.X Div 2 -1. R.B.Y := R.B.Y 2 —
  258. UserWindow := New (PUserWindow, Init (R, Users, 'Потребители')) DeskTopA. Insert (UserWindow)1. End —
  259. Procedure SPSApp. SelectMethod — Var Dialog: PDialog — R: TRect —
  260. Control: Word — M, Fr: PView — Begin
  261. R.Assign (0, 0, 43, 11) —
  262. Dialog := New (PDialog, Init (R, 'Выбор метода решения')) — DialogA. Options := Options or ofCentered — With DialogA Do Begin
  263. R.Assign (4, 2, 39, 5) — M := New (PRadioButtons, Init (R, NewSItem ('n'+#26+'l',
  264. NewSItem ('n'+#26+'l, метод модельного времени', NewSItem ('n'+#26+'m', Nil))))) -1.sert (M) —
  265. R.Assign (9, 6, 33, 7) —
  266. Fr := New (PCheckboxes, Init (R,
  267. FrA.SetData (Byte (Fronts)) —
  268. Control := DeskTopA. ExecView (Dialog) -1. Control <> cmCancel1. Then Begin1. MA. GetData (Method) —
  269. FrA.GetData (Byte (Fronts)) -1. End —
  270. Dispose (Dialog, Done) -1. End —
  271. Procedure SPSApp. SetPrices — Var P: Record1. Pb, PI, Pg, 1. Relpk, Relb, 1. Rell: Real -1. End-1. Dig: PDialog -1. R: TRect —
  272. Control: PView — С: Word -1. Begin1. P. Pb := Pb -1. P. PI := PI -1. P. Pg := Pg -1. P. Relpk := Relpk -1. P. Relb := Relb -1. P. Rell := Rell —
  273. R.Assign (21, 4, 58, 19) —
  274. New (Dig, Init (R, 'Цены и вероятности')) —
  275. DlgA.Options := DlgA. Options or ofCenterX or ofCenterY —
  276. R.Assign (21, 3, 34, 4) —
  277. Control := New (PRealLine, Init (R, 20, 10)) — DlgA. Insert (Control) — R. Assign (2, 3, 20, 4) —
  278. DlgA.Insert (New (PLabel, Init (R, 'Стоимость баллона', Controlr
  279. R.Assign { 21, 4, 34, 5) —
  280. Control := New (PRealLine, Init (R, 20, 10)) — DlgA. Insert (Control) — R. Assign (2, 4, 18, 5) —
  281. DlgA.Insert (New (PLabel, Init (R, 'Стоимость линии', Control)) R. Assign (21, 5, 34, б) —
  282. Control := New (PRealLine, Init (R, 20, 10)) — DlgA. Insert (Control) — R. Assign { 2, 5, 17, 6) —
  283. DlgA.Insert (New (PLabel, Init (R, 'Стоимость газа', Control))) R. Assign (11, 8, 34, 9) —
  284. Control := New (PRealLine, Init (R, 20, 10)) — DlgA. Insert (Control) — R. Assign (2, 8, 10, 9) —
  285. DlgA.Insert (New (PLabel, Init (R, 'Клапана', Control))) — R. Assign (11, 9, 34, 10) —
  286. Control := New (PRealLine, Init (R, 12, 10)) — DlgA. Insert (Control) — R. Assign (2, 9, 10, 10) -1. Control)))1. R, 'Линии
  287. Control))) — cmOK, bfDefault)) -cmCancel, bfNormal))
  288. DlgA.Insert (New (PLabel, Init (R, 'Баллона' R. Assign (11, 10, 34, 11) —
  289. Control := New (PButton, Init (R, '~C~ancel' DlgA. Insert (Control) — R. Assign (3, 7, 35, 8) —
  290. Control := New (PStaticText, Init (R, 'Вероятности безотказной работы: ')) —
  291. DlgA.Insert (Control) — R. Assign (3, 2, 30, 3) —
  292. Control := New (PStaticText, Init (R, 'Стоимостные характеристики:'))Г
  293. DlgA.Insert (Control) — DlgA. SelectNext (False) — DlgA. SetData (P) — С := DeskTop"1. ExecView (Dig) — If С <> cmCancel Then Begin
  294. DlgA.GetData (P) — Pb := P. Pb PI := P. P1 Pg := P. Pg Relpk := P. Relpk — Relb := P. Relb — Rell := P. Rell -1. End -1. Dispose (Dig, Done) -1. End —
  295. Procedure SPSApp. SetCalcParams, Var Params: Record
  296. NSepMin, NSepMax, mMin, mMax, nMin, nMax, nStep: Real1. End -1. Dig: PDialog -1. R: TRect —
  297. Control: PView — С: Word — Begin
  298. Params.NSepMin Params. NSepMax Params. mMin Params.mMax Params. nMin Params.nMax Params. nStep
  299. NSepMin = NSepMax = mMin = mMax = nMin = nMax := nStep — R. Assign (11, 5, 68, 18) —
  300. R.Assign (46, 3, 54, 4) -1. R, 3, 0))
  301. R, 'Минимальное количество участков
  302. Control := New (PRealLine, Init (R, 3, 0)) — Dig".Insert (Control) — R. Assign (2, 3, 4 5, 4) —
  303. Dig".Insert (New (PLabel, Init (R, 'Максимальное количество участков разбиения', Control))) —
  304. R.Assign (46, 4, 54, 5) —
  305. Control := New (PRealLine, Init (R, 3, 0)) — Dig".Insert (Control) — R. Assign (2, 4, 44, 5) —
  306. Dig".Insert (New (PLabel, Init (R, 'Минимальное число обобщённых потребителей', Control))) —
  307. R.Assign (46, 5, 54, 6) —
  308. Control := New (PRealLine, Init (R, 3, 0)) — Dig".Insert (Control) — R. Assign (2, 5, 45, 6) —
  309. Dig".Insert (New (PLabel, Init (R, 'Максимальное число обобщённых потребителей', Control))) —
  310. R.Assign (46, 6, 54, 7) —
  311. Control := New (PRealLine, Init (R, 3, 0)) — Dig".Insert (Control) — R. Assign (2, 6, 32, 7) —
  312. Dig".Insert (New (PLabel, Init (R, 'Минимальное количество секций', Control))) —
  313. R.Assign (46, 7, 54, 8) —
  314. Control := New (PRealLine, Init (R, 3, 0)) — Dig".Insert (Control) — R. Assign (2, 7, 33, 8) —
  315. Dig".Insert (New (PLabel, Init (R, 'Максимальное количество секций', Control))) —
  316. R.Assign (46, 8, 54, 9) —
  317. Control := New (PRealLine, Init (R, 8, 0)) — Dig".Insert (Control) — R. Assign (2, 8, 34, 9) —
  318. Dig".Insert (New (PLabel, Init (R, 'Количество шагов интегрирования ', Control))) —
  319. R.Assign (8, 10, 24, 12) —
  320. Control := New (PButton, Init (R, '0~k~', cmOK, bfDefault)) — Dig".Insert (Control) — R. Assign (32, 10, 48, 12) —
  321. Control := New (PButton, Init (R, '~C~ancel', cmCancel, bfNormal)) -1. Dig".Insert (Control) —
  322. Dig".SelectNext (False) -1. Dig".SetData (Params) —
  323. С := DeskTop".ExecView (Dig) -1. С <> cmCancel1. Then Begin1. Dig".GetData (Params) —
  324. NSepMin = Trunc Abs Params NSepMin)) —
  325. NSepMax = Trunc Abs Params NSepMax)) -mMin = Trunc Abs Params mMin)) tmMax = Trunc Abs Params mMax)) tnMin = Trunc Abs Params nMin)) /nMax = Trunc Abs Params nMax)) fnStep = Trunc Abs Params nStep)) r1. End -1. Dispose (Dig, Done) -1. End —
  326. Procedure SPSApp. InitStatusLine -1. Var R: TRect -1. Begin1. GetExtent (R) -1. R.A.Y := Pred (R.B.Y) —
  327. StatusLine := New (PStatusLine, Init (R,
  328. NewStatusDef (0, $FFFF, NewStatusKey ('', kbAltX, cmQuit, NewStatusKey ('', kbAltF3, cmClose, cmDel, kbShiftDel, cmDelAll, {
  329. NewStatusKey ('~Del~ Удалить запись', kbNoKey,
  330. NewStatusKey ('~Shift-Del~ Удалить все',
  331. NewStatusKey ('~F7~ Искать', kbF7, cmFind,} NewStatusKey ('', kbF5, cmZoom, NewStatusKey ('', kbCtrlF5, cmReSize, NewStatusKey ('~F10~ Меню', kbFlO, cmMenu, Nil))))))){)}, Nil))1. End —
  332. Procedure SPSApp. InitMenuBar -1. Var R: TRect -1. Begin
  333. GetExtent (R) — R.B.Y := Succ (R.A.Y) — MenuBar := New (PMenuBar, Init (R, NewMenu (1. Newltem (~'+AA+'~'kbAltSpace, cmAbout, hcNoContext, hcNoContext, cmTable, hcNoContext,
  334. NewSubMenu ('~Д~анные', hcNoContext, NewMenu (
  335. Newltem ('~Р~асчет', 'F9', kbF9, cmCalculation,
  336. NewSubMenu ('~Р~езультаты', hcNoContext, NewMenu (
  337. Newltem ('~Т~аблица', 'Alt-T', kbAltT, 1. NewLine (
  338. Newltem ('Количество секций-остаток', '', kbNoKey, cmNRest, hcNoContext,
  339. Newltem ('Количество переключений-остаток', '', kbNoKey, cmDRest, hcNoContext,
  340. Newltem ('Стоимость-надёжность', '', kbNoKey, cmStNad, hcNoContext, 1. Nil)))))) ,
  341. NewSubMenu ('~У~становки', hcNoContext, NewMenu (
  342. Newltem ('~П~ринтер', '', kbNoKey, cmSetPrinter, hcNoContext, cmCalcParams, hcNoContext, cmSetMethod, hcNoContext, cmSetPrices, hcNoContext,
  343. Newltem ('~П~араметры расчёта', '', kbNoKey, Newltem ('~М~етод', 'Alt-M', kbAltM, Newltem ('~Ц~ены и вероятности', '', kbNoKey, Nil))))
  344. Newltem ('~В~ыход', '', kbNoKey, cmQuit, hcNoContext, Nil))))))))1. End —
  345. Procedure SPSApp. HandleEvent (Var Event: TEvent) —
  346. Var Driver, Mode: Integer — Begin1. (Event.What = evCommand) And
  347. Event.Command In cmClose, cmQuit .) Then If UserWindow <> Nil Then Dispose (UserWindow, Done) Inherited HandleEvent (Event) — If Event. What = evCommand Then Case Event. Command Of{ {
Заполнить форму текущей работой