Решение линейных уравнений в labview

Реферат: Моделирование линейных непрерывных систем в среде LabVIEW

Введение

LabVIEW (LaboratoryVirtualInstrumentEngineeringWorkbench) позволяет разрабатывать прикладное программное обеспечение для организации взаимодействия с измерительной и управляющей аппаратурой, сбора, обработки и отображения информации и результатов расчетов, а также моделирования как отдельных объектов, так и автоматизированных систем в целом. Разработчиком LabVIEW является американская компания National Instruments.

LabVIEW является открытой системой программирования и имеет встроенную поддержку всех применяемых в настоящее время программных интерфейсов, таких как Win32 DLL, COM.net, DDE, сетевых протоколов на базе IP, DataSocket и др. В состав LabVIEW входят библиотеки управления различными аппаратными средствами и интерфейсами, такими как PCI, CompactPCI/PXI, VME, VXI, GPIB (КОП), PLC, VISA, системами технического зрения и др. Программные продукты, созданные с использованием LabVIEW, могут быть дополнены фрагментами, азработанными на традиционных языках программирования, например C/С++, Pascal, Basic, FORTRAN. И наоборот можно использовать модули, разработанные в LabVIEW в проектах, создаваемых в других системах программирования. Таким образом, LabVIEW позволяет разрабатывать практически любые приложения, взаимодействующие с любыми видами аппаратных средств, поддерживаемых операционной системой компьютера.

среда программирование дифференциальное уравнение

Моделирование линейных непрерывных систем

При цифровом моделировании непрерывных систем необходимо обеспечить близость процессов в моделируемой непрерывной системе и в ее цифровой модели. Несовпадение этих процессов связано с двумя причинами:

1) заменой непрерывного входного процесса цифровым и 2) использованием численных методов анализа. Ошибки, связанные с заменой непрерывного процесса цифровым, были рассмотрены в предыдущей лабораторной работе. Остановимся на второй причине.

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

Численное решение дифференциальных уравнений

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

Здесь x= x (t ) — независимая функция (входной процесс), u= u (t ) — решение уравнения (выходной процесс).

Численное решение находится для дискретных значений аргумента t , отличающихся на шаг интегрирования Dt . В одношаговых разностных методах для нахождения следующего значения u к = u (t к ) требуется информация только об одном предыдущем шаге. Из одношаговых методов наибольшую известность получили методы Рунге-Кутта. В основу метода Рунге-Кутта первого порядка, называемого также явным или прямым методом Эйлера, положено разложение функции u (t ) в ряд Тейлора в окрестности точки A (t k-1, , u k-1 ):

В методах Эйлера (и Рунге-Кутта тоже) ограничиваются только двумя первыми членами разложения в ряд. Запишем значение uk = u (tk ), приняв в выражении (5.2) t= tk и ограничившись двумя первыми членами ряда:

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

На рис. 1 а ) проиллюстрировано решение прямым методом Эйлера.

Название: Моделирование линейных непрерывных систем в среде LabVIEW
Раздел: Рефераты по информатике
Тип: реферат Добавлен 18:48:35 07 мая 2011 Похожие работы
Просмотров: 119 Комментариев: 23 Оценило: 2 человек Средний балл: 5 Оценка: неизвестно Скачать
а )б )
Рис.1

Видим, что при использовании этого метода используется линейная экстраполяция и тангенс угла наклона экстраполирующей прямой равен производной функции u (t ) в точке А. Экстраполированное значение uk отличается от точного на величину ошибки.

Неявный (обратный) метод Эйлера основан на разложении функцииu (t ) в ряд Тейлора в окрестности точки В (u k, , t k ) (см. рис.1 б ):

Приняв в этом выражении t= tk — 1 и ограничившись двумя первыми членами ряда, получим

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

Применим методы Эйлера для расчета переходной характеристики интегрирующей цепи. Передаточная функция интегрирующей цепи:

Отсюда дифференциальное уравнение в операторной форме:

и в канонической форме:

Перепишем его в виде (1):

Запишем рекуррентную формулу для прямого метода Эйлера в соответствии с (5.3)

Формула для обратного метода Эйлера запишется в соответствии с (4)

Так как уравнение линейное, то значение yk вычисляется в явной форме:

Методы Эйлера обладают низкой точностью. В более точных методах используются различные способы определения угла наклона экстраполирующей прямой, чтобы она прошла ближе к точному решению. Хорошей точностью обладает метод Рунге-Кутта четвертого порядка, который обычно и используется. Программы для численного решения дифференциальных уравнений имеются практически в любом пакете прикладных программ, в том числе и в LabVIEW.

Для вычислений по формулам (5.5) и (5.6) используем структуру FormulaNode. Внутри этой структуры запишем точное выражение для переходной характеристики:

и выражения для переходной характеристики, полученные прямым методом Эйлера:

и обратным методом Эйлера:

при нулевых начальных условиях: y (0) = 0, v (0) = 0.

В этих выражениях использованы различные обозначения для выходных переменных и принято x = 1 (t ) = 1, так как t > 0.

На рис.2 показана эта структура. В формулах Δt обозначена как dt .

Рис.2Рис.3

Напомним, что для образования входных и выходных терминалов нужно щелкнуть ПКМ на границе структуры в предполагаемом месте терминала и в раскрывшемся меню выбрать AddInputили AddOutput.

Для формирования массивов выходных переменных структура FormulaNodeпомещается внутрь структуры ForLoop, при этом задержанные на интервал дискретизации отсчеты выходных переменных y 1 и v 1 получаются с помощью регистра сдвига (рис.3).

Прямой метод Эйлера при большом интервале дискретизации может дать неустойчивое решение. Это случится, если отклонение решения от входного процесса xk — 1yk — 1 (см формулу (5)) даст такое значение yk . что отклонение на следующем шаге xk yk будет той же величины, что и предыдущее, но обратным по знаку. Решение будет колебательным незатухающим.

К графическому индикатору

Рис.4

В предыдущих лабораторных работах развертка графического индикатора Graphосуществлялась автоматически в соответствии с типом данных, подаваемых на вход графического индикатора. В этой работе мы сформируем данные так, чтобы по горизонтальной оси откладывалось время. Для этого надо сформировать кластер, куда кроме массива данных будет входить информация о времени. Используем ВП Bundle (Объединить), который находится в подпалитре Cluster (Кластер). На его входы elementподаются (см. рис.4): на верхний — время начала развертки — 0; на средний — интервал дискретизации — Δt; на нижний — массив данных

Замена непрерывной передаточной функции дискретной

Если математическая модель системы представляется в виде соединения линейных и нелинейных блоков, то для описания линейных блоков чаще всего используется передаточная функция K (p ). В этом случае цифровую модель непрерывного линейного блока можно получить, заменив непрерывную передаточную функцию K (p ) дискретной K (z ).

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

1

p 2

(1 +pT )

Лабораторная работа 3. Решение алгебраических уравнений в среде LabVIEW

Лабораторная работа 3. Решение алгебраических уравнений в среде LabVIEW

Пример 3.1. Определение токов в цепи с использованием формульного узла

1. Токи в цепи рис. 3.1 можно рассчитать по законам Ома и Кирхгофа

;

; (1)

.

Значения сопротивлений ,,и электродвижущей силы Е выбираются самостоятельно.

2. Расчет по этим формулам можно выполнить при помощи формульного узла Formula Node, который относится к элементам «Структуры» и вызывается правой клавишей мыши на панели блок-диаграмм по пути: All Functions => Structures => Formula Node. Появившаяся рамка формульного узла растяги­вается до нужного размера и в нее вписываются расчетные формулы (1). Не­известные записываются в левой части формул. Каждая формула пишется на отдельной строке и заканчивается точкой с запятой.

3. Затем в формулы нужно внести исходные данные и вывести результаты рас­чета. Для этого курсор устанавливается правой клавишей мыши на рамке фор­мульного узла и из всплывающего меню левой клавишей вызывается Add Input (добавить вход) для входных величин и Add Output (добавить выход) для выходных величин. В появившиеся рамки вписываются наименования этих величин.

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

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

Вид формульного узла показан на рис. 3.2.

Примечание. Формульный узел не применяется для работы с комплексными числами.

Пример 3.2. Решение алгебраических уравнений в матричной форме

Расчет токов в цепи рис. 3.1 можно провести по линейным алгебраическим уравне­ниям, составленным по законам Кирхгофа:

(1)

Эти уравнения можно записать в матричной форме

. (2)

Для решения системы линейных алгебраических уравнений в среде LabVIEW существует элемент «Решение линейных уравне­ний», вызываемый по пути All Functions => Analyze => Mathe­matics => Linear Algebra => Solve Linear Equatons. Терминалы его можно раскрыть нажатием на иконку правой клавишей мыши и далее из всплыва­ющего меню Visible Items => Terminals. Вид элемента, исходный и с открытыми терминалами, изображен на рис. 3.3.

Для определения назначения терминалов можно снова нажать на иконку правой клавишей мыши и открыть переднюю панель Open Front Panel. Передняя панель имеет вид, представленный на рис. 3.4. Уравнение (2) вводится таким образом: мат­рица коэффициентов Input Matrix (первая матрица уравнения) — подается на левый верхний терминал, вектор заданных воздействий Known Vector (правая часть) — под­водится к левому среднему терминалу, а результирующий вектор Solution Vector (век­тор искомых токов) — снимается с правого верхнего терминала

Для того чтобы ввести матрицу, вызывается элемент Array (построение масси­ва). Элемент вызывается на лицевой панели по пути All Controls => Array&Cluster => Array. Появляется пустая ячейка, в которую вносится цифровой управляющий элемент (для матрицы коэффициентов и вектора управляющих воздействий) или цифровой индикатор (для вектора искомых токов). Затем элемент растягивается до нужной размерности матрицы инструментом «перемещение» (стрелка). Окна управляющих элементов и индикаторов имеют серый цвет, после внесения туда цифровых данных они становятся белыми. Одновременно с вызовом элемента Array на лицевой панели появляется его иконка на панели блок-диаграмм. Вид ли­цевой панели и панели блок-диаграмм, где выполнены необходимые соединения, представлен на рис. 3.5.

В результате выполнения операции получается вектор решений Output. В этом столбце представлены значения токов /, = ЗА, /2 = 2А, /3 = 1А.

Можно из этого столбца выделить значения отдельных неизвестных. Для этого используется функция извлечения элемента массива All Functions => Array => Index Array. Выходы функции подключаются к элементам индикации (рис. 3.6). После запуска программы индикаторы покажут величины, соответствующие зна­чениям строк выходного вектора.

Следует отметить, что программный инструмент Solve Linear Equation, кроме всего, обладает в некотором роде универсальными свойствами, так как может ре­шать также и переопределенные и недоопределенные системы уравнений. В первом случае находится решение, наиболее удовлетворяющее уравнениям (по наимень­шему небалансу), а во втором отыскивается одно из возможных решений.


источники:

http://pandia.ru/text/80/470/97673.php