![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Практическое вычисление функций.
Обычно элементарные функции: sin x, cos x, ln x, ex ит.д. вычисляются с помощью полиномов или дробно-рациональных функций. В МATLAB тригонометрические функции используются так: sin(x), cos(x), tan(x), cot(x), sec(x), csc(x). Для обратных впереди ставится a, а для гиперболических в конце h. Например, acos(x) и sinh(x). Аргумент и результат записываются в радианах. В качестве идентификатора Логарифмы вызываются в МATLAB: log(x). Основание логарифма подписывается к концу символа: log10(x). Особенностью разложения в ряд Тейлора является рост ошибки с ростом х вблизи точки х = 1, хотя сама по себе ошибка ограничения может быть очень малой. При разложении элементарных функций в ряд с помощью полиномов Чебышева можно минимизировать ошибку в диапазоне 0< x< 1. Но использование этих полиномов приводит к более сложным формулам. Ряды Тейлора и Чебышева могут быть представлены в виде структуры:
Часто ряд используется в виде:
В ТАУ одной из основных математических моделей элементов и систем являются передаточные функции (ПФ), которые являются дробно-рациональными функциями вида: . Функции (1.7) и (1.8) называются рациональными, а коэффициенты ai и bj - вещественные числа, где i = 0, 1, …, n, а j = 0, 1, …, m. Аргумент x в ПФ является оператором Лапласа. Обычно n≥ m, поэтому часто используют один индекс n ═ m. Если записать полиномы числителя и знаменателя по формуле (1.8), то ПФ будет записана в иной форме, которая также часто используется в литературе. Переход от вида (1.7) к виду (1.8) можно выполнить для вектора коэффициентов по алгоритму пересчета an-i=ai в цикле по i от 0 до n. В МATLAB вектор коэффициентов вводится так: a = [1 3 3 1]; А цикл: for i = 1: n (тело цикла) end Особенности: - идентификаторы a и A - разные переменные; - любой идентификатор – это либо вектор, либо матрица; - индексы векторов и матриц могут начинаться только с 1; Следовательно, принятые в ТАУ обозначения индексов коэффициентов вступают в противоречие с правилами МATLAB. Поэтому цикл следует выполнять так: function prb n=4; %число коэффициентов уравнения a=[1 3 4 5]; for i=1: n d(i)=a(n+1-i) end display(d) По умолчанию счетчик цикла изменяется на 1. А результат записывается в новый вектор d, чтобы сохранить исходный вектор коэффициентов a. В общем случае переменная цикла может быть вещественной любого знака. Вернемся к полиномам. Если (1.7) приравнять 0, то получим алгебраическое уравнение (в ТАУ- характеристическое уравнение системы):
Особенностью характеристического уравнения для устойчивых систем управления является то, что его коэффициенты положительны, т.е. не допускается отсутствие коэффициентов при x во всех степенях от 0 до n: необходимое условие устойчивости. А необходимым и достаточным условием устойчивости является расположение корней характеристического уравнения в левой полуплоскости. Нас будет интересовать алгоритм расчета корней характеристического уравнения (1.10). Перечислим сначала некоторые его свойства: - число корней равно степени n, - корни могут быть нулевыми, комплексно-сопряженными (вещественными и мнимыми). Они могут быть кратными. - для нечетной степени n обязателен один вещественный корень, - любой из корней не может превзойти по модулю число К=1+ Наиболее простой способ определения корней уравнения (1.10) – графический. Для этого следует построить функцию (1.7) и точки пересечения ее с осью абсцисс будут корнями характеристического уравнения.
function grf a=[1 3 3 1]; x=-1.5: 0.01: 0; f=a(1)*x.^3+a(2)*x.^2+a(3)*x+a(4); plot(x, f); grid on hold on a=[1 1 1 1]; f=a(1)*x.^3+a(2)*x.^2+a(3)*x+a(4); plot(x, f)
Вектор x состоит из отрицательных значений от – 2 до 0 с шагом 0.01. При возведении его в степень требуется ставить. перед знаком ^, тогда будут возводиться в степень элементы вектора x. В противном случае будет умножение вектора на вектора. Отсутствие точки с запятой (;) дает возможность разблокировать оператор plot(x, f), т.е. получить результат. В дальнейшем счет полиномов в «лоб» выполнять не следует, так как существуют более рациональные методы расчета.
|