Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Desktop / isu004

.pdf
Скачиваний:
41
Добавлен:
31.05.2015
Размер:
924.61 Кб
Скачать

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

Процедура обращения к порту

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

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

процессе выполнения эта процедура считывает данные в переменную data из порта с адресом adress. Тип переменной, используемой в качестве adress должен быть word, тип data byte. Ниже приведено описание мо-

дуля ports.

unit ports; interface

procedure outport(adress :word;data :byte); procedure inport(adress :word;var data :byte);

implementation

procedure outport(adress :word;data :byte); begin

asm

mov dx,adress

10

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

mov al,data out dx,al end

end;

procedure inport(adress :word;var data :byte); var regal : byte;

begin asm

mov dx,adress in al,dx

mov regal,al end; data:=regal; end;

end.

Этот модуль подключается к основной программе через меню Delphi. Для использования описанных процедур необходимо завести две пе- ременные, например a и b, с типами word и byte соответственно. Значение первой использовать в качестве адреса; второй для хранения вводи- мых/выводимых данных. Для вывода данных в порт необходимо: присво- ить его адрес переменной a; установить b, равной записываемому значе- нию; вызвать процедуру outport(a,b). Для считывания данных из порта: присвоить адрес порта переменной a; вызвать процедуру inport(a,b); в ка- честве данных использовать значение переменной b (процедура устанав- ливает её значение соответствующим образом). Переменные типа word могут принимать значения 0..65535; типа byte – 0..255. Необходимо иметь ввиду, что в используемых ИВК все порты однонаправлены, т.е. если запи- сать, скажем, число value в порт с адресом adr , а затем считать из порта adr, то мы не получим исходного value.

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

{ переменные, задаваемые в разделе описания переменных соответствую- щей процедуры:

const

k=500; количество элементов выборки var

f: text; текстовая файловая переменная}

.................................……………………

11

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

assign(f,'path_to_file\file_name');

{связать внешний файл file_name с

файловой переменной f }

 

 

rewrite(f);

 

{ создать и открыть файл}

for i:=1 to k do

 

 

writeln(f,x[i]);

{запись массива данных x[i] столбцом в файл}

close(f); {закрыть файл}

 

 

………………………………………….

Регистры, обслуживающие АЦП

При работе с одноканальным АЦП существуют как минимум две информационные линии обмена: сигнала готовности АЦП и непосредст- венно данных. Сигнал готовности несёт информацию о состоянии АЦП в каждый момент времени. Необходимость его анализа при работе АЦП очевидна, т.к. если просто постоянно считывать данные, то наверняка по- лучим повторную информацию, т.е. возникает ситуация, когда данные ещё не обновились, а АЦП уже снова опрашивается. Проще говоря, компьютер в этом случае работает гораздо быстрее системы сбора данных (ССД) АЦП и необходимо сделать задержку, чтобы «подождать» АЦП ( время обра- щения компьютера к ИБ меньше времени дискретизации АЦП ). Если сигнал готовности имеет значение 1(0) , это означает, что преобразование завершено и АЦП готов к считыванию, если 0(1), - то не готов. Следова- тельно, для считывания из АЦП необходимо наличие двух выделенных со- вокупностей портов: порт, адресующий регистр(ы) данных и порт регистра состояния АЦП. Кроме описанных двух информационных линий, при ра- боте с АЦП может также использоваться сигнал запуска АЦП. Он необхо- дим в тех системах, где АЦП работает не постоянно, а в режиме старт- стоп”. По пришествии данного сигнала начинается процесс единичного преобразования, по завершении которого АЦП переходит в состояние ожидания следующего такого сигнала.

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

12

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Регистры, обслуживающие датчики, исполнительные устройства и СУ

Датчики параметров обычно не подлежат управлению напрямую. Однако возможен контроль и взаимодействие с СУ. В качестве СУ в боль-

шинстве случаев используется усилитель с регулируемым коэффициентом усиления, который устанавливается программным образом. Изменение чувствительности необходимо для приведения входного сигнала к значе- ниям, лежащим в пределах входного диапазона АЦП, так чтобы АЦП ис- пользовался оптимальным образом. В отдельных реализациях ИВС диапа- зон изменения коэффициента усиления может достигать 3-4 порядков. Применительно к многоканальным системам следует отметить, что коли- чество усилителей в таком случае будет равно числу каналов и число из- меняемых коэффициентов соответственно возрастёт. Для управления чув- ствительностью усилителя обычно используют два порта. Записью в один из них активизируют выбранный канал; используя второй - устанавливают чувствительность усилителя.

Для управления исполнительными внешними устройствами также отводится некоторая совокупность адресов портов ввода-вывода. Однако, структура этих портов зависит от конкретного экземпляра ИВС. Например,

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

Рис.1.3. Схема шагового двигателя

