Разработка процедур прогнозирования показателей работы железных дорог

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 02.06.2012
Размер файла 1,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Для настоящего дипломного проекта часовая амортизация составит:

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

Нак.расх. = 2,43 руб.

Суммарная трудоемкость этапа проектирования зависит от продолжительности этапа, а так же от того, используется ли на этом этапе компьютер.

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

Таблица 4.2

Этап проектирования

Труд-сть в ч/часах

З/плата в час

Эл.эн и амортиз. в час

Наклад. расх. в час

?затраты руб.

Получение задания на проектирование и постановка задачи

40

2,6

-

2,43

201,2

Изучение задания и поиск возможных методов решения поставленной задачи

120

2,6

2,43

2,43

895,2

Разработка технологии решения задачи

40

2,6

2,43

2,43

298,4

Словесное описание алгоритма

40

2,6

2,43

2,43

298,4

Итого

1693,2

Затраты на программное обеспечение включают следующие этапы: построение блок-схемы программы, кодирование, отладка, тестирование, анализ полученных результатов, корректировка программы. Расходы по этим этапам приведены в таблице 4.3.

Таблица 4.3

Этап проектирования

Труд-сть в ч/часах

З/плата в час

Эл.эн и амортиз. в час

Наклад. расх. в час

?затраты руб.

Построение блок-схемы программы

40

2,6

2,43

2,43

298,4

Кодирование

240

2,6

2,43

2,43

1790,4

Отладка

80

2,6

2,43

2,43

596,8

Тестирование

80

2,6

2,43

2,43

596,8

Анализ полученных результатов

80

2,6

2,43

2,43

596,8

Корректировка программы

40

2,6

2,43

2,43

298,4

Итого

4177,6

Затраты на организационное обеспечение включают расходы на составление документации. Расчеты приведены в таблице 4.4.

Таблица 4.4

Этап проектирования

Труд-сть в ч/часах

З/плата в час

Эл.эн и амортиз. в час

Наклад. расх. в час

?затраты руб.

Составление документации

160

2,6

2,43

2,43

1193,6

Итого

1193,6

Общие затраты на разработку рассчитывается по формуле (5.4)

Зраз = ЗТО + ЗИО + ЗПО + ЗОО, (5.4)

где ЗТО - затраты на техническое обеспечение;

ЗИО - затраты на информационное обеспечение;

ЗПО - затраты на программное обеспечение;

ЗОО - затраты на организационное обеспечение.

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

Зраз = 3844 + 1693,2 + 4177,6 + 1193,6 = 10908 (руб.)

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

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

Затраты, возникающие в процессе эксплуатации рассчитываются по форме «сметы затрат».

В таблице 4.5 показаны затраты, связанные с использованием разработанной процедуры.

Таблица 4.5

Раздел сметы

Величина расходов за месяц руб.

Материальные затраты, в т.ч.

1

Расходные материалы

200

2

Основная з/п

8000

3

Начисления на з/п (39% от З/П)

3120

4

Итого з/п с начислениями

11120

5

Расходы на электроэнергию для технологических целей

103,8

6

Амортизация основного производственного оборудования (11% стоимости)

4462

7

Амортизация ПО (10% стоимости)

706,5

8

З/п персонала и расходы по ремонту основных средств (5% стоимости основного оборудования)

2028

Итого прямых затрат

29740

9

Накладные, общехозяйственные расходы (30 % от прямых)

8922

Всего затрат

38662

4.4 Расчет экономической эффективности

В первой части данной главы было отмечено, что экономическая эффективность определяется по формуле (4.1).

Затраты на разработку и затраты при использовании новой процедуры были рассчитаны в данной главе. Они составили 10908 руб. и 38662 руб. соответственно.

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

(4.5)

Решив неравенство, находим P - величину уточнения прогноза эксплуатационных расходов. Она равна 39970 рублей. Общая величина эксплуатационных расходов Ррасх. за 2002 год составляет 3933310 млн. рублей. Если отнести величину P к Ррасх. и умножить на 100%, получим необходимое уточнение эксплуатационных расходов в процентах, которое составляет 10-6 %.

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

Глава 5. Безопасность жизнедеятельности

5.1 Охрана труда

Организация рабочего места с учетом требований эргономики

