Kami melanjutkan serangkaian artikel tentang mengotomatisasi kinerja aerobatik pada UAV kecil. Artikel ini, pertama-tama, memiliki tujuan pendidikan: di sini kami menunjukkan cara membuat sistem kontrol otomatis paling sederhana (ACS) menggunakan contoh dari tugas melakukan aerobatik "tong" ketika mengendalikan pesawat dengan hanya aileron. Artikel ini adalah yang kedua dari serangkaian publikasi “Flight UAV”, yang menceritakan tentang proses membangun bagian perangkat keras dan perangkat lunak dari senjata self-propelled dalam bentuk pelatihan.

Tautan ke artikel siklus sebelumnya:
1. "Penerbangan UAV. Cara membuat tong "Konten:
PendahuluanModel gerakParameter model. Momen inersiaParameter model. Turunan dari momen rollVerifikasi modelSintesis Kontrol untuk Kinerja BarelPercobaan penerbanganKomentarKesimpulanPendahuluan
Jadi, kami memutuskan untuk menerapkan "laras" dalam mode otomatis. Jelas, untuk eksekusi angka secara otomatis, perlu untuk merumuskan hukum kontrol yang sesuai. Proses penemuan akan jauh lebih tidak menyakitkan dan lebih cepat jika Anda menggunakan model matematika dari pergerakan pesawat. Menguji hukum kontrol dalam percobaan penerbangan, meskipun mungkin, membutuhkan lebih banyak waktu, dan bisa jauh lebih mahal jika kehilangan atau kerusakan pada perangkat.
Karena pada sudut kecil serangan dan luncuran pesawat, gerakan roll-nya praktis tidak terhubung dengan pergerakan di dua saluran lainnya: track dan longitudinal - untuk menyelesaikan "barrel" sederhana, cukup membuat model gerak hanya di sekitar satu sumbu - sumbu
OX dari SC terkait. Untuk alasan yang sama, undang-undang kontrol aileron tidak akan berubah secara signifikan dalam hal menciptakan sistem kontrol yang lengkap.
Model gerak
Persamaan gerak
pesawat di sekitar sumbu longitudinal
OX dari SC terkait sangat sederhana:
dimana
Apakah momen inersia tentang sumbu
OX , dan momen
terdiri dari beberapa komponen, yang untuk deskripsi realistis pergerakan pesawat kami, cukup untuk hanya mempertimbangkan dua:
dimana
- momen akibat rotasi pesawat di sekitar sumbu
OX (momen redaman),
- momen karena penyimpangan aileron (momen kontrol). Ungkapan terakhir ditulis dalam bentuk linear: momen roll
linear tergantung pada kecepatan sudut
dan sudut defleksi aileron
dengan koefisien proporsionalitas konstan
dan
sesuai.
Seperti yang Anda ketahui (misalnya, dari
Wiki ), persamaan diferensial linear
sesuai dengan tautan aperiodik orde pertama
dimana
- fungsi transfer,
- operator diferensiasi,
Apakah waktunya konstan, dan
- dapatkan.
Bagaimana cara berpindah dari persamaan diferensial ke fungsi transfer?Dalam kasus kami, dari parameter persamaan ke parameter fungsi transfer, kita dapat melanjutkan sebagai berikut (mengetahui bahwa turunannya
negatif):
Untuk tautan aperiodik, waktu konstan
sama dengan waktu dimana kuantitas output
dengan efek langkah tunggal dari kuantitas input
mengambil nilai yang berbeda dari kondisi mapan sebesar ~ 5%, dan keuntungannya
secara numerik sama dengan nilai steady-state dari nilai output dengan efek langkah tunggal:
Ada dua parameter yang tidak diketahui dalam model gerakan yang dibangun: gain
dan waktu konstan
. Parameter-parameter ini diekspresikan melalui karakteristik sistem fisik: momen inersia
serta turunan dari momen roll
dan
:
Dengan demikian, jika momen inersia diketahui
, kemudian, setelah menentukan parameter model, dimungkinkan untuk mengembalikan parameter sistem dari mereka.
Parameter model. Momen inersia
Pesawat kami terdiri dari bagian-bagian berikut: sayap, badan pesawat dengan bulu, mesin, baterai (baterai) dan
avionik :

Avionik meliputi: papan autopilot, papan penerima
SNA , papan modem radio, papan penerima sinyal dari peralatan kontrol, dua regulator tegangan, regulator kecepatan mesin, dan juga kabel penghubung.

Karena berat rendah avionik, kontribusinya terhadap momen inersia total dapat diabaikan.
Bagaimana perkiraan momen inersia?Perkiraan momen inersia
dapat dilakukan sebagai berikut. Mari kita lihat pesawat di sepanjang sumbu
OX :

Dan kemudian bayangkan dalam bentuk model sederhana berikut:
Skema untuk menghitung momen inersia . Di kiri atas - baterai, kanan bawah - mesin. Mesin dan baterai terletak pada poros badan pesawatDapat dilihat bahwa untuk membuat model, lunas, ekor horizontal, sekrup, dan avionik dibuang. Dalam hal ini, tetap: badan pesawat, sayap, baterai, mesin. Dengan mengukur massa dan dimensi karakteristik masing-masing bagian, kita dapat menghitung momen inersia setiap bagian relatif terhadap sumbu longitudinal badan pesawat:
- sayap (batang tipis):
- badan pesawat (silinder berongga):
- baterai (piring):
- mesin (disk):
Nilai total momen inersia pesawat relatif terhadap sumbu
OX diperoleh dengan menambahkan momen inersia bagian-bagian:
Memperkirakan kontribusi masing-masing bagian pesawat terhadap total momen inersia
, ternyata yang berikut ini:
- sayap - 96,3%,
- badan pesawat - 1,6%,
- mesin dan baterai - 2%,
Dapat dilihat bahwa kontribusi utama terhadap momen inersia total
membuat sayap. Ini disebabkan oleh fakta bahwa sayap memiliki ukuran melintang yang agak besar (rentang sayap - 1 m):

Oleh karena itu, meskipun bobotnya sedang (sekitar 20% dari total massa lepas landas pesawat), sayap memiliki momen inersia yang signifikan.
Parameter model. Turunan dari momen roll dan
Perhitungan turunan momen roll adalah tugas yang agak sulit terkait dengan menghitung karakteristik aerodinamis pesawat dengan metode numerik atau menggunakan teknik teknik. Penerapan yang pertama dan kedua membutuhkan waktu yang signifikan, biaya intelektual dan komputasi, yang dibenarkan dalam pengembangan sistem kontrol untuk pesawat besar, di mana biaya kesalahan masih melebihi biaya membangun model yang baik. Untuk tugas kontrol UAV, massa yang tidak melebihi 2 kg, pendekatan ini sulit dibenarkan. Cara lain untuk menghitung turunan ini adalah eksperimen penerbangan. Mengingat murahnya pesawat kami, serta kedekatan bidang yang cocok untuk eksperimen semacam itu, pilihannya jelas bagi kami.
Setelah menulis firmware ke dalam autopilot untuk kontrol manual dan registrasi parameter, kami merakit pesawat dan menyiapkannya untuk pengujian:

Dalam percobaan penerbangan, dimungkinkan untuk memperoleh data tentang sudut deviasi aileron dan kecepatan sudut rotasi pesawat. Pilot mengendalikan pesawat dalam mode manual, terbang dalam lingkaran, berputar dan "barel", dan peralatan di atas kapal dicatat dan mengirim informasi yang diperlukan ke stasiun darat. Akibatnya, dependensi yang diperlukan diperoleh:
(deg / s) dan
(b / p). Nilai
mewakili sudut deviasi aileron yang dinormalkan: nilai 1 sesuai dengan deviasi maksimum, dan nilai −1 sesuai dengan minimum:

Cara menentukan sekarang
dan
dari data yang diterima? Jawabannya adalah untuk mengukur parameter sementara pada grafik.
dan
.
Bagaimana koefisien k dan T ditentukan?Keuntungan
ditentukan dengan menetapkan nilai nilai steady-state dari kecepatan sudut ke nilai deviasi aileron:
Ketergantungan sudut lendutan aileron dan kecepatan gulungan sudut pada waktu yang diperoleh dalam percobaan penerbanganPada gambar sebelumnya, bagian-bagian dari nilai steady-state dari kecepatan sudut kira-kira bersesuaian, misalnya, dengan segmen-segmen dekat instants waktu 422, 425, dan 438 s (ditandai dengan warna merah tua pada gambar).
Waktu konstan
ditentukan dari grafik yang sama. Untuk ini, bagian dari perubahan tajam dalam sudut defleksi aileron ditemukan, dan kemudian waktu diukur dimana kecepatan sudut mengambil nilai yang berbeda dari nilai steady-state sebesar 5%.
Hasil menentukan nilai konstanta waktu dan gain adalah sebagai berikut:
,
. Nilai-nilai ini dari koefisien dengan nilai yang diketahui dari momen inersia
nilai-nilai berikut dari turunan dari momentum sudut berhubungan:
Verifikasi model
Jadi, setelah membangun model, yang dasarnya adalah tautan aperiodik
itu dapat diverifikasi dengan menerapkan sinyal ke input
diperoleh dari percobaan penerbangan dan membandingkan sinyal output dari model dengan nilainya
juga diperoleh dalam percobaan.
Bagaimana simulasi dilakukan?Kami memilih alat untuk pemodelan, terutama, berdasarkan pada kemungkinan mengulangi hasil oleh berbagai pembaca: ini terutama berarti bahwa program harus berada dalam domain publik. Pada prinsipnya, masalah pemodelan perilaku tautan aperiodik orde pertama dapat diselesaikan dengan membuat alat Anda sendiri dari awal. Tetapi karena di masa depan modelnya akan menjadi lebih rumit, penciptaan instrumen Anda sendiri dapat mengalihkan perhatian dari tugas utama - penciptaan senjata yang dapat digerakkan sendiri. Mengingat prinsip keterbukaan alat, kami memilih
JSBsim .
Pada bagian sebelumnya, kami memperoleh nilai koefisien
dan
. Kami menggunakannya untuk mensimulasikan pergerakan pesawat. Dari artikel
terakhir , kita ingat bahwa konfigurasi model pesawat di
JSBsim diatur menggunakan file
XML . Buat model Anda sendiri:
<?xml version="1.0"?> <fdm_config name="OP1" version="2.0" release="BETA"> <metrics> <wingarea unit="M2"> 0.2 </wingarea> <wingspan unit="M"> 1.0 </wingspan> <chord unit="M"> 0.2 </chord> <htailarea unit="M2"> 0.03 </htailarea> <htailarm unit="M"> 0.5 </htailarm> <vtailarea unit="M2"> 0.03 </vtailarea> <vtailarm unit="M"> 0.5 </vtailarm> <location name="AERORP" unit="M"> <x> -0.025 </x> <y> 0 </y> <z> 0.05 </z> </location> </metrics> <mass_balance> <ixx unit="KG*M2"> 0.018 </ixx> <iyy unit="KG*M2"> 0.018 </iyy> <izz unit="KG*M2"> 0.018 </izz> <emptywt unit="KG"> 1.2 </emptywt> <location name="CG" unit="M"> <x> 0 </x> <y> 0 </y> <z> 0 </z> </location> </mass_balance> <ground_reactions> </ground_reactions> <propulsion> </propulsion> <flight_control name="FCS: OP1"> <channel name="Pitch"> </channel> <channel name="Roll"> <summer name="Roll Trim Sum"> <input>fcs/aileron-cmd-norm</input> <clipto> <min>-1</min> <max>1</max> </clipto> </summer> </channel> <channel name="Yaw"> </channel> </flight_control> <aerodynamics> <axis name="DRAG"> </axis> <axis name="SIDE"> </axis> <axis name="LIFT"> </axis> <axis name="ROLL" unit="N*M"> <function name="aero/coefficient/Clp"> <description>Roll_moment_due_to_roll_rate</description> <product> <property>velocities/p-aero-rad_sec</property> <value>-0.24</value> </product> </function> <function name="aero/coefficient/Clda"> <description>Roll_moment_due_to_aileron</description> <product> <property>fcs/aileron-cmd-norm</property> <value> 2.4 </value> </product> </function> </axis> <axis name="PITCH"> </axis> <axis name="YAW"> </axis> </aerodynamics> <output name="OP1.csv" rate="60" type="CSV"> <property> velocities/vc-kts </property> <property> aero/alphadot-deg_sec </property> <property> aero/betadot-deg_sec </property> <property> fcs/throttle-cmd-norm </property> <simulation> OFF </simulation> <atmosphere> OFF </atmosphere> <massprops> OFF </massprops> <aerosurfaces> ON </aerosurfaces> <rates> ON </rates> <velocities> ON </velocities> <forces> OFF </forces> <moments> OFF </moments> <position> ON </position> <coefficients> OFF </coefficients> <ground_reactions> OFF </ground_reactions> <fcs> ON </fcs> <propulsion> OFF </propulsion> </output> </fdm_config>
Karena kami sedang membangun model gerakan perangkat hanya di sepanjang gulungan, kami akan membiarkan banyak bagian file kosong. Karakteristik berikut secara berurutan diatur dalam file model.
Dimensi geometris pesawat diatur di bagian
metrik : area sayap, lebar sayap, panjang rata-rata akord aerodinamis, area ekor horizontal, bahu ekor horizontal, area ekor vertikal, bahu ekor vertikal, posisi fokus aerodinamik.
Karakteristik massa pesawat diatur di bagian
mass_balance : tensor inersia pesawat, bobot kosong, posisi pusat massa.
Perlu dicatat bahwa posisi absolut dari fokus aerodinamis dan pusat massa pesawat tidak berpartisipasi dalam perhitungan dinamika perangkat, lokasi relatifnya penting.
Bagian berikut menjelaskan karakteristik roda pendaratan pesawat dan pembangkitnya.
Pada bagian selanjutnya, yang bertanggung jawab untuk
sistem kontrol , kami akan mengisi saluran yang bertanggung jawab untuk kontrol roll: kami akan menunjukkan satu-satunya input
fcs / aileron-cmd-norm , yang nilainya akan dinormalisasi dari -1 ke 1.
Karakteristik aerodinamik diatur pada bagian
aerodinamika : gaya diatur dalam sistem koordinat kecepatan tinggi, dan momen diatur dalam yang berpasangan. Kami tertarik pada momen roll. Pada bagian
axis name = "ROLL" , fungsi didefinisikan yang menentukan momen gaya dari berbagai komponen proyeksi momen gaya aerodinamik pada sumbu
OX dari sistem koordinat terkait. Ada dua komponen seperti itu dalam model kami. Komponen pertama adalah momen redaman, yang sama dengan produk kecepatan sudut dengan koefisien yang ditentukan sebelumnya
. Komponen kedua adalah momen dari aileron dengan kecepatan terbang tetap: sama dengan produk dari koefisien yang ditentukan sebelumnya
oleh jumlah penyimpangan ailerons.
Perlu dicatat bahwa ketika menentukan koefisien
nilai dimensi digunakan
. Dalam data penerbangan kami, kecepatan sudut diukur dalam derajat per detik, sedangkan
JSBSim menggunakan radian per detik, sehingga koefisien
harus direduksi menjadi dimensi yang diinginkan, mis. dibagi 180 derajat dan dikalikan dengan
radian. Kami menuliskan komponen-komponen momen kekuatan aerodinamis di dalam fungsi produk
produk . Saat memodelkan, hasil dari semua fungsi disimpulkan dan nilai proyeksi momen aerodinamis pada sumbu yang sesuai diperoleh.
Anda dapat memverifikasi model yang dibuat pada data eksperimen yang diperoleh selama tes penerbangan. Untuk melakukan ini, buat skrip dengan konten berikut:
<?xml version="1.0" encoding="utf-8"?> <runscript> <use aircraft="ownPlane1" initialize="scripts/airborne"/> <run start="0" end="51" dt="0.01"> <event name="Trims"> <condition> sim-time-sec ge 0.0 </condition> <set name="simulation/do_simple_trim" value="5"/> </event> <event name="Time Notif" continuous="true"> <description>Provide a time history input for the aileron</description> <condition> sim-time-sec ge 0</condition> <set name="fcs/aileron-cmd-norm" > <function> <table> <independentVar lookup="row">sim-time-sec</independentVar> <tableData> 0 0.00075 0.1 0.00374 0.2 -0.00075 0.3 -0.00075 0.4 -0.00075 0.5 -0.00075 0.6 0.00075 0.7 0.00075 ... 48.8 -0.00075 48.9 0.00000 49 -0.00075 </tableData> </table> </function> </set> </event> </run> </runscript>
di mana titik-titik menunjukkan data yang hilang. Dalam file skrip yang kita kenal dari artikel sebelumnya, jenis peristiwa baru (
"Time Notif" ) telah muncul, yang memungkinkan Anda untuk mengatur perubahan berkelanjutan parameter dalam waktu. Ketergantungan parameter pada waktu diatur oleh fungsi tabel.
JSBSim secara linear menginterpolasi nilai fungsi antara data tabular. Prosedur verifikasi model gerakan gulungan terdiri dari mengeksekusi skrip ini pada model yang dibuat dan membandingkan hasilnya dengan yang eksperimental.
Hasil verifikasi ditunjukkan pada gambar:

Seperti dapat dilihat dari gambar, kebetulan model dengan kenyataan sedikit kurang lengkap.
Sintesis Kontrol untuk Kinerja Barel
Setelah menerima model, mudah untuk menentukan berapa banyak dan untuk berapa lama perlu untuk membelokkan ailerons untuk menyelesaikan "barel". Salah satu opsi adalah algoritma penyimpangan berikut:
- : ailerons mulai menyimpang dari posisi netral;
- : ailerons ditolak oleh 50%;
- : ailerons mulai menyimpang ke posisi netral;
- : ailerons dalam kondisi netral.
Kehadiran segmen dengan durasi 0,1 detik di awal dan di akhir algoritma defleksi aileron mensimulasikan inersia drive servo, yang tidak dapat menangkis permukaan secara instan. Model menunjukkan bahwa dengan hukum defleksi aileron, pesawat harus menyelesaikan satu putaran penuh di sekitar sumbu
OX , periksa?
Percobaan penerbangan
Hukum kontrol aileron yang dihasilkan diprogram dalam autopilot yang dipasang di pesawat. Gagasan percobaannya sederhana: membawa pesawat ke penerbangan horizontal, dan kemudian menggunakan hukum kontrol yang diperoleh. Jika gerakan nyata pesawat sepanjang gulungan sesuai dengan model yang dibuat, maka pesawat harus melakukan "tong" - satu revolusi penuh 360 derajat.
Kami mengucapkan terima kasih kepada pilot setia kami untuk pekerjaannya, profesionalisme dan bagasi yang nyaman di kereta universal!
Dalam perjalanan percobaan, menjadi jelas bahwa model gulungan dibangun dengan sukses - pesawat melakukan satu "barel" demi satu begitu pilot mengaktifkan undang-undang kontrol yang diprogram. Gambar berikut ini menunjukkan kecepatan sudut
direkam selama percobaan dan diperoleh dari hasil simulasi, serta sudut tumit dan pitch dari percobaan penerbangan:

Dan gambar berikut menunjukkan sinyal yang direkam dalam percobaan penerbangan untuk ailerons, elevator (RV) dan rudder (RN):

Garis-garis vertikal menunjukkan saat-saat awal dan akhir dari eksekusi "laras". Dapat dilihat dari angka-angka bahwa selama pelaksanaan "laras" pilot tidak melakukan intervensi dalam mengendalikan lift dan kemudi, juga jelas bahwa sudut pitch selalu cenderung menurun selama pelaksanaan "laras" - pesawat tertunda menjadi penyelaman, seperti yang diperkirakan oleh hasil simulasi di simulator penerbangan (lihat artikel
"Penerbangan UAV. Cara membuat per barel" ). Jika Anda dengan hati-hati mempertimbangkan grafik sebelumnya, akan menjadi jelas bahwa "barel" ketiga bahkan belum selesai, karena pilot campur tangan dalam kontrol untuk mendapatkan pesawat keluar dari menyelam: sudut pitch berubah begitu banyak ketika "barel" dijalankan oleh ailerons saja.
Komentar
- Senjata self-propelled yang dibangun untuk eksekusi "barrel" tidak memperhitungkan ketergantungan turunan momen roll pada kecepatan penerbangan. Di satu sisi, ini dilakukan agar tidak menyulitkan model dan hukum manajemen. Di sisi lain, ketergantungan seperti itu mudah diperkenalkan jika bukan turunannya dan gunakan jumlah dan didefinisikan pada kecepatan penerbangan yang diberikan .
- Hukum kontrol yang dikembangkan adalah kontrol program tanpa umpan balik. Kehadiran umpan balik pada kecepatan sudut dan / atau sudut gulungan akan meningkatkan akurasi gambar, yang akan dilakukan di masa depan.
Kesimpulan
Sebagai hasil dari pekerjaan kami, kami menunjukkan salah satu cara untuk membuat model gerakan UAV dalam kecepatan sudut
. Dalam percobaan penerbangan, terbukti bahwa model gerak yang dibuat konsisten dengan objek yang disimulasikan. Atas dasar model yang dikembangkan, hukum kontrol program diperoleh, yang memungkinkan untuk melakukan "laras" dalam mode otomatis. Kami juga memastikan bahwa tidak mungkin untuk mencapai "barel" yang benar dengan aileron saja, dan kami juga dengan jelas menunjukkan hal ini.
Langkah selanjutnya adalah finalisasi undang-undang kontrol dengan menambahkan umpan balik, serta dimasukkannya kontrol elevator. Yang terakhir akan membutuhkan penciptaan model pergerakan longitudinal pesawat kami. Berdasarkan hasil pekerjaan, publikasi berikutnya akan dirilis.