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

УДК 621.058.013.8

А. Ф. ШИРЯЛКИН, Д. А. ЖУГАНОВ

РАЗРАБОТКИ АЛГОРИТМА И ПРОГРАММЫ ДЛЯ АВТОМАТИЗАЦИИ ОПРЕДЕЛЕНИЯ ОТНОСИТЕЛЬНОЙ ВЛАЖНОСТИ

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

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

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

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

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

Программа вычисления относительной влажности «Гигрометр Жуганов» была написана на

Психрометрическая таблица

языке программирования Паскаль. Для более эффективной работы в Паскале, согласно ГОСТ 19.701-90, была разработана схема алгоритма (рис. 1) и на его основе написана программа.

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

Имена в языках программирования принято называть идентификаторами. Есть идентификаторы переменных, констант, типов, функций и т. д.

Таблица

гигрометра ВИТ-1

Показ. сух. терм. °С РАЗНОСТЬ ПОКАЗАНИИ ТЕРМОМЕТРОВ, °С

0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5 6,0 6,5 7,0 7,5 8,0 8,5 9,0 9,5 10,0 10,5 11,0

ОТНОСИТЕЛЬНАЯ ВЛАЖНОСТЬ, %

5 91 83 75 66 58 50 42 34 26 19

6 92 84 76 67 60 52 45 37 30 22 15

7 92 84 77 69 62 54 47 40 33 26 19

8 92 85 78 70 63 56 49 42 36 29 22 16

9 93 86 79 71 65 58 51 45 38 32 25 19

© Ширялкин А. Ф., Жуганов Д. А., 2015

Рис. 1. Схема алгоритма автоматизированного расчёта влажности с помощью гигрометра ВИТ-1

С понятием величины связаны следующие характеристики (атрибуты):

идентификатор - это её обозначение и место в памяти;

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

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

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

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

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

Различают переменные следующих простых типов: целые (Integer, Byte, ShortInt, Word, LongInt), вещественные (Real, Double, Single,

Extended), логический (Boolean), символьный (Char), перечисляемый, диапазонный (интервальный).

Иерархия типов в языке Pascal следующая:

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

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

В языке Pascal она выглядит следующим образом:

Read (список переменных);

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

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

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

Процедура вывода с форматом для целого типа имеет вид:

WriteLn(A : N, B : M, C : L);

Здесь N, M, L — выражения целого типа, задающие ширину поля вывода значений.

При выводе вещественных значений Write(R) без указания формата выводит вещественное R в поле шириной 18 символов в форме с плавающей запятой в нормализованном виде. Для десятичного представления значения R применяется оператор с форматами вида WriteLn(R : N : M). В десятичной записи числа R выводится M (0 < M < 24) знаков после запятой, всего выводится N знаков.

Логический операнд — это конструкция соответствующего языка программирования, которая задает правило для вычисления одного из двух возможных значений: True или False.

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

логических выражений могут быть: логические значения (True, False); логические переменные; отношения.

Например, 1) Y:=True; 2) Z:= False; 3) LogPer:=A > B; 4) Log1:=(A = B) And (C <= D).

Как видно из примеров, отношение — это два выражения, разделённые между собой знаком операции отношения (>, <, =, <>, <=, >=). Отношение является простейшей конструкцией логического выражения. Оно вычисляет результат True, если выполняется заданное соотношение, и False — в противном случае.

В языке Pascal операции отношения определены для величин любого порядкового типа (целые, символьный, логический, перечислимый, диапазон). Операции отношения могут быть выполнены также над строковыми выражениями. Сравнение двух строк выполняется посимвольно слева направо в соответствии с их лексикографической упорядоченностью в таблице кодов ASCII. Эта упорядоченность предполагает, что "1"<"2", "a"<"b", "B"<"C" и т. д. Как только в процессе попарных сравнений символов с одинаковой порядковой позицией обнаруживается больший по коду ASCII символ, данный процесс прекращается, и считается, что строка с этим символом соответственно больше другой строки. Если строки имеют разную длину и их символы совпадают до последнего знака, то считается, что более короткая строка меньше.

Логическое выражение — это логический операнд или последовательность логических операндов, разделённых между собой знаками логических операций (NOT, AND, OR, XOR).

Порядок действий при вычислении значения логического выражения:

1) вычисляются значения в скобках;

2) вычисляются значения функций;

3) выполняется унарные операции (операция NOT);

4) выполняется операция AND;

5) выполняются операции OR, XOR;

6) выполняются операции отношения.

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

При реализации некоторых программ удобно использовать функции, которые имеют логическое значение. Обычно они используются для того, чтобы на некоторый вопрос получить ответ «ДА» или «НЕТ».

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

1) Подготовка условия ввода данных.

2) Ввод данных.

3) Процесс вычисления.

4) Вывод результатов.

1) Условие ввода данных

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

Уаг{ Оператор Уаг обозначает начало блока для объявления переменных.}

К :Integeг;

{Объявление переменных}

