Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodicheskie_ukazania_po_C.pdf
Скачиваний:
37
Добавлен:
07.03.2015
Размер:
2.9 Mб
Скачать

тип

тип, в который должно быть преобразовано значение

значение

преобразуемое значение (переменная, константа, выражение)

Например, в строке:

Ku = (Umax - Umin)/((float)(Nmax - Nmin));

вычисляется разность целочисленных констант Nmax и Nmin. Результат вычисления - также целочисленное значение. Далее это значение с помощью операции (float) преобразуется в формат с плавающей десятичной точкой. В строке:

U_ADC = Ku * (float)(SignalADC - Nmin) + Umin;

выполняется аналогичная операция с разностью целочисленных переменных SignalADC и Nmin.

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

5.2.4.Вычисление значения физического параметра (температуры) по значению напряжения на выходе датчика

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

Зависимость состоит из трех участков, перечисленных в таблице 7

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

№ участка

Границы участка

 

 

1

[U min ,U 1 ]

2

U 1 ,U 2

3

[U 2 ,U max ]

На участках 1 и 3 (см. таблицу 7) значение измеряемого физического параметра неизменно, не зависит от температуры. Фактически это - предельные значения измеряемого физического значения. Для участка 1 значение физического параметра будет определяться выражением:

t=t1 ;

( 5)

где:

tтекущее измеренное значение физического параметра (температуры);

t1

минимальное измеряемое значение физического параметра (берется из таблицы 7 для

 

Вашего варианта).

Для участка 3 значение физического параметра будет определяться выражением:

40

t=t2 ;

( 6)

где:

t2

максимальное измеряемое значение физического параметра (берется из таблицы 7 для

 

Вашего варианта).

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

K t=

t2t1

;

( 7)

U 2U 1

 

 

 

 

 

t=K t (U ADCU 1 )+t1 ;

( 8)

где:

 

 

K t

коэффициент пропорциональности зависимости измеряемого физического

 

 

параметра от выходного напряжения датчика;

 

U 1 , U 2

границы отрезка 2 по выходному напряжению (берутся из таблицы 7 для

 

 

Вашего варианта);

 

U ADC

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

 

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

41

Начало

 

 

U ADC<U 1

Да

t=t1

 

Нет

 

 

U ADC>U 2

Да

t=t2

 

Нет

 

 

t2t1

 

 

K t= U 2U 1

 

 

t=K t (U ADCU 1 )+t1

 

 

Конец

 

 

Рис. 28. Блок-схема алгоритма вычисления значения измеряемого физического сигнала

Для реализации данного алгоритма можно использовать оператор выбора. В общем виде

оператор имеет следующую структуру:

 

 

if (условие)

{

Действия, выполняемые, если значение условия не равно 0.

}

else

{

Действия, выполняемые, если значение условия равно 0.

}

Может использоваться также сокращенный вариант оператора:

if (условие)

{

Действия, выполняемые, если значение условия не равно 0.

}

42

или, если действия включают в себя только одну строку исходного текста:

if (условие) Действие_если_значение_условия_не_0;

В качестве условия может использоваться любая переменная или выражение.

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

x = 10;

...

if (x)

{

x = 0;

}

В данном примере переменной x присваивается значение 10. Далее оператор условия проверяет свое условие (в данном случае - значение переменной x), и так как оно не равно 0, выполняет следующее действие (запись в переменную x нового значения, в данном случае - 0).

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

Таблица 8. Символы операций сравнения

Символ

Проверяемое условие

 

 

<

меньше

>

больше

<=

меньше или равно

 

 

>=

больше или равно

==

равно

!=

не равно

Например, выражение:

10 >= 20

возвратит значение 0, а выражение:

10 != 20

ненулевое значение (зависит от компилятора, обычно - 1).

Использование данных операций иллюстрирует следующий пример:

x = 10;

 

...

 

if (x == 10)

 

{

// Если условие выполняется.

x = 0;

}

 

43

else

{

x = 20;

// Если условие не выполняется.

}

В данном примере оператор сравнения проверяет условие равенства переменной x константе 10. Поскольку в данном примере это условие выполняется (ранее переменной x присваивается значение 10), далее в переменную x заносится значение 0.

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

1. Создать переменные Kt и t типа float, используемые для выполнения алгоритма. В переменную Kt будет помещаться рассчитанное значение коэффициента пропорциональности для участка 2 характеристики датчика (см. рис. 27, таблицу 7). В переменную t будет

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

2. Реализовать алгоритм, приведенный на рис. 28. Исходный текст, реализующий данный алгоритм, должен размещаться в функции main после вычисления выходного напряжения датчика (см. раздел 5.2.3.). Исходный текст реализации алгоритма будет примерно следующий вид:

44

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]