При оборудовании рабочего места (рис.1) необходимо установить монитор на специальном столике так, чтобы задняя панель была обращена к стене (так как около нее зарегистрирован максимальный уровень напряженности электрического поля), экран не должен располагаться напротив окна или других прямых источников света, дающих блики на экране. Стол, на котором устанавливается монитор, должен быть достаточной длины, чтобы расстояние до экрана составляло 60-70 (не ближе 50) см, и в то же время можно было работать с клавиатурой в непосредственной близости от пользователя (30-40 см). Конструкция рабочей мебели (столы, кресла, стулья) должна обеспечивать возможность индивидуальной регулировки соответственно росту работающего и создавать удобную позу. Часто используемые предметы труда должны находится в оптимальной рабочей зоне, на одном расстоянии от глаз работающего. На поверхности рабочего стола необходимо разместить подставку для документов, расстояние которой от глаз должно быть аналогичным расстоянию от глаз до клавиатуры. Рабочее кресло должно иметь подлокотники. На рабочем месте необходимо предусмотреть подставку для ног.

Для того чтобы устранить блики на экране, монитор должен быть установлен перпендикулярно столу, а пользователь должен смотреть на экран несколько сверху вниз (10° от горизонтальной линии) (рис.1,2).

Освещенность рабочего места

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

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

Принцип должен быть ясен: как можно меньше света должно падать на экран дисплея.

Влияния работы с дисплеем на организм оператора

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

При изучении влияния работы с дисплеем на организм оператора на первом месте стоит вопрос о воздействии электро - магнитного излучения. Дисплей, выполненный на электронно-лучевых трубках, является потенциальным источником мягкого рентгеновского, ультрафиолетового, инфракрасного, видимого, радиочастотного, сверх- и низкочастотного электромагнитного излучений. Если они удовлетворяют Государственному стандарту РФ, то эти излучения не должны оказывать вредного воздействия на человека. Для различных типов компьютеров величины мягкого рентгеновского излучения даже на расстоянии 5-10 см от экрана не превышают установленных норм. Уровни ультрафиолетового и инфракрасного излучения ниже естественного фона или соответствуют ему и не могут оказывать вредного воздействия.

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

Допустимые уровни излучения нормируются стандартами по влиянию монитора на человека и окружающую среду. Наиболее известными из них являются MPR-II, принятый шведским департаментом стандартов, и TCO 92, TCO 95, TCO 99, принятые шведской конфедерацией профсоюзов.

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

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

- самосветящееся, а не отраженное;

- имеет значительно меньший контраст;

- не непрерывное, а состоит из дискретных точек - пикселей;

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

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

5.2 Безопасность в чрезвычайных ситуациях

На всех стадиях своего развития человек был тесно связан с окружающим миром. На рубеже 21 века человечество всё больше и больше ощущает на себе проблемы возникающие при проживании в высокоиндустриальном обществе. Опасное вмешательство человека в природу резко усилилось, расширился объём этого вмешательства, оно стало более разнообразным и сейчас грозит стать глобальной опасностью для человечества. Практически ежедневно в различных уголках нашей планеты возникают так называемые "Чрезвычайные Ситуации" (ЧС), это сообщения в средствах массовой информации о катастрофах, стихийных бедствиях, очередной аварии, военного конфликта или акта терроризма . Количество ЧС растет лавинообразно и за последние 20 лет возросло в 2 раза. А это значит растёт число жертв и материальный ущерб как в промышленности так и на транспорте, в быту, в армии и т.д.

Но наибольшую опасность представляют крупные аварии, катастрофы на промышленных объектах и на транспорте, а также стихийные и экологические бедствия. В результате вызываемые ими социально-экологические последствия сопоставимы с крупномасштабными военными конфликтами. Аварии и катастрофы не имеют национальных границ, они ведут к гибели людей и создают в свою очередь социально политическую напряженность (пример Чернобыльская авария). На всех континентах Земли эксплуатируются тысячи потенциально опасных объектов с такими объёмами запасов радиоактивных, взрывчатых и отравляющих веществ которые в случае ЧС могут нанести невосполнимые потери окружающей среде или даже уничтожить на Земле Жизнь.

ЧС классифицируются по характеру источника и по масштабам.

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

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

Независимо от происхождения катастроф, для характеристики их последствий применяются критерии:

- число погибших во время катастрофы;

- число раненных (погибших от ран, ставших инвалидами);

- индивидуальное и общественное потрясение;

- отдаленные физические и психические последствия;

- экономические последствия;

