КОМПЬЮТЕРНЫЕ ТЕХНОЛОГИИ В НАУКЕ И ПРОИЗВОДСТВЕ ВТЮРИН Александр Николаевич КРЫЛОВ Александр Сергеевич ПРИНЦИПЫ И СРЕДСТВА АВТОМАТИЗАЦИИ ИЗМЕРЕНИЙ И ФИЗИЧЕСКОГО ЭКСПЕРИМЕНТА АППАРАТНОЕ ОБЕСПЕЧЕНИЕ АВТОМАТИЗАЦИИ ЭКСПЕРИМЕНТА Архитектура ЭВМ Особенности архитектуры IBM-совместимых компьютеров Системы сопряжения ЭВМ и экспериментальных установок ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ АВТОМАТИЗАЦИИ ЭКСПЕРИМЕНТА Среда прикладного графического программирования LabVIEW Алгоритмы оперативной обработки данных ПРИНЦИПЫ И СРЕДСТВА АВТОМАТИЗАЦИИ ФИЗИЧЕСКОГО ЭКСПЕРИМЕНТА Предпосылки применения компьютеров в экспериментальной физике Усложнение экспериментальной техники Совершенствование ЭВМ Новые возможности, предоставляемые автоматизацией эксперимента Области применения автоматизированных систем в экспериментальной физике Блок-схемы связи ЭВМ с экспериментальными установками Предпосылки применения компьютеров в экспериментальной физике Усложнение экспериментальной техники Установка Милликена для измерения заряда электрона Схема установки Резерфорда для расщепления ядер атомов легких элементов Предпосылки применения компьютеров в экспериментальной физике Усложнение экспериментальной техники Детектор лабораторий КЕК Япония Ускоритель электронов Стэнфорд, США Кольцо ускорителя электронов Новосибирск, Россия Предпосылки применения компьютеров в экспериментальной физике Совершенствование ЭВМ UNIVAC. 1951 г. IBM 701. 1952 г. IBM 360. 1964 г. Intel 4004. 1971 г. Программируемые калькуляторы PDP 11. 1972 г. IBM PC XT. 1981 г. Предпосылки применения компьютеров в экспериментальной физике Новые возможности, предоставляемые автоматизацией эксперимента Пульт управления инжекционного комплекса ускорителя электронов (Новосибирск) Области применения автоматизированных систем в экспериментальной физике Блок-схемы связи ЭВМ с экспериментальными установками ЭВМ как часть установки ЭВМ Установка Области применения автоматизированных систем в экспериментальной физике Блок-схемы связи ЭВМ с экспериментальными установками ЭВМ как часть установки Области применения автоматизированных систем в экспериментальной физике Блок-схемы связи ЭВМ с экспериментальными установками ЭВМ как часть установки Спектрометр AAS 3 Спектрометр Specord 80 Спектрометр Cary 50 Области применения автоматизированных систем в экспериментальной физике Блок-схемы связи ЭВМ с экспериментальными установками ЭВМ – интерфейс – установка ЭВМ Интерфейс Установка Области применения автоматизированных систем в экспериментальной физике Блок-схемы связи ЭВМ с экспериментальными установками ЭВМ – интерфейс – установка Области применения автоматизированных систем в экспериментальной физике Блок-схемы связи ЭВМ с экспериментальными установками ЭВМ – группа интерфейсов – установка Интерфейс Интерфейс ЭВМ Интерфейс Интерфейс Интерфейс Установка Области применения автоматизированных систем в экспериментальной физике Блок-схемы связи ЭВМ с экспериментальными установками ЭВМ – модульный интерфейс – установка ЭВМ К о н т р о л л е р Интерфейс Интерфейс Интерфейс Интерфейс Интерфейс Установка Области применения автоматизированных систем в экспериментальной физике Блок-схемы связи ЭВМ с экспериментальными установками ЭВМ – модульный интерфейс – установка Евромеханика PXI Вектор КАМАК/CAMAC VXI АППАРАТНОЕ ОБЕСПЕЧЕНИЕ АВТОМАТИЗАЦИИ ЭКСПЕРИМЕНТА Архитектура ЭВМ Представление данных Организация памяти Команды процессора, управление последовательностью операций Задача ЭВМ – обработка информации. Для этого необходимо: – Представить данные в цифровом виде. – Записывать и считывать эти данные. – Обрабатывать эти данные. Архитектура ЭВМ Представление данных Целые положительные числа – представляются в двоичной системе исчисления. Архитектура ЭВМ Представление данных Целые положительные числа – представляются в двоичной системе исчисления. Целые числа со знаком – представляются в виде двоичного дополнительного кода. Старший разряд является знаковым. Если число положительное, то к нему дописывается старший (знаковый) разряд, равный 0. Если число отрицательное, то все его разряды инвертируются, и к результату прибавляется 1. К получившемуся числу дописывается старший (знаковый) разряд, равный 1. Архитектура ЭВМ Представление данных Целые положительные числа – представляются в двоичной системе исчисления. Целые числа со знаком – представляются в виде двоичного дополнительного кода. Старший разряд является знаковым. Если число положительное, то к нему дописывается старший (знаковый) разряд, равный 0. Если число отрицательное, то все его разряды инвертируются, и к результату прибавляется 1. К получившемуся числу дописывается старший (знаковый) разряд, равный 1. Дробные числа – представляются в виде двух целых, мантиссы и порядка. Архитектура ЭВМ Представление данных Целые положительные числа – представляются в двоичной системе исчисления. Целые числа со знаком – представляются в виде двоичного дополнительного кода. Старший разряд является знаковым. Если число положительное, то к нему дописывается старший (знаковый) разряд, равный 0. Если число отрицательное, то все его разряды инвертируются, и к результату прибавляется 1. К получившемуся числу дописывается старший (знаковый) разряд, равный 1. Дробные числа – представляются в виде двух целых, мантиссы и порядка. Двоично-десятичный код – каждый десятичный разряд числа записывается в виде его четырёхбитного двоичного кода. Архитектура ЭВМ Организация памяти Бит – один разряд двоичного кода. Применяется также в значении двоичный разряд. В вычислительной технике и сетях передачи данных значения 0 и 1 передаются различными уровнями напряжения либо тока. В микросхемах ТТЛ 0 представляется напряжением в диапазоне от +0 до +3 В, а 1 – в диапазоне от 4,5 до 5,0 В. Архитектура ЭВМ Организация памяти Бит – один разряд двоичного кода. Применяется также в значении двоичный разряд. В вычислительной технике и сетях передачи данных значения 0 и 1 передаются различными уровнями напряжения либо тока. В микросхемах ТТЛ 0 представляется напряжением в диапазоне от +0 до +3 В, а 1 – в диапазоне от 4,5 до 5,0 В. Байт – единица измерения количества информации, равная восьми битам. Может принимать 256 (28) различных значений. Архитектура ЭВМ Организация памяти Бит – один разряд двоичного кода. Применяется также в значении двоичный разряд. В вычислительной технике и сетях передачи данных значения 0 и 1 передаются различными уровнями напряжения либо тока. В микросхемах ТТЛ 0 представляется напряжением в диапазоне от +0 до +3 В, а 1 – в диапазоне от 4,5 до 5,0 В. Байт – единица измерения количества информации, равная восьми битам. Может принимать 256 (28) различных значений. Машинное слово – машиннозависимая величина, равная разрядности регистров процессора и/или разрядности шины данных. Архитектура ЭВМ Организация памяти ... Номер машинного слова в упорядоченном массиве оперативной памяти ЭВМ – его адрес. ... Машинное слово Биты слова Архитектура ЭВМ Организация памяти Методы адресации – методы указания адреса ячейки памяти, к которой производится доступ. Примеры методов адресации: абсолютная — указывается адрес ячейки памяти. относительная — указывается смещение относительно какого-либо значения. косвенная — указывается адрес ячейки, содержащей адрес необходимой ячейки индексная — указывается адрес начала массива, размер элемента и порядковый номер элемента в массиве. Архитектура ЭВМ Организация памяти Методы адресации – методы указания адреса ячейки памяти, к которой производится доступ. Примеры методов адресации: абсолютная — указывается адрес ячейки памяти. относительная — указывается смещение относительно какого-либо значения. косвенная — указывается адрес ячейки, содержащей адрес необходимой ячейки индексная — указывается адрес начала массива, размер элемента и порядковый номер элемента в массиве. Адресное пространство – возможное количество адресов памяти. Определяется числом битов в адресе (числом линий адреса на шине) . Архитектура ЭВМ Команды процессора Система команд – набор команд конкретной вычислительной машины, которые интерпретируются на аппаратном уровне (машинный язык). Ассемблер – язык, команды которого один в один соответствуют командам процессора и представляют собой удобную символьную форму записи (мнемокод) команд и аргументов. Каждая модель процессора имеет свой набор команд и соответствующий ему язык ассемблера. Архитектура ЭВМ Команды процессора Система команд – набор команд конкретной вычислительной машины, которые интерпретируются на аппаратном уровне (машинный язык). Ассемблер – язык, команды которого один в один соответствуют командам процессора и представляют собой удобную символьную форму записи (мнемокод) команд и аргументов. Каждая модель процессора имеет свой набор команд и соответствующий ему язык ассемблера. Регистр процессора – ячейка памяти внутри процессора, предназначенная для хранения промежуточных результатов вычислений (регистр общего назначения) или содержащая данные, необходимые для работы процессора (специальные регистры). Архитектура ЭВМ Команды процессора, управление последовательностью операций Программный счетчик – регистр процессора, который хранит адрес кода команды, выполняемой в данный момент. Программа в машинных кодах запускается путем помещения адреса ее первой команды в программный счетчик. Выполнение операции процессором: – процессор выставляет число, хранящееся в программном счетчике, на шину адреса оперативной памяти, и отдает памяти команду чтения; – память, получив адрес и команду чтения, выставляет содержимое, хранящееся по этому адресу, на шину данных, и сообщает о готовности; – процессор получает число с шины данных, интерпретирует его как команду и исполняет; – если последняя команда не является командой перехода, процессор увеличивает на единицу число, хранящееся в программном счетчике; в результате там образуется адрес следующей команды. Архитектура ЭВМ Команды процессора, управление последовательностью операций Прерывание – сигнал, сообщающий процессору о совершении какого-либо асинхронного события. При этом выполнение текущей последовательности команд приостанавливается, и управление передаётся программе обработки прерывания, которая выполняет обработку события и возвращает управление прерванной программе. Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А Основная программа Код выполняемой команды Векторы прерываний А ... А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А Основная программа Код выполняемой команды Векторы прерываний А ... А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А Основная программа Код выполняемой команды А ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... Основная программа Код выполняемой команды А А ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... Основная программа Код выполняемой команды А А ... Векторы прерываний А(IRQ) ... Прерывание Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... Основная программа Код выполняемой команды А(IRQ) А ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А(IRQ) Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А(IRQ) Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А(IRQ) Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А(IRQ) Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А(IRQ) Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А(IRQ) Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А(IRQ) Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А(IRQ) Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А(IRQ) Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А(IRQ) Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ Команды процессора, управление последовательностью операций ... Программа обработки прерывания Программный счетчик процессора А(IRQ) ... А Основная программа ... Векторы прерываний А(IRQ) ... Архитектура ЭВМ: – Длина машинного слова – Адресное пространство – Методы адресации – Система команд процессора – Регистры процессора – Набор и векторы прерываний Особенности архитектуры IBM-совместимых компьютеров Организация оперативной памяти Обработка прерываний Организация ввода-вывода Особенности архитектуры IBM-совместимых компьютеров Любой из этих компьютеров включает: 1. Процессор, совместимый с семейством х86 Intel. 2. Единую систему распределения адресов памяти. 3. Отделенное от памяти унифицированное пространство адресов вводавывода, с фиксированными адресами и совместимым программным управлением обязательных портов. 3. Обязательный минимальный набор системных устройств и интерфейсов ввода-вывода. 4. Единую систему аппаратных прерываний. 5. Унифицированные шины расширения (ISA, PCI и др.), состав которых может варьироваться в зависимости от модели компьютера. 6. Базовую систему ввода-вывода (BIOS), выполняющую начальное тестирование компьютера, содержащую набор функций, обслуживающих системные устройства ввода-вывода, и производящую загрузку операционной системы. 7. Систему прямого доступа к памяти (DMA), позволяющую производить обмен данными между внешними устройствами и оперативной памятью с минимальным участием процессора. Особенности архитектуры IBM-совместимых компьютеров Организация оперативной памяти ... Смещение Реальный режим (Real mode) 640 КБ Адрес = Сегмент (16/4 бит) + Смещение (16 бит) ... Сегмент 64 К Сегмент 64 К Защищенный режим (Protected mode) 4 ГБ Адрес – 32 бита Особенности архитектуры IBM-совместимых компьютеров Базовая (стандартная) память conventional memory 640 КБ Организация оперативной памяти Особенности архитектуры IBM-совместимых компьютеров Базовая (стандартная) память conventional memory 640 КБ Организация оперативной памяти 003FF Векторы прерываний 00000 512 16-разрядных слов; 256 адресов (сегмент-смещение) Особенности архитектуры IBM-совместимых компьютеров Базовая (стандартная) память conventional memory 640 КБ Организация оперативной памяти 004FF BIOS 00400 003FF Векторы прерываний 00000 Особенности архитектуры IBM-совместимых компьютеров Базовая (стандартная) память conventional memory 640 КБ Организация оперативной памяти … Ядро операционной системы 00500 004FF BIOS 00400 003FF Векторы прерываний 00000 Особенности архитектуры IBM-совместимых компьютеров Базовая (стандартная) память conventional memory 640 КБ Организация оперативной памяти Программы пользователя … Ядро операционной системы 00500 004FF BIOS 00400 003FF Векторы прерываний 00000 Особенности архитектуры IBM-совместимых компьютеров Обработка прерываний 1. Программные прерывания – инициируются выполняемой программой. Могут служить для вызова сервисов операционной системы. Особенности архитектуры IBM-совместимых компьютеров Обработка прерываний 1. Программные прерывания. 2. Внутренние прерывания процессора. – инициируются процессором при возникновении асинхронного события. Особенности архитектуры IBM-совместимых компьютеров Обработка прерываний 1. Программные прерывания. 2. Внутренние прерывания процессора. 3. Внешние немаскируемые прерывания – инициируются внутренними системами ЭВМ (контроль состояния памяти, управление энергопотреблением...). Особенности архитектуры IBM-совместимых компьютеров Обработка прерываний 1. Программные прерывания. 2. Внутренние прерывания процессора. 3. Внешние немаскируемые прерывания. 4. Внешние маскируемые прерывания – инициируются внешними периферийными устройствами. Особенности архитектуры IBM-совместимых компьютеров Обработка прерываний 1. Программные прерывания. 2. Внутренние прерывания процессора. 3. Внешние немаскируемые прерывания. 4. Внешние маскируемые прерывания. Особенности архитектуры IBM-совместимых компьютеров Обработка прерываний ВНЕШНИЕ МАСКИРУЕМЫЕ ПРЕРЫВАНИЯ IBM PC Номер прерывания Вектор прерывания Назначение в IBM XT Назначение в IBM AT IRQ0 816 таймер таймер IRQ1 916 клавиатура клавиатура IRQ2 А16 резерв 2-й контроллер прерываний IRQ3 В16 COM1 COM2, СОМ4 IRQ4 С16 COM2 COM1, COM3 IRQ5 D16 HDD LPT2, звук, резерв IRQ6 E16 FDD FDD IRQ7 F16 LPT1 LPT1 IRQ8 7016 не используется часы реального времени IRQ9–12 7116–7416 не используется резерв IRQ13 7516 не используется сопроцессор IRQ14 7616 не используется HDD IRQ15 7716 не используется резерв Особенности архитектуры IBM-совместимых компьютеров Организация ввода-вывода Процессор CPU Шина/Bus Контроллеры и интерфейсы внешних устройств Особенности архитектуры IBM-совместимых компьютеров Организация ввода-вывода Шина/Bus Питание Синхронизация Адрес Данные Команды Состояния (запросы на прерывание) Особенности архитектуры IBM-совместимых компьютеров Организация ввода-вывода Шина/Bus Дешифраторы адреса Интерфейс внешнего устройства Регистры Организация ввода-вывода Процессор Системная шина Чипсет Южный Процессор мост PCI SCSI Северный Процессор мост PCI-Express USB Контроллеры ISA LPT, COM ОЗУ Организация ввода-вывода: Шина ISA ISA-8: 8 бит/линий данных, 20 – адреса, 6 – прерывания (IRQ2 – IRQ7). Тактовая частотой 4,77 МГц, скорость передачи данных 4,77 МБ/с. Организация ввода-вывода: Шина ISA ISA-8: 8 бит/линий данных, 20 – адреса, 6 – прерывания (IRQ2 – IRQ7). Тактовая частотой 4,77 МГц, скорость передачи данных 4,77 МБ/с. ISA-16: 16 бит данных, 24 линии адреса, 11 линий прерывания, тактовая частота 8 МГц. Организация ввода-вывода: Шина ISA ISA-8: 8 бит/линий данных, 20 – адреса, 6 – прерывания (IRQ2 – IRQ7). Тактовая частотой 4,77 МГц, скорость передачи данных 4,77 МБ/с. ISA-16: 16 бит данных, 24 линии адреса, 11 линий прерывания, тактовая частота 8 МГц. ЕISA: 32 бита данных, 32 линии адреса. Организация ввода-вывода: Шина PCI PCI 2.0 – 32 бита данных, 32 – адреса, использование одного прерывания для 4-х устройств, тактовая частота – 33 МГц, скорость передачи данных 132 МБ/с. Сигнальное напряжение 5 В, Plug & Play, пакетная передача данных. PCI 3.0 – тактовая частота – 33 и 66 МГц, скорость передачи данных 132/264 МБ/с. Сигнальное напряжение 3.3 В. PCI 64, 66 – 64 бита данных. Организация ввода-вывода: Шина SCSI Разрядность шины Частота шины Пропускная способность Максимальное количество устройств SCSI 8 бит 5 МГц 5 МБ/с 8 Fast SCSI 8 бит 10 МГц 10 МБ/с 8 Wide SCSI 16 бит 10 МГц 20 МБ/с 16 Ultra SCSI 8 бит 20 МГц 20 МБ/с 5–8 Ultra Wide SCSI 16 бит 20 МГц 40 МБ/с 5–8 Ultra2 SCSI 8 бит 40 МГц 40 МБ/с 8 Ultra2 Wide SCSI 16 бит 40 МГц 80 МБ/с 16 Ultra3 SCSI 16 бит 40 МГц DDR 160 МБ/с 16 Ultra-320 SCSI 16 бит 80 МГц DDR 320 МБ/с 16 Наименование Организация ввода-вывода: Параллельный порт LPT – передача 1 байта за цикл,биты данных передаются параллельно, скорость передачи 100–150 КБ/с. Три 8-разрядных регистра. Организация ввода-вывода: Параллельный порт Контакты DB-25 IEEE 1284-A Контакты Centronics IEEE 1284-B 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 Strobe Data 1 Data 2 Data 3 Data 4 Data 5 Data 6 Data 7 Маркер цикла передачи (выход) Сигнал 1 (выход) Сигнал 2 (выход) Сигнал 3 (выход) Сигнал 4 (выход) Сигнал 5 (выход) Сигнал 6 (выход) Сигнал 7 (выход) 9 10 11 12 13 14 15 9 10 11 12 13 14 32 Data 8 Acknowledge Busy Paper End Select Auto Feed Error Сигнал 8 (выход) Готовность принять (вход) Занят (вход) Нет бумаги (вход) Выбор (вход) Автоподача (выход) Ошибка (вход) 16 17 18–25 31 36 16–17, 19–30 Init Select In GND Инициализация (выход) Управление печатью (выход) Общий Обозначение Назначение Организация ввода-вывода: Параллельный порт Регистр Бит BASE 0–7 BASE+1 3 ERROR, ошибка принтера 4 SLCT, принтер включен 5 PE, конец бумаги 6 ACK, запрос на прерывание 7 BUSY, запрет передачи данных по неготовности 0 STROBE, стробирующий сигнал 1 AUТO FD, перевод строки на принтере 2 INIT, сброс текущего состояния принтера 3 SLCT IN, предупреждение о передаче данных 4 разрешение прерывания BASE+2 Назначение Данные Организация ввода-вывода: Параллельный порт Процедура передачи данных: 1. Передача данных в регистр данных. 2. Проверка готовности (отсутствие сигнала BUSY). Зацикливается до появления сообщения о готовности принтера. 3. По получению готовности – запись сигнала STROBE (начало передачи), затем – его сброс (конец передачи). Организация ввода-вывода: Последовательный порт COM – передача 1 байта за цикл, биты данных передаются последовательно, начало и конец передачи данных отмечается старт- и стоп-битами, предварительно согласуется скорость передачи, скорость передачи 10–15 КБ/с. Восемь 8-разрядных регистров. Организация ввода-вывода: USB порт Шина USB представляет собой последовательный интерфейс передачи данных для среднескоростных и низкоскоростных периферийных устройств. Обеспечивает автоконфигурацию и горячее подключение устройств. USB-кабель представляет собой две витые пары: по одной паре происходит передача данных в каждом направлении (дифференциальное включение), а другая пара используется для питания периферийного устройства (+5 В, 500 мА). К одному контроллеру шины USB можно подсоединить до 127 устройств через цепочку концентраторов-хабов (топология звезда). Организация ввода-вывода: USB порт Обеспечивает три скорости передачи данных: LS (Low speed) – до 1,5 Мбит/с Организация ввода-вывода: USB порт Обеспечивает три скорости передачи данных: LS (Low speed) – до 1,5 Мбит/с FS (Full speed) – до 12 Мбит/с Организация ввода-вывода: USB порт Обеспечивает три скорости передачи данных: LS (Low speed) – до 1,5 Мбит/с FS (Full speed) – до 12 Мбит/с HS (High speed) – до 480 Мбит/с (только USB-2) Организация ввода-вывода: USB порт USB-устройство включает набор конечных точек – аналогов регистров портов. LS-устройства имеют до 3 точек, FS и HS – до 16. Размер точки – 64 байта. В нулевой точке (аналог регистра команд и состояний) хранится информация об устройстве и поддерживаемых им протоколах передачи. Сюда же записывается информация при начальном конфигурировании устройства. Организация ввода-вывода: USB порт Архитектура USB допускает четыре базовых протокола передач данных между хостом и периферийными устройствами: Управляющие передачи – используются для конфигурирования устройств во время их подключения и для управления ими в процессе работы. Протокол обеспечивает гарантированную доставку данных и подтверждение выполнения устройством управляющей команды. Организация ввода-вывода: USB порт Архитектура USB допускает четыре базовых протокола передач данных между хостом и периферийными устройствами: Управляющие передачи. Прерывания (interrupts) – передачи спонтанных сообщений от внешних устройств контроллеру. Должны передаваться с задержкой не более, чем того требует устройство. Доставка гарантирована, при ошибках передачи выполняется повтор. Прерываниями можно передавать данные и к устройству: как только устройство сигнализирует о потребности в данных, хост их передает. Размер сообщения может составлять 0–8 байт для низкой скорости, 0–64 байт – для полной и 0–1024 байт – для высокой скорости передачи. Организация ввода-вывода: USB порт Архитектура USB допускает четыре базовых протокола передач данных между хостом и периферийными устройствами: Управляющие передачи. Прерывания. Передачи массивов данных (bulk data transfers) – это передачи без обязательств по скорости. Передачи массивов могут приостанавливаться при большой загрузке шины. Доставка гарантированная – при случайной ошибке выполняется повтор. Организация ввода-вывода: USB порт Архитектура USB допускает четыре базовых протокола передач данных между хостом и периферийными устройствами: Управляющие передачи. Прерывания. Передачи массивов данных. Изохронные передачи (isochronous transfers) — потоковые передачи в реальном времени с гарантированным временем доставки. На полной скорости (FS) можно организовать один канал с полосой до 1,023 МБ/с (или два по 0,5 МБ/с). На высокой скорости (HS) можно получить канал до 24 МБ/с. Надежность доставки не гарантируется – в случае обнаружения ошибки изохронные данные не повторяются, недействительные пакеты игнорируются. Организация ввода-вывода: USB порт Архитектура USB допускает четыре базовых протокола передач данных между хостом и периферийными устройствами: Управляющие передачи. Прерывания. Передачи массивов данных. Изохронные передачи. Модульная система КАМАК Система КАМАК (CAMAC – Computer Automated Measurement And Control) • Разработана и предложена совместно европейским комитетом ESONE (European Standards of Nuclear Electronics) и американским комитетом US NIM. • Первоначально концепция системы была принята пятью лабораториями, находившимися во Франции, ФРГ, Италии, Бельгии, Нидерландах, с целью выбора общего стандарта и определения общих потребностей • С 1974 г. членами комитета являются 29 лабораторий и организаций, среди них: ZERN, Hauell, Saclay, Grenoble, DESI, Frascatti. • Стандарт EUR 4100e (1969 г.), в котором рассматриваются конструктивы, источники питания, цифровые сигналы и магистраль крейта; • В 1972 г. документ EUR 4100e был пересмотрен и дополнен новыми требованиями и рекомендациями, вытекающими из опыта применения системы. • В СССР так же выпускалась модульная аппаратура «Вектор» с логическим протоколом КАМАК, но в модулях собственной конструкции в «миллиметровых размерах». Организация горизонтальной магистрали КАМАК Горизонтальная магистраль состоит из 86 линий, каждая из которых соединена с контактом приемной части разъема крейта. Назначение линий: Команды • 5 линий типа N – номер модуля, которому предназначена команда. • 4 линии типа А – адрес внутри модуля (в случаях, если модуль объединяет в себе несколько устройств). • 5 линий типа F – номер функции, которую следует выполнить. Состояние • Х – готовность. • Q – ответ модуля на запрос. • L – запрос модуля. • B – шина занята. Управление • Z – пуск. • С – сброс содержимого всех регистров. • I – остановка операций. • S1, S2 – стробирующие сигналы. Передача • 24 линии чтения информации R. • 24 линии записи информации W. Крейт КАМАК Основой системы КАМАК является крейт с 25 ячейками (станциями), в которые по направляющим вставляются модули, включая контроллер. Модуль может занимать одну или несколько ячеек. Обмен данными между модулями происходит по внутренним шинам крейта – горизонтальной магистрали и организуется контроллером. Модули системы КАМАК 1. Счетчики. 2. Регистры ввода-вывода. 3. Таймеры. 4. Приводы. 5. Интерфейсы. 6. Блоки цифровой обработки сигналов: 6.1. Логические преобразователи. 6.2. Преобразователи кодов. 6.3. Память. 6.4. Специализированные процессоры. 7. Блоки аналоговой обработки сигналов: 7.1. Преобразователи напряжений. 7.2. Аналого-цифровые преобразователи. 7.3. Цифро-аналоговые преобразователи. 7.4. Мультиплексоры. 7.5. Ключи. 7.6. Прочие. 8. Контрольное оборудование: 8.1. Индикатор магистрали. 8.2. Ручной контроллер. Charge-to-Digital Converter 7166 LeCroy 6010 GPIB Magic Controller LIST MODE MEMORY MM8206A Система КАМАК: адрес модуля N, субадрес А Адрес модуля N Каждая ячейка крейта (ячейка модуля) модуля адресуется контроллером по отдельной соответствующей линии выборки N (ячейки на лицевой панели крейта нумеруются слева направо от N = 1 до N = 23). При использовании дополнительного регистра в контроллере может быть организовано параллельное адресное обращение к нескольким ячейкам (модулям) крейта. Управление работой крейта и, как правило, организация связи крейта с компьютером возлагается на контроллер крейта, который должен занимать управляющую и одну нормальную станцию: они соответствуют двум правым станциям (24, 25). Субадрес А Один модуль может иметь несколько источников/приёмников информации. Они называются субадресами. Максимальное количество субадресов в модуле – 16. Для передачи используются четыре субадресные линии для двоичного кода 8, 4, 2, 1 (линии А8, А4, А2, А1), что позволяет выбирать в модуле до 16 различных узлов и частей. Система КАМАК: функции F Каждый элемент модуля может выполнять до 32 различных операций (функций). Функции обозначаются F(0) до F(31). Стандартом определены 4 команды чтения: F(0), F(1), F(2), F(3); 6 команд записи: F(16), F(17), F(18), F(19), F(21), F(23); Команды F(4), F(6), F(20), F(22), F(28), F(30) - нестандартные и при разработке модуля разработчики могут использовать их по своему усмотрению Команды F(5), F(7), F(13), F(15), F(29), F(31) зарезервированы для дальнейших расширений. Система КАМАК: функции F Номер команды Назначение F(0) Чтение содержимого регистра группы 1 F(1) Использование линий данных Используются линии R Номер команды Назначение F(16) Перепись содержимого регистра группы 1 Чтение содержимого регистра группы 2 F(17) Перепись содержимого регистра группы 2 F(2) Чтение и сброс регистра группы 1 F(18) Селективная установка регистра группы 1 F(3) Чтение дополнения – содержимому регистра группы 1 F(19) Селективная установка регистра группы 2 F(4) Нестандартная F(20) Нестандартная F(5) Резервная F(21) F(6) Нестандартная Селективный сброс регистра группы 1 F(7) Резервная F(22) Нестандартная F(23) Селективный сброс регистра группы 2 F(8) Контроль требований Не используются F(9) Сброс регистра группы 1 F(24) Блокирование F(10) Гашение сигнала-требования F(25) Исполнение F(11) Сброс регистра группы 2 F(26) Деблокирование F(12) Нестандартная F(27) Проверка состояния F(13) Резервная F(28) Нестандартная F(14) Нестандартная F(29) Резервная F(15) Резервная F(30) Нестандартная F(31) Резервная Использование линий данных Используются линии W Не используются Система КАМАК: сигналы управления Z – пуск Сигнал Z имеет абсолютный приоритет по отношению ко всем прочим сигналам. После его прохождения все регистры сбрасываются в свои начальные состояния. Происходит сброс всех L сигналов С – сброс содержимого всех регистров По сигналу происходит очистка всех регистров памяти и сброс всех триггеров в начальное состояние I – остановка операций Сигнал блокировки I может быть сформирован в произвольный момент времени, блокируя в модуле реализацию всех предусмотренных функций. Система КАМАК: сигналы состояния Х – готовность. Модуль выставляет сигнал X, оповещая о возможности выполнения полученной команды. Отсутствие сигнала X указывает на наличие серьезной ошибки, например, на неисправность модуля или его отсутствие ячейке Q – ответ модуля на запрос. Сигнализирует о текущем состоянии модуля L – запрос модуля. Сигналом L модуль посылает заявку системе о необходимости прервать текущую программу и начать выполнение программы обслуживания этого модуля. B – шина занята. Сигнал занятости B указывает на выполнение модулем операции Платформа PXI • Платформа PXI основана на стандарте CompactPCI • PXI является международным стандартом, поддерживающимся более чем 70 производителями оборудования Шасси Модули Контроллер Общий вид системы PXI Шасси (Chassis) PXI 14 модулей 4 модуля 8 модулей 6 модулей 18 модулей Особенности PXI шасси • • • • • • • Надежный и прочный корпус Многофункциональная задняя панель Совместимость с PXI и CompactPCI Идеальное исполнение для настольных, стоечных и мобильных приложений Рабочий диапазон температур от 0 до 55 °C Встроенный генератор тактовых импульсов с частотой 10 МГц Программируемая система переключения между сегментами шины Локальная шина PXI Контроллеры PXI Встроенные в шасси Монтируемые в стойку Отдельным модулем Особенности платформы PXI Синхронизация и тактирование в PXI • Использование высокоскоростной шины передачи данных PCI (132 МБ/с – средняя скорость, 528 МБ/с – максимальная) • Опорный тактовый сигнал частотой 10 МГц, подаваемый на все модули • Шина запуска, реализующая подключение к ней различных модулей по топологии звезда и учитывающая длину пути сигналов переключения для уменьшения задержки и расфазировки моментов запуска различных приборов • Шина запуска, управляющая передачей высокоскоростных сигналов тактирования и синхронизации между всеми устройствами и модулями • Локальная шина, служащая для передачи высокочастотных цифровых и аналоговых сигналов между соседними модулями Особенности платформы PXI – Синхронизация и тактирование Надежность системы PXI • Применение модульной архитектуры Eurocard (подтверждено годами успешного использования в промышленной среде) • Механические компоненты и габаритные размеры, стандартизованные IEEE • Механически взаимозаменяемые модули • Модульная структура, обеспечивающая простоту сборки, модификации и замены модулей • Возможность простой замены модулей • Спецификация PXI, расширяющая возможности платформы CompactPCI для использования в условиях, требующих повышенной надежности, производительности и документации • Большее время наработки на отказ Особенности платформы PXI – – Синхронизация и тактирование Надежность системы Доступные модули PXI • Цифровые мультиметры • Высокоскоростные осциллографы • Генераторы сигналов произвольной формы • Источники питания • Переключатели • Генераторы/анализаторы цифровых сигналов • Системы сбора динамических сигналов • Генераторы/анализаторы сигналов радиочастотного диапазона • Системы машинного зрения • Системы управления движением Управление движением NI PXI-7358 Аналоговый Выход NI PXI-6704 Счётчик/таймер NI PXI-6733 Генератор сигналов NI PXIe-5442 Переключатель NI PXI-2547 Программируемый источник питания NI PXI-4110 Платформа VXI • • • • • • • VXI (VME bus eXtension for Instrumentation) был выпущен 1988 и объединял VME с возможностью синхронизации процессов, выполняемых отдельными модулями, введена 12-разрядная внутренняя шина обмена данными между модулями. 1987 - Публикация Спецификации VXIbus, Версия 1.0 1989 - Публикация VXIbus, Версия 1.3 1991 - Cтандарт IEEE 1155 1994 – Создание Программы Интеграции VXI plug & play 1998 - Публикация VXIbus, Версия 2.0 2004 - Публикация VXIbus, Версия 3.0 Шасси на 5 модулей CT-310A Шасси на 13 модулей CT-400 Шасси на 5 модулей CT-100C Модуль ввода/вывода Контроллер VXIpc-871B Модули VXI Системные модули 5.5 Digit Multimeter командные модули и встроенные компьютеры E1326B модули памяти модуль HDD со встроенными накопителями модули специализированных интерфейсов связи и адаптеров интерфейсов Функциональные модули: Измерительные модули • • • • • • • • Цифровые мультиметры Аналого-цифровые преобразователи и цифро-аналоговые преобразователи Дигитайзеры и осциллографы Счетчики и таймеры Генератор импульсов E8311A Мультиплексоры и модули ключей • • • • Релейные мультиплексоры Полупроводниковые мультиплексоры RF-мультиплексоры и переключатели Матричные переключатели Генераторы и источники • • Генераторы импульсов Функциональные генераторы Модули цифрового ввода/вывода • • • Модули с низким уровнем сигналов Модули с повышенным уровнем сигналов Модули силовых ключей Модули специального назначения • • • • • Microwave Switch E8483A Измеритель мощности E1416A 96-канальный I/O для многоканальных виброакустических испытаний E1458A измерители мощности радиосигналов регистраторы быстроменяющихся сигналов модули тестирования электрических и оптических линий связи в системах телекоммуникаций модули управления шаговыми двигателями Сравнение технических характеристики различных устройств Звуковая карта NI USB DAQ NI PCI DAQ Приборы AI полоса пропускания 8–44 KS/s 10–200 KS/s 250 K–1.2 Ms/s 20kS/s–2 GS/s Точность 12–16 bit 12–16 bit 14–18 bit 12–24 bit Портативность x x — some AI каналы 2 8–16 16–80 2 AO каналы 2 1–2 2–4 0 AC or DC AC AC/DC AC/DC AC/DC Запуск — x x x Калибровка — x x x Графическая среда разработки LabVIEW •Среда графического программирования •Исполнение кода под различными операционными системами •Большое количество поддерживаемых устройств •Практически не ограниченные возможности применения Графическая среда разработки LabVIEW Лицевая панель виртуального прибора Программное окно Приложения на базе виртуальных приборов Несколько вариантов применения: • Разработка – Обработка сигналов – Работа с видеоизображениями – Встраиваемые программируемые системы • PC • DSP • FPGA • микроконтроллеры – Построение прототипов и моделирование • Управление – Автоматическое управление динамическими системами – Робототехника – Управление системами реального времени • Измерения – Электроника и электротехника – Измерительная техника Программа на LabVIEW - Виртуальный прибор (ВП) Каждый ВП имеет 2 окна Лицевая панель • Интерфейс пользователя – Элементы управления = Входы – Индикаторы = Выходы Блок диаграмма • Графический код – Данные передаются по проводникам от элементов управления, через функции, к индикаторам Поточный метод программирования • Исполнение кода – Зависит от потока данных – Код на блок-диаграмме не исполняется с лева на право • Код исполняется по мере поступления всех данных на все входные терминалы • Отображение происходит по мере поступления всех данных на все выходные терминалы. Техника отладки виртуального прибора • Поиск ошибок Нажать на кнопку Запуск Появится окно с описанием ошибки. • Визуальная отладка Нажать на кнопку Execution Highlighting; Визуальная передача данных . Значения отобразятся на проводниках • Пробники Правый кнопка мыши по проводнику для отображения индикатора пробника Окно контекстной помощи • • Help»Show Context Help, нажать <Ctrl+H> Переместить курсор к объекту для обновления Дополнительная помощь – Правая кнопка мыши по иконке ВП и выбрать Help, или – Выбрать “Detailed Help.” на контекстном окне Элементы типовой программы • • • • Циклы – По условию – С заданным числом итераций Функции и под ВП – Виды функций – Создание собственных функций (SubVI) – Палитра функций и их поиск Принятие решений и ввод / вывод файлов Структуры CASE – Выбор – Ввод и вывод файла Циклы While Loop • По условию – i Индикатор текущей итерации – Всегда запускается как минимум один раз – Исполняется до поступления на терминал условия выхода • С заданным количеством – i Индикатор текущей итерации – Исполняется согласно значению счетчика N на терминале For Loop Виды функций Экспресс: Функции с интерактивным окном конфигурирования (голубая иконка) Стандартные: модульного типа ВП с возможностью переконфигурирования Базовые: основные базовые функции LabVIEW; без лицевой панели и блок диаграммы (желтый цвет) Доступные виды функций • Ввода и Вывода – Моделирования сбора и генерации данных – Сбора и генерации реальных сигналов при помощи DAQ – Управления приборами (последовательный и КОП (GPIB ) – Вызов ActiveX компонентов для связи с другими программами • Анализа и обработки – Анализа и обработки различных типов сигналов – Статистики – Различных разделов математики – Дополнительных временных • Сохранения и записи – Ввода и вывода файлов Поиск функции в палитрах • Палитры содержат сотни функций • Нажать кнопку «search» на строке палитры и ввести название функции • Нажать и выбрать нужную функцию из списка • Дважды нажать на иконку функции для отображения подпалитры • Перетащить нужную функцию на блокдиаграмму Создание виртуального подприбора (SubVI) • • Выделить код на блок-диаграмме для создания под ВП Выбрать из Меню Edit « Create SubVI» Сравнение функций С++ и виртуальных подприборов в LabVIEW Function Pseudo Code function average (in1, in2, out) { out = (in1 + in2)/2.0; } Calling Program Pseudo Code main { average (in1, in2, pointavg) } Виртуальный подприбор Вызов виртуального подприбора Принятие решений в LabVIEW • Структуры «Case» (b) (a) • Функция «Выбор» (d) (с) Ввод и вывод файлов • • • File I/O – передача данных в/из файлов Файлы могут быть в виде бинарных, тестовых или таблиц Запись/Чтение LabVIEW Measurements file (*.lvm) Запись в LVM файл Чтение из LVM файла Отображение результатов • Отображение данных на лицевой панели – Элементы управления и индикаторы – Графики – Временные циклы • Обработка сигналов – MathScript – Массивы – Кластеры – Элементы сигнала Типы элементов управления и индикаторов • • • • • Числовые типы данных – Ввод и отображение числовых данных – Слайдеры и ручки Логические типы данных – переключатели и диоды Массивы и матрицы – Числовые – Графики диаграмм – Графики осциллограмм – Графики интенсивности – Графики объемных изображений, поверхностей и моделей Декоративные панели – Переключаемые панели – Стрелки Другие элементы и типы данных – Строчные и текстовые данные – Картинки/отображение фотографий – Компоненты ActiveX Графики диаграмм • Графики диаграмм – Специальный числовой индикатор, отображающий собранные данные во времени • Обновление происходит с момента получения на вход терминала каждого значения Функции»Экспресс»Graph Indicators» Chart Mathscript • Возможности разработки приложений обработки сигналов, анализа и математических уравнений в текстовом коде среды LabVIEW – Более 500 встроенных функций – Синтаксис схожий с популярными языками математического моделирования – Встроенные в LabVIEW основанный на оригинальной среде математической разработки MATRIXx Текстовые математические скрипты в LabVIEW8 • • • • Интеграция существующих скриптов для быстрой разработки приложений в LabVIEW Интерактивность и легкость разработки, Разработка математических алгоритмов, обработка и анализ в одной среде LabVIEW Возможность интеграции математического и графического синтаксиса в одном ВП Поддерживаемые интерфейсы: Узел MathScript script node Wolfram Mathematica Maple software MathSoft software MATLAB® software Xmath software Математический код в MathScript Node • • • Написание уравнений в текстовом формате Задание входных и выходных переменных на границах цикла Синтаксис схожий c текстовыми математическими языками Functions >> Programming >> Structures >> MathScript Интерактивное окно MathScript • Быстрая разработка и алгоритмы отладки • Создание и редактирование переменных • Отображение в 1D, 2D, и 3D . Переменные Окно Вывода Коммандное окно Отображение в форматах m-file script LabVIEW >>Tools >> MathScript Window Массивы Массив – пронумерованный, непрерывный, неограниченный10 набор однотипных данных В LabVIEW элементы массива нумеруются по строкам от нуля. Кластеры • • • • • • Кластер – конечный набор данных различных типов. Объединяет различные типы данных Аналогия с struct в языке C Могут быть группами элементов управления или индикаторов Схожи с многожильным проводом Порядок элементов в кластере очень важен Создание кластера 1. Выбрать контейнер кластера с палитры. Controls» Modern» Array, Matrix & Cluster 2. Вставить желаемый объект в контейнер. Обзор типов данных в LabVIEW Другие типы данных • Осциллограмма (Waveform) используется для работы с измеренными или программно генерированными данными в случае постоянства периода дискретизации. • Сигнал (Signal) – дальнейшая, по сравнению с осциллограммой, модификация типа данных для работы с измеренными или генерируемыми параметрами. Инкапсулирует названия параметров, режимы измерений или генерации, может содержать в себе несколько параметров. • Сессия VISA (VISA session, VISA resource name) используется при программировании внешних устройств в соответствие со стандартом VISA. • Измерительный или управляющий канал DAQ (DAQ Channel) – включает в себя настройки режимов измерения или управления какого-либо канала многофункциональной измерительно-управляющей платы. • Ссылка (refnum) – тип данных, аналогичный указателю (pointer) или дескриптору какого-либо объекта в языках текстового программирования. Локальные переменные 1. Локальные переменные обеспечивают передачу данных между параллельными циклами 2. Значение элемента управления или индикаторы может быть считано или записано в разных местах программы в нескольких местах Сдвиговый регистр – доступ к предыдущим итерациям • Доступен на правой и левой границе циклов • Правая кнопка мыши по границе и выбор из меню Add Shift Register • Правый терминал сохраняет данные последней итерации • Левый терминал сохраняет данные предыдущей итерации для начала следующей. 3 Инициализация До начала выполнения цикла Первая итерация Вторая итерация Последняя итерация Окно навигации в LabVIEW • • Отображает текущий участок программы Идеально для больших приложений Алгоритмы оперативной обработки данных Метод «ворот» Алгоритмы оперативной обработки данных Метод «ворот» Алгоритмы оперативной обработки данных Метод «ворот» Алгоритмы оперативной обработки данных Метод «ворот» Алгоритмы оперативной обработки данных Метод «ворот» Алгоритмы оперативной обработки данных Метод «ворот» Алгоритмы оперативной обработки данных Метод «ворот» Алгоритмы оперативной обработки данных Метод «ворот» Алгоритмы оперативной обработки данных Метод «ворот» Алгоритмы оперативной обработки данных Метод выборки Алгоритмы оперативной обработки данных Метод выборки Алгоритмы оперативной обработки данных Метод выборки Алгоритмы оперативной обработки данных Метод выборки Алгоритмы оперативной обработки данных Метод выборки Алгоритмы оперативной обработки данных Метод выборки Алгоритмы оперативной обработки данных Аппроксимация экспериментальных данных с помощью аналитических функций f(xi) f(xi) – экспериментальные точки F(x, p) – аппроксимирующая функция F(x, p) p = (p1, …, pa) – ее параметры F(xi, p) ≈ f(xi) – задача аппроксимации xi Алгоритмы оперативной обработки данных Аппроксимация экспериментальных данных с помощью аналитических функций Критерии аппроксимации: F(xi, p) = f(xi) – задача интерполяции Алгоритмы оперативной обработки данных Аппроксимация экспериментальных данных с помощью аналитических функций Критерии аппроксимации: F(xi, p) = f(xi) – задача интерполяции min S [f ( xi ) F ( xi , p)]2 – метод наименьших квадратов i Алгоритмы оперативной обработки данных Аппроксимация экспериментальных данных с помощью аналитических функций Критерии аппроксимации: F(xi, p) = f(xi) – задача интерполяции min S [f ( xi ) F ( xi , p)]2 – метод наименьших квадратов i min Z max | f ( xi ) F ( xi , p) | – метод минимакса Аппроксимация экспериментальных данных с помощью аналитических функций Интерполяция с помощью полиномов: Задано N точек f(xi), требуется найти набор параметров p = {pa} такой, что n F ( xi , p ) pa xi a f ( xi ) a 0 В общем случае при n + 1 < N задача не имеет решений; при n + 1 > N имеет бесконечное число решений; при n + 1 = N имеет единственное решение, если каждому xi соответствует только одно значение f(xi). Отсюда следует, что по заданному набору N экспериментальных точек можно построить интерполяционный полином степени N – 1, причем он является единственным. Аппроксимация экспериментальных данных с помощью аналитических функций Интерполяция с помощью полиномов: Интерполяционная формула Лагранжа Для каждой точки i ищем полином φi(x) такой, что: 1 при x xi i ( x ) 0 при x xk Аппроксимация экспериментальных данных с помощью аналитических функций Интерполяция с помощью полиномов: Интерполяционная формула Лагранжа Для каждой точки i ищем полином φi(x) такой, что: 1 при x xi i ( x ) 0 при x xk Тогда N F ( x ) f ( xi )i ( x ) i 1 Аппроксимация экспериментальных данных с помощью аналитических функций Интерполяция с помощью полиномов: Интерполяционная формула Лагранжа Для каждой точки i ищем полином φi(x) такой, что: 1 при x xi i ( x ) 0 при x xk Тогда N F ( x ) f ( xi )i ( x ) Полином φi(x) ищем в виде: i 1 N i ( x ) Ci ( x xk ) k i Аппроксимация экспериментальных данных с помощью аналитических функций Интерполяция с помощью полиномов: Интерполяционная формула Лагранжа Для каждой точки i ищем полином φi(x) такой, что: 1 при x xi i ( x ) 0 при x xk Тогда N F ( x ) f ( xi )i ( x ) i 1 Полином φi(x) ищем в виде: N i ( x ) Ci ( x xk ) k i Постоянная Сi определяется из условия φi(х = xi) = 1, и тогда: N i ( x ) ( x xk ) k i N ( xi xk ) k i Аппроксимация экспериментальных данных с помощью аналитических функций Интерполяция с помощью полиномов: Интерполяционная формула Лагранжа Для каждой точки i ищем полином φi(x) такой, что: 1 при x xi i ( x ) 0 при x xk Тогда N F ( x ) f ( xi )i ( x ) i 1 Полином φi(x) ищем в виде: N i ( x ) Ci ( x xk ) k i Постоянная Сi определяется из условия φi(х = xi) = 1, и тогда: N i ( x ) ( x xk ) Окончательно: k i N N i 1 k i N ( xi xk ) k i F ( x ) f ( xi ) ( x xk ) N ( xi xk ) k i Аппроксимация экспериментальных данных с помощью аналитических функций Интерполяция с помощью полиномов: Интерполяционная формула Ньютона Для двух точек f(x1) и f(x2) интерполяционный полином 1-й степени имеет вид: f ( x2 ) f ( x1) f ( x1) ( x x1)( x2, x1) x2 x1 где Δ(х2,х1) – разделенная разность первого порядка (разностный аналог первой производной). F1( x ) f ( x1) ( x x1) Аппроксимация экспериментальных данных с помощью аналитических функций Интерполяция с помощью полиномов: Интерполяционная формула Ньютона Для двух точек f(x1) и f(x2) интерполяционный полином 1-й степени имеет вид: f ( x2 ) f ( x1) f ( x1) ( x x1)( x2, x1) x2 x1 где Δ(х2,х1) – разделенная разность первого порядка (разностный аналог первой производной). F1( x ) f ( x1) ( x x1) Для трех точек f(x1), f(x2) и f(x3) интерполяционный квадратичный полином: F2 ( x ) f ( x1) ( x x1)( x2, x1) ( x x1)( x x2 )( x3, x2, x1) Аппроксимация экспериментальных данных с помощью аналитических функций Интерполяция с помощью полиномов: Интерполяционная формула Ньютона Для двух точек f(x1) и f(x2) интерполяционный полином 1-й степени имеет вид: f ( x2 ) f ( x1) f ( x1) ( x x1)( x2, x1) x2 x1 где Δ(х2,х1) – разделенная разность первого порядка (разностный аналог первой производной). F1( x ) f ( x1) ( x x1) Для трех точек f(x1), f(x2) и f(x3) интерполяционный квадратичный полином: F2 ( x ) f ( x1) ( x x1)( x2, x1) ( x x1)( x x2 )( x3, x2, x1) В общем случае: Fn ( x ) f ( x1) ( x x1)( x2, x1) ( x x1)( x x2 )( x3 , x2, x1) ... n ( x xi )( xN ,..., x1) i 1 Аппроксимация экспериментальных данных с помощью аналитических функций Интерполяция с помощью полиномов: Интерполяционная формула Ньютона Для двух точек f(x1) и f(x2) интерполяционный полином 1-й степени имеет вид: f ( x2 ) f ( x1) f ( x1) ( x x1)( x2, x1) x2 x1 где Δ(х2,х1) – разделенная разность первого порядка (разностный аналог первой производной). F1( x ) f ( x1) ( x x1) Для трех точек f(x1), f(x2) и f(x3) интерполяционный квадратичный полином: F2 ( x ) f ( x1) ( x x1)( x2, x1) ( x x1)( x x2 )( x3, x2, x1) В общем случае: Fn ( x ) f ( x1) ( x x1)( x2, x1) ( x x1)( x x2 )( x3 , x2, x1) ... n ( x xi )( xN ,..., x1) i 1 Разностный аналог формулы Тейлора Аппроксимация экспериментальных данных с помощью аналитических функций Интерполяция с помощью полиномов: Интерполяция с помощью сплайнов Набор экспериментальных точек разбивается на отдельные участки. Определяются условия сшивки интерполяционных полиномов на границах участков. На каждом участке выполняется интерполяция полиномом максимальной степени, которая возможна для заданных граничных условий. Аппроксимация экспериментальных данных с помощью аналитических функций Интерполяция с помощью полиномов: Интерполяция с помощью сплайнов Выберем участок [xi, xi+1]. Интерполирующая функция Fi(x) для этого участка должна удовлетворять условиям: Fi(x = xi) = f(xi) Fi(x = xi + 1) = f(xi + 1) Аппроксимация экспериментальных данных с помощью аналитических функций Интерполяция с помощью полиномов: Интерполяция с помощью сплайнов Выберем участок [xi, xi+1]. Интерполирующая функция Fi(x) для этого участка должна удовлетворять условиям: Fi(x = xi) = f(xi) Fi(x = xi + 1) = f(xi + 1) Для получения гладкой сшивки интерполяции в точке xi потребуем неразрывности первой и второй производной в этой точке: Fi'(xi) = Fi'(xi – 1) Fi''(xi) = Fi''(xi – 1) Аппроксимация экспериментальных данных с помощью аналитических функций Интерполяция с помощью полиномов: Интерполяция с помощью сплайнов Выберем участок [xi, xi+1]. Интерполирующая функция Fi(x) для этого участка должна удовлетворять условиям: Fi(x = xi) = f(xi) Fi(x = xi + 1) = f(xi + 1) Для получения гладкой сшивки интерполяции в точке xi потребуем неразрывности первой и второй производной в этой точке: Fi'(xi) = Fi'(xi – 1) Fi''(xi) = Fi''(xi – 1) Эти четыре уравнения позволяют определить четыре коэффициента полинома третьей степени на каждом участке интерполяции – кубический сплайн. Аппроксимация экспериментальных данных с помощью аналитических функций Аппроксимация экспериментальных данных методом наименьших квадратов: min S [f ( xi ) F ( xi , p)]2 ; S(p) – целевая функция i Аппроксимация экспериментальных данных с помощью аналитических функций Аппроксимация экспериментальных данных методом наименьших квадратов: min S [f ( xi ) F ( xi , p)]2 ; S(p) – целевая функция i Простейший случай – линейная модель F ( xi , p ) paFa ( xi ) a Аппроксимация экспериментальных данных с помощью аналитических функций Аппроксимация экспериментальных данных методом наименьших квадратов: min S [f ( xi ) F ( xi , p)]2 ; S(p) – целевая функция i Простейший случай – линейная модель F ( xi , p ) paFa ( xi ) a Условие минимума целевой функции S 0 pa сводится к системе линейных уравнений на параметры р. Аппроксимация экспериментальных данных с помощью аналитических функций Аппроксимация экспериментальных данных методом наименьших квадратов: min S [f ( xi ) F ( xi , p)]2 ; S(p) – целевая функция i Простейший случай – линейная модель F ( xi , p ) paFa ( xi ) a Условие минимума целевой функции S 0 pa сводится к системе линейных уравнений на параметры р. В нелинейных случаях прибегают к приближенным численным методам нулевого, первого или второго порядка. Аппроксимация экспериментальных данных методом наименьших квадратов Методы нулевого порядка: метод покоординатного спуска p2 p1 Аппроксимация экспериментальных данных методом наименьших квадратов Методы нулевого порядка: метод покоординатного спуска p2 p1 Аппроксимация экспериментальных данных методом наименьших квадратов Методы нулевого порядка: метод покоординатного спуска p2 p1 Аппроксимация экспериментальных данных методом наименьших квадратов Методы нулевого порядка: метод покоординатного спуска p2 p1 Аппроксимация экспериментальных данных методом наименьших квадратов Методы нулевого порядка: метод симплекса (деформируемого многогранника) Симплекс: многогранник в ω-мерном пространстве с ω + 1 со сторонами, координаты вершин которого – столбцы матрицы: 0 0 B,1 0 ... 0 a b1 ( 2 a b2 ( 2 b1 b2 ... b2 b2 b1 ... b2 b2 b2 ... b2 , ... ... ... ... b2 b2 ... b1 1 1), 1 1), а – длина стороны многогранника. Эти координаты выбираются в качестве начальных параметров целевой функции. Аппроксимация экспериментальных данных методом наименьших квадратов Методы нулевого порядка: метод симплекса (деформируемого многогранника) p2 p1 Аппроксимация экспериментальных данных методом наименьших квадратов Методы нулевого порядка: метод симплекса (деформируемого многогранника) p2 p1 S(1) < S(2) < S(3) Аппроксимация экспериментальных данных методом наименьших квадратов Методы нулевого порядка: метод симплекса (деформируемого многогранника) p2 p1 S(1) < S(2) < S(3) Аппроксимация экспериментальных данных методом наименьших квадратов Методы нулевого порядка: метод случайного поиска p2 p1 Аппроксимация экспериментальных данных методом наименьших квадратов Методы нулевого порядка: метод случайного поиска p2 p1 Аппроксимация экспериментальных данных методом наименьших квадратов Методы нулевого порядка: метод случайного поиска p2 p1 Аппроксимация экспериментальных данных методом наименьших квадратов Методы нулевого порядка: метод случайного поиска p2 p1 Аппроксимация экспериментальных данных методом наименьших квадратов Методы нулевого порядка: метод случайного поиска p2 p1 Аппроксимация экспериментальных данных методом наименьших квадратов Методы первого порядка: градиентный метод (метод Коши) S S gradS(p) ,..., – направление наискорейшего возрастания функции S(p) p p1 –gradS(p) – направление ее наискорейшего убывания. Выбираем некоторый вектор-набор параметров р(1), находим соответствующий ему gradS(p(1)) и ищем новый набор параметров р(2) = p(1) – ρgradS(p(1)), соответствующий минимуму целевой функции. После этого процедура повторяется. Аппроксимация экспериментальных данных методом наименьших квадратов Методы первого порядка: градиентный метод (метод Коши) p2 p1 p(1) Аппроксимация экспериментальных данных методом наименьших квадратов Методы первого порядка: градиентный метод (метод Коши) – застревание в «овраге» p2 p1 p(1) Аппроксимация экспериментальных данных методом наименьших квадратов Методы первого порядка: метод сопряженных градиентов (метод Флетчера-Ривза) Учет значения градиента, полученного на предыдущей итерации. p( i+1) p( i ) i (g( i ) i g( i 1) ), g( i ) gradS(p( i ) ), i (g( i )g( i 1) (g( i ) )2 ) /(g( i 1) )2. Аппроксимация экспериментальных данных методом наименьших квадратов Методы второго порядка: метод Ньютона-Рафсона Разложим целевую функцию в ряд вблизи начальной точки поиска: S(p) S(p(1) ) (p p(1) )g(1) (p p(1) )H(p(1) )(p p(1) ) ... Здесь Н – матрица Гессе: Ha 2S pap Аппроксимация экспериментальных данных методом наименьших квадратов Методы второго порядка: метод Ньютона-Рафсона Разложим целевую функцию в ряд вблизи начальной точки поиска: S(p) S(p(1) ) (p p(1) )g(1) 1 2 (p p (1) )H(p(1) )(p p(1) ) ... Условие минимума: 0 gradS(p pmin ) g(1) H(p(1) )(pmin p(1) ) ... Откуда: pmin p(1) [H(p(1) )]1g(1) Аппроксимация экспериментальных данных методом наименьших квадратов Методы второго порядка: метод Ньютона-Рафсона Разложим целевую функцию в ряд вблизи начальной точки поиска: S(p) S(p(1) ) (p p(1) )g(1) 1 2 (p p (1) )H(p(1) )(p p(1) ) ... Условие минимума: 0 gradS(p pmin ) g(1) H(p(1) )(pmin p(1) ) ... Откуда: pmin p(1) [H(p(1) )]1g(1) Рекуррентное соотношение: p( i 1) p( i ) [H(p( i ) )]1g( i ) Аппроксимация экспериментальных данных методом наименьших квадратов Методы второго порядка: метод Ньютона-Рафсона Разложим целевую функцию в ряд вблизи начальной точки поиска: S(p) S(p(1) ) (p p(1) )g(1) 1 2 (p p (1) )H(p(1) )(p p(1) ) ... Условие минимума: 0 gradS(p pmin ) g(1) H(p(1) )(pmin p(1) ) ... Откуда: pmin p(1) [H(p(1) )]1g(1) Обобщенный метод Ньютона: p( i 1) p( i ) i [H(p( i ) )]1g( i ) Аппроксимация экспериментальных данных методом наименьших квадратов Методы второго порядка: метод Ньютона-Гаусса p( i 1) p( i ) i [H(p( i ) )]1g( i ) Аппроксимация экспериментальных данных методом наименьших квадратов Методы второго порядка: метод Ньютона-Гаусса p( i 1) p( i ) i [H(p( i ) )]1g( i ) S [f ( xi ) F ( xi , p)]2 i Аппроксимация экспериментальных данных методом наименьших квадратов Методы второго порядка: метод Ньютона-Гаусса p( i 1) p( i ) i [H(p( i ) )]1g( i ) S [f ( xi ) F ( xi , p)]2 i N F ( xi , p) S ga 2 ( y i F ( xi , p)) pa pa i 1 Аппроксимация экспериментальных данных методом наименьших квадратов Методы второго порядка: метод Ньютона-Гаусса p( i 1) p( i ) i [H(p( i ) )]1g( i ) S [f ( xi ) F ( xi , p)]2 i N F ( xi , p) S ga 2 (f ( xi ) F ( xi , p)) pa pa i 1 Ha 2S pa p N F ( xi , p) F ( xi , p) 2F ( xi , p) 2 2 (f ( xi ) F ( xi , p)) pa p pa p i 1 i 1 N Аппроксимация экспериментальных данных методом наименьших квадратов Методы второго порядка: метод Ньютона-Гаусса p( i 1) p( i ) i [H(p( i ) )]1g( i ) S [f ( xi ) F ( xi , p)]2 i N F ( xi , p) S ga 2 (f ( xi ) F ( xi , p)) pa pa i 1 Ha 2S pa p N F ( xi , p) F ( xi , p) 2F ( xi , p) 2 2 (f ( xi ) F ( xi , p)) pa p pa p i 1 i 1 N Аппроксимация экспериментальных данных методом наименьших квадратов Методы второго порядка: метод Ньютона-Гаусса p( i 1) p( i ) i [H(p( i ) )]1g( i ) S [f ( xi ) F ( xi , p)]2 i N F ( xi , p) S ga 2 (f ( xi ) F ( xi , p)) pa pa i 1 Ha 2S pa p F ( xi , p ) F ( xi , p) – вблизи минимума. pa p i 1 N 2 Аппроксимация экспериментальных данных методом наименьших квадратов Методы второго порядка: метод Дэвидона-Флетчера-Пауэлла Первые несколько шагов делаются градиентным методом, далее для вычисления первых и вторых производных используются разностные оценки, например: ( i 1) 1 (Ha ) ( i ) 1 (Ha ) ( pa( i 1) pa( i ) )d( i ) (g ( i 1) g ( i ) )d ( i ) (Ha(i ) )1(g (i 1) g ( i ) ) (H( i ) )1(g ( i 1) g ( i ) ) где ( i ) 1 ( i 1) (g ( i 1) g ( i ) )(H ) (g ( i ) 1 ( i ) da( i ) (Ha ) g g ( i ) )