{То, что в фигурных скобках, программа не обрабатывает, это комментарии для пояснения действий программы}

Условия ввода данных происходит по конкретным условиям на языке Паскаль (рис. 2).

if(x>=5) and(x<26) and(y=0) then h := '100%'; if(x>=5) and(x<6) and(y=0.5) then h := '91%'; if(x>=6) and(x<9) and(y=0.5) then h := '92%'; if(x>=9) and(x<13) and(y=0.5) then h := '93%'; if(x>=13) and(x<17) and(y=0.5) then h := '94%'; if(x>=18) and(x<26) and(y=0.5) then h := 'выше 96%';

if(x=17) and(y=0.5) then h := '95%'; if(x>=5) and(x<6) and(y=1) then h := '83%'; if(x>=6) and(x<8) and(y=1) then h := '84%'; if(x=8) and(y=1) then h := '85%'; if(x>=9) and(x<11) and(y=1) then h := '86%'; if(x>=11) and(x<13) and(y=1) then h := '87%'; if(x>=13) and(x<16) and(y=1) then h := '88%';

Рис. 2. Условия ввода данных для вычисления влажности воздуха

На главном поле программы пользователю показывается, в каком диапазоне работает гигрометр ВИТ-1.

2) Ввод данных

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

Begin Writeln ('Введите T - сухого градусника');

{Приглашение ввести значение переменной К} Readln(K);

{Считывание значения, введенного с клавиатуры, в переменную c именем K}

Writeln('влажность = ', K);

{Вывод на экран значения введённой переменной K}

{Любая команда в Паскале завершается точкой с запятой.} End.

{Begin и End обозначают начало и конец, какого-либо программного блока.End с точкой -

конец программы.}

Ввод данных для вычисления влажности воздуха показан на рис. 3.

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

3) Процесс вычисления procedurelnitControls; begin

MainForm.Title := 'Гигрометр Жуганов'; задаём название программы

MainForm.SetSize(500,350); описываем размеры окна

MainForm.CenterOnScreen; Пример

b.Value := 19.5; описание 1 переменной в окне

a.Value := 20; описание 2 переменной в окне

ok.Click += MyClick;

mainPanel.Dock := DockStyle.Left;

mainPanel.Width := 150;

ParentControl :=MainForm;

tb := new TextBox;

tb.Dock := DockStyle.Fill;

tb.AddLine('Диапазон измерения относительной влажности в зависимости');

tb.AddLine('от температур от 20% до 90% '); tb.AddLine('При температуре: от 5 °C до +25 °C ');

tb.AddLine('Введите температуру градусников'); End;

После того когда все поля заполнены, приступаем к вычислению влажности, для этого нужно нажать на кнопку «Вычислить».

4) Вывод результатов Readln(K);

{Считывание значения, введённого с клавиатуры, в переменную c именем K} Writeln('3ro К = ', K);

{Вывод на экран значения введённой переменной K}

{Любая команда в Паскале завершается точкой с запятой} End.

{Begin и End обозначают начало и конец, какого-либо программного блока.End с точкой — конец программы.}varh :

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

Для того чтобы повторить вычисление, требуется снова заполнить поля и нажать кнопку «Вычислить».

ob1 Гигрометр Жуганов 1. - | И

Т - сухого градус и ика Диапазон измерения относительной влажности в зависимости

I от температур от 20% до Э0%

1 При температуре: от 5 до +25 аС.

Введите температуру градусников

I

Вычислить |

Рис. 3. Ввод данных для вычисления влажности воздуха

Гигрометр Жуганов

Т - сухого граду он ика 1' Т - мокрого граду он ика ¡20 | Вычислить | Темпратура сухого градусника = 21; Темпратура мокрого градусника = 20; Влажность составляет Э0%;

Рис. 4. Вывод результатов вычисления влажности воздуха

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

СПИСОК ЛИТЕРАТУРЫ

1. Берлинер М. А. Измерение влажности. -2-е изд., перераб. и доп. - М. : Энергия, 1973. -230 с.

2. ГОСТ 8.524-85 Государственная система обеспечения единства измерений. Таблицы психрометрические. Построение, содержание, расчётные соотношения. - М., 1986.

3. ГОСТ 8.279-78 Государственная система обеспечения единства измерений. Термометры стеклянные жидкостные рабочие. Методика поверки. - М., 1979.

4. ГОСТ 19.701-90 Единая система программной документации. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. - М., 1991.

5. http://xadcpoaimlwh.tumblr.com/post/ 85800789653 (дата обращения: 10.01.2015).

6. http://www.findpatent.ru/patent/235/ 2356039.html (дата обращения: 10.01.2015).

7. http://mirslovarei.com/content med/ gigrometr-hygrometer-1549.html (дата обращения: 10.01.2015).

Ширялкин Александр Фёдорович, кандидат технических наук, доцент. Доцент кафедры «Управление качеством» Ульяновского государственного технического университета. Жуганов Дмитрий Александрович, студент группы Укбд-31

Поступила 10.03.2015 г.