Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Практическое занятие 14





Обработка информации файла цифрового осциллографа TDS 1002B

Цель занятия

Знакомство с представлением информации о проведённых экспериментах в файлах цифрового осциллографа TDS 1002B; взаимодействием программ Delphi и таблиц Excel; обработкой строковой информации и формой импульсов частичных разрядов.

Цифровой осциллограф TDS 1002B позволяет сохранять информацию о быстропротекающих процессах в виде файла таблиц Excel с максимальной частотой выборки 2 ГГц. Каждый файл содержит 2500 последовательных значений напряжения (выборок), расстояние между которыми зависит от задаваемого диапазона времени измерения. Например, при заданном масштабе времени 5мкс/клетку на экране осциллографа отобразится процесс длительностью в 10 раз больше (по числу больших клеток), т.е. 50 мкс. Интервал времени между отдельными выборками составит 50мкс/2500 = 20 нс, а при масштабе 2,5 мс/клетку на экране будет 25 мс с выборкой через 10 мкс. Если задан такой масштаб времени, что на экране будет отображаться процесс длительностью менее 1,25 мкс (масштабы 100 н/клетку и меньше) то расстояние между выборками будет 0,5 нс, а число точек менее 2500.

При подаче повышающегося отрицательного напряжения на электроде с малым радиусом кривизны, начиная с некоторого напряжения, возникают самостоятельные разряды наносекундного диапазона в воздухе вблизи электрода. Частота следования этих разрядов увеличивается при повышении напряжения. Такие импульсы впервые наблюдал Тричел и теперь они называются импульсы Тричела. Импульсы Тричела наблюдаются при более низком напряжении, по сравнению с коронными разрядами. Один из импульсов Тричела, зарегистрированный на осциллографе TDS 1002B показан на рис. 14.1.

Рис. 14.1. Импульс Тричела на экране осциллографа TDS 1002B

В памяти осциллографа можно сохранить файл с массивом данных экрана и использовать его в вычислениях или отчетах. Файл данных сохраняется в формате таблиц Excel и содержит строковую информацию в виде столбца и одной ячейкой в строке. Пример начала такого файла данных цифрового осциллографа TDS 1002B показан в табл. 14.1.

Таблица 14.1. Начало файла данных осциллографа TDS 1002B

Record Length,2.500000e+03,, -0.000050000000, -0.02800,

Sample Interval,4.000000e-08,, -0.000049960000, -0.04000

Trigger Point,1.250000000000e+03,, -0.000049920000, -0.04000,

,,, -0,000049880000, -0.04000,

,,, -0.000049840000, -0.04000,

,,, -0.000049800000, -0.03600,

Source,CH1,, -0.000049760000, -0.04400,

Vertical Units,V,, -0.000049720000, -0.03200,

Vertical Scale,1.000000e-01,, -0.000049680000, -0.03200,

Vertical Offset,3.680000e-01,, -0.000049640000, -0.04000,

Horizontal Units,s,, -0.000049600000, -0.03600,

Horizontal Scale,1.000000e-05,, -0.000049560000, -0.04000,

Pt Fmt,Y,, -0.000049520000, -0.03200,

Yzero,0.000000e+00,, -0.000049480000, -0.03600,

Probe Atten,1.000000e+00,, -0.000049440000, -0.03600,

Model Number, TDS 1002 B,, -0.000049400000, -0.03600,

Serial Number,C062351,, -0.000049360000, -0.03600,

Firmware Version,FV: v 22.01,, -0.000049320000, -0.03600,

,,,-00.000049280000, -0.04000,

,,,-00.000049240000, -0.03600,

,,, -0.000049800000, -0.03600,

 

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

Задание 1

ЗапуститеДельфи. Создайте заголовок формы «Обработка информации о частичном разряде с осциллографа TDS 1002 B». Сохраните программу в папке практика 14. Проверьте число сохранённых файлов (должно быть не менее 6).

Положите на форму компонент Panel, удалите её заголовок и измените цвет на clSkyBlue.

Положите на панель следующие компоненты: а) две кнопки запуска Button и измените их заголовок на «Чтение файла данных» и «Расчёт»; б) 4 компонента LabeledEdit из дополнительной палитры компонентов и измените их заголовки на следующие: «t 0, нс», «tk, нс», «R, Ом» и «q, пКл». В каждое поля текст запишите значения 0, 500, 5, 100. Измените размеры панели так, чтобы компоненты занимали большую часть площади панели, а саму панель с компонентами переместите в верхний левый угол формы.

Поместите в правый верхний угол формы компонент OpenDialog (из набора Dialogs). Положите на форму ниже панели отладочное поле Memo и вставьте линейки прокрутки. Положите на форму компонент Chart и подготовьте его к выводу 1 графика типа «Быстрая линия». Запустите таблицы Excel.

Задание 2

Двойным щелчком на компоненте button1 «Чтение файла данных» создайте процедуру button1Click.

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

var

Form1: TForm 1;

t,u: array [1..2600] of double;

ni: word;

stepT,h:double;

В разделе описания локальных переменных функции чтения данных опишите такие переменные:

var

