UAV penerbangan. Bagian 2. Model gerakan paling sederhana untuk eksekusi per barel

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:


Pendahuluan
Model gerak
Parameter model. Momen inersia
Parameter model. Turunan dari momen roll
Verifikasi model
Sintesis Kontrol untuk Kinerja Barel
Percobaan penerbangan
Komentar
Kesimpulan

Pendahuluan


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:

Ix dot mathrm omegax=Mx,

dimana IxApakah momen inersia tentang sumbu OX , dan momen Mxterdiri dari beberapa komponen, yang untuk deskripsi realistis pergerakan pesawat kami, cukup untuk hanya mempertimbangkan dua:

Mx=Mx omegax omegax+Mx deltaa deltaa,

dimana Mx omegax omegax- momen akibat rotasi pesawat di sekitar sumbu OX (momen redaman), Mx deltaa deltaa- momen karena penyimpangan aileron (momen kontrol). Ungkapan terakhir ditulis dalam bentuk linear: momen roll Mxlinear tergantung pada kecepatan sudut  omegaxdan sudut defleksi aileron  deltaadengan koefisien proporsionalitas konstan Mx omegaxdan Mx deltaasesuai.

Seperti yang Anda ketahui (misalnya, dari Wiki ), persamaan diferensial linear

Ix dot mathrm omegax=Mx omegax omegax+Mx deltaa deltaa

sesuai dengan tautan aperiodik orde pertama

W= frackTp+1,

dimana W- fungsi transfer, p- operator diferensiasi, TApakah waktunya konstan, dan k- 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 Mx omegaxnegatif):

Ix dot omegax=Mx omegax omegax+Mx deltaa deltaa longrightarrowIx dot omegax= kiri|Mx omegax right| omegax+Mx deltaa deltaa


Ix dot omegax+ kiri|Mx omegax right| omegax=Mx deltaa deltaa longrightarrow left(Ixp+ left|Mx omegax kanan| kanan) omegax=Mx deltaa deltaa


 kiri( fracIx kiri|Mx omegax kanan|p+1 kanan) omegax= fracMx deltaa kiri|Mx omegax kanan| deltaa longrightarrowT= fracIx kiri|Mx omegax kanan|,k= fracMx deltaa kiri|Mx omegax right|.



Untuk tautan aperiodik, waktu konstan Tsama dengan waktu dimana kuantitas output  omegax(t)dengan efek langkah tunggal dari kuantitas input  deltaa(t)mengambil nilai yang berbeda dari kondisi mapan sebesar ~ 5%, dan keuntungannya ksecara 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 kdan waktu konstan T. Parameter-parameter ini diekspresikan melalui karakteristik sistem fisik: momen inersia Ixserta turunan dari momen roll Mx omegaxdan Mx deltaa:

Mx omegax= fracIxT, colorwhite longrightarrowMx deltaa=kMx omegax= frackIxT.

Dengan demikian, jika momen inersia diketahui Ix, kemudian, setelah menentukan parameter model, dimungkinkan untuk mengembalikan parameter sistem dari mereka.

Parameter model. Momen inersia Ix


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 Ixdapat dilakukan sebagai berikut. Mari kita lihat pesawat di sepanjang sumbu OX :



Dan kemudian bayangkan dalam bentuk model sederhana berikut:


Skema untuk menghitung momen inersia Ix. Di kiri atas - baterai, kanan bawah - mesin. Mesin dan baterai terletak pada poros badan pesawat

Dapat 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): Ixw= frac112mwLw2+mwyw2=1,7 cdot102kg cdotm2
  • badan pesawat (silinder berongga): Ixf=mfrf2=2.8 cdot104kg cdotm2
  • baterai (piring): Ixa= frac112ma kiri(ha2+wa2 kanan)=3,4 cdot104kg cdotm2
  • mesin (disk): Ixe= frac12mere2=2.3 cdot105kg cdotm2


Nilai total momen inersia pesawat relatif terhadap sumbu OX diperoleh dengan menambahkan momen inersia bagian-bagian:

Ix=Ixw+Ixf+Ixa+Ixe=1,8 cdot102kg cdotm2

Memperkirakan kontribusi masing-masing bagian pesawat terhadap total momen inersia Ix, ternyata yang berikut ini:

  • sayap - 96,3%,
  • badan pesawat - 1,6%,
  • mesin dan baterai - 2%,

Dapat dilihat bahwa kontribusi utama terhadap momen inersia total Ixmembuat 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 Mx omegaxdan Mx deltaa


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:  omegax(t)(deg / s) dan  deltaa(t)(b / p). Nilai  deltaa(t)mewakili sudut deviasi aileron yang dinormalkan: nilai 1 sesuai dengan deviasi maksimum, dan nilai −1 sesuai dengan minimum:



Cara menentukan sekarang Mx omegaxdan Mx deltaadari data yang diterima? Jawabannya adalah untuk mengukur parameter sementara pada grafik.  omegax(t)dan  deltaa(t).

Bagaimana koefisien k dan T ditentukan?
Keuntungan kditentukan 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 penerbangan

Pada 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 Tditentukan 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: T=0,075 texts, k=575 textdeg/s. Nilai-nilai ini dari koefisien dengan nilai yang diketahui dari momen inersia Ixnilai-nilai berikut dari turunan dari momentum sudut berhubungan:

Mx omegax= fracIxT=0,24 frac textN cdot textm textdeg/s, colorwhite longrightarrowMx deltaa=kMx omegax= frackIxT=138 frac textN cdot textm text[].


Verifikasi model


Jadi, setelah membangun model, yang dasarnya adalah tautan aperiodik

W= frac5750.75p+1,

itu dapat diverifikasi dengan menerapkan sinyal ke input  delta(t)diperoleh dari percobaan penerbangan dan membandingkan sinyal output dari model dengan nilainya  omegax(t)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 Mx deltaadan Mx omegax. 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 Mx omegax. Komponen kedua adalah momen dari aileron dengan kecepatan terbang tetap: sama dengan produk dari koefisien yang ditentukan sebelumnya Mx deltaaoleh jumlah penyimpangan ailerons.

Perlu dicatat bahwa ketika menentukan koefisien Mx deltaanilai dimensi digunakan T. Dalam data penerbangan kami, kecepatan sudut diukur dalam derajat per detik, sedangkan JSBSim menggunakan radian per detik, sehingga koefisien Mx deltaaharus direduksi menjadi dimensi yang diinginkan, mis. dibagi 180 derajat dan dikalikan dengan  piradian. 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:


  • t=0: ailerons mulai menyimpang dari posisi netral;
  • t=0,1 textc: ailerons ditolak oleh 50%;
  • t=1.3 textc: ailerons mulai menyimpang ke posisi netral;
  • t=1.4 textc: 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  omegaxdirekam 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 Mx omegaxdan Mx deltaagunakan jumlah Mx omegax/V2dan Mx deltaa/V2didefinisikan pada kecepatan penerbangan yang diberikan V.
  • 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  omegax. 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.

Source: https://habr.com/ru/post/id408625/


All Articles