- материальный ущерб.

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

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

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

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

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

Собственно авария происходит на третьей стадии, как следствие двух предыдущих.

Основные причины аварий:

- просчеты при проектировании и недостаточный уровень безопасности современных зданий;

- некачественное строительство или отступление от проекта;

- непродуманное размещение производства;

- нарушение требований технологического процесса из-за недостаточной подготовки или недисциплинированности и халатности персонала.

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

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

Пожары на промышленных объектах

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

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

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

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

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

Состав установок пожарной сигнализации

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

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

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

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

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

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

Первичные средств пожаротушения

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

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

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

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

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

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

Требования соблюдения правил пожарной безопасности для сотрудников подразделений

Ниже излагается содержание инструкций по пожарной безопасности.

В помещении подразделений запрещается:

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

- бросать окурки и спички в корзины для бумаг;

- устанавливать ПЭВМ, телевизоры, радиоприемники и различную электроаппаратуру около штор, занавесок и декораций;

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

- пользоваться кипятильниками, другими электроприборами с открытыми нагревательными элементами;

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

Прежде, чем начать работу, необходимо проверить:

- исправно ли оборудование и аппараты, с которыми предстоит работать, не могут ли они стать источником пожара;

- - очищено ли от отходов и мусора рабочее место;

- - находятся ли на месте средства пожаротушения (огнетушители и т.п.), оборудован ли внутренний пожарный кран рукавом и стволом.

По окончании работ проверить:

- отключение ПЭВМ, электрического освещения и электроприборов в помещениях ;

- закрытие окон и других проемов, ведущих наружу и в соседние помещения;

- не может ли произойти пожар на месте производства огнеопасных работ.

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

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

В разделе 5.1 рассмотрены вопросы организация рабочего места оператора ПВЭМ с учетом требований эргономики, произведен выбор рабочей мебели и условия освещенности в комнате. Так же рассмотрен вопрос влияния работы с дисплеем на организм человека, даны рекомендации по защите от электро-магнитного излучения и выбору типа монитора.

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

Заключение

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

Для прогнозирования были предложены следующие адаптивные методы:

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

- прогноз временного ряда коэффициента измерителя методом скользящего среднего с выбором количества точек;

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

Были получены сравнительные оценки перечисленных методов с существующим методом прогноза по предыдущей точке. Результаты расчетов по статье 231 «Подготовка цистерн под налив» показали, что по ограниченной выборке с помощью разработанной процедуры удалось улучшить оценку прогноза в среднем на 0,8 %.

Для вычисления прогнозных значений эксплуатационных расходов была разработана процедура, написанная на языке SAS BASE, проводящая расчеты, используя данные из ИХ ПЭП. Для процедуры получения прогнозных значений был написан графический интерфейс пользователя.

В дипломном проекте показана технология работа системы ЕИР ЦСУ при добавлении к ней разработанной процедуры.

Расчеты, проведенные в экономической части диплома, показывают, что при полученном результате окупаемость разработки обеспечивается.

Список использованных источников

1 Отчет о НИР «Разработка имитационной модели работы железной дороги»

2 Информационные технологии на железнодорожном транспорте. Под ред. Лецкого Э.К., Поддавашкина Э.С., Яковлева В.В. - М.: УМК МПС России, 2001. 668 с.

3 Модели и методы расчета временных характеристик систем сбора и обработки данных (методические указания). Лецкий Э.К.

4 Эргономические основы организации труда. Зинченко В.П. и др. М.,1974. 240 с.

5 Противопожарные нормы проектирования зданий и сооружений (СНиП-А 70) - М.: Стройиздат, 1971. 46 с.

6 Ревякин А.И., Кашолкин Б.И. Электробезопасность и противопожарная защита в электроустановках. - М.: Энергия, 1980. 148 с.

Приложение. Листинг программы

INTER_VXOD.SCL

init:

/*создать формат*/

Textentry_mes.visible='no';

Pushbutton_zapusk.enabled='no';

submit continue;

%macro create_my_format;

proc sql;

create view forfmt as

select distinct var_id as start, name as label, '$attr' as fmtname from sp.var_izmerit

union all

select distinct var_id as start,stati as label, '$attr' as fmtname from sp.var_stat

;

proc format cntlin=forfmt;

run;

proc datasets library = work nolist;

delete Forfmt;

run;

/*Применить его к таблице*/

data sp.var_izmerit;