str,s: string [80];

i,j,k: word;

VExcel: Variant;

a 1: real;

В тело процедуры вставьте следующий набор команд для получения доступа их программы Delphi к данным таблиц Excel:

//Для чтения данных следует запустить Excel

Try

//Проверка, нет ли запущенного Excel

VExcel:= GetActiveOleObject ('Excel.Application ');

Except

//если нет, то запускаем

on EOLESysError do

VExcel:= CreateOleObject ('Excel.Application ');

end; { try }

VExcel.Visible:= false;

//Открыть Excel на полный экран

VExcel.WindowState:= -4137;

//не показывать предупреждающие сообщения

VExcel.DisplayAlerts:= False;

//открыть рабочую книгу

{ strPath:= ExtractFilePath (Application.ExeName);

strPath:= strPath + '\ test.xls ';}

if OpenDialog 1. Execute then

str:= OpenDialog 1. FileName;

VExcel.WorkBooks.Open (str);

//Становимся на первый лист

// VExcel.WorkSheets [1]. Activate;

memo 1. Clear;

Вставьте проверочную строку:

memo 1. Lines.Add ('Пока ошибок нет');

Запустите программу на исполнение и убедитесь, что последняя строка появляется в поле вывода memo 1. Закомментируйте проверочную строку при отсутствии ошибок.

Задание 3. Работа со строковыми переменными

В тело процедуры запишите команду присвоения переменной str значения строки, содержащейся в первой ячейки таблицы:

str:= VExcel.WorkSheets [1]. Cells [1,1];

Строка в первой ячейке файла данных выглядит так:

Record Length, 2.500000e+03,, -0.000050000000, -0.02800,

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

1. определить номер буквы 2 в исходной строке и присвоить эту букву новой строковой переменной, например s: s:= str [номер буквы 2];

2. Вместо точки, которая используется в файле данных в строку s добавить запятую: s:= s+ ',';

3. Определить номера букв начиная с буквы 5 и заканчивая буквой 3 и записать цикл побуквенного чтения части строки, выделенной жирным шрифтом: for j:= номер буквы 5 to номер буквы 3 do s:= s + str [ j ];

4. Преобразовать строку в число с плавающей запятой: a 1:= strTofloat (s);

5. Преобразовать число с плавающей запятой в целое число: ni:= Trunc (a1);

Вывести значения переменных s, a1, ni в поле мемо. Запустить программу и убедиться, что выделение из строки было проделано правильно. После отладки строки вывода закомментировать.

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

Sample Interval, 4.000000e-08,, -0.000049960000, -0.04000

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

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

Создать заготовку цикла для чтения из файла значений напряжения:

for i:=1 to ni do

begin

end;{ for }

Алгоритм чтения состоит в следующих действиях:

1. перейти на 1 строку файла данных:

str:= VExcel.WorkSheets [1]. Cells [i,1];

2. обнулить строковую переменную: s:=' ';

3. определить номер символа в строке, с которого начинается запись напряжения. Значение напряжения в файле записывается в последней части строки:

Record Length,2.500000e+03,, -0.000050000000, -0.02800,

Поскольку в начале файла строки имеют различную длину, то для унификации определения позиции начала записи напряжения удобно использовать функцию длины строки: length (str):

k:= length (str)-10;

4. Создать цикл чтения части исходной строки, содержащей значение напряжения:

for j:= k to length (str)-1 do if str [ j ]='.' then s:= s +',' else s:= s + str [ j ];

5. Преобразовать полученную строку в элемент массива напряжений:

u [ i ]:= strTofloat (s);

и вычислить время от начала измерения, соответствующее этому напряжению:

t [ i ]:= i * stepT;

6. Вывести полученную точку на график:

Chart 1.Series[0]. AddXY (t [ i ]*1e6, u [ i ]);

Запустить программу на исполнение и убедиться в отсутствии ошибок и появлении графика. От момента запуска программы до появления графика может пройти несколько секунд.

Задание 4.

Двойным щелчком на компоненте button 2 «Расчёт» создайте процедуру button 2 Click.

В разделе описания переменных этой процедуры опишите следующие переменные:

var i,i 1 ,i 2: word;

t 1 ,t 2 ,R,sum,q: double;

В теле процедуры введите команды очистки графика, обнуления переменной sum и чтения данных из трёх компонент LabeledEdit:

t 1:=1e-6* StrToFloat (LabeledEdit 1. Text);

t 2:=1e-6* StrToFloat (LabeledEdit 2. Text);

R:= StrToFloat (LabeledEdit 3. Text);

Для того, чтобы импульс Тричела занимал почти всё поле элемента Chart нужно изменить значения t 1 и t 2. Задайте значения начала построения графика (t 1), конца (t 2) и цикл определения начальных и конечных номеров элементов массивов времени и напряжения.

Определение начального номера можно сделать следующим образом:

for i:=1 to ni do

if t [ i ]>= t 1 then

begin

i 1:= i;

Memo 1. Lines.Add (' i 1= '+ inttostr (i 1));

Break;

end;

Аналогичным образом можно определить конечный номер:

for i:=1 to ni do