Для того, чтобы двигатель сделал полный оборот необходимо сделать N шагов по 360/N градусов каждый. Следует отметить, что после каждого шага ось жёстко фиксируется и не имеет свободного вращения. Очевидно, что полную систему параметров для его управления составляет совокуп- ность двух сигналов: направления и инициации шага (сигнал, по которому

13

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

делается один шаг). Алгоритм управления с использованием этих парамет- ров таков: установил направление сделал шаг и т.д.

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

Например, обмотки 1 и 2 подключены к источнику питания, а 3 и 4 – нет. Для того, чтобы повернуть ось двигателя на один шаг в заданную сто- рону , необходимо изменить порядок подключения обмоток. Повернём ось против часовой стрелки (по рис.3). Для этого необходимо сначала подклю- чить обмотки 1 и 2 к источнику; 3 –4 отключить; затем подать питание на обмотки 2-3 и отключить 1,4. Ось шагового двигателя сделает поворот на один шаг (минимальный угол) против часовой стрелки. Если обозначить подключённое состояние через 1, отключённое - через 0, и номеру обмот- ки сопоставлять положение 1 или 0 в записи вида xxxx, где каждое x при- нимает значения нуля или единицы (первое x слева направо состояние 1 обмотки, второе x – второй и т.д.), то последовательность xxxx для враще- ния против часовой стрелки будет:1100, 0110, 0011, 1001, 1100 … Анало- гичным образом можно организовать вращение по часовой стрелке. По- следовательность подключения обмоток в этом случае будет, очевидно,

следующей: 1100, 1001, 0011, 0110, 1100 ...

Из вышеприведённого примера следует, что для управления ШД требуется регистр порта на запись размером не менее 4 бит. Однако, если

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

2.Колебания шарика в вязкой среде

Вработе исследуется зависимость от размера и скорости тела силы сопротивления, возникающей при колебательном движении сферического тела в воздухе. Эта задача является одной из простейших задач гидроди- намики, иллюстрирующей ее основные положения. Исследование прово- дится сначала экспериментально, результаты измерений обрабатываются на компьютере с помощью программы, которую необходимо написать сту- денту. Затем на компьютере c помощью готовой программы исследуется математическая модель явления. Для физического анализа результатов из- мерений необходимо ознакомиться с разделом «Элементы гидродинами- ки».

14

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

2.1. Краткая теория.

Объект изучения представляет собой математический маятник: ша- рик массы m, радиуса R , подвешенный на нити длиной l и совершаю- щий колебательные движения, при этом с помощью датчика измеряется скорость шарика в нижней точке траектории. Массу и радиус шарика можно варьировать в процессе эксперимента. Возникающая при движении шарика сила сопротивления приводит к уменьшению скорости u со вре- менем, т.е. колебания носят затухающий характер, причем если сопротив- ление обусловлено вязким трением с коэффициентом вязкости η, то со- гласно формуле (2.9) (см. Приложение) сила сопротивления F = −α u (α = 6πηR ) и уравнение движения шарика в приближении малых отклонений x от положения равновесия имеет вид :

..

.

+ ω02 x = 0 ,

 

x

+ 2γ x

(2.1)

где ω0 = (g / l)1/ 2 - частота колебаний, γ = α / m,

-коэффициент затухания

(декремент) колебаний.

 

 

Решение уравнения

(2.1) имеет вид произведения гармонической

функции на затухающую экспоненту:

 

x = x0 exp(−γ t)sin(ω0t) .

(2.2)

Очевидно, что выражение для скорости

.

x можно представить в ана-

×

 

логичной форме: u = x = B(t)exp(−γ t), где B(t)- тоже гармоническая функ-

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

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

15

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

2.2. Лабораторная установка

При выполнении данной лабораторной работы используется уста- новка, схема которой приведена на рис.2.1. Конструктивно она состоит из: а) стойки с маятником и датчиком положения – «световыми воротами»; б) блока с усилителями сигналов; в) интерфейсной платы с аналогово- цифровым преобразователем (АЦП), расположенной внутри компьютера; г) персонального компьютера.

Задача измерения силы сопротивления сводится к измерению зави- симости от времени скорости шарика в нижней точке траектории с помо- щью «световых ворот». Сигнал с фотодиода поступает на вход усилителя, затем после обработки АЦП - в ПК.

Обмен данными между ПК и интерфейсной платой осуществляется при помощи портов ввода-вывода компьютера (см. раздел 1.2.). В адрес- ном пространстве ввода-вывода компьютера интерфейсная плата резерви- рует адрес 260.

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

=

2

1

3

4

5

6

 

 

 

 

 

 

Рис.2.1. 1- шарик, подвешенный на нити; 2- светодиод; 3- фотодиод; 4- усилитель; 5- АЦП; 6- ПК

