Лабораторная работа №1. Моделирование звеньев автоматических систем.
W(p) - передаточная функция - отношение изображений выходного сигнала к входному при нулевых начальных условиях.
$$ W(p) = {Y(p) \over G(p)} = {b_mp^m + b_{m-1} p^{m-1} + ... +b_1p + b_0 \over a_np^n + a_{n-1}p^{n-1} + ... + a_1p + a_0 } \qquad \qquad \qquad \text{ (1)}$$ $$ \text{Где: } b_m, b_{m-1}, ..., b_1, b_0, a_{n-1},...,a_1, a_0 \text{ заданные постоянные коэффициенты;} $$ $$ n \le m – \text{порядок числителя и знаменателя, соответственно;}$$ $$ p = \alpha \pm \beta j \text{ - комплексная переменная. } $$Y(p) — изображение выходного сигнала
G(p)— изображение входного сигнала
Передаточной функции вида (1) соответствует неоднородное линейное дифференциальное уравнение вида
В зависимости от вида входного сигнала g(t) получаем одну из временных характеристик переходную или весовую.
h(t) - переходная функция - реакция системы на единичную ступенчатую функцию 1(t)
w(t) - весовая функция - реакция системы на единичный импульс (дельта-функцию Дирака - $$ \delta(t) $$)
Из определений функций 1(t) и $$ \delta(t) $$ очевидна связь между ними:
Единичная ступенчатая функция 1(t) легка для практической реализации с высокой точностью, однако дельта-функцию Дирака $$ \delta(t) $$ реализовать сложнее.
Аналогично взаимосвязи (3) между входными сигналами, подобное же отношение существует и для соответствующих типовых временных характеристик:
Получить h(t), w(t) различными методами:
- Построить графики этих функций с помощью моделирования;
- Получить аналитические выражения этих функций классическим методом;
- Получить аналитические выражения операторным методом.
- Сопоставить графики, полученные с помощью моделирования и по аналитическим формулам.
Моделирование
Известны различные способы моделирования таких передаточных функций, среди которых наибольшее распространение нашли способы, позволяющие осуществлять моделирование при заранее неизвестном законе изменения входного сигнала и избегать применения численного дифференцирования, которое, как известно, весьма восприимчиво к неточностям представления тех или иных координат звеньев, автоматических систем:
- непосредственное интегрирование;
- разложение на уравнения первого порядка;
- комбинирование производных.
Рассмотрим моделирование на примере, применяя метод непосредственного интегрирования
Пусть:
где k, T1, T2 - постоянные коэффициенты, характеризующие параметры звена с заданной передаточной функцией (причем , k – коэффициент усиления, T1, T2 - постоянные времени)
Напомним, что при записи передаточной функции $$ p = \alpha \pm \beta j $$ – комплексная переменная.
– сокращенная форма записи дифференциального уравнения, где
По правилу пропорции получим получим:
Таким образом, используя нулевые начальные условия, мы можем перейти от передаточной функции к соответствующему ей дифференциальному уравнению, заменив $$ p = \alpha \pm \beta j \text{ - комплексную переменную на } p = {d \over dt} - \text{ оператор дифференцирования } $$. В результате получим дифференциальное уравнение.
В данном случае n=1, а m=1, так как это порядок числителя и знаменателя.
Определяем коэффициенты: $$ a_1, a_0 и b_1, b_0 $$
$$ a_1 = T_2^2 $$
$$ a_0 = 1 $$
$$ b_1 = kT_1 $$
$$ b_0 = k $$
Для применения все методов подготовки к моделированию коэффициент при старшей производной должен быть равен 1, поэтому нужно получившееся выражение поделить на $$ T_2^2 $$.
И оно будет иметь вид:
Снова проставляем коэффициенты
$$ n = 1 $$
$$ a_1 = 1 $$
$$ a_0 = {1 \over T_2^2 } $$
$$ m = 1 $$
$$ b_1 = {kT_1 \over T_2^2 } $$
$$ b_0 = {k \over T_2^2 } $$
Коэффициент при старшей производной a1 стал равен 1, далее преобразуем дифференциальное уравнение по формулам метода непосредственного интегрирования из методических указаний по лабораторному практикуму [1]. Далее будем обозначать номера используемых формул из лабораторного практикума как (1. Номер формулы).
Для определения z2 воспользуемся обобщенным выражением:
Для определения z2 воспользуемся обобщенным выражением:
$$ \text{(1.5) } \qquad \qquad \qquad {dz_1 \over dt } = -(a_{n-k}y - b_{n-k}g) +z_{k+1}, (k=1,2,...,n), z_{n+1} = 0 $$По формулам (1.3) - (1.5) получим
\begin{cases} y = z_1 + b_1g = z_1 + {kT_1 \over T_2^2}g \\ {dz_1 \over dt } = -{y \over T_2^2} + {k \over T_2^2} g \end{cases}Решив полученную систему уравнений при g(t)=1(t) (т.е. 1 при t>=0), найдем значения переходной функции (это значения y в данной системе). Для этого необходимо применить численный метод для решения полученного дифференциального уравнения, например, метод Эйлера или метод Рунге-Кутта. Более подробно, ознакомиться с этими методами можно по ссылке и по ссылке
Далее будет рассматриваться метод Рунге-Кутта для решения дифференциального уравнения первого порядка.
Решение дифференциального уравнения $$ y' = f(t,y) $$ при заданных начальных условиях $$ y(0)=y_0 $$ (в нашем случае они нулевые, т. е. y0> =0) на интервале [0, L] с шагом $$ \Delta t $$ находится по формулам:
$$ y_{i+1} = y_i + {1 \over 6} * (k_1 + 2k_2 + 2k_3 + k_4) $$ $$ k_1 = f(t_i, y_i) \Delta t $$ $$ k_2 = f(t_i + {\Delta t \over 2}, y_i + {k_1 \over 2}) \Delta t $$ $$ k_3 = f(t_i + { \Delta t \over 2}, y_i + {k_2 \over 2}) \Delta t $$ $$ k_4 = f(t_i + \Delta t, y_i + k_3) \Delta t $$Для типовых звеньев первого порядка: L=(3 или 4)T max
Для типовых звеньев второго порядка: $$ L \approx {6 \pi T \over \sqrt{1 + \xi^2}} $$.
Применим метод Рунге-Кутта к нашему примеру:
Обратите внимание, так как полученные уравнения не содержат явной зависимости от t, то приращения $$ t_i + {\Delta t \over 2} \text{ и } t_i + \Delta t $$. в рассматриваемом примере отсутствуют.
Дальше достаточно перенести полученные выражения в программный код и построить график. Такой график должен получиться при dt=1; T1 = 0.1; T2 = 2; k=1.
Чтобы построить график весовой функции воспользуемся соотношением $$ w(t)=h′(t) $$. Тогда для нахождения значений w(t) необходимо численно продифференцировать, т.е. $$ w = {\Delta h \over \Delta t} $$ или с учетом используемых в листинге переменных: $$ w = {(y-ypr) \over dt} $$ , ypr – значение переменной y, вычисленное на предыдущем шаге.
Для рассматриваемого примера получим (T1= 0.1; T2=2; k=1) следующие графики временных характеристик
var L=30;
var T1= 0.1;
var T2=2;
var k=1;
var k1,k2,k3,k4;
var z1;
var y, t, w, ypr;
var g = 1;
y=0;
z1=0;
t=0;w=0;
var A=new Array(['t', 'Переходная функция(модел)','Единичное ступенчатое воздействие','Весовая функция' ]);
var i=1;
while(t < L){
A[i]=[t,y,1,w];
ypr=y;
k1 = dt*(k / (T2 * T2) * g - (y / ( T2 *T2)));
k2 = dt*(k / (T2 * T2) * g - (1 / (T2 * T2)) * (y + k1 / 2))
k3 = dt*(k / (T2 * T2) * g - (1 / (T2 * T2)) * (y + k2 / 2))
k4 = dt*(k / (T2 * T2) * g - (1 / (T2 * T2)) * (y + k3))
z1=z1+1/6*(k1 + 2*k2 + 2*k3 + k4);
y=z1 + (k * T1 / (T2 * T2)*g);
if (t>0) w=(ypr-y)/dt;
t=t+dt;
i++;
}
var data = google.visualization.arrayToDataTable(A);
var options = {
title: 'Моделирование заданного типового звена',
curveType: 'function',
hAxis: {
title: 't'
},
vAxis: {
title: 'h(t), w(t), g(t)'
},
legend: { position: 'bottom' }
};
var chart = new google.visualization.LineChart(document.getElementById('curve_chart2'));
chart.draw(data, options);
}
</script> <div id="curve_chart2" style="width: 750px; height: 400px"></div>
Выше был рассмотрен пример для системы, описываемой дифференциальным уравнением первого порядка. Рассмотрим моделирование системы второго порядка, поскольку используемые методы численного решения дифференциальных уравнений будут отличаться
Соответствующее дифференциальное уравнение:
Избавимся от коэффициента при старшей производной T2 и получим:
$$ {d^2y \over dt^2} + {y \over T^2} = {k \over T^2}{dg \over dt} $$Определим коэффициенты
$$ n=2 $$
$$ a_2=1 $$
$$ a_1 = 0 $$
$$ a_0 = { 1 \over T^2} $$
$$ m=1 $$
$$ b_2 = 0 $$
$$ b_1 = { k \over T^2 }g $$
$$ b_0 = 0 $$
Применяя метод непосредственного интегрирования, получим
В результате исходное дифференциальное уравнение второго порядка было разбито на систему из двух уравнений первого порядка. Для решения систем дифференциальных уравнений используется соответствующий метод Рунге-Кутта (более подробно по ссылке:метод Рунге-Кутта) Приведем формулы данного метода, позволяющего решать системы дифференциальных уравнений первого порядка, вида:
Которые имеют решение: y=y(t), z=z(t) и т.д. при заданных начальных условиях y0, z0….
Применив метод Рунге-Кутта к рассматриваемому примеру, получим:
Классический метод
Рассмотрим нахождение выражения переходной функции классическим методом на примере.
Рассмотрим соответствующее дифференциальное уравнение
$$T {dy \over dt} + y = k{dg \over dt}$$Первое, что необходимо сделать, это посчитать установившееся значение.
$$ n = 1 $$
$$ a_1 = T $$
$$ a_0 = 1 $$
$$ m = 1 $$
$$ b_1 = k $$
$$ b_0 = 0 $$
То
$$ y_{уст} = {b_0 \over a_0} = 0 $$Далее по формулам (1.14) и (1.15) нам необходимо перейти к новой переменной z(t) - которая является решением соответствующего однородного дифференциального уравнения. Справа ставим 0 и решаем дифференциальное уравнение. Получаем однородное дифференциальное уравнение:
В данном случае, yуст = 0. В большинстве случаев оно отлично от нуля, поэтому его важно не потерять при дальнейшем решении.
Решаем дифференциальное уравнение:
$$ \text{Дифференциальному уравнению соответствует характеристическое уравнение:}$$ $$ Tp + 1 = 0 $$ $$ p = -{1 \over T} \text{ Корень действительный, значит решение z(t):}$$ $$ z(t) = C_1e^{pt} = C_1e ^{-t \over T} $$Требуется найти C1 из начальных условий:
$$ z_0 = y_0 - y_{уст} \ z'_0 = y'_0.$$Так как при m>=1 функция справа разрывная, то различают начальные условия слева от 0 (до момента приложения внешнего воздействия) и справа от 0 (непосредственно после приложения воздействия), т.е. при времени t = -0 и t = +0, соответственно. В большинстве практических случаев для времени t=-0 принимают нулевые начальные условия, т.е. y-0 = 0, y'-0=0, y''-0=0 и т.д. Аналогично для (n-m-1) начальных условий при: t=+0:y+0=0, y'0 = 0, ... , y0(n-m-1) = 0. Так как для рассматриваемого примера (n-m-1)=1-1-1 = -1, то необходимо использовать формулы (1.17). $$ \text{(1.17) } \qquad \qquad \qquad y_{+0} = {b_1 \over a_1} = { k \over T }$$ Если решается уравнение второго порядка, то необходимо аналогичным образом найти начальные условия для y'.
Напоминая о том, что на вход подавали единичную ступенчатую функцию, запишем выражение для переходной функции
$$ h(t) = {k \over T}e^{-{t \over T}}1(t) $$Весовую функцию находим как производную от переходной функции.
Тогда
$$ W(t) = h'(t) = {k \over T}({-{1 \over T}})e^{-{t \over T}} 1(t) + {k \over T}e^{-{t \over T}} \Delta(t) = $$ $$ = -{k \over T^2}e^{-{t \over T}}1(t) + {k \over T}e^0 \delta(t) = -{k \over T^2}e^{-{t \over T}} 1(t) + {k \over T} \delta (t)$$При построении графиков весовой функции по аналитическим формулам слагаемые с $$ \delta(t) $$(в случае их наличия) опускаются.
Полученные аналитические выражения для h(t) и w(t) можно сопоставить c выражениями из справочников и учебников. Графики, построенные по полученным аналитическим выражениям должны совпадать с соответствующими графиками функций, полученными при моделировании.
Операторный метод.
Для передаточной функции $$ W(p) = {Y(p) \over G(p)} $$ ищем $$ Y(p)=W(p)G(p) $$, используя формулы разложения Карсона-Хевисайда.
Найдем переходную функцию.
$$ g(t) = 1(t) $$ $$ g(t) \div G(p) $$ $$ h(t) \div H(p) $$Переходная функция - это реакция системы на единичный ступенчатый сигнал, его изображением является:
$$ 1(t) \div {1 \over p} $$ $$ \text{Поэтому} $$ $$ G(p) = {1 \over p} $$следовательно,
$$ H(p) = W(p) {1 \over p} $$Рассмотрим несколько примеров.
1. Корни знаменателя простые
Корни знаменателя
$$ D(p)=(Tp+1) p = 0; p_1 = 0; p_2 = -{1 \over T}$$ — простые и не кратные.В этом случае решение ищется по формуле:
$$ \text{(1.19 )} \qquad \qquad \qquad h(t) = L^{-1}[H(p)] = \left[ {K(p) \over D(p)} \right ] = \sum_{i=1}^n = {K(p_i) \over D'(p_i)}e^{p_it} $$Найдем производную для знаменателя $$ D(p)=Tp^2+p=0 $$
$$ D^{'}(p) = 2Tp+1 $$ $$ h(t) = L^{-1}[H(p)] = {k(T_0*0 +1) \over 2T*0+1}*e^{0t} + {k(T_0(-{1 \over T})) \over 2T*(-{1 \over T})+1} e^{-{t \over T}} $$ $$ \text{ Сокращаем и получаем формулу для переходной функции:} $$ $$ h(t)= (k-k*{T-T_0 \over T} * e^{-{t \over T}})1(t) $$2. Корни знаменателя комплексно-сопряженные
Находим корни
$$ D(p)=(T^2 p^2+1)p=0 $$ $$ p_1 = 0; T^2p^2 + 1 = 0; p^2 = -{1 \over T^2}; p_{2,3} = \pm {1 \over T}j$$Для решения будем использовать две формулы (1.19) - для действительных корней и (1.22) - для комплексно-сопряженных
$$ L^{-1}[H(p)] = L^{-1}[H(p)]_{p=0} + L^{-1}[H(p)]_{p=1 \pm {1 \over T} j} = H_1 + H_2 $$ $$ H_1 = L^{-1}[H(p)]_{p=0} $$ $$ H_2 = L^{-1}[H(p)]_{p=1 \pm {1 \over T} j} $$Используем 19 формулу (для действительных корней p=0)
$$ D'(p) = 3T^2p^2 + 1 $$ $$ H_1 = {k \over 3T^2 0 + 1} * e^0 = k $$Используем 22 формулу (для чисто мнимых корней)
$$ p_{2,3} = \alpha \pm \beta j = \pm {1 \over T} j, \alpha = 0, \beta = {1 \over T} $$ $$ \text{(1.22) } \qquad \qquad \qquad H_2 = 2At^l*e^{\alpha t} cos \beta t + 2Bt^l e^{\alpha t} sin \beta t $$ $$ \text{l = 1- 1 = 0 - кратность комплексных пар.}$$Ищем мнимую и действительную часть от выражения:
$$ {k \over 3T^2p^2 + 1} \text{при } p = {1 \over T} j$$Если звено имеет комплексно сопряженные корни, то необходимо домножить на комплексно-сопряженное, чтобы избавиться от мнимости в знаменателе(7,8,9 варианты)
3. Кратные действительные корни
Находим корни
$$ D(p) = p^2 = 0 $$p1,2 = 0 – кратные действительные корни. Функция ищется по формулам (1.20) и (1.21)
$$ \text{(1.20) } \qquad \qquad \qquad L^{-1}[H(p)] = L^{-1} \left[ {K(p) \over D(p)} \right ] = \sum_{i=1}^S \sum_{k=1}^{l_i} F_{ik}t^{l_i - k} e^{p_it}, (t > 0) $$ $$ \text{(1.21) } \qquad \qquad \qquad F_{ik} = {1 \over (k-1)!(l_i-k)!} \times {d^{k-1} \over dp^{k-1}} \left[ {(p-p_i)^{l_i} K(p) \over D(p)} \right ] _{p=p_i}, $$где s-количество кратных пар, li-количество корней в i паре.
В рассматриваемом примере s=1, l1=2
$$ h(t) = L^{-1} [H(p)] = F_{11}t^{2-1}e^{0t} + F_{12}t^{2-2}e^{0t} = F_{11}t + F_{12} $$ $$ F_{11} = {1 \over (1-1)!(2-1)!} \times {d^{1-1} \over dp^{1-1}} \left[ {(p-0)^2 (Tp + 1) \over p^2} \right]_{p=0} = (Tp+1)_{p=0} = 1$$ $$ F_{12} = {1 \over (2-1)!(2-2)!} \times {d^{2-1} \over dp^{2-1}} \left[ {(p-0)^2 (Tp + 1) \over p^2} \right]_{p=0} = {d(Tp+1) \over dp}_{p=0} = T$$В результате получаем
$$ h(t) = F_{11}t + F_{12} = (t+T)1(t) $$Для поиска весовой функции операторным методом используются те же самые формулы. Рассмотрим на примере поиск весовой функции для $$ W(p)={k \over (Tp+1)} $$
Если ищем весовую функцию, на вход подается единичный импульс $$ ((t)=\delta(t)) $$, а его изображением является 1. Весовая функция имеет своим изображением передаточную
$$ g(t) \div 1 $$ $$ w(t) = L^{-1} [W(p)] $$Находим корень знаменателя $$ D(p)=Tp+1=0, p1={-1 \over T}. $$ Так как корень единственный и действительный весовую функцию находим по формуле (1.19)
Обратите внимание, что формулы разложения Карсона-Хевисайда, позволяют находить оригиналы при t>0. Следовательно, при поиске весовых функций слагаемые, соответствующие $$ \delta (t) $$, получить невозможно. Аналитические выражения для весовых функций, полученные классическим методом и операторным могут отличаться.
Физический смысл коэффициента k – это всегда коэффициент усиления (показывает, что входной сигнал изменяется в k раз). Для большинства систем установившееся значение переходной функции hуст будет равно k.
Параметр T – постоянная времени, характеризует инертность системы. Чем больше T, тем медлительнее система (например, быстрее нагревается конфорка у плиты, но медленнее остывает вода в термосе). Как правило, T находят на графиках переходных функций, проводя касательные в точке h(0) (см. рисунок).
В некоторых случаях найти параметры постоянных времени и коэффициента усиления, можно используя аналитические формулы переходной и весовой функции и значения этих функции в момент времени t=0 (их легко найти на графике, и они не всегда равны 0).