set sp.var_izmerit;

format var_id attr.;

run;

data sp.var_stat;

set sp.var_stat;

format var_id attr.;

run;

%mend create_my_format;

%create_my_format;

endsubmit;

Textentry_nazv_stat.text='нужно выбрать номер статьи';

spisok_stat.items=spisok_stat._getspisok('sp.var_stat','var_id');

dcl char a;

dcl char nazv_stat;

return;/*INIT*/

spisok_stat:

a=spisok_stat.selectedItem;

put 'выбрано ' a;

submit continue;

%global st_id;

data _null_;

set sp.var_stat;

a1='&a';

if stati eq a1 then call symput('st_id',var_id);

run;

%put 'id статьи ' &st_id;

data get_izmerit;

set sp.var_stat;

%global n_st;

%global id_izm;

if var_id eq symget('st_id') then do;

new_id_izm=put(var_id_izm,7.);

call symput('id_izm', new_id_izm);

call symput('n_st',name);

end;

run;

%put 'название статьи ' &nazv_stat;

endsubmit;

Textentry_nazv_stat.text=symget('n_st');

spisok_izmerit.items=spisok_izmerit._getspisok('get_izmerit','new_id_izm');

submit continue;

proc datasets library = work nolist;

delete get_izmerit;

run;

endsubmit;

Pushbutton_zapusk.enabled='yes';

return;

Pushbutton_zapusk:

/**/

Pushbutton_zapusk.enabled='no';

Textentry_mes.visible='yes';

Textentry_mes.text='Процедура прогноза запущена';

submit continue;

/*Получить набор с данными по статье DATE FACT_STAT*/

%global time;

/*получить данные по расходам МЖД из ПЭП*/

%let time=%sysfunc(DATETIME());

data _null_;

min=minute(&time);

sec=SECOND(&time);

put '//////********ВРЕМЯ** ******///////';

put ' min=' min 'sec=' sec;

run;

endsubmit;

Textentry_mes.text='Получаю данные по расходам';

submit continue;

data fact_stat(keep= DATE fact);

set data.base;

if VAR_ID eq symget('st_id') and DOR_ID eq '003' and year(date) gt 1997 and month(date) eq 12 and fact <>0;

run;

/*Выделить зависящие расходы*/

data _null_;

set sp.Var_stat;

%global zav_dolya;

if VAR_ID eq symget('st_id') then call symput('zav_dolya',p4);

run;

data fact_stat;

set fact_stat;

fact = fact*symget('zav_dolya');

run;

%let time=%sysfunc(DATETIME());

data _null_;

min=minute(&time);

sec=SECOND(&time);

put '//////********ВРЕМЯ** ******///////';

put ' min=' min 'sec=' sec;

run;

endsubmit;

Textentry_mes.text='Получаю данные по факторам';

submit continue;

/*Получить набор с данными по факторам DATE fact var_id operiod dor_id*/

%let time=%sysfunc(DATETIME());

data _null_;

min=minute(&time);

sec=SECOND(&time);

put '//////********ВРЕМЯ*старт факт*******///////';

put ' min=' min 'sec=' sec;

run;

proc sql;

create table get_fact as

select * from data.base where

var_id in

select var_id from sp.Var_factoru;

quit;

data fact_fact(keep= DATE fact var_id operiod dor_id);

set get_fact;

if DOR_ID eq '003' and operiod eq 'Q' and year(date) gt 1997 and fact <>0;

run;

proc datasets library = work nolist;

delete get_fact;

run;

%let time=%sysfunc(DATETIME());

data _null_;

min=minute(&time);

sec=SECOND(&time);

put '//////********************ВРЕМЯ* *******///////';

put '********************min=' min 'sec=' sec;

run;

endsubmit;

Textentry_mes.text='Рассчитываю измерители';

/*Рассчитать измерители*/

submit continue;

%let time=%sysfunc(DATETIME());

data _null_;

min=minute(&time);

sec=SECOND(&time);

put '//////********ВРЕМЯ** ******///////';

put ' min=' min 'sec=' sec;

run;

endsubmit;

Call display('dip.proba.run.scl');

submit continue;

%let time=%sysfunc(DATETIME());

data _null_;

min=minute(&time);

sec=SECOND(&time);

put '//////********ВРЕМЯ** ******///////';

put 'min=' min 'sec=' sec;

run;

proc datasets library = work nolist;

delete fact_fact;

run;

/*Получить набор для расчета*/

/*date rasxod izmerit*/

endsubmit;

Textentry_mes.text='Получаю набор для расчета';

submit continue;

data raschit_izmerit;

set Izmer_znach(keep = var_id date fact);

if var_id eq symget('id_izm') and month(date) eq 12 ;

run;

%global pr_izmerit;

data pr_izmerit;

set Izmer_znach(keep = var_id date fact);

if var_id eq symget('id_izm') and month(date) eq 9 and year(date) eq 2002

then do;

call symput ('pr_izmerit',fact);

output;

end;

run;

proc sort data= fact_stat;

by date;run;

proc sort data= raschit_izmerit;

by date;run;

data nabor_proc_raschet;

merge fact_stat(rename = (fact=rasxod))

raschit_izmerit(drop=var_id rename = (fact=izmerit ));

by date;

run;

proc datasets library = work nolist;

delete fact_stat;

delete raschit_izmerit;

run;

/*Запустить прцедуру прогноза*/

/*Создать макросы*/

%let time=%sysfunc(DATETIME());

data _null_;

min=minute(&time);

sec=SECOND(&time);

put '//////********ВРЕМЯ********///////';

put 'min=' min 'sec=' sec;

run;

%macro del_tables;

proc sql;

drop table sr_beta.d;

drop table sr_beta.delta;

drop table prognoz;

drop table itog_delta_1t;

drop table sr_beta.ani;

drop table sr_beta.vse_delta;

drop table sr_beta.itog_k_tochek;

quit;

%mend del_tables;

%macro cr_nabor(f,o);

data sr_beta.d;

set sr_beta.data_vse(firstobs=&f obs=&o);

run;

%mend cr_nabor;

/*расчитывает delta*/

%macro raschet_delta(nabor_in,nomer_str,nabor_ras,k_t);

%let zn_izmerit=0;

%let zn_ras_fact=0;

%let s_koef=0;

%let k_sl_koef=0;

proc sql;

select sum(koef) into:s_koef from &nabor_in;/*сумма коеффициентов*/

select count(*) into:k_sl_koef from &nabor_in;/*кол-во слагаемых*/

quit;

%let sred_beta=&s_koef/&k_sl_koef;/*средняя beta*/

data _null_;

set sr_beta.data_vse(firstobs=&nomer_str obs=&nomer_str);

call symput('zn_izmerit',izmerit);/*значение измерителя*/

call symput('zn_ras_fact',rasxod);/*значение расходов*/

run;

/*расчитывает и сохраняет delta*/

data prognoz;

progn=&sred_beta*&zn_izmerit;

k_toc=&k_t;

beta=&sred_beta;

fact=&zn_ras_fact;

put progn;

delta=abs(fact-progn);

run;

proc append

base=&nabor_ras

DATA=prognoz;

run;

%mend raschet_delta;

%macro raschet_prog_sred;

/*узнать число измерений*/

proc sql;

select count(*) into :kol_vo_izm from sr_beta.data_vse;

quit;

%let kol_vo_tochek=&kol_vo_izm;

%put kol_vo_tochek=&kol_vo_tochek;

data sr_beta.data_vse;

set sr_beta.data_vse;

koef=rasxod/izmerit;

run;

%let i=1;%let j=1;%let last_point=1;%let last_str=1;

%let str_raschet=1;%let s_del=0;%let s_k_slagaem=0;

%do i=2 %to &kol_vo_tochek;/*число точек*/

%let ob=%eval(&i);

%let last_point=%eval(&kol_vo_tochek-&i);

%do j=1 %to &last_point;/*с какой строки*/

%let f_o=%eval(&j);

%let last_str =%eval(&f_o+&ob-1);/*последняя строка в набор*/

%cr_nabor(&f_o,&last_str);

%let str_raschet=%eval(&f_o+&ob);

%raschet_delta(sr_beta.d,&str_raschet,sr_beta.delta,&i);

%end;

proc sql;

select sum(delta) into :s_del from sr_beta.delta;/*сумма квадратов*/

select count(*) into :s_k_slagaem from sr_beta.delta;/*кол-во слагаемых*/

quit;

data itog_delta_1t;

kol_vo_tochek=&i;/*кол-во точек при расчете*/

delta=&s_del/&s_k_slagaem;/*средняя ощибка*/

run;

proc append

base=sr_beta.vse_delta

DATA=itog_delta_1t;

run;

%end;

%vubor_k_tochek;

%let itog_k_tochek=0;

data _null_;

set sr_beta.itog_k_tochek(firstobs=1 obs=1);

call symput('itog_k_tochek',kol_vo_tochek);

run;

%put &itog_k_tochek;

/*Присвоить значение измерителю*/

%ras_pr_zn_st(&itog_k_tochek);

%*del_tables;

%mend raschet_prog_sred;

%macro vubor_k_tochek;/*выбрать kol_vo_tochek*/

data sr_beta.ani;

set sr_beta.vse_delta;

delta=int(delta);/* целые значения*/

run;

%let min_delta=0;

proc sql;

select min(delta) into :min_delta from sr_beta.ani;

quit;

data sr_beta.itog_k_tochek(keep = kol_vo_tochek);

set sr_beta.ani;

if delta eq &min_delta;

run;

%mend vubor_k_tochek;

%macro ras_pr_zn_st(k_tochek);

%let first_t=%eval(&kol_vo_izm-&k_tochek+1);

%cr_nabor(&first_t,&kol_vo_izm);

%let s_koef=0;

%let k_sl_koef=0;

proc sql;

select sum(koef) into:s_koef from sr_beta.d;/*сумма коеффициентов*/

select count(*) into:k_sl_koef from sr_beta.d;/*кол-во слагаемых*/

quit;

%let sred_beta=&s_koef/&k_sl_koef;/*средняя beta*/

data sr_beta.prog_st;

progn=&sred_beta*symget('pr_izmerit');

izmerit=symget('pr_izmerit');

run;

%mend ras_pr_zn_st;

/*назначить биб-ку sr_beta*/

libname sr_beta 'C:\diplom\dip_data\prognoz_2405\sred_beta\430';

/*входной набор sr_beta.data_vse*/

data sr_beta.data_vse;

set Nabor_proc_raschet;

run;

%global kol_vo_izm;

/*РАСЧЕТ*/

endsubmit;

Textentry_mes.text='Рассчитываю прогноз';

submit continue;

%raschet_prog_sred;

/*выходной набор sr_beta.prog_st*/

%del_tables;

%let time=%sysfunc(DATETIME());

data _null_;

min=minute(&time);

sec=SECOND(&time);

put '//////********ВРЕМЯ********///////';

put 'min=' min 'sec=' sec;

run;

endsubmit;

/*ВЫВЕСТИ РЕЗУЛЬТАТ*/

call display('inter_result.frame');

_STATUS_='H';

return;

Pushbutton_exit:

submit continue;

proc datasets library = work nolist;

* delete Izmer_znach;

delete Nabor_proc_raschet;

delete Pr_izmerit;

run;

proc datasets library = sr_beta nolist;

delete Data_vse;

delete Prog_st;

run;

endsubmit;

_STATUS_='H';

return;

INTER_RESULT.SCL

init:

Sasdataset_result.table='nabor_proc_raschet';

Sasdataset_progn.table='sr_beta.prog_st';

return;

Pushbutton_next_proc:

Sasdataset_result.table='';

Sasdataset_progn.table='';

submit continue;

proc datasets library = sr_beta nolist;

delete Data_vse;

delete Prog_st;

delete nabor_proc_raschet;

run;

endsubmit;

_STATUS_='H';

call display('Next_stat.frame');

return;

Pushbutton_exit:

submit continue;

Sasdataset_result.table='';

Sasdataset_progn.table='';

proc datasets library = work nolist;

* delete Izmer_znach;

delete Nabor_proc_raschet;

delete Pr_izmerit;

run;

proc datasets library = sr_beta nolist;

delete Data_vse;

delete Prog_st;

run;

endsubmit;

_STATUS_='H';

return;

NEXT_STAT.SCL

init:

Textentry_mes.visible='no';

Pushbutton_zapusk.enabled='no';

Textentry_nazv_stat.text='нужно выбрать номер статьи';

spisok_stat.items=spisok_stat._getspisok('sp.var_stat','var_id');

dcl char a;

dcl char nazv_stat;

return;/*INIT*/

spisok_stat:

a=spisok_stat.selectedItem;

submit continue;

%global st_id;

data _null_;

set sp.var_stat;

a1='&a';

if stati eq a1 then call symput('st_id',var_id);

run;

%put 'id статьи ' &st_id;

data get_izmerit;

set sp.var_stat;

%global n_st;

%global id_izm;

if var_id eq symget('st_id') then do;

new_id_izm=put(var_id_izm,7.);

call symput('id_izm', new_id_izm);

call symput('n_st',name);

end;

run;

%put 'название статьи ' &nazv_stat;

endsubmit;

Textentry_nazv_stat.text=symget('n_st');

spisok_izmerit.items=spisok_izmerit._getspisok('get_izmerit','new_id_izm');

submit continue;

proc datasets library = work nolist;

delete get_izmerit;

run;

endsubmit;

Pushbutton_zapusk.enabled='yes';

return;

Pushbutton_zapusk:

/**/

Pushbutton_zapusk.enabled='no';

Textentry_mes.visible='yes';

Textentry_mes.text='Процедура прогноза запущена';

submit continue;

/*Получить набор с данными по статье DATE FACT_STAT*/

/*получить данные по расходам МЖД из ПЭП*/

endsubmit;

Textentry_mes.text='Получаю данные по расходам';

submit continue;

%let time=%sysfunc(DATETIME());

data _null_;

min=minute(&time);

sec=SECOND(&time);

put '//////*********************ВРЕМЯ********///////';

put ' min=' min 'sec=' sec;

run;

data fact_stat(keep= DATE fact);

set data.base;

if VAR_ID eq symget('st_id') and DOR_ID eq '003' and year(date) gt 1997 and month(date) eq 12 and fact <>0;

run;

/*Выделить зависящие расходы*/

data _null_;

set sp.Var_stat;

%global zav_dolya;

if VAR_ID eq symget('st_id') then call symput('zav_dolya',p4);

run;

data fact_stat;

set fact_stat;

fact = fact*symget('zav_dolya');

run;

%let time=%sysfunc(DATETIME());

data _null_;

min=minute(&time);

sec=SECOND(&time);

put '//////*********************ВРЕМЯ** ******///////';

put ' min=' min 'sec=' sec;

run;

endsubmit;

submit continue;

proc datasets library = work nolist;

delete fact_fact;

run;

/*Получить набор для расчета*/

endsubmit;

Textentry_mes.text='Получаю набор для расчета';

submit continue;

/*date rasxod izmerit*/

data raschit_izmerit;

set Izmer_znach(keep = var_id date fact);

if var_id eq symget('id_izm') and month(date) eq 12 ;

run;

%global pr_izmerit;

data pr_izmerit;

set Izmer_znach(keep = var_id date fact);

if var_id eq symget('id_izm') and month(date) eq 9 and year(date) eq 2002

then do;

call symput ('pr_izmerit',fact);

output;

end;

run;

proc sort data= fact_stat;

by date;run;

proc sort data= raschit_izmerit;

by date;run;

data nabor_proc_raschet;

merge fact_stat(rename = (fact=rasxod))

raschit_izmerit(drop=var_id rename = (fact=izmerit ));

by date;

run;

proc datasets library = work nolist;

delete fact_stat;

delete raschit_izmerit;

run;

/*Запустить прцедуру прогноза*/

/*входной набор sr_beta.data_vse*/

data sr_beta.data_vse;

set Nabor_proc_raschet;

run;

%global kol_vo_izm;

/*РАСЧЕТ*/

%let time=%sysfunc(DATETIME());

data _null_;

min=minute(&time);

sec=SECOND(&time);

put '//////********ВРЕМЯ* *******///////';

put 'min=' min 'sec=' sec;

run;

endsubmit;

Textentry_mes.text='Рассчитываю прогноз';

submit continue;

%raschet_prog_sred;

/*выходной набор sr_beta.prog_st*/

%del_tables;

%let time=%sysfunc(DATETIME());

data _null_;

min=minute(&time);

sec=SECOND(&time);

put '//////********ВРЕМЯ ******///////';

put 'min=' min 'sec=' sec;

run;

endsubmit;

/*ВЫВЕСТИ РЕЗУЛЬТАТ*/

call display('inter_result.frame');

_STATUS_='H';

return;

Pushbutton_exit:

submit continue;

proc datasets library = work nolist;

* delete Izmer_znach;

delete Nabor_proc_raschet;

delete Pr_izmerit;

run;

proc datasets library = sr_beta nolist;

delete Data_vse;

delete Prog_st;

run;

endsubmit;

_STATUS_='H';

return;

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.