Карачун В.В.,
Мельник В.М., Кривець О.О.,
Чередниченко
Д.А., Ковальчук В.В.
Національний
технічний університет України «КПІ»
ОБЧИСЛЕННЯ ПЕРЕДАТОЧНОЇ ФУНКЦІЇ ДРОТЯНОГО
ПІДВІСУ У ВИГЛЯДІ ДИСКРЕТНО НЕПЕРЕРВНОЇ МОДЕЛІ
Математична модель струнного підвісу ряду навігаційних приладів може бути
представлена у вигляді хвильового рівняння (як перше наближення) і більш повно
у вигляді рівняння динаміки важкої нитки, навантаженої одним (на вільному
кінці) або кількома вантажами.
Ці
два рівняння можуть бути зведені в одне
. (1)
Тут x,t - лінійний розмір та час, y - відхилення
точки підвісу від її положення рівноваги,
m(x), R(x) та T(x) - відповідно
маса, коефіцієнт опору рухові та натягання нитки.
Для
струни (хвильове рівняння) натягання вважається константою, а для нитки натягання
в кожній точці дорівнює сумі мас, розташованих під даною точкою, помноженій на g - прискорення земного тяжіння. - зовнішня
(поперечна) сила, що діє на підвіс.
Аналітичні (точні) розв’язки даної
задачі відомі, але вони надзвичайно громіздкі, щоб їх можна було
використовувати в інженерних розрахунках динаміки приладів, а, тим більше,
більш складних технічних систем. Тому представляє інтерес пошук наближеної
моделі, наприклад, у вигляді дробово-раціональної передаточної функції окремого
каналу, чи, можливо, ряду каналів в подібному об’єкті.
Для
цього динамічну модель доцільно уявляти як сукупність зосереджених мас
з’єднаних між собою невагомими нерозтяжними нитками. Відстань h між сусідніми масами
є сталою h=l/m, де l -довжина струни, m - кількість відрізків, на стиках яких розміщуються бусинки. Масу нитки
рівномірно розподіляємо між бусинками (mz=mстр/m, 1<=z<=m-1). Тут mz - маса z-ї бусинки, mстр - маса усієї струни. Бусинкам на
кінцях струни надаємо маси m0=mm=mz/2. За такої
умови сумарна маса струни буде дорівнювати сумі зосереджених мас. Якщо на
струні фіксується довільна кількість зосереджених мас будь-якої величини, то вони
додаються до відповідних мас. Остаточний розподіл мас між бусинками фіксується
масивом Mb:Coef (type Coef=array[-1..30] of real).
|
-1 |
0 |
1 |
2 |
3 |
... |
m |
... |
30 |
Mb |
m |
m0 |
m1 |
m2 |
m3 |
... |
mm |
|
|
Сили опору рухові
відтворюються масивом Mr такої ж структури як і масив Mb. На z -у бусинку діє
сила, яка дорівнює силі опору, прикладеній до відрізка підвісу довжиною h. Якщо ж на підвісі фіксовані маси з ненульовими
розмірами, то опір, викликаний наявністю цих мас, відображається відповідним
збільшенням елементів масиву Mr.
Масив T:Coef заповнюється значеннями натягання (константа для моделі струни, або як
згадувалось вище - для моделі нитки).
Дискретна модель
підвісу набуває вигляду
(2)
.
Тут (далі
користуватимемось масивом D:Coef).
Граничні
умови будемо розглядати трьох родів (Ngl=1,2,3 для x=0; Ngr=1,2,3 для x=l).
Для
лівого кінця (x=0)
, (3)
де - переміщення
точки підвісу x=0.
, (4)
тут - сила, прикладена
в точці x=0.
, (5)
де С0 - коефіцієнт жорсткості
пружини, один кінець якої приєднано до підвісу в точці x=0, а інший переміщується на
величину .
Для
правого кінця (x=)
, (6)
де - переміщення
точки підвісу x=l.
, (7)
де - сила, що діє на
точку x=l.
, (8)
де С1 - жорсткість пружини, один
кінець якої приєднано до підвісу в точці x=l, а інший зміщується на величину .
Оскільки математична модель формується нами для визначення передаточної
функції будь-якого каналу, то в залежності від вибраного каналу відповідний
збурюючий чинник (вхідний сигнал) вважається присутнім. Усі ж інші приймаються
рівними нулю.
Щоб формалізувати задання вхідної
точки цікавлячої нас групи каналів, домовимось нумерувати вхідні сигнали наступним
чином:
Виконуємо
над (2) перетворення Лапласа при нульових початкових умовах та ділимо кожен
член на зображення вхідного сигналу
, (9)
де ,
- передаточна
функція каналу «вхід з номером - вихід ».
Відомо,
що в динамічних об’єктах передаточні функції усіх каналів можуть бути
представлені у вигляді
, (10)
де - спільний для усіх передаточних функцій даного об’єкта
знаменник (характеристичний поліном об’єкта).
Множимо
(9) на A(p) і одержуємо -
(11)
Система
(11) є тридіагональною. Для її розв’язання скористаємось методом прогонки,
особливістю якого буде те, що оперувати доведеться не з числами, а з поліномами
від . В процесі виконання прямого ходу будемо приводити z-е рівняння до вигляду
-
. (12)
Тоді
(z-1)-е рівняння матиме вигляд
. (13)
Множимо
(11) на , а (13) на , після чого додаємо ці рівняння:
(14)
Порівнюючи
(12) з (14), доходимо до висновку, що
. (15)
Формули
(15) можна розглядати як рекурентні. Але для того, щоб вони «запрацювали»,
необхідно з лівої граничної умови визначити
Розглянемо,
як це можна зробити. Якщо над (3) (Ngl=1) - виконати
перетворення Лапласа, поділити на зображення вхідного сигналу і помножити на A(p), то одержимо -
звідки,
порівнюючи останній вираз з (12) при z=0, можемо
прийняти
(16)
Для Ngl=2 з (4) аналогічно одержуємо
Порівнюючи
останній вираз з (12) при z=0 , приходимо
до висновку, що
(17)
При
Ngl=3 з (5) маємо
Порівнюємо
останній вираз з (12) при z=0.
(18)
Тепер
прямий хід може бути виконаний за формулами (15). При z=m-1 матимемо з (12)
. (19)
Щоб
знайти , доповнимо рівняння (19) граничною умовою при x=l
Ngr=1. Згідно з (6) маємо
(20)
Підставимо
з останнього
виразу в (19) і розв’яжемо останнє відносно
.
Отже,
можемо прийняти, що
(21)
Ngr=2. Згідно
з (7) одержимо
Якщо
визначити з останнього
виразу та підставити його в (19), то одержимо -
.
Отже,
можна прийняти, що
(22)
Гранична
умова Ngr=3. Згідно з (8)
Підставляємо
з останнього
виразу в (19), звідки
На цьому прямий хід в методі прогонки
завершується.
Зворотний хід реалізується з
використанням формули (12), яка приводиться до вигляду
z
перебирається, починаючи з (m-2), якщо Ninp=4, або з (m-1) - в інших випадках,
завершується ж на z=0.
Оформляємо
описаний алгоритм у вигляді підпрограми WpStrNit.
Procedure WpStrNit(Mb,Mr,D:Coef;
Ninp:integer; var A:Coef; var B:Coef);
var
s,z,Zn:integer; U,V,Q,K,F,P:Coef;
begin
U[0,-1]:=0;
Q[0,-1]:=0; Q[0,0]:=0;
case Ngl of
1:begin
V[0,-1]:=0; V[0,0]:=1; U[0,0]:=0;
if Ninp=1 then Q[0,0]:=1
end;
2: begin
V[0,-1]:=2; V[0,0]:=D[1]; U[0,0]:=D[1];
V[0,1]:=Mr[0]; V[0,2]:=Mb[0];
if Ninp=2 then Q[0,0]:=1
end;
3:begin
V[0,-1]:=2; V[0,0]:=C0+D[1];
U[0,0]:=D[1];
if Ninp=3 then Q[0,0]:=C0
end
end;
for z:=1 to m-1 do
begin
P[-1]:=2;
P[0]:=D[z]+D[z+1]; P[1]:=Mr[z];
P[2]:=Mb[z]; UmnPol(P,V[z-1],P); F[-1]:=0;
F[0]:=D[z]; UmnPol(F,U[z-1],F);
AlSumPol(P,F,'-',V[z]); F[-1]:=0;
F[0]:=D[z+1];
UmnPol(F,V[z-1],U[z]);
K[-1]:=0;
K[0]:=0;
if ((Ninp=7) and (Z=Zinp)) or (Ninp=8) then
K[0]:=1;
if Ninp=8 then
K[0]:=F1[z];
F[-1]:=0;
F[0]:=D[z];
UmnPol(K,V[z-1],P); UmnPol(F,Q[z-1],F);
AlSumPol(P,F,'+',Q[z]);
end;
case Ngr of
1: begin
A:=V[m-1]; B[m]:=A; B[m-1]:=Q[m-1];
if Ninp=4 then AlSumPol(B[m-1],U[m-1],'+',B[m-1]);
end;
2:begin
F[1]:=0; F[0]:=D[m]; UmnPol(F,Q[m-1],B[m]);
if Ninp=5 then AlSumPol(B[m],V[m-1],'+',B[m]);
P[-1]:=2; P[0]:=D[m]; P[1]:=Mr[m];P[2]:=Mb[m];
UmnPol(P,V[m-1],P); F[-1]:=0; F[0]:=D[m];
UmnPol(F,U[m-1],F);
AlSumPol(P,F,'-',A)
end;
3:begin
F[-1]:=0;
F[0]:=D[m];
UmnPol(F,Q[m-1],B[m]);
if Ninp=6 then
begin
P[-1]:=0; P[0]:=C1;
UmnPol(P,V[m-1],P);
AlSumPol(B[m],P,'+',B[m])
end;
P[-1]:=2; P[0]:=D[m]+C1;
P[1]:=Mr[m];P[2]:=Mb[m];
UmnPol(P,V[m-1],A);
F[-1]:=0; F[0]:=D[m];
UmnPol(F,U[m-1],F);
AlSumPol(A,F,'-',A)
end;
end;
if
Ninp=4 then Zn:=m-2
else Zn:=m-1;
for z:=Zn downto 0 do
begin
UmnPol(Q[z],A,P);
UmnPol(U[z],B[z+1],F);
AlSumPol(P,F,'+',P); DelPol(P,V[z],B[z],F)
end;
end;
Практика
використання розглянутого алгоритму показує його безвідмовність, високу
швидкодію, зручність у користуванні. Точність апроксимації легко регулюється
величиною m .
Розглянутий
алгоритм наближеного моделювання може легко бути застосований і для інших
динамічних об’єктів з розподіленими параметрами.