заключается в том, что через промежутки времени, задаваемые программ- ным путем, компьютер опрашивает АЦП и регистрирует уровень сигнала с фотодиода. Сигнал с выхода АЦП представляет собой 8-разрядный код, соответствующий положительному входному сигналу. Во время прохож- дения шарика в нижней точке траектории мимо "световых ворот" луч от светодиода перекрывается, сигнал с фотодиода падает и становится мень- ше некоторого уровня Uп . Этот момент времени t1 фиксируется, как и мо-

мент t2 , когда шарик выходит из "световых ворот" и сигнал с фотодиода становится больше уровня Uп (см. Рис.2.2). Скорость движения шарика

16

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

при этом можно определить по формуле u = 2R / t , где t = t2 t1 . Про- межуток t в программе определяется, как время, в течение которого сиг-

нал с фотодиода остается по величине меньше некоторого порога. Порог устанавливается программным путем по «осциллограмме» сигнала фото- датчика. Кроме величины t регистрируется также период колебаний, оп-

ределяемый как промежуток времени T между двумя последовательными входами шарика в "световые ворота".

При программировании в среде Delphi, для определения временных интервалов удобно использовать системную функцию Windows GetTickCount, которая возвращает число миллисекунд с начала текущего сеанса Windows. Ниже приведен фрагмент программы для определения момента t1 входа шарика в «световые ворота»:

……………………………………………….

isPeriod:=False; {установка флага переменной булевского типа,

позволяющей зафиксировать момент прохождения порога} t:=0;

……………………………………………….

Tick:=GetTickCount;

repeat until (GetTickCount-Tick)>1; {1 – миллисекундная задержка} inport(260,a) {считывание показания датчика}

if (a<=Level)and (not isPeriod) then {условие входа шарика в «свето-

вые ворота»} begin

isPeriod:=True; {порог пройден}

t:=GetTickCount; {регистрация момента t1 прохождения порога}

end;

……………………………………………….

Аналогично выглядит фрагмент программы, фиксирующий момент t2 выхода шарика из «световых ворот». Для заполнения массивов перио-

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

2.3. Задания

1. Написать программу, обеспечивающую опрос АЦП и вывод на экран монитора график зависимости сигнала фотодатчика от времени осцил-

17

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

лограмму» сигнала).

2. Написать программу, позволяющую по сигналу фотодатчика измерять скорость и период колебаний. Набор скоростей ui и периодов Ti за N по-

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

Определение параметров ИВС

3. Калибровка временного разрешения. Подайте на вход АЦП сигнал ка- либрованной длительности, и по «осциллограмме» сигнала определите шаг квантования по времени.

4. Выведите на экран сигнал фотодатчика при разных начальных от- клонениях шарика. Чем определяется ширина фронта сигнала δt (см. рис.2.2)? Предложите способ его уменьшения и реализуйте его. Как по фронту сигнала измерить временное разрешение ИВС?

Рис.2.2. «Осциллограмма» сигнала фотодатчика

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

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

ний постройте кривую зависимости от x0 нелинейной поправки к периоду (частоте) T /T0 (x0 ) = ω/ ω0 и сравните ее с расчетной зависимостью

18

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

ω/ ω0 ≈ (3/8) x02 , где ω (или

T ) -нелинейная поправка к частоте ω0

(периоду T0 ) колебаний малой

амплитуды. Определите также средний

декремент затухания колебаний γ . Амплитуда колебания (x0 )i измеряет- ся непосредственно, или вычисляется по измеренному значению скорости шарика ui согласно формуле: (x0 )i » (x0 )i−1 - Dui (x0 )1i/12 , справедливой при малых изменениях скорости ui за период колебаний.

6. Измерьте скорость шарика. Для этого выведите на экран сигнал фото- диода при небольших отклонениях шарика. Измерьте Dt, используя ре- зультаты временной калибровки ИВС (задание 3). Для данного радиуса шарика R найдите скорость u = 2R / t. Запишите значения скоростей в файл и по данным измерений оцените среднюю силу сопротивления воз- духа за период колебаний для трех первых колебаний.

7. Определите по результатам измерений коэффициент затухания γ для

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

вязкости воздуха ht = 1.82×10−5 кг/с×м .

8. Для шарика радиуса R оцените максимальное отклонение, при котором существенную роль играют еще эффекты молекулярной вязкости, т.е. Re = uRρ / ηt 1, где u - максимальная скорость шарика, r=1.29 кг/м3 -

плотность воздуха.

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

В этом задании покажите, что величина η определяется числом Рей- нольдса Re. Для этого проведите измерения с тремя шариками разных ра- диусов R1, R2 , R3 , причем для каждого шарика начальное отклонение h

устанавливайте так, чтобы uR const . Начинать измерения удобно с ша- рика большего диаметра. Для каждого случая найдите вязкость η и пояс- ните результат. Затем для выбранного шарика проведите измерения с

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

η( h ).

10. Исследуйте зависимость силы сопротивления от времени для одного шарика. Для этого установите N= 500 и максимальную начальную ампли- туду отклонения шарика. Поясните вид полученной зависимости.

19

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Соседние файлы в папке Desktop