if t [ i ]>= t 2 then

begin

i 2:= i;

Memo 1. Lines.Add (' i 1= '+ inttostr (i 2));

Break;

end;

Создайте цикл построения графика в уточнённых границах:

for i:= i 1+1 to i 2 do

begin

Chart 1. Series [0]. AddXY (t [ i ]*1e6, u [ i ]);

end;

Добавьте в тело этого цикла определение площади под графиком импульса Тричела по методу Гаусса.

Для вычисления площади по этому методу вся площадь разбивается вертикальными линиями на элементарные фигуры. Если заменить линию, соединяющую значения ближайших точек напряжения, то фигура превращается в прямоугольную трапецию с основаниями l 1 = u [ i ]- u [ i 1] и l 2 = u [ i-1 ]- u [ i 1], где значение напряжения в начале графика u [ i 1] принимается за нулевую линию. Площадь элементарной трапеции равна полусумме оснований умноженной на высоту. Высота трапеции равна шагу по времени выборки (StepT). Тогда вычисление площади выглядит в виде следующей строки в цикле:

sum:= sum +0.5*(u [ i ]+ u [ i -1]-2* u [ i 1])* StepT;

После выхода из цикла переменная sum содержит значение площади под импульсом Тричела. Если площадь под графиком разделить на сопротивление, с которого снимается напряжение u [ i ], то можно получить значение заряда, перенесённого в импульсе:

q:= sum / R;.

Выведите полученное значение в компонент LabeledEdit 4:

LabeledEdit 4. Text:=FloatToStrF (q,ffFixed,7,4);

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

Вопросы для самопроверки

1. Для каких целей нужен осциллограф?

2. Что такое частота выборки цифрового осциллографа?

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

4. Каково должно быть число значений процесса длительностью 100 нс, чтобы искажения формы процесса были несущественными?

5. Можно ли использовать аналого - цифровой преобразователь с частотой выборки 400 кГц для записи синусоидального сигнала с частотой 100 кГц?

6. Какова максимальная частота выборки осциллографа TDS 1002B?

7. Сколько значений функции содержит файл осциллографа TDS 1002B при развёртке 10 мкс?

8. Сколько значений функции содержит файл осциллографа TDS 1002B при развёртке 100 нс?

9. Что такое импульсы Тричела?

10. При каком напряжении наблюдаются импульсы Тричела?

11. Как частота следования импульсов Тричела зависит от напряжения?

12. Какова длительность фронта импульса Тричела?

13. Что содержится в первых 18 строках файла осциллограммы TDS 1002B?

14. Как получить доступ из программы Delphy к файлу таблиц Excel?

15. Как записать строковую информацию и ячейки таблиц Excel?

16. Как из длинной строки выделить часть строки, находящуюся на определённом месте от начала строки?

17. Как выделить из первой строки файла осциллограммы число выборок осциллографа?

18. Как выделить из второй строки файла осциллограммы временной интервал между двумя последовательными выборками осциллографа?

19. Как, используя функцию длины строки length (str), прочитать информацию о величине напряжения, записанную в конце первых 18 строк файла осциллограммы?

20. Как заменить разделитель «.» в строке на разделитель «,» при чтении напряжения как строковой переменной?

21. Как единообразно определить номер первого символа напряжения в файле осциллограммы, если он в каждой строке может быть различным?

22. Какую функцию можно использовать, чтобы выйти из цикла с определённым числом повторений до его естественного завершения?

23. Как убрать не информативные участки осциллограммы на графике в компоненте Chart?

24. Как определить площадь под импульсом Тричела?

 

Оглавление

Название лабораторной работы Стр.
  Создание интерфейса программы в среде «Delphi»  
  Процедуры и способы создания заготовок процедур. Меню  
  Вывод информации в поле мемо  
  Ввод дискретной информации из компонента ComboBox. ListBox  
  Работа с таблицами в среде «Delphi»  
  Многостраничные программы  
  Работа с картинками в среде «Delphi». Расчёт простых заземлителей.  
  Канва и работа с ней. Разложение цвета на составляющие в координатах RGB.  
  Компонент Chart: его свойства. Представление экспериментальных данных на графиках.  
  Построение и сохранение графика функции. Аппроксимация результатов.  
  Численное интегрирование.  
  Решение уравнения методом половинного деления отрезка.  
  Корреляционный анализ данных.  
  Обработка информации файла цифрового осциллографа TDS 1002B.  

 

 

Александр Евгеньевич Усачев

Методы расчёта электростатических полей

Учебное пособие

Кафедра электрических станций КГЭУ

 

Редактор

Компьютерная вёрстка

Изд.лиц. ИД №03480 от 08.12.00 Темплан издания КГЭУ 2013 г.

Подписано к печати Формат 60х84/16

Гарнитура «Times» Вид печати РОМ Бумага “Business’

Физ.печ.л. Усл.печ.л. Уч.-изд.л.

Тираж Заказ

Издательский отдел КГЭУ

430066, Казань, Красносельская, 51

Типография КГЭУ 430066, Казань, Красносельская, 51

 

 

Date: 2016-05-16; view: 448; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию