Как решать уравнения в labview

Лабораторная работа 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, кроме всего, обладает в некотором роде универсальными свойствами, так как может ре­шать также и переопределенные и недоопределенные системы уравнений. В первом случае находится решение, наиболее удовлетворяющее уравнениям (по наимень­шему небалансу), а во втором отыскивается одно из возможных решений.

ЦП Автоматизированные системы управления и промышленная безопасность

БК Автоматизированные системы управления и кибернетика

24. Моделирование задач в среде LabVIEW

Для поддержки компьютерного моделирования разработаны пакеты прикладной математики, например, Mathcad, MATLAB, LabVIEW , VisSim и др. Они позволяют создавать формальные и блочные модели как простых, так и сложных процессов и устройств и легко менять параметры моделей в ходе моделирования. Модели чаще всего представлены графическими блоками, набор и соединение, которых задаются диаграммой модели.

Возможности распределенного интеллекта

В связи с бурным развитием технологий, включая резкое увеличение за последние годы производительности полупроводниковых приборов и уменьшение их размеров, повсеместным внедрением компьютеров и микропроцессоров, развитием стандартов связи и сетевых технологий, инженеры вынуждены в равной степени увеличивать сложность процессов разработки, производства и тестирования новых продуктов. Важным компонентом таких процессов стало их моделирование. При этом уже около 30 лет инженеры и ученые используют среду графического программирования National Instruments LabVIEW для моделирования и создания автоматизированных систем сбора данных и управления приборами. Все это время среда LabVIEW постоянно совершенствуется — благодаря регулярному выходу новых версий, а также выпуску специализированных модулей, библиотек и дополнений. Фактически, она стала стандартом в ряде областей науки и техники. Благодаря своим идеям использования распределенного интеллекта, LabVIEW позволила инженерам, не имеющим опыта в традиционном программировании, быстро создавать сложные модели систем измерения и управления и переносить их в практику. В своем развитии среда предоставила пользователям широкую гамму инструментов, которые образуют графическую платформу программного обеспечения для моделирования, управления и тестирования, обеспечивающую пользователям конкурентные преимущества в трех своих базовых областях применения:

— автоматизированных системах измерения и тестирования;

— промышленных системах контроля и управления;

— проектировании и отладке встраиваемых систем.

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

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

· поддержку различных архитектур и платформ исполнения, таких, как персональные, промышленные, портативные и встраиваемые компьютеры, в том числе многопроцессорные системы с ПЛИС и цифровыми сигнальными процессорами, а также системы, работающие под управлением ОС жесткого реального времени;

· мониторинг и управление распределенными узлами системы из единой интерактивной оболочки (LabVIEW Projeсt);

· упрощение передачи данных между различными вычислительными узлами при помощи новой Переменной Общего Доступа (LabVIEW Shared Variable);

· поддержку множества вариантов синхронизации и тактирования узлов распределенных систем через новую технологию детерминированного Ethernet.

Моделирование в LabVIEW

Краткий курс по основам программирования в среде LabVIEW предназначен для студентов 1-2 курсов, обучающихся по инженерным специальностям. Он предваряет внедрение современных методов изучения естественнонаучных и инженерных дисциплин, связанное с использованием высоких информационных технологий для моделирования и визуализации изучаемых законов и явлений. При этом учебные лабораторные и демонстрационные работы дополняются элементами математического моделирования, предварительно выполняются как многофакторные численные исследования, и предусматривают возможность решения обратных задач – построения оптимальных математических моделей по результатам экспериментальных исследований. На практике последняя постановка требует одновременного и непрерывного измерения различных физических и технологических параметров, таких как перемещение, скорость движения, температура, статическое и динамическое давление, расходы и уровни жидкости, локальные скорости воздушного потока и т.п. Основной идеей построения подобных систем сбора, обработки и визуализации экспериментальных данных служит возможность модификации обычного персонального компьютера до уровня многоканальной информационно — измерительной системы с высокими метрологическими характеристиками.

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

Следующий уровень – платы автоматизированного сбора данных, преобразующие аналоговые сигналы датчиков в цифровой код; компьютер и измерительные сервисы. Последние представляют собой программные модули, обеспечивающие осуществление измерений доступным для пользователя способом. В их состав входят драйверы измерительных и вспомогательных приборов и инструменты для их калибровки.

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

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

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

При поочередном подключении автоматизированные лабораторные установки обслуживаются одним компьютером. Учебная измерительная система позволяет одновременно измерять 8 различных параметров и осуществлять управление экспериментом по 2-м каналам. Электрические сигналы с датчиков подаются на 12-разрядный аналого-цифровой преобразователь с USB выходом. Плата сбора данных преобразует токи и измеряемые напряжения в цифровой код с точностью до 0,5 % от действующего значения.

Полученный цифровой сигнал обрабатывается в среде Lab — VIEW . Результаты измерений выводятся на лицевую панель монитора компьютера или мультимедийный экран в виде показаний обычных стрелочных или цифровых приборов, осциллографов и самописцев. Непосредственно во время эксперимента строятся графики изменения параметров во времени, а по его окончании – их зависимости друг от друга или математические модели исследуемых явлений. Благодаря возможностям предварительного моделирования, визуального наблюдения процессов, в том числе и скрытых от непосредственного наблюдения, значительно повышается информативность выполняемых лабораторных работ. Это позволяет отказаться от использования традиционной измерительной техники, при которой по-прежнему остаются рутинные операции считывания результатов измерений, преобразования их в цифровые величины, ввода полученных массивов в стандартные программы статистической обработки и т.д. В них обычно теряется часть полезной информации, появляются дополнительные погрешности, непродуктивно используется время, многие эксперименты вообще неосуществимы. Следует также отметить, что процесс обучения связан, в первую очередь, с развитием способностей студентов самостоятельно познавать новые сложные явления и использовать эти знания на производстве. Этому в значительной мере способствует совершенствование моделирования лабораторного эксперимента. Современные компьютерные технологии позволяют решать эту задачу наиболее эффективным образом.

Создание, редактирование и отладка программ в среде LabVIEW

Для создания собственных программ в среде LabVIEW используются следующие инструменты: Лицевая панель, Блок-диаграмма, палитры элементов управления и отображения данных и палитры функций. При запуске LabVIEW из меню стартового диалогового окна командами New  Blank VI открываются два окна – Лицевая панель и Блок-диаграмма (рис. 43 и 44).

В правом верхнем углу каждого окна находится пиктограмма для архивирования созданной программы в качестве нового компьютерного прибора. Здесь же размещена традиционная для приложений Windows полоса главного меню с одинаковыми для обоих окон пунктами: File, Edit, Operate, Tools, Browse, Windows, Help. Краткое описание функций пунктов главного меню приведено в табл. 12.

Краткое описание функций главного меню в Таблице 12.

Ниже полос главного меню расположены линейки инструментов, которые различны для Лицевой панели и Блок-диаграммы за счет дополнительных кнопок для отладки программ (табл. 13).

Назначение кнопок инструментальных панелей в Таблице 13.

Свободное пространство каждой панели образует рабочую область, снабженную горизонтальной и вертикальной полосами прокрутки. При разработке программ в рабочей области Лицевой панели размещаются визуальные элементы управления и индикации, формирующие интерфейс пользователя, а на панели Блок-диаграммы составляется графический код создаваемого приложения. Для одновременного отображения на экране монитора обоих панелей целесообразно использовать команду: Windows  Ti t le Left and Right.

Разработка программ осуществляется с помощью трех вспомогательных палитр (рис. 45):

— палитры элементов управления и индикации (Controls Palette) на Лицевой панели;

— палитры функций (Functions Palette) на Блок-диаграмме;

— палитры инструментов (Tools Palette), доступной на обеих панелях.

Инструменты имеют следующее назначение:

Типы и проводники данных

В среде LabVIEW используются различные типы данных (рис. 46, табл. 14)

Рис. 46. Типы данных в LabVIEW – логические переменные, целые и действительные числа, одно- или n — мерные массивы, матрицы, строковые и динамические данные

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

Типы данных в LabVIEW в Таблице 14:

Моделирование физических процессов

в инженерной среде LabVIEW

Рассмотрим возможности среды для быстрого создания профессионального интерфейса и обработки данных на примере разработки программы моделирования политропного процесса сжатия воздуха. Процесс происходит в цилиндре объемом V 0 = 1 л с начальным давлением P 0 = 100 кПа и температурой T 0 = 300К при степени сжатия λ = V 0/ VK = 5.

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

Процессом называется любое изменение параметров состояния среды. Обычно изменяются все три параметра, связанные между собой уравнением состояния. Для идеальным газов, к которым относится воздух, уравнение состояния имеет вид PV = RT .

Существует ряд процессов, в течение которых сохраняется постоянное отношение выполненной работы и количества тепла, участвующего в теплообмене с внешней средой. Такие процессы называются политропными. Для них выполняется дополнительное соотношение PV n = const , где n показатель политропы.

Если в политропном процессе воздух, являющийся идеальным газом, сжимается очень быстро, то при уменьшении объема в 15 раз, температура его повышается до 650 °С.

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

Лицевая панель пользователя, с которой осуществляется управление процессом моделирования, показана на рис. 48. В ее верхней части находится четыре цифровых элемента управления для введения исходных данных задачи: V 0, P 0, T 0, n .

Для отображения текущих значений V , P , T на лицевой панели помещены четыре виртуальных прибора – мерная емкость, стрелочный манометр, термометр и цифровой секундомер с верхними пределами показаний их шкал, соответствующими диапазонам измерений объема – 1000 мл, давления – 2000 кПа, температуры 1000 К и 1000 секунд виртуального времени. Показания линейных шкал этих приборов продублированы цифровыми индикаторами, позволяющими производить более точный отсчет контролируемых параметров.

Для наблюдения за ходом моделируемого процесса на лицевой панели находятся виртуальный трехлучевой запоминающий осциллограф и X — Y -самописец для построения P — V диаграммы процесса.

Рис. 48. Лицевая панель моделирования процессов сжатия

Графический код программы моделирования представлен на рис. 49.

Рис. 49 . Блок-схема программы моделирования

политропного сжатия воздуха

В центре блок-схемы, которая для удобства разработки программы присутствует на экране компьютера одновременно с лицевой панелью, находится графическая пиктограмма цикла по условию в виде внешнего прямоугольника, заключающего все операторы, выполняющиеся внутри этого цикла. Следующей центральной структурой программы является узел формул, в который в обычной записи внесены основные соотношения математической модели, определяющие изменения параметров состояния газа взависимости от скорости его сжатия и виртуального времени k . В нашем случае определяющим процессом политропного сжатия воздуха является движение поршня и соответствующее изменение объема сжатого воздуха. Свяжем скорость этого процесса с показателем политропы следующим образом: V = V 0 – 0,002· k · n 5 , где k = i .

Это означает, что за каждый цикл моделирования объем сжимаемого газа линейно уменьшается на (2· n 5 ) мл. Соответствующее изменение давления в цилиндре описывается формулой: P = P 0·( V 0/ V ) n ,

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

Программа автоматически прекращает работу, когда по условию задачи степень сжатия воздуха в цилиндре λ = V 0/ VK становится равной или большей 5-ти. Для этого в программе специально создается графическая цепочка, формирующая условия завершения цикла. Она состоит из логического переключателя «истина» или «ложь» с подачей на два его входа текущего значения объема и конечного объема при сжатии V к ≤ 0,2 л, а также выключателя программы, срабатывающего при значении «истина».

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

Текущие значения выходных величин V , P , T с терминалов формульного узла подаются на входы приборов, находящихся на лицевой панели и пиктограммы которых присутствуют в цикле. Показатели V , P дублируются и сохраняются на границах цикла в виде массивов. По завершении программы они выводятся на X — Y самописец для построения P V диаграммы процесса. Результаты моделирования при различной скорости сжатия воздуха (различных значениях показателя политропы) приведены в табл. 15.

Полученные значения параметров состояния использованы для автоматического построения P V диаграммы моделируемого процесса. При этом площадь области, лежащей под кривой P ( V ), численно равна работе, затрачиваемой для сжатия воздуха.

Можно видеть, что в медленном изотермическом процессе ( n = 1) степень повышения давления равна степени сжатия воздуха. При быстром адиабатическом сжатии ( n = 1,4) и той же степени сжатия давление воздуха в несколько раз превышает изотермическое увеличивается более, чем в 10 раз. Температура при этом достигает 560 К. Это связано с тем, что в медленном процессе тепловая энергия, которая образуется при сжатии газа, успевает рассеяться в окружающей среде. Таким образом, характер изменения параметров состояния фактически зависит от скорости процесса.

Моделирование компьютерных систем измерения

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

Электрическая емкость конденсатора это физическая величина, равная отношению его заряда к разности потенциалов:

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

где n – число элементарных зарядов; e = Кл.

Рис. 50. Электрическое поле в сферическом, плоском

и цилиндрическом конденсаторах

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

где Q – величина заряда; I – сила тока; Δ tn – интервал времени.

Разделив полученную величину на начальное напряжение на конденсаторе, получим значение электроемкости конденсатора.

Электрическая схема установки для определения емкости конденсаторов показана на рис. 51. Она включает в себя источник напряжения, конденсатор, активную нагрузку сопротивлением R , ключ K . При горизонтальном положении ключа конденсатор оказывается заряженным до 3 В. При вертикальном положении источник питания отключается, и конденсатор начинает разряжаться через сопротивление нагрузки. Для оставшейся активной цепи в любой момент времени справедливо выражение: I = U / R .

Рис. 51 . Схема экспериментальной установки

Лицевая панель модели системы измерения показана на рис. 52. На ней присутствуют:

— стрелочный прибор для контроля падения напряжения на конденсаторе;

— три цифровых элемента управления для ввода исходных данных – ЭДС источника, сопротивления нагрузки R и остаточного напряжения Uk ;

— три цифровых индикатора для отображения мгновенных значений заряда Q , силы тока и времени разрядки t ;

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

Рис. 52. Лицевая панель моделирования системы измерений

Рис. 53. Блок-схема моделирования системы измерений

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

I = U / R и суммирования величины зарядов, стекающих с обкладок конденсатора: Q = Q 0 + I · dt . При этом вторая формула предусматривает организацию процесса численного интегрирования, в котором на каждой новой итерации используется предыдущее значение Q , которое всякий раз учитывается как новое значение Q 0 . Для запоминания вычисленного значения Q и возвращения его в цикл используется «сдвиговый регистр», устанавливаемей на правой границе узла формул.

Для начала работы формульного узла в него введены начальные данные Q 0 , R и U . Текущее значение U используется в качестве входного параметра автоматического выключения работы цикла. U Uk , где Uk – остаточное напряжение на конденсаторе в конце разрядки, сравнимое с интенсивностью помех. В нашем случае Uk = 0,1В.

Значения Q и t , сохраненные в цикле после выполнения последней итерации, выводятся на цифровые индикаторы исходного заряда и времени разрядки. Кроме того, вне цикла, после его выполнения, рассчитывается и выводится на свой индикатор значение емкости конденсатора C = Q / U 0 .

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

На рис. 54 и 55 показаны лицевая панель и блок-диаграмма реальной системы измерения с учетом ее отработки при предварительном моделировании. Легко отметить общие узлы, структуры и наиболее существенные отличия от моделирующей программы. Достоинство среды состоит в том, что при воплощении модели в жизнь используются готовые решения LabVIEW по средствам ввода и отображения данных, приборы реального времени и.т.п. Тем не менее, центральный момент вычислений – определение начального заряда конденсатора по изменению тока разрядки (заштрихованная область под графиком I ( t ) ) остался практически неизменным.

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

Рис. 54. Лицевая панель компьютерной системы измерения

Рис. 55. Графический код программы по определению

Функции генерации, ввода и обработки данных

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

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

Рис. 56. Палитра функций генерации сигналов и шумов

— генератор с заданной длительностью сигналов;

— гармонические колебания и шум;

— отрезки синусоидального, импульсного, пилообразного, sin(x)/y, прямоугольного и частотно-модулированного сигналов;

— синусоидальные, треугольные, прямоугольные, пилообразные и произвольные колебания любой длительности;

— равномерный, гауссовский, периодический случайный шумы и двоичная последовательность максимальной длины;

— гамма-шум, пуассоновский, биноминальный шумы, шум Бернулли и т.п.

При моделировании отклика различных систем на разнообразные внешние воздействия может быть использован «Генератор сигналов с заданной длительностью» (рис. 57).

Рассматриваемый компьютерный прибор имеет девять входов: сбросить фазу, длительность, тип сигнала, число выборок, частота, амплитуда, постоянная составляющая, вход фазы, заполнение цикла прямоугольного колебания (%), а также имеется три выхода: сигнал, частота выборок, выход фазы (рис. 57, 58 и 59).

ВП генерирует сигнал ( signal ), имеющий форму, задаваемую на входе тип сигнала ( signal type ). Вход сбросить фазу ( reset phase ) определяет начальную фазу выходного сигнала. По умолчанию на входе установлено состояние ИСТИНА. При этом начальная фаза сигнала устанавливается в соответствии со значением на входе вход фазы ( phase in ). Если на входе сбросить фазу установлено состояние ЛОЖЬ, то начальная фаза устанавливается равной значению фазы на выходе фазы ( phase out ) при последнем выполнении этого ВП.

Вход длительность ( duration ) задает время в секундах, равное длительности генерируемого выходного сигнала. По умолчанию значение длительности равно 1,0.

Вход тип сигнала задает следующие типы генерируемого сигнала: 0-синусоидальный, 1-косинусоидальный, 2-треугольный, 3-прямоугольный, 4-пилообразный, 5-линейно нарастающий, 6-линейно спадающий.

Вход число выборок (# of samples ) задает число выборок выходного сигнала. По умолчанию это значение равно 100.

Вход частота ( frequency ) определяет частоту выходного сигнала в герцах. По умолчанию значение частоты равно 10. При задании частоты необходимо учитывать требование выполнения критерия Найквиста: частота

Вход амплитуда ( amplitude ) задает амплитуду выходного сигнала. По умолчанию значение амплитуды равно 1,0.

Вход постоянное смещение ( dc offset ) задает постоянное смещение или значение постоянной составляющей выходного сигнала. По умолчанию значение постоянной составляющей равно 0.

Вход фазы определяет начальную фазу (в градусах) выходного сигнала при установке сбросить фазу в состояние ИСТИНА. По умолчанию значение на входе фазы равно 0.

Вход заполнение цикла прямоугольного колебания ( square wave duty cycle ) определяет время (в % от периода), в течение которого прямоугольный сигнал имеет высокий уровень. ВП использует данный параметр только для прямоугольного сигнала. По умолчанию значение на входе равно 50 %.

Выход сигнал представляет сгенерированный массив выборок сигнала.

Выход частота выборок ( sample rate ) отображает частоту дискретизации выходного сигнала. Частота выборок равна отношению числа выборок к длительности. Выход фазы указывает значения фазы (в градусах) последней выборки выходного сигнала.

Рис. 58. Лицевая панель генератора сигналов

Рис. 59 . Блок-диаграмма программного управления режимом работы генератора

При моделировании систем автоматизированной обработки данных представляет интерес Палитра функций обработки сигналов в частотной области (рис. 60) и компьютерный прибор вычисления передаточной функции (рис. 61).

Рис. 60. Палитра функций обработки сигналов в частотной области

Виртуальный прибор (ВП) Передаточная функция ( Transfer function ) производит расчет односторонней передаточной функции, также известной, как частотная передаточная функция, на основе анализа заданных во временной области тестирующего сигнала ( Stimulus Signal ) и выходного сигнала тестируемого объекта ( Response Signal ) на входе и выходе тестируемой электрической цепи.

Лицевая панель системы регулирования и блок-диаграмма тестирования может выглядеть следующим образом (рис. 62).

Рис. 62. Лицевая панель тестирования систем автоматики

Свободное математическое моделирование – это новый метод организации вычислительных экспериментов и обучения математическому моделированию, основанный на распределенных сетевых сообществах ученых, изобретателей, экспертов, преподавателей, студентов и школьников. Идея СММ заключается в использовании современных информационных и гуманитарных технологий совместного проведения исследований, конструирования и разработки (подход Open Source), что позволяет легко обмениваться, изучать, использовать и адаптировать открытые модели широкому кругу творческих людей.

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

Новые технологии последнего десятилетия, Интернет, а также большие потребности общества в математическом моделировании сделали возможным новый тип научного института – распределенные сообщества молодых ученых, изобретателей, предметных специалистов, материально самообеспечивающихся за счет участия в конкурсах, тендерах, экспертизе. Сеть таких институтов образует сообщество научной экспертизы – ключевой элемент строящейся национальной инновационной системы. Для этих целей в России в Научно-образовательном центре ИПМ им. М.В. Келдыша РАН создана веб-платформа «Сообщество свободного математического моделирования» – http://www.mathmodel.ru.

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

Моделирование динамических систем: решение нелинейных уравнений

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

На выходе мы получили траекторию полета снаряда, что дает нам ориентировочные представления о характеристиках орудия: при заданных параметрах мы получили дальность стрельбы чуть более 2,5 км и высоту подъема снаряда чуть выше 800 метров. Точнее мы сказать не можем, вернее можем, если с карандашиком по сетке определим координаты нужных точек на графике. Но это, как известно, не наш метод. Хорошо бы получить эти данные с точностью, обеспечиваемой используемыми нами инструментами и без ручного труда. Вот об этом мы сегодня и поговорим.

1. Постановка задачи

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

как функции времени. Высота полета снаряда это y(t). Если мы определим в какой момент времени высота становится равна нулю, то есть решим уравнение

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

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

Говоря языком математики, необходимо найти точку экстремума функции . А что надо для этого сделать? Приравнять к нулю её производную! В данном случае производную по времени, то есть решить уравнение

ведь производная от вертикальной координаты по времени есть вертикальная проекция скорости. Корень этого уравнения, есть момент времени, когда снаряд достигнет максимальной высоты. Соответственно, интересующая нас высота

Просто? Более чем.

2. Уравнение, которого нет

И вот тут котенка Гава, как известно, ждут неприятности. Начнем с того, что даже если уравнение задано в виде формулы (аналитически) не всегда удается найти его решение. Вот например

Как вам? Простенько, но попробуйте найти икс, используя всё то, чему вас учили в школе. То-то же…

Введем замену , тогда
\begin
&u \, e^ <2 — u>= 1 \\
&u \, e^ <-u>= e^ <-2>\\
&-u \, e^ <-u>= -e^ <-2>
\end
Пусть теперь , тогда

Теперь делаем финт ушами. Математики прошлого хорошо поработали за нас. Если задана функция вида

то обратная ей функция, называется W-функцией Ламберта.

Не в даваясь в теорию ФКП, в которой я мало смыслю, скажу, что число попадает в интервал в котором функция Ламберта многозначна, значит корня будет два

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

Приближенно этот ужас равен

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

В случае с моделью пушки всё несколько коварнее — наше уравнение задано даже не формулой. Оно задано, грубо говоря, таблицей значений фазовых координат, полученных для вполне конкретных параметров выстрела. У нас нет уравнения!

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

Создадим новый скрипт в том же каталоге, где расположены файлы ballistics.m, f.m и f_air.m. Назовем его, например cannon.m. Для начала зададимся параметрами снаряда, начальной скоростью и направлением выстрела

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

Обратите внимание, теперь в качестве моментов времени, передаваемых функции решения уравнения мы берем всего два значения: начальный момент времени (t = 0) и интересующий нас момент времени. Соответственно, переменная solv будет содержать два вектора фазовых координат: начальный и тот который нам нужен. Собираем все компоненты конечной точки фазовой траектории в вектор Y и возвращаем его значение из функции.

Теперь нам ничего не стоит определить зависимость высоты полета снаряда от времени

протестируем полученную функцию

При запуске скрипта на исполнение мы увидим в командном окне следующий вывод

Отлично, функция работает! Аналогично определим и функцию вычисления горизонтальной дальности

Видно, что для вычисления высоты и дальности мы каждый раз интегрируем уравнения движения, от начального до интересующего нас момента времени. Таким образом мы получили зависимость, не выражаемую конкретной формулой. Это довольно круто.

3. Принципы численного решения нелинейных уравнений

Методы численного решения нелинейных и трансцендентных уравнений заточены под решение уравнений вида

К такой форме легко привести любое уравнение. Например

где . Корни этого, эквивалентного уравнения, равны корням исходного. Если мы построим график функции f(x), то увидим такую картинку


корни уравнения это значения аргумента в тех точках, где график пересекает ось x.

Все методы численного решения таких уравнений включают в себя два этапа:

  1. Поиск начального приближения корня
  2. Уточнение корня с заданной погрешностью

Под начальным приближением понимают значение аргумента f(x), максимально близкое к корню, либо достаточно близкое, чтобы обеспечить сходимость метода за разумное количество итераций.

Простейшим методом является метод простых итераций. Для применения этого метода уравнение преобразуют к виду

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

В нашем примере

Посмотрим на график. У уравнения два корня. Найдем крайний левый корень, выбрав в качестве начального приближения

Ага, видно, что начиная с шестой итерации четвертый знак получающегося числа остается неизменным. Значит мы нашли корень уравнения с погрешностью менее 10 -4 на шестой итерации.

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

Ограничимся членами первого порядка малости, заменив саму функцию f(x) касательной к её графику в точке x0

и приравняв полученное выражение к нулю, решим его относительно x

Получаем итерационную формулу

В нашем примере

В качестве начального приближения берем и пытаемся выполнять итерации

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

Эти примеры я привел, чтобы объяснить общий принцип. Кроме этих двух методов существует ещё масса методов, например:

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

Все перечисленные методы требуют предварительной подготовки, в виде поиска начального приближения или интервала изоляции корня — интервала изменения аргумента f(x), на границах которого функция меняет знак. В этом случае можно с уверенность сказать (при условии непрерывности функции!) что внутри интервала изоляции есть хотя бы один корень.

4. Определяем параметры траектории пушечного ядра

Итак, найдем момент времени, когда снаряд упадет на землю. Прежде всего, определим интервал изоляции корня

Делаем это исходя из физического смысла задачи — после сразу выстрела высота полета снаряда неотрицательна. Перебираем все моменты времени, начиная от нуля, до тех пор, пока высота не станет отрицательна. Перебираем с достаточно крупным шагом (1 секунда) чтобы процедура не была слишком длительной, ведь на каждом шаге мы заново интегрируем дифференциальные уравнения движения, что весьма накладно сточки зрения вычислительных затрат. Как только высота станет отрицательной, заканчиваем перебор. Корень уравнения h(t) = 0 находится где-то внутри интервала [a, b]. Начальное приближение берем в середине этого интервала

Теперь отдаем уравнение на съедение процедуре решения нелинейных уравнений Octave

Функция fsolve() на вход принимает функцию, описывающую левую часть уравнения f(x) = 0 и значение начального приближения. Возвращает значение корня, вычисленное с заданной точностью. С какой точностью? Пока не будем задаваться этим вопросом и воспользуемся настройками по-умолчанию, на данном этапе они нас устраивают.

Получив значение момента времени падения, вычисляем дистанцию от позиции стрельбы

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

В командном окне можно увидеть результаты работы программы

а также посмотреть, с какой точностью были решены уравнения

Для наших учебных целей точность вполне приемлема.


источники:

http://www.automationlab.ru/index.php/2014-08-25-13-20-03/449-2

http://habr.com/ru/post/349426/