Расчет номинала предохранителей в электрической цепи
Защита электрооборудования и сетей от тока короткого замыкания и перегрузок. Разработка программного обеспечения для расчета номинала предохранителя в электрической цепи. Выбор языка программирования. Требования к составу и параметрам технических средств.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 31.03.2018 |
Размер файла | 233,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.Allbest.ru/
Размещено на http://www.Allbest.ru/
Негосударственное аккредитованное некоммерческое частное профессиональное образовательное учреждение
Северо-Кавказский техникум «Знание»
Дисциплина: «Технология разработки программного обеспечения»
КУРСОВАЯ РАБОТА
Расчет номинала предохранителей в электрической цепи
Содержание
- Введение
- 1. Техническое задание
- 2. Анализ предметной области
- 3. Разработка и проектирование
- 4. Обоснование выбора языка программирования и IDE
- 5. Программный код
- 6. Тестирование и отладка
- Заключение
- Список использованной литературы
Введение
Для расчёта номинала предохранителя, необходимо знать, что такое предохранитель в электрической цепи, от чего зависит его стойкость, и формулы для расчёта, а также понимание механики работы предохранителя. Необходимость такого программного обеспечения как калькулятор для расчёта номинала предохранителя в электрической цепи, обусловливается тем, что он помогает благодаря базовым, исходным данным, легко и просто получить результаты вычисления, выходные данные, без затраты лишнего времени. Для специалистов, которые постоянно в работе, продукт беспрецедентно полезный и незаменимый. Моя задача состоит в том, чтобы приобрести навыки разработки программного обеспечения, от технического задания, включительно до реализации программного продукта. Для разработки программы, был выбран выкосокуровневый язык программирования общего назначения Python третьей версии.
Необходимость создания проекта, калькулятор для расчёта номинала предохранителей в электрической цепи, обусловлено тем, что это нужно знать каждому кто занимается с электрическими приборами самостоятельно.
Назначение разработки, которая поможет оперативно выполнить проверку, необходимого количества ампер для предохранителя по отношению к напряжению в сети и силе тока.
Разрабатываемое ПО должно обеспечивать ввод исходных данных пользователем и вывод выходных данных, результатов, пользователю в надлежащем виде.
Исходные данные в систему поступают в систему на прямую от пользователя, которые далее обрабатываются программой, и пользователь получает результат в понятном для него виде. Программное обеспечение не поддерживает ведение истории.
Надёжность программы обеспечивается исключительно пользователем, при этом программа может проверить правильность ввода данных пользователем на корректность типа данных.
Предохранитель -- коммутационный электрический аппарат, предназначенный для отключения защищаемой цепи размыканием или разрушением специально предусмотренных для этого токоведущих частей под действием тока, превышающего определённое значение.
Предохранитель включается последовательно с потребителем электрического тока и разрывает цепь тока при превышении им номинального тока, -- тока, на который рассчитан предохранитель.
По принципу действия при разрыве тока в защищаемой цепи предохранители разделяются на четыре класса -- плавкие, электромеханические, электронные и использующие нелинейные обратимые свойства по изменению сопротивления после воздействия сверхтока у некоторых проводящих полупроводниковых материалов (самовосстанавливающиеся предохранители).
В плавких предохранителях при превышении тока свыше номинального происходит разрушение токопроводящего элемента предохранителя (расплавление, испарение), традиционно этот процесс называют «перегоранием» или «сгоранием» предохранителя.
Автоматический выключатель защиты сети снабжён датчиками протекающего тока (электромагнитными и/или тепловыми), при превышении тока сверх номинального, разрывают цепь размыканием контактов, обычно, движение контактов на размыкание производится посредством предварительно взведённой пружины.
В электронных предохранителях защищаемую цепь разрывают бесконтактные ключи.
В самовосстанавливающихся предохранителях, при превышении тока, на несколько порядков увеличивается удельное электрическое сопротивление полупроводникового материала токопроводящего элемента предохранителя, что снижает ток цепи, после снятии тока и их охлаждения восстанавливают своё сопротивление.
Под термином электрический предохранитель или, обычно, предохранитель, подразумевается наиболее часто используемый и дешёвый плавкий предохранитель.
Предохранители повсеместно используются для защиты любого электрооборудования, например, для исключения перегрева проводов бытовой электрической сети в случае коротких замыканий.
Отсутствие предохранителей или неграмотное их применение может привести к пожару.
Основными элементами предохранителя являются: плавкая вставка (плавкий элемент), корпус, в который устанавливается плавкая вставка и которая может заменяться при перегорании (у предохранителей на малые токи плавкая вставка не сменная, конструкция является одноразовой и при срабатывании производится замена целиком предохранителя в держателе), контактная часть, дугогасительное устройство и дугогасительная среда.
Плавкая вставка внутри патрона помещается в специальную дугогасящую среду (например, кварцевый песок), которая при сгорании плавкой вставки интенсивно охлаждает и деионизирует электрическую дугу, не давая выйти плазме наружу через корпус. У некоторых типов предохранителей корпус изготавливается из газогенерирующего материала (например, фибры), под тепловым действием дуги происходит интенсивное газовыделение, образующиеся газы способствуют гашению дуги внутри корпуса.
В предохранителях на малые токи плавкие вставки могут иногда помещаются в среду инертных газов в герметичном корпусе (для исключения окисления плавкой вставки со временем: находящаяся под током плавкая вставка нагревается и интенсивнее происходит процесс окисления).
Предохранители для защиты полупроводниковых приборов (быстродействующие) имеют дополнительные элементы конструкции для ускорения срабатывания: при этом разрыв электрической цепи внутри предохранителя производится электродинамическими силами и натянутыми пружинами. Ускорение срабатывания предохранителя производится также с использованием металлургического эффекта.
Различается номинальный ток плавкой вставки и номинальный ток патрона (для одного патрона выпускаются несколько номиналов вставок одинакового габарита и на разный ток).
Разрушающийся защитный элемент плавкого предохранителя или некоторую сменную конструкцию с этим элементом обычно называют вставкой. Сменная вставка заменяется на новую после её сгорания.
Для защиты электрических цепей устройствами неоднократной защиты, экономически целесообразно применять автоматические выключатели -- восстанавливающие электрическую цепь манипуляцией (автоматические выключатели). В слаботочных низковольтных цепях применяются самовосстанавливающиеся предохранители. Расчёт предохранителя ведётся с учётом тока короткого замыкания в конце линии, допустимого нагрева проводников, допустимого уменьшения напряжения (не более 4-5%), а также с учётом специфики самого потребителя тока. Выделяемая от протекания электрического тока через проводники теплота должна рассеиваться в окружающую среду, без чрезмерного повышения их температуры, не повреждая при этом каких-либо частей и/или составляющих проводящих частей электрооборудования. Расчёт предохранителя в простейшем случае производится по формуле:
Inom = Pmax/U,
где Inom -- номинальный ток срабатывания предохранителя, А;
Pmax -- максимальная мощность нагрузки, Вт (с запасом примерно 20 %);
U -- напряжение сети, В.
Номинальный ток предохранителя выбирается из стандартного ряда, с ближайшим номинальным током срабатывания, превышающим полученное значение. Так же должны учитываться пусковые токи нагрузки при выборе параметра время-токовой характеристики.
1. Техническое задание
Программное обеспечение для расчета номинала предохранителя, является полезным инструментом в работе у электриков.
Основанием для создания служит тема данной курсовой работы.
Наименование работы: Создание программного продукта для расчета номинала предохранителя в электрической цепи.
Исполнитель: техник-программист Остриков Сергей Александрович
Разработка программного продукта «расчет номинала предохранителя в электрической цепи», поможет оперативно выполнять свою работу электрикам.
Технические требования
Разрабатываемое программное обеспечение должно обеспечивать:
· Ввод исходных данных;
· Произведение расчетов;
· Стабильность в работе;
· Вывод обработанных данных;
· Вывод формированного результата;
Организация входных и выходных данных:
Исходные данные в систему поступают при вводе их, пользователем, далее данные обрабатываются, и пользователь видит выходные данные в виде сформированных результатов работы программного обеспечения.
Требования к надёжности:
Для обеспечения надёжности, в программном коде есть функцию отвечающие за корректность данных, а также за их расчет, поэтому работа приложения будет проходить всегда успешно, и не выдаст вам неверных результатов.
Условия эксплуатации и требования к составу и параметрам технических средств
Требования к программной совместимости:
· Любая операционная система;
· Любой процессор одноядерный 1GHz или лучше;
· Оперативная память для работы программы ~9.3 MB;
· Требует 1 890 байт памяти на диске;
· Требуется предустановленный высокоуровневый язык программирования общего назначения Python третьей версии;
Специальные требования:
Программа должна выполняться предельно быстро, при этом приложение должно работать стабильно, дружественный интерфейс рассчитанный на пользователя низкой квалификации.
Требования к программной документации:
Основными документами, регламентирующими разработку будущих программ, должны быть документы Единой Системы Программной Документации (ЕСПД); руководство пользователя, описание применения.
Технико-экономические показатели
Эффективность программного продукта определяется временем, затраченным на его использование для нахождения результата.
Порядок контроля и приёмки:
После передачи Исполнителем программного обеспечения Заказчику, последний имеет право тестировать модуль в течении двух недель. После тестирования Заказчик должен принять работу или в письменном виде изложить недостатки программного продукта. Исполнитель обязуется доработать модуль. В случае полного отказа от программного продукта, Заказчик должен выплатить 80% от полной суммы стоимости заказа.
Календарный план работ
№ |
Название этапа |
Сроки этапа |
Чем оканчивается этап |
|
1 |
Изучение предметной области. |
26.01.2018-30.01.2018 |
Прототипом будущей программы. |
|
2 |
Проектирование и разработка. |
31.01.2018-01.02.2018 |
Разработкой ПО. |
|
3 |
Тестирование и отладка. |
02.02.2018-04.02.2018 |
Готовым программным продуктом. |
2. Анализ предметной области
Плавкий предохранитель -- это коммутационный электрический элемент, предназначенный для отключения защищаемой цепи путем расплавления защитного элемента. Изготовляют плавкие элементы из свинца, сплавов свинца с оловом, цинка, меди. Предназначены для защиты электрооборудования и сетей от токов короткого замыкания, и недопустимых длительных перегрузок.
Следовательно, для расчёта номинала, нам необходимо знать тип материала, из которого сделан предохранитель, его диаметр, напряжение и силу тока, и тогда, мы получим номинальную силу тока, при которой предохранитель будет работать в штатном режиме.
Границы разработки устанавливаются количеством видов материалов и его различных диаметров, уникального напряжения и стандартного напряжения в 220V.
Для расчёта номинала предохранителя, существует формула, мощности на напряжение, результатом является количество ампер, который и является необходимым при выборе предохранителя, а из какого металла и его диаметра будет выполнена продукция, соответствует его амперам, следовательно, первоначальным является найти амперы, а далее создать предохранитель по этим данным.
Существуют готовые решения, программы, написанные на других языках, например, на языке «php», web-калькулятор, но такое решение будет недоступным, без использования Интернет-соединения. Моё решение будет доступно офлайн, а также являться изменяемым и дополняемым программным обеспечением. Любой пользователь сможет изменить программный код, без обязательной сборки и компиляции всего проекта.
2. Разработка и проектирование
При запуске программы, первоначально подключается сторонняя библиотека, так называемый модуль с классами и функциями, которые необходимы в программном обеспечении для округления результатов работы главной и второстепенных вычислительных функций,затем выводиться в консольном приложении информация о запущенном скриптовом программном обеспечении.
Далее запускается бесконечный цикл while, в начале которого инициализируются переменные и каждой из них присваивается значение «0», это служит функцией сброса данных. Затем начинается ещё один бесконечный цикл внутри которого рассчитана защита от системных ошибок, с учётом их перехвата и условия, в котором описывается дальнейшие действия по ходу работы программы, учтен вариант перезапуска последнего цикла с пропуском оставшейся части тела и началом новой итерации, а также сохранение введённых данных для первой переменой Pmax которая будет участвовать в главной вычислительной функции Inom = Pmax/U, и происходит выход из цикла. Затем новый цикл с идентичным функционалом для второй переменной U, с целочисленным типом данных int, соответственным первой переменной, так же участвующей в главной вычислительной функции программы.
После последнего выхода из последнего бесконечного внутреннего цикла внутри главного бесконечного цикла программы, выполняется главная функция в программе, по вычислению результата номинала предохранителя исходя из предыдущих двух значений из введённых ранее двух переменных, вся вычислительная работа происходит в виде инициализации значения другой, третьей и главной глобальной переменной.
Дополнительные вычисления происходят следом за главным, а именно вычисление дополнительного количества амперов номинала в переменную Save, тот самый запас прочности в виде дополнительных 20%, для этого из первой переменной Pmax, остаток от деления на 100 умножают на 120, и делят на вторую переменную U, являющуюся напряжением в сети (V). После рассчитывается сумма последних двух, Inom и Save, выходные данные записываются в последнюю новую переменную All, которая необходима для вывода результата.
Затем выводиться сам этап решения главной функции, его результат и результат работы дополнительной функции по вычислению запаса прочности в 20%, внутри окна консольного приложения, программного обеспечения. Все значения округляются, если являются типом данных float, с плавающей точкой. После выдаётся подробный результат всех введённых данных с пояснением и конечной полезной информации в надлежащем виде.
Под конец появляется последнее сообщение-пауза, оповещающая о том, что можно перезапустить её, для нового расчета номинала. После этого, главный цикл начинается новую итерацию, и всё начинается по новой.
4. Обоснование выбора языка программирования и IDE
Языком для написания данной программы, был выбран Python, благодаря преимуществам и простоте по отношению к любому другому. Выбор этого языка обусловлен тем что он является в первую очередь, рассчитанным для математических расчётов и программирования робототехники. При написании программы, был использован базовый набор функционала языка, подключена всего лишь одна сторонняя библиотека «math», для рационального округления числовых данных. В коде используется перехват исключений, то есть при ошибке в работе программы, она не будет завершена, а исправиться и продолжит свою работу.
Python (в русском языке распространено название питомн) -- высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём полезных функций.
Python поддерживает несколько парадигм программирования, в том числе структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное. Основные архитектурные черты -- динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений и удобные высокоуровневые структуры данных. Код в Python организовывается в функции и классы, которые могут объединяться в модули (они в свою очередь могут быть объединены в пакеты).
Эталонной реализацией Python является интерпретатор CPython, поддерживающий большинство активно используемых платформ. Он распространяется под свободной лицензией Python Software Foundation License, позволяющей использовать его без ограничений в любых приложениях, включая проприетарные. Есть реализации интерпретаторов для JVM (с возможностью компиляции), MSIL (с возможностью компиляции), LLVM и других. Проект PyPy предлагает реализацию Python с использованием JIT-компиляции, которая значительно увеличивает скорость выполнения Python-программ.
Python -- активно развивающийся язык программирования, новые версии (с добавлением/изменением языковых свойств) выходят примерно раз в два с половиной года. Вследствие этого и некоторых других причин на Python отсутствуют стандарт ANSI, ISO или другие официальные стандарты, их роль выполняет CPython.
Python портирован и работает почти на всех известных платформах -- от КПК до мейнфреймов. Существуют порты под Microsoft Windows, практически все варианты UNIX (включая FreeBSD и Linux), Plan 9, Mac OS и Mac OS X, iPhone OS 2.0 и выше, Palm OS, OS/2, Amiga, HaikuOS, AS/400 и даже OS/390, Windows Mobile, Symbian и Android.
По мере устаревания платформы её поддержка в основной ветви языка прекращается. Например, с серии 2.6 прекращена поддержка Windows 95, Windows 98 и Windows ME. Однако на этих платформах можно использовать предыдущие версии Python -- на данный момент сообщество активно поддерживает версии Python начиная от 2.3 (для них выходят исправления).
При этом, в отличие от многих портируемых систем, для всех основных платформ Python имеет поддержку характерных для данной платформы технологий (например, Microsoft COM/DCOM). Более того, существует специальная версия Python для виртуальной машины Java -- Jython, что позволяет интерпретатору выполняться на любой системе, поддерживающей Java, при этом классы Java могут непосредственно использоваться из Python и даже быть написанными на Python. Также несколько проектов обеспечивают интеграцию с платформой Microsoft .NET, основные из которых -- IronPython и Python.Net.
Python поддерживает динамическую типизацию, то есть тип переменной определяется только во время исполнения. Поэтому вместо «присваивания значения переменной» лучше говорить о «связывании значения с некоторым именем». В Python имеются встроенные типы: булевый, строка, Unicode-строка, целое число произвольной точности, число с плавающей запятой, комплексное число и некоторые другие. Из коллекций в Python встроены: список, кортеж (неизменяемый список), словарь, множество и другие. Все значения являются объектами, в том числе функции, методы, модули, классы.
Добавить новый тип можно либо написав класс (class), либо определив новый тип в модуле расширения (например, написанном на языке C). Система классов поддерживает наследование (одиночное и множественное) и метапрограммирование. Возможно наследование от большинства встроенных типов и типов расширений.
Все объекты делятся на ссылочные и атомарные. К атомарным относятся int, long (в версии 3 любое число int, так как в версии 3 нет ограничения на размер), complex и некоторые другие. При присваивании атомарных объектов копируется их значение, в то время как для ссылочных копируется только указатель на объект, таким образом, обе переменные после присваивания используют одно и то же значение. Ссылочные объекты бывают изменяемые и неизменяемые. Например, строки и кортежи являются неизменяемыми, а списки, словари и многие другие объекты -- изменяемыми. Кортеж в Python является, по сути, неизменяемым списком. Во многих случаях кортежи работают быстрее списков, поэтому если вы не планируете изменять последовательность, то лучше использовать именно их.
Имя (идентификатор) может начинаться с латинской буквы (в Python 3 -- буквы любого алфавита в Юникоде, например, кириллицы) любого регистра или подчёркивания, после чего в имени можно использовать и цифры. В качестве имени нельзя использовать ключевые слова (их список можно узнать по import keyword; print (keyword.kwlist)) и нежелательно переопределять встроенные имена. Имена, начинающиеся с символа подчёркивания, имеют специальное значение.
В каждой точке программы интерпретатор имеет доступ к трём пространствам имён (то есть отображениям имён в объекты): локальному, глобальному и встроенному.
Области видимости имён могут быть вложенными друг в друга (внутри определяемой функции видны имена из окружающего блока кода). На практике с областями видимости и связыванием имён связано несколько правил «хорошего тона», о которых можно подробнее узнать из документации.
Дизайн языка Python построен вокруг объектно-ориентированной модели программирования. Реализация ООП в Python является элегантной, мощной и хорошо продуманной, но вместе с тем достаточно специфической по сравнению с другими объектно-ориентированными языками.
Возможности и особенности.
1. Классы являются одновременно объектами со всеми ниже приведёнными возможностями.
2. Наследование, в том числе множественное.
3. Полиморфизм (все функции виртуальные).
4. Инкапсуляция (два уровня -- общедоступные и скрытые методы и поля). Особенность -- скрытые члены доступны для использования и помечены как скрытые лишь особыми именами.
5. Специальные методы, управляющие жизненным циклом объекта: конструкторы, деструкторы, распределители памяти.
6. Перегрузка операторов (всех, кроме is, '.', '=' и символьных логических).
7. Свойства (имитация поля с помощью функций).
8. Управление доступом к полям (эмуляция полей и методов, частичный доступ, и т.п.).
9. Методы для управления наиболее распространёнными операциями (истинностное значение, len(), глубокое копирование, сериализация, итерация по объекту)
10. Метапрограммирование (управление созданием классов, триггеры на создание классов, и др.)
11. Полная интроспекция
12. Классовые и статические методы, классовые поля
13. Классы, вложенные в функции и классы
Python поддерживает парадигму функционального программирования, в частности:
· функция является объектом;
· функции высших порядков;
· рекурсия;
· развитая обработка списков (списочные выражения, операции над последовательностями, итераторы);
· аналог замыканий;
· частичное применение функции;
· возможность реализации других средств на самом языке (например, карринг).
Программное обеспечение (приложение или библиотека) на Python оформляется в виде модулей, которые в свою очередь могут быть собраны в пакеты. Модули могут располагаться как в каталогах, так и в ZIP-архивах. Модули могут быть двух типов по своему происхождению: модули, написанные на «чистом» Python, и модули расширения (extension modules), написанные на других языках программирования. Например, в стандартной библиотеке есть «чистый» модуль pickle и его аналог на Си: cPickle. Модуль оформляется в виде отдельного файла, а пакет -- в виде отдельного каталога. Подключение модуля к программе осуществляется оператором import. После импорта модуль представлен отдельным объектом, дающим доступ к пространству имён модуля. В ходе выполнения программы модуль можно перезагрузить функцией reload().
Обработка исключений поддерживается в Python посредством операторов try, except, else, finally, raise, образующих блок обработки исключения. программный защита предохранитель электрический цепь
Совместное использование else, except и finally стало возможно только начиная с Python 2.5. Информация о текущем исключении всегда доступна через sys.exc_info(). Кроме значения исключения, Python также сохраняет состояние стека вплоть до точки возбуждения исключения -- так называемый traceback.
В отличие от компилируемых языков программирования, в Python использование исключения не приводит к значительным накладным расходам (а зачастую даже позволяет ускорить исполнение программ) и очень широко используется. Исключения согласуются с философией Python (10-й пункт «дзена Python» -- «Ошибки никогда не должны умалчиваться») и являются одним из средств поддержки «утиной типизации».
В программах на Python широко используются итераторы. Цикл for может работать как с последовательностью, так и с итератором. Все коллекции, как правило, предоставляют итератор. Объекты определённого пользователем класса тоже могут быть итераторами. Подробнее об итераторах можно узнать в разделе о функциональном программировании. Модуль itertools стандартной библиотеки содержит много полезных функций для работы с итераторами.
Одной из интересных возможностей языка являются генераторы -- функции, сохраняющие внутреннее состояние: значения локальных переменных и текущую инструкцию. Генераторы могут использоваться как итераторы для структур данных и для ленивых вычислений.
При вызове генератора функция немедленно возвращает объект-итератор, который хранит текущую точку исполнения и состояние локальных переменных функции. При запросе следующего значения (посредством метода next(), неявно вызываемого в цикле for() генератор продолжает исполнение функции от предыдущей точки останова до следующего оператора yield или return.
В Python 2.4 появились генераторные выражения -- выражения, дающие в результате генератор. Генераторные выражения позволяют сэкономить память там, где иначе требовалось бы использовать список с промежуточными результатами.
Стандартная библиотека:
Богатая стандартная библиотека является одной из привлекательных сторон Python. Здесь имеются средства для работы со многими сетевыми протоколами и форматами Интернета, например, модули для написания HTTP-серверов и клиентов, для разбора и создания почтовых сообщений, для работы с XML и т. п. Набор модулей для работы с операционной системой позволяет писать кроссплатформенные приложения. Существуют модули для работы с регулярными выражениями, текстовыми кодировками, мультимедийными форматами, криптографическими протоколами, архивами, сериализации данных, поддержка юнит-тестирования и др.
Модули расширения и программные интерфейсы:
Помимо стандартной библиотеки существует множество библиотек, предоставляющих интерфейс ко всем системным вызовам на разных платформах; в частности, на платформе Win32 поддерживаются все вызовы Win32 API, а также COM в объёме не меньшем, чем у Visual Basic или Delphi. Количество прикладных библиотек для Python в самых разных областях без преувеличения огромно (веб, базы данных, обработка изображений, обработка текста, численные методы, приложения операционной системы и т.д.).
Для Python принята спецификация программного интерфейса к базам данных DB-API 2 и разработаны соответствующие этой спецификации пакеты для доступа к различным СУБД: Oracle, MySQL, PostgreSQL, Sybase, Firebird (Interbase), Informix, Microsoft SQL Server и SQLite. На платформе Windows доступ к БД возможен через ADO (ADOdb). Коммерческий пакет mxODBC для доступа к СУБД через ODBC для платформ Windows и UNIX разработан eGenix. Для Python написано много ORM (SQLObject, SQLAlchemy, Dejavu, Django), выполнены программные каркасы для разработки веб-приложений (Django, Pylons, Pyramid).
Библиотека NumPy для работы с многомерными массивами позволяет достичь производительности научных расчётов, сравнимой со специализированными пакетами. SciPy использует NumPy и предоставляет доступ к обширному спектру математических алгоритмов (матричная алгебра -- BLAS уровней 1--3, LAPACK, БПФ…). Numarray специально разработан для операций с большими объёмами научных данных.
WSGI -- интерфейс шлюза с веб-сервером (Python Web Server Gateway Interface).
Python предоставляет простой и удобный программный интерфейс C API для написания собственных модулей на языках Си и C++. Такой инструмент как SWIG позволяет почти автоматически получать привязки для использования C/C++ библиотек в коде на Python. Возможности этого и других инструментов варьируются от автоматической генерации (C/C++/Fortran)-Python интерфейсов по специальным файлам (SWIG, pyste, SIP, pyfort), до предоставления более удобных API (boost::python, CXX, Pyhrol и др.). Инструмент стандартной библиотеки ctypes позволяет программам Python напрямую обращаться к динамическим библиотекам/DLL, написанным на Си. Существуют модули, позволяющие встраивать код на С/C++ прямо в исходные файлы Python, создавая расширения «на лету» (pyinline, weave).
Другой подход состоит во встраивании интерпретатора Python в приложения. Python легко встраивается в программы на Java, C/C++, OCaml. Взаимодействие Python-приложений с другими системами возможно также с помощью CORBA, XML-RPC, SOAP, COM.
С помощью проекта Cython возможна трансляция программ, написанных на языках Python и Pyrex (англ.) в код на языке Си, с последующей компиляцией в машинный код. Cython используется для упрощения написания Python-библиотек, при его использовании отмечается ускорение кода и уменьшение накладных расходов.
Экспериментальный проект Shedskin предполагает создание компилятора для трансформации неявно типизированных Python программ в оптимизированный С++ код. Начиная с версии 0.22 Shedskin позволяет компилировать отдельные функции в модули расширений.
Python и подавляющее большинство библиотек к нему бесплатны и поставляются в исходных кодах. Более того, в отличие от многих открытых систем, лицензия никак не ограничивает использование Python в коммерческих разработках и не налагает никаких обязательств кроме указания авторских прав.
Одним из каналов распространения и обновления пакетов для Python является PyPI (англ. Python Package Index).
Контроль типов и перегрузка функций:
Существуют модули, позволяющие контролировать типы параметров функций на этапе исполнения, например, typecheck или method signature checking decorators. Необязательная декларация типов для параметров функции добавлена в Python 3, интерпретатор при этом не проверяет типы, а только добавляет соответствующую информацию к метаданным функции для последующего использования этой информации модулями расширений.
Перегрузка функций реализована различными сторонними библиотеками, в том числе PEAK. Непринятые планы по поддержке перегрузки в Python3000 были частично реализованы в библиотеке overloading-lib.
Возможности:
Основные изменения, внесённые в версии 3.0.
· Синтаксическая возможность для аннотации параметров и результата функций (например, для передачи информации о типе или документирования).
· Полный переход на unicode для строк.
· Введение нового типа «неизменяемые байты» и типа «изменяемый буфер». Оба необходимы для представления бинарных данных.
· Новая подсистема ввода-вывода (модуль io), имеющая отдельные представления для бинарных и текстовых данных.
· Абстрактные классы, абстрактные методы (доступно уже в 2.6).
· Иерархия типов для чисел.
· Выражения для словарей и множеств {k: v for k, v in a_dict} и {el1, el2, el3} (по аналогии со списковыми выражениями). Эта возможность была также добавлена в Python 2.7
· Изменения print из встроенного выражения во встроенную функцию. Это позволит модулям делать изменения, подстраиваясь под разное использование функции, а также упростит код. В Python 2.7 эта возможность активируется вводом from __future__ import print_function.
· Перемещение reduce (но не map или filter) из встроенного пространства в модуль functools (использование reduce существенно менее читабельно по сравнению с циклом).
· Удаление некоторых устаревших возможностей, поддерживаемых в ветке 2.x для совместимости, в частности: классы старого стиля, целочисленное деление с обрезанием результата как поведение по умолчанию, строковые исключения, неявный относительный импорт, оператор exec и т.п.
· Реорганизация стандартной библиотеки.
· Новый синтаксис для метаклассов.
Изменён синтаксис присваиваний. Стало возможным, например, присваивание a, *rest, b = range(5). С другой стороны, формальные параметры функций вроде def foo(a, (b, c)) более недопустимы.
5. Программный код
# Добавляем библиотеку для округления результатов
importmath
print( 'Калькулятор: Расчет номинала предохранителя в электрической сети.\n', '='*65, sep = '' )
while True:
# Выполняем сброс значений переменных
Pmax = 0; U = 0; Inom = 0; Save = 0; All = 0;
print( 'Введите значение максимальной мощности нагрузки (W): ', end = '')
while True:
# В случае ошибки, перехват исключения
try:
Pmax = int(input( ) )
except ValueError:
print('Некорректное значение, повторите ввод (W): ', end = '')
continue
else:
break
print('Введите значение напряжения сети (V): ', end = '')
while True:
try:
U = int( input( ) )
except ValueError:
print('Некорректное значение, повторите ввод (V): ', end = '' )
continue
else:
break
Inom = round( Pmax / U )
Save = round( Pmax / 100 * 120 / U - Inom )
All = Inom + Save
print( '\nРешение: ', Pmax, 'W/', U, 'V=', Inom, 'А + ', Save, 'А (Запас прочности 20%)', sep = '' )
print( '\nС учётом нагрузки на сеть ', Pmax, 'W, и напряжением сети ', U, 'V,\nнеобходим предохранитель с номинальным напряжением не менее ', All, 'А.', sep = '' )
print( '\nПауза, для нового расчета номинала нажмите клавишу Enter\n', '='*65, sep = '', end ='' )
# Ввод данных в динамическую переменную, для создания паузы, предотвращающей закрытие консоли
input( )
6. Тестирование и отладка
Тестирование производилось на компьютере со следующими характеристиками и предустановленным программным обеспечением:
1. Процессор AMD Phenom II X2 550 Processor, 3.10 GHz;
2. Оперативная память 12 GB RAM;
3. Видеокарта AMD Radeon HD 5700;
4. Жёсткий диск 512 GB;
5. Операционная система Windows 10 Enterprise;
6. IDLE (Python 3)
Обязательным является IDLE (Python 3), так как программы, которые разрабатываются на нём без дополнительного программного обеспечения являются консольными приложениями, без собственного графического интерфейса. Первый запуск программы, при вводе некорректных исходных данных была обнаружена ошибка, и приложение завершило свою работу досрочно, для её отладки был видоизменён программный код, в нём добавились циклы и перехватчики прерываний, они же отвечают за то, что происходит при возникновении ошибки в приложении (рис. 1).
Рисунок 1. Результат успешного выполнения программного кода
Рисунок 2. Результат неверно введённых исходных данных
При втором запуске программы проблем в работе приложения, обнаружено не было. Программа от начала и до конца выполнила свою работу успешно (рис. 2).
Заключение
Выяснив, что из себя представляет электрический предохранитель, какие они бывают, из чего состоят и как работают, а также узнав формулы для расчёта номинального тока в проводнике предохранителя, я составил техническое задание, проанализировав предметную область, и написал программное обеспечение на языке программирования - python, благодаря его простоте задача была выполнена достаточно просто, использовав базовый функционал и одну дополнительную внешнюю библиотеку, программа была составлена, отлажена и доведённая до штатно-работающего состояния. Закрепил свои навыки в разработке технического задания и документации на программное обеспечение.
Список использованной литературы
Книги:
1. Коэльё Л.П., Ричерт В. Построение систем машинного обучения на языке Python. -- Перевод с английского. -- М.: ДМК Пресс, 2015. -- с. -- ISBN 978-5-97060-330-7.
2. Маккинли У. Python и анализ данных. -- Перевод с английского. -- М.: ДМК Пресс, 2015. -- 482 с. -- ISBN 978-5-97060-315-4.
3. Марк Саммерфилд. Python на практике. -- Перевод с английского. -- М.: ДМК Пресс, 2014. -- 338 с. -- ISBN 978-5-97060-095-5.
4. Марк Лутц. Программирование на Python / Пер. с англ. -- 4-е изд. -- СПб.: Символ-Плюс, 2011. -- Т. II. -- ISBN 978-5-93286-211-7.
5. Марк Лутц. Программирование на Python / Пер. с англ. -- 4-е изд. -- СПб.: Символ-Плюс, 2011. -- Т. I. -- 992 с. -- ISBN 978-5-93286-210-0.
6. Марк Лутц. Изучаем Python, 4-е издание. -- Перевод с английского. -- СПб.: Символ-Плюс, 2010. -- 1280 с -- ISBN 978-5-93286-159-2
7. Дэвид М. Бизли. Python. Подробный справочник, 4-е издание. -- Перевод с английского. -- СПб.: Символ-Плюс, 2010. -- 864 с -- ISBN 978-5-93286-157-8
8. Марк Саммерфилд. Программирование на Python 3. Подробное руководство. -- Перевод с английского. -- СПб.: Символ-Плюс, 2009. -- 608 с -- ISBN 978-5-93286-161-5
9. Ноа Гифт, Джереми М. Джонс. Python в системном администрировании UNIX и Linux. -- Перевод с английского. -- СПб.: Символ-Плюс, 2009. -- 512 с -- ISBN 978-5-93286-149-3
10. Бизли, Дэвид М. Язык программирования Python. Справочник. -- К.: ДиаСофт, 2000. -- 336 с. -- ISBN 966-7393-54-2, ISBN 0-7357-0901-7
11. Сузи Р.А. Python. Наиболее полное руководство (+CD). -- СПб.: БХВ-Петербург, 2002. -- 768 с. -- ISBN 5-94157-097-X
12. Сузи Р.А. Язык программирования Python: Учебное пособие. -- М.: ИНТУИТ, БИНОМ. Лаборатория знаний, 2006. -- 328 с. -- ISBN 5-9556-0058-2, ISBN 5-94774-442-2
13. Доусон М. Программируем на Python. -- СПб.: Питер, 2012. -- 432 с. -- ISBN 978-5-459-00314-7.
14. С. Шапошникова. Основы программирования на Python. Учебник. Вводный курс. -- версия 2. -- 2011. -- 44 с.
15. И.А. Хахаев. Практикум по алгоритмизации и программированию на Python. Учебник. -- М.: Альт Линукс, 2010. -- 126 с. -- (Библиотека ALT Linux). -- ISBN 978-5-905167-02-7.
Веб-документ:
16. Введение. [Электронный ресурс]
17. Электрический предохранитель. [Электронный документ]
18. Анализ предметной области. [Электронный ресурс]
19. Python. [Электронный документ]
Размещено на Allbest.ru
Подобные документы
Разработка программного обеспечения для корпоративного портала Череповецкого Государственного Университета. Выбор технологии, среды и языка программирования. Требования к составу и параметрам технических средств. Построение функциональных диаграмм.
дипломная работа [1,7 M], добавлен 09.11.2016Требования к составу и параметрам технических средств. Выбор языка программирования. Структурная схема программного продукта. Проектирование пользовательского интерфейса. Создание системы и заполнение базы данных. Разработка форм ввода-вывода информации.
курсовая работа [1,2 M], добавлен 30.01.2016Разработка программного обеспечения на языке C. Определение сигнала на выходе цепи, формирование его передаточной характеристики. Расчет длительности переднего фронта входного и выходного сигнала. Выбор структуры, отладка и тестирование программы.
курсовая работа [83,0 K], добавлен 26.09.2014Требования к программе, составу и параметрам технических средств. Основные элементы языка программирования. Инструкция на выполнение программы учета клиентов: вызов и загрузка, входные и выходные данные. Расчет себестоимости программного продукта.
дипломная работа [3,9 M], добавлен 29.06.2012Законы электрических цепей, порядок и методы их расчета. Разработка программы на языке программирования Borland C++ Builder 5.0 для анализа разветвленных электрических цепей с использованием матричного метода. Алгоритм решения задачи и описание его работы
курсовая работа [211,5 K], добавлен 08.10.2012Особенности метода численного интегрирования обыкновенных дифференциальных уравнений. Расчет переходного процесса в нелинейной электрической цепи, вызванного ее включением или отключением. Метод численного интегрирования Рунге-Кутта с переменным шагом.
отчет по практике [740,1 K], добавлен 10.10.2011Применения моделирования, методов вычислительной математики, теории оптимизации и средств вычислительной техники при анализе и проектировании электрических цепей. Параметрическая оптимизация электрической цепи. Листинг программы и результаты ее работы.
курсовая работа [223,8 K], добавлен 21.02.2012Схема электрической цепи (источник переменного тока, катушка индуктивности, конденсатор, набор резисторов и ключ). Вывод системы дифференциальных уравнений. Численное интегрирование (методы левых и средних прямоугольников). Блок-схемы и программные коды.
курсовая работа [1,7 M], добавлен 09.06.2012Описание математической модели определения тока в электрической цепи с помощью решения системы алгебраических уравнений методом Гаусса. Описание и разработка блок-схемы программы. Ввод данных задачи, составление программы и анализ результатов решения.
контрольная работа [231,8 K], добавлен 15.08.2012Обзор программных средств компьютерного моделирования. Изучение реакции электрической цепи на внешнее воздействие средствами MathCad: расчет значения функций u(t), построение графика зависимости напряжения по времени, нахождение аппроксимирующей функции.
курсовая работа [269,9 K], добавлен 07.03.2013