Anda di halaman 1dari 33

Kecepatan Motor DC Modeling dalam Simulink

Fisik pengaturan Membangun model Loop terbuka respon Mengekstrak Model Pelaksana PI kontrol Loop tertutup respon

Fisik pengaturan
Sebuah aktuator umum dalam sistem kontrol motor DC. Ini secara langsung memberikan gerakan berputar dan, ditambah dengan roda atau drum dan kabel, dapat memberikan gerak transisi. Rangkaian listrik dari armature dan diagram benda bebas dari rotor ditunjukkan pada gambar berikut:

Untuk contoh ini, kita akan mengasumsikan nilai berikut untuk parameter fisik. * Momen inersia rotor (J) = 0,01 kg.m ^ 2 / s ^ 2 * Damping rasio dari sistem mekanik (b) = 0,1 Nms * Gaya gerak listrik konstan (K = Ke = Kt) = 0,01 Nm / Amp * Listrik resistensi (R) = 1 ohm * Induktansi listrik (L) = 0,5 H * Masukan (V): Sumber Tegangan * Output (theta): posisi poros * The rotor dan poros diasumsikan menjadi kaku Torsi motor, T, berkaitan dengan arus armature, i, dengan Kt faktor konstan. The ggl belakang, e, berkaitan dengan kecepatan rotasi dengan persamaan berikut:

Dalam satuan SI (yang akan kita gunakan), Kt (angker konstan) sama dengan Ke (motor konstan).

Membangun Model
Sistem ini akan dimodelkan dengan menjumlahkan torsi yang bekerja pada inersia rotor dan mengintegrasikan percepatan untuk memberikan kecepatan. Juga, hukum Kirchoff akan diterapkan ke sirkuit armature.

Buka Simulink dan membuka jendela model baru.

Pertama, kita akan model integral dari percepatan rotasi dan laju perubahan arus armature.

Masukkan blok Integrator (dari perpustakaan blok Linear) dan menggambar garis ke dan dari input dan terminal output. Label baris masukan "d2/dt2 (theta)" dan jalur output "d / dt (theta)" seperti yang ditunjukkan di bawah ini. Untuk menambahkan seperti label, klik dua kali pada ruang kosong tepat di atas garis. Masukkan blok lain Integrator atas sebelumnya dan menggambar garis ke dan dari input dan terminal output. Label baris masukan "d / dt (i)" dan jalur output "i".

Selanjutnya, kita akan mulai memodelkan baik hukum Newton dan hukum Kirchoff itu. Undang-undang ini diterapkan pada sistem motor memberikan persamaan berikut:

Percepatan sudut sama dengan 1 / J dikalikan dengan jumlah dari dua istilah (satu pos, satu neg..). Demikian pula, turunan dari saat ini adalah sama dengan 1 / L dikalikan dengan jumlah tiga istilah (satu pos, dua neg..).

Masukkan blok Keuntungan kedua, (dari perpustakaan blok Linear) yang melekat pada masing-masing integrator. Edit blok keuntungan sesuai dengan percepatan sudut dengan mengklik dua kali dan mengubah nilai ke "1 / J". Mengubah label ini blok Gain untuk "inersia" dengan mengklik "Gain" kata bawah blok. Demikian pula, mengedit nilai Keuntungan lain untuk "1 / L" dan label itu untuk Induktansi. Masukkan blok Sum dua (dari perpustakaan blok Linear), salah satu yang melekat dengan baris ke masing-masing blok Gain. Edit tanda-tanda dari blok Sum sesuai dengan rotasi ke "+ -" sejak satu istilah yang positif dan satu negatif. Edit tanda-tanda dari blok Sum lain "- + -" untuk mewakili tanda-tanda dalam persamaan Kirchoff itu.

Sekarang, kami akan menambahkan dalam torsi yang diwakili dalam persamaan Newton. Pertama, kita akan menambahkan torsi redaman.

Masukkan blok gain bawah blok inersia, pilih dengan satu-klik di atasnya, dan pilih Balik dari menu Format (atau ketik Ctrl-F) untuk flip ke kiri-ke-kanan. Set nilai keuntungan bagi "b" dan mengubah nama blok ini untuk "redaman".

Tekan garis (tahan Ctrl sambil menggambar) dari output integrator rotasi dan menghubungkannya ke input dari blok gain redaman. Menarik garis dari output gain redaman ke input negatif dari blok Sum rotasi.

Selanjutnya, kita akan menambahkan torsi dari dinamo.


Masukkan blok keuntungan yang melekat pada input positif dari blok Sum rotasi dengan garis. Mengedit nilainya untuk "K" untuk mewakili konstanta motor dan Label itu "Kt". Melanjutkan menggambar garis terkemuka dari integrator saat ini dan menghubungkannya dengan blok gain Kt.

Sekarang, kami akan menambahkan dalam istilah tegangan yang diwakili dalam persamaan Kirchoff itu. Pertama, kita akan menambahkan di drop tegangan pada resistansi kumparan.

Masukkan blok keuntungan atas blok induktansi, dan flip itu kiri-ke-kanan. Set nilai keuntungan bagi "R" dan mengubah nama blok ini untuk "Perlawanan". Tekan garis (tahan Ctrl sambil menggambar) dari output integrator saat ini dan menghubungkannya ke input dari blok gain resistensi. Menarik garis dari output perlawanan gain ke input negatif atas blok Sum persamaan saat.

Selanjutnya, kita akan menambahkan di ggl kembali dari motor.


Masukkan blok keuntungan yang melekat pada input negatif lain dari blok Sum saat ini dengan garis. Mengedit nilainya untuk "K" untuk mewakili motor konstan dan Label itu "Ke". Tekan garis off output integrator rotasi dan menghubungkannya ke blok gain Ke.

Istilah tegangan ketiga dalam persamaan Kirchoff adalah input kontrol, V. Kami akan menerapkan masukan langkah.

Masukkan blok Langkah (dari perpustakaan Sumber blok) dan menghubungkannya dengan garis ke input positif dari blok Sum saat ini. Untuk melihat kecepatan output, masukkan Lingkup (dari perpustakaan Sinks blok) yang terhubung ke output dari integrator rotasi. Untuk memberikan langkah unit input yang sesuai pada t = 0, klik dua blok Langkah dan mengatur waktu Langkah untuk "0".

Anda dapat men-download file model untuk sistem lengkap di sini .

Loop terbuka respon


Untuk mensimulasikan sistem ini, pertama, waktu simulasi yang tepat harus ditetapkan. Pilih Parameter dari menu Simulasi dan masukkan "3" di bidang Waktu Berhenti. 3 detik yang cukup lama untuk melihat respon loop terbuka. Parameter fisik sekarang harus ditetapkan. Jalankan perintah berikut di M ATLAB prompt:
J = 0,01; b = 0,1; K = 0,01; R = 1, L = 0,5;

Jalankan simulasi (Ctrl-t atau Start pada menu Simulasi). Ketika simulasi selesai, klik dua kali pada lingkup dan tekan tombol autoscale nya. Anda harus melihat output berikut.

Mengekstrak Model Linear ke M ATLAB


Sebuah model linier dari sistem (dalam ruang keadaan atau bentuk fungsi transfer) dapat diekstraksi dari model Simulink ke M ATLAB. Hal ini dilakukan melalui penggunaan In and Out blok Connection dan M linmod ATLAB fungsi. Pertama, mengganti Blok Langkah dan Blok Lingkup dengan Di Blok Connection dan Blok Connection Out, masing-masing (blok ini dapat ditemukan di perpustakaan blok Connections). Ini mendefinisikan input dan output dari sistem untuk proses ekstraksi.

Simpan file Anda sebagai " motormod.mdl "(pilih Save As dari menu File). M ATLAB akan mengekstrak model linier dari file model diselamatkan, bukan dari jendela model terbuka. Pada M ATLAB prompt, ketikkan perintah-perintah berikut:
[A, B, C, D] = linmod ('motormodel') [num, den] = ss2tf (A, B, C, D)

Anda harus melihat output berikut, menyediakan kedua negara ruang dan model fungsi transfer sistem.
A = -10,0000 1,0000 -0,0200 -2,0000 B = 0 2 C = 1 0 D = 0 = 0 num 0.0000 2.0000 den = 1,0000 12,0000 20,0200

Untuk memverifikasi model ekstraksi, kita akan menghasilkan respon loop terbuka langkah dari fungsi transfer diekstraksi di M ATLAB. Masukkan perintah berikut di M ATLAB.
Langkah (num, den);

Anda harus melihat alur berikut yang setara dengan output Lingkup ini.

Menerapkan Lag Compensator Kontrol


Pada kecepatan motor contoh kontrol lokus akar Compensator Lag dirancang dengan fungsi transfer berikut.

Untuk menerapkan ini dalam Simulink, kita akan berisi sistem loop terbuka dari sebelumnya dalam halaman ini dalam blok Subsystem.

Membuat jendela model baru di Simulink. Tarik blok Subsistem dari perpustakaan blok Koneksi ke jendela model baru Anda.

Klik dua kali pada blok ini. Anda akan melihat jendela kosong yang mewakili isi dari subsistem (yang saat ini kosong).

Membuka model Anda disimpan sebelumnya dari sistem Kecepatan Motor, motormod.mdl . Pilih Pilih Semua dari menu Edit (atau Ctrl-A), lalu pilih Salin dari menu Edit (atau Ctrl-C). Pilih jendela subsistem kosong dari model baru Anda dan pilih Paste dari menu Edit (atau Ctrl-V). Anda harus melihat sistem asli Anda dalam jendela subsistem baru. Tutup jendela ini. Sekarang Anda akan melihat input dan terminal output pada blok Subsystem. Nama ini blok "model tanaman".

Sekarang, kita akan memasukkan Compensator Lag ke loop-tertutup sekitar model pabrik. Pertama, kami akan memberikan umpan balik output tanaman.

Menarik garis memanjang dari output tanaman. Masukkan blok Sum dan menetapkan "+ -" untuk input itu. Tekan garis garis output dan menariknya ke input negatif dari blok Sum.

Output dari blok Sum akan memberikan sinyal error. Kami akan memberi makan ini menjadi sebuah Compensator Lag.

Masukkan Blok Fungsi transfer setelah musim panas dan menghubungkan mereka dengan garis. Mengedit blok ini dan mengubah bidang Pembilang untuk "[50 50]" dan bidang Penyebut untuk "[1 0.01]". Label ini blok "Compensator Lag".

Akhirnya, kita akan menerapkan langkah masukan dan melihat output pada lingkup.

Melampirkan blok langkah ke input bebas dari blok Sum umpan balik dan melampirkan blok Lingkup ke output tanaman. Klik dua blok Langkah dan mengatur waktu Langkah untuk "0".

Anda dapat men-download versi kita dari sistem loop tertutup di sini .

Loop tertutup respon


Untuk mensimulasikan sistem ini, pertama, waktu simulasi yang tepat harus ditetapkan. Pilih Parameter dari menu Simulasi dan masukkan "3" di bidang Waktu Berhenti. Persyaratan desain termasuk settling time kurang dari 2 detik, sehingga kita melakukan simulasi selama 3 detik untuk melihat output. Parameter fisik sekarang harus ditetapkan. Jalankan perintah berikut di M ATLAB prompt:
J = 0,01; b = 0,1; K = 0,01; R = 1, L = 0,5;

Jalankan simulasi (Ctrl-t atau Start pada menu Simulasi). Ketika simulasi selesai, klik dua kali pada lingkup dan tekan tombol autoscale nya. Anda harus melihat output berikut.

Kecepatan Motor DC: Simulink Modeling

Isi

Fisik pengaturan Membangun model dengan Simulink Membangun model dengan Simscape

Fisik pengaturan
Sebuah aktuator umum dalam sistem kontrol motor DC. Ini secara langsung memberikan gerakan berputar dan, ditambah dengan roda atau drum dan kabel, dapat memberikan gerak translasi. Rangkaian listrik dari armature dan diagram benda bebas dari rotor ditunjukkan pada gambar berikut:

Untuk contoh ini, kita akan mengasumsikan bahwa masukan dari sistem adalah sumber tegangan (V) diterapkan pada armature motor, sedangkan output adalah kecepatan rotasi dari poros d (theta) / dt. Rotor dan poros diasumsikan menjadi kaku. Kami lebih lanjut mengasumsikan model gesekan kental, yaitu, torsi gesekan sebanding dengan kecepatan sudut poros. Parameter fisik untuk contoh kita adalah:
(J) momen inersia dari rotor 0,01 kg.m ^ 2 (B) bermotor gesekan viskos konstan 0,1 Nms (Ke) electromotive konstan kekuatan 0,01 V / rad / sec (Kt) torsi motor konstan 0,01 Nm / Amp (R) listrik resistensi 1 Ohm (L) listrik induktansi 0,5 H

Secara umum, torsi yang dihasilkan oleh motor DC adalah sebanding dengan arus armature dan kekuatan medan magnet. Dalam contoh ini kita akan mengasumsikan bahwa medan magnet konstan dan, karena itu, bahwa torsi motor sebanding dengan hanya saya saat ini

angker oleh Kt faktor konstan seperti yang ditunjukkan dalam persamaan di bawah ini. Hal ini disebut sebagai motor armature dikendalikan. (1) The ggl belakang, e, sebanding dengan kecepatan sudut poros dengan Ke faktor konstan. (2) Dalam satuan SI, torsi motor dan konstanta kembali ggl adalah sama, yaitu, Kt = Ke, sehingga kami akan menggunakan K untuk mewakili kedua torsi motor konstan dan ggl belakang konstan.

Membangun model dengan Simulink


Sistem ini akan dimodelkan dengan menjumlahkan torsi yang bekerja pada inersia rotor dan mengintegrasikan percepatan untuk memberikan kecepatan. Juga, hukum Kirchoff akan diterapkan ke sirkuit armature. Pertama, kita akan model integral dari percepatan rotasi dan laju perubahan arus dinamo.

(3)

(4) Untuk membangun model simulasi, buka Simulink dan membuka jendela model baru. Kemudian ikuti langkah-langkah di bawah ini.

Menyisipkan blok Integrator dari perpustakaan Simulink / kontinyu dan menggambar garis ke dan dari input dan terminal output. Label baris masukan "d2/dt2 (theta)" dan jalur output "d / dt (theta)" seperti yang ditunjukkan di bawah ini. Untuk menambahkan seperti label, klik ganda di ruang kosong tepat di bawah garis. Masukkan blok lain Integrator atas sebelumnya dan menggambar garis ke dan dari input dan terminal output. Label baris masukan "d / dt (i)" dan jalur output "i".

Selanjutnya, kita akan menerapkan hukum Newton dan hukum Kirchoff untuk sistem motor untuk menghasilkan persamaan berikut: (5) (6) Percepatan sudut sama dengan 1 / J dikalikan dengan jumlah dari dua istilah (satu positif, satu negatif). Demikian pula, turunan dari saat ini adalah sama dengan 1 / L dikalikan dengan jumlah tiga istilah (satu positif, dua negatif). Melanjutkan untuk model persamaan di Simulink, ikuti langkah-langkah yang diberikan di bawah ini.

Masukkan dua blok Keuntungan dari perpustakaan Operasi Simulink / Matematika, yang melekat pada masing-masing integrator. Edit blok Gain sesuai dengan percepatan sudut dengan mengklik dua kali dan mengubah nilai ke "1 / J". Mengubah label ini blok Gain untuk "Inersia" dengan mengklik "Gain" kata bawah blok. Demikian pula, mengedit nilai Keuntungan lain untuk "L 1 /" dan label untuk "Induktansi". Masukkan dua blok Tambah dari perpustakaan Operasi Simulink / Matematika, yang terikat oleh baris ke masing-masing blok Gain. Edit tanda-tanda dari blok Tambah sesuai dengan rotasi ke "+ -" sejak satu istilah yang positif dan satu negatif. Edit tanda-tanda dari blok Add lain "- + -" untuk mewakili tanda-tanda dari istilah dalam persamaan listrik.

Sekarang, kami akan menambahkan dalam torsi yang diwakili dalam persamaan rotasi. Pertama, kita akan menambahkan torsi redaman.

Masukkan blok Gain bawah blok "Inersia". Selanjutnya klik kanan pada blok dan pilih Format> Blok Balik dari menu yang dihasilkan untuk flip blok dari kiri ke kanan. Anda juga dapat flip blok yang dipilih dengan menekan Ctrl-I. Set nilai Gain untuk "b" dan mengubah nama blok ini untuk "Damping". Tekan garis (tahan Ctrl sambil menggambar atau klik kanan pada baris) dari output Integrator rotasi dan menghubungkannya ke input dari blok "Damping". Menarik garis dari output "Damping" blok ke input negatif dari blok Tambah rotasi.

Selanjutnya, kita akan menambahkan torsi dari dinamo.


Masukkan blok Gain melekat pada masukan positif dari blok Tambah rotasi dengan garis. Mengedit nilainya ke "K" untuk mewakili konstanta motor dan Label itu "Kt". Melanjutkan menggambar garis terkemuka dari Integrator saat ini dan menghubungkannya ke blok "Kt".

Sekarang, kami akan menambahkan dalam istilah tegangan yang diwakili dalam persamaan listrik. Pertama, kita akan menambahkan di drop tegangan pada resistansi armature.

Masukkan blok Gain atas blok "Induktansi" dan flip itu dari kiri ke kanan. Set nilai Gain untuk "R" dan mengubah nama blok ini untuk "Perlawanan". Tekan garis off output Integrator saat ini dan menghubungkannya ke input dari blok "Perlawanan". Menarik garis dari output "Perlawanan" blok ke input negatif atas blok persamaan saat Tambah.

Selanjutnya, kita akan menambahkan di ggl kembali dari motor.


Masukkan blok Gain melekat pada input negatif lain dari blok Tambah saat ini dengan garis. Mengedit nilainya untuk "K" untuk mewakili ggl belakang motor yang konstan dan Label itu "Ke". Tekan garis off output Integrator rotasi dan menghubungkannya ke blok "Ke". Tambahkan IN1 dan Out1 blok dari Simulink / Ports & perpustakaan Subsistem dan masingmasing label mereka "Voltage" dan "Speed".

Desain akhir akan terlihat seperti contoh yang ditunjukkan pada gambar di bawah.

Dalam rangka untuk menyimpan semua komponen ini sebagai sebuah blok subsistem tunggal, pertama-tama pilih semua blok, kemudian pilih Create Subsystem dari menu Edit. Nama subsistem "Motor DC" dan kemudian simpan model. Model Anda akan muncul sebagai berikut. Anda juga dapat men-download file untuk sistem ini di sini, Motor_Model.mdl . Kami menggunakan model ini dalam Kecepatan motor DC: Simulink Pengawas Desain bagian.

Membangun model dengan Simscape


Pada bagian ini, kita alternatif menunjukkan bagaimana membangun model DC Motor menggunakan blok pemodelan fisik ekstensi Simscape ke Simulink. Blok-blok di perpustakaan Simscape merupakan komponen fisik yang sebenarnya, sehingga, kompleks multi-domain model dapat dibangun tanpa perlu untuk membangun persamaan matematika dari prinsip-prinsip fisika seperti yang dilakukan di atas dengan menerapkan hukum Newton dan hukum Kirchoff itu. Buka model Simulink baru dan masukkan blok berikut untuk mewakili unsur-unsur listrik dan mekanik dari motor DC.

Resistor, Induktor dan blok Converter putaran Electromechanical dari Perpustakaan Simscape / Yayasan / Listrik / Listrik Elemen perpustakaan Damper rotasi dan blok Inersia dari Perpustakaan Simscape / Yayasan / Mesin / rotasi Elemen perpustakaan Empat blok Pelabuhan Connection dari perpustakaan Simscape / Utilitas

Double-klik pada blok Connection Port untuk membuat lokasi port 1 dan 2 dari kiri dan lokasi port 3 dan 4 dari Kanan. Hubungkan dan label komponen seperti yang ditunjukkan pada gambar berikut. Anda dapat memutar blok dengan cara yang mirip dengan cara Anda membalik blok, yaitu, dengan mengklik kanan pada blok kemudian memilih Putar Blok dari menu Format.

Menyelesaikan desain dari model motor DC Simscape dengan menetapkan nilai ke parameter fisik dari masing-masing blok untuk mencocokkan nilai-nilai diasumsikan. Untuk

menetapkan nilai-nilai yang diperlukan, klik dua kali pada Resistor, Induktor, Inersia, Peredam putaran, dan putaran blok Converter Elektromekanik dan masukkan parameter berikut dan unit terkait:
Perlawanan = R [Ohm] Induktansi = L [H] Inersia = J [kg * m ^ 2] Konstan Proporsionalitas = K [V / (rad / s)] Koefisien Damping = b [N * m / (rad / s)]

Blok Damper rotasi berfungsi untuk model gesekan kental dari motor. Ini jenis model gesekan dipilih karena itu adalah linear. Dalam kebanyakan kasus gesekan yang sebenarnya lebih rumit dari ini. Jika Anda ingin menggunakan model gesekan lebih rumit, misalnya untuk menambahkan gesekan Coulomb untuk model, maka Anda dapat menggunakan blok Gesekan putaran dari Simscape / Perpustakaan Yayasan / Mekanikal / rotasi perpustakaan Elements. Juga mencatat bahwa di atas Anda dihasilkan model motor DC dari aspek mekanikal dan elektrikal individu motor. Perpustakaan Simscape juga mencakup blok DC Motor bawah perpustakaan Simscape / SimElectronics / Actuators. Blok ini digunakan dalam Posisi motor DC: Simulink Modeling bagian. Parameter fisik sekarang harus ditetapkan. Masukkan perintah berikut pada prompt MATLAB.
b K R L J = 0,01; = 0.1; = 0,01; = 1; = 0,5;

Nilai-nilai ini adalah orang-orang yang sama yang tercantum di bagian setup fisik. Anda kemudian dapat menyimpan komponen dalam subsistem tunggal. Pilih semua blok dan kemudian pilih Create Subsystem dari menu Edit. Anda juga dapat mengubah warna blok subsistem dengan mengklik kanan di blok dan memilih Format> Warna Background dari menu yang dihasilkan. Ini blok subsistem kemudian dapat digunakan untuk mensimulasikan motor DC.

Dalam rangka untuk mensimulasikan respon dari sistem ini adalah lebih lanjut diperlukan untuk menambahkan blok sensor untuk model untuk mensimulasikan pengukuran parameter fisik dan berbagai sumber tegangan untuk memberikan eksitasi ke motor. Selain itu, blok yang dibutuhkan untuk blok Simscape antarmuka dengan blok Simulink tradtional sejak sinyal Simscape merepresentasikan kuantitas fisik dengan unit, sedangkan sinyal Simulink adalah nomor berdimensi. Tambahkan blok berikut untuk model yang baru dibangun untuk mengatasi fungsi.

Sensor saat ini blok dari Perpustakaan Simscape / Yayasan / Listrik / Listrik Sensor perpustakaan Tegangan blok Sumber Terkendali dari Perpustakaan Simscape / Yayasan / Listrik / Listrik Sumber perpustakaan Dua PS-Simulink Converter blok dan blok Konfigurasi Solver dari perpustakaan Simscape / Utilitas Referensi listrik blok dari Perpustakaan Simscape / Yayasan / Listrik / Listrik Elemen perpustakaan Gerak yang ideal blok Sensor putaran dari Perpustakaan Simscape / Yayasan / Mekanikal / Teknik Sensor perpustakaan Mekanik blok Referensi putaran dari Perpustakaan Simscape / Yayasan / Mesin / rotasi Elemen perpustakaan Tiga Out1 blok dan satu blok dari IN1 / Simulink Ports & perpustakaan Subsistem

Blok Motion Sensor Ideal rotasi merupakan sebuah perangkat yang mengukur perbedaan dalam posisi sudut dan kecepatan sudut antara dua node. Dalam kasus ini, kami mempekerjakan blok untuk mengukur posisi dan kecepatan dari poros motor dibandingkan dengan referensi tetap diwakili oleh blok Referensi Mekanik putaran. Anda dapat meninggalkan sudut awal dari blok Motion Sensor putaran sebagai radian default 0.

Blok Sensor kini merupakan sensor yang lain, khususnya mengukur arus yang ditarik oleh motor. Tanah untuk bagian listrik dari sistem kami didefinisikan oleh blok Referensi Listrik. Blok Voltage Controlled Sumber berfungsi sebagai sumber daya untuk motor mana Anda eksternal dapat menentukan sinyal tegangan dengan menghubungkan masukan ke blok. PS-Simulink blok mengkonversi sinyal fisik untuk sinyal output Simulink, sedangkan blok Simulink-PS sebaliknya mengubah sinyal Simulink input ke sinyal fisik. Blok ini dapat digunakan untuk mengkonversi sinyal Simscape, yang mewakili kuantitas fisik dengan unit, sinyal Simulink, yang tidak secara eksplisit memiliki unit yang menyertainya. Blok ini, pada dasarnya, dapat melakukan konversi unit antara sinyal fisik dan sinyal Simulink. Dalam kasus kami, kami bisa meninggalkan unit terdefinisi sejak input dan output dari masing-masing blok konversi memiliki satuan yang sama. Secara umum, blockset Simscape digunakan untuk model bangunan fisik, sedangkan blockset Simulink digunakan untuk model controller. Blok Konfigurasi Solver digunakan untuk menentukan rincian pemecah numerik digunakan dalam menjalankan simulasi Simscape. Kami akan menggunakan pengaturan default untuk blok ini. Selanjutnya, menghubungkan dan label komponen sehingga muncul seperti pada gambar di bawah ini. Double-klik pada garis yang terhubung ke Out1 blok dan label mereka "Lancar", "Posisi", dan "Speed". Juga double-klik pada blok IN1 dan label itu "Voltage".

Anda dapat menyimpan komponen dalam subsistem tunggal dengan satu input dan tiga output. Pilih semua blok dan kemudian pilih Create Subsystem dari menu Edit. Juga label subsistem dan sinyal seperti yang ditunjukkan pada gambar berikut.

Anda dapat men-download file model lengkap di sini, Motor_Model_Simscape.mdl , tetapi perhatikan bahwa Anda akan memerlukan penambahan Simscape untuk Simulink untuk menjalankan file tersebut. Perhatikan bahwa dua model yang dihasilkan di atas akan berperilaku ekuivalen selama mereka dibangun dengan menggunakan nilai parameter yang sama. Perbedaan antara mereka kemudian hanya kemudahan yang mereka dibangun dan dihubungkan dengan, dan bagaimana mereka transparan dalam menyajikan informasi kepada pengguna. Jika Anda ingin benar-benar menjalankan model yang dikembangkan di atas dan menggunakannya untuk mensimulasikan dan mengembangkan kontrol algoritma, Anda dapat melanjutkan ke Kecepatan Motor DC: Simulink Kontrol halaman.

DC Motor Speed: Simulink Controller Design

Contents

Extracting a linear model into MATLAB Open-loop response Closed-loop response with lag compensator Closed-loop response with lead compensator

From the DC Motor Speed: Simulink Modeling page we generated two different DC motor models in Simulink. We will now employ these models within Simulink to simulate the system response and design different approaches to control.

Extracting a linear model into MATLAB


A linear model of the system can be extracted from the Simulink model into the MATLAB workspace. This can accomplished employing the MATLAB command linmod or from directly within Simulink as we will do here. We will specifically use the base Simulink model developed from first principles shown below. You can download this model here, or you can refer to the DC Motor Speed: Simulink Modeling page to recreate the model yourself.

Recall that the physical parameters have to be set if they have not previously been defined in the workspace.
J b K R = = = = 0.01; 0.1; 0.01; 1;

L = 0.5;

We then need to identify the inputs and outputs of the model we wish to extract. First rightclick on the signal representing the Voltage input in the Simulink model. Then choose Linearization > Input Point from the resulting menu. Similarly, right-click on the signal representing the Speed output and select Linearization > Output Point from the resulting menu. The input and output signals should now be identified on your model by arrow symbols as shown in the figure below.

In order to perform the extraction, select from the menus at the top of the model window Tools > Control Design > Linear Analysis. This will cause the Linear Analysis Tool to open. Within the Linear Analysis Tool window, the Operating Point to be linearized about can remain the default, Model Initial Condition. In order to perform the linearization, next click the Linearize button identified by the green triangle. The result of this linearization is the linsys1 object which now appears in the Linear Analysis Workspace as shown below. Furthermore, the open-loop step response of the linearized system was also generated automatically.

The open-loop step response above is consistent with the response generated in the DC Motor Speed: System Analysis page The reason the responses match so closely is because this Simulink model uses only linear components. Note that this process can be used extract linear approximations of models with nonlinear elements too. We will further verify the model extraction by looking at the model itself. The linearized model can be exported by simply dragging the object into the MATLAB Workspace. This object can then be used within MATLAB in the same manner as an object created directly from the MATLAB command line. Specifically, entering the command zpk(linsys1) in the MATLAB command window demonstrates that the resulting model has the following form.

(1) This model matches the one generated in the DC Motor Speed: System Modeling page. This can be seen by repeating the MATLAB commands given below.
s = tf('s'); P_motor = K/((J*s+b)*(L*s+R)+K^2); zpk(P_motor) ans = 2 ------------------(s+9.997) (s+2.003) Continuous-time zero/pole/gain model.

Open-loop response
The open-loop step response can also be generated directly within Simulink, without extracting any models to the MATLAB workspace. In order to simulate the step response, the details of the simulation must first be set. This can be accomplished by selecting Configuration Parameters from the Simulation menu. Within the resulting menu, define the length for which the simulation is to run in the Stop time field. We will enter "3" since 3 seconds will be long enough for the step response to reach steady state. Within this window you can also specify various aspects of the numerical solver, but we will just use the default values for this example. Next we need to add an input signal and a means for displaying the output of our simulation. This is done by doing the following:

Remove the In1 and Out1 blocks. Insert a Step block from the Simulink/Sources library and connect it with a line to the Voltage input of the motor subsystem. To view the Speed output, insert a Scope from the Simulink/Sinks library and connect it to the Speed output of the motor subsystem. To provide a appropriate unit step input at t=0, double-click the Step block and set the Step time to "0".

The final model should appear as shown in the following figure.

Then run the simulation (press Ctrl-T or select Start from the Simulation menu). When the simulation is finished, double-click on the scope and hit its autoscale button. You should see the following output.

This response is identical to that obtained by MATLAB above using the extracted model. This is again to be expected because this Simulink model includes only linear blocks.

Closed-loop response with lag compensator


In the DC Motor Speed: Root Locus Controller Design page a lag compensator was designed with the following transfer function.

(2) To generate the closed-loop step response with this compensator in Simulink, we will begin with the "Motor_Model.mdl" file described above. We will then put the lag compensator in series with the motor subsystem and will feed back the motor's speed for comparison to a desired reference. More specifically, follow the steps given below:

Remove the Input and Output ports of the model. Insert a Sum block from the Simulink/Math Operations library. Then double-click on the block and enter "|+-" for its List of signs where the symbol "|" serves as a spacer between ports of the block. Insert a Transfer Function block from the Simulink/Continuous library. Then double-click on the block and edit the Numerator coefficients field to "[44 44]" and the Denominator coefficients field to "[1 0.01]". Insert a Step block from the Simulink/Sources library. Then double-click on the block and set the Step time to "0". Insert a Scope block from the Simulink/Sinks library.

Then connect and label the components as shown in the following figure

You can download our version of the closed-loop system model here, Motor_Model_lag.mdl. Then run the simulation (press Ctrl-T or select Start from the Simulation menu). When the simulation is finished, double-click on the scope and hit its autoscale button. You should see the following output.

This step response matches exactly the closed-loop performance observed in the DC Motor Speed: Root Locus Controller Design page where the lag compensator was originally designed. Note that while we used the physics-based Simulink model developed in the DC Motor Speed: Simulink Modeling page for simulating the closed-loop system, we could have equivalently used the Simscape version of the DC motor model.

Closed-loop response with lead compensator


We have shown in the above and in other pages of this example that the lag compensator we have designed meets all of the given design requirements. Instead of a lag compensator, we could have also designed a lead compensator to meet the given requirements. More specifically, we could have designed a lead compensator to achieve a similar DC gain and phase margin to that achieved by the lag compensator, but with a larger gain crossover frequency. You can refer back to the DC Motor Speed: Frequency Domain Methods for Controller Design page for more details on the design of the lag compensator, but the fact that the DC gains and phase margins are similar indicate that the responses under lag and lead control would have similar amounts of error in steady state and similar amounts of overshoot. The difference in response would come in that the larger gain crossover frequency provided by the lead compensator would make the system response faster than with the lag compensator. We will specifically use the following lead compensator. (3) To see the precise effect of the lead compensator as compared to our lag compensator, let's modify our Simulink model from above as follows:

Disconnect the Step block and Scope block from the rest of the model. Copy the blocks forming the closed-loop of the model: the Sum block, the Transfer Function block, and the DC Motor subsystem. Then paste a copy of this loop below the original blocks. Double-click on the Transfer Function block and edit the Numerator coefficients field to "[160000 5.6e6]" and the Denominator coefficients field to "[1 1035]".

Insert a Mux block from the Simulink\Signal Routing library and connect the outputs of the two Motor subsystem blocks to the inputs of the Mux and connect the output of the Mux to the Scope. Connect the Step block to the Sum block of the original feedback system. Then branch off from this line and connect it to the Sum block of the lead compensated system as well.

The Mux block serves to bundle the two signals into a single line, this way the Scope will plot both speed signals on the same set of axes. When you are done, your model should appear as follows.

Running the simulation and observing the output produced by the scope, you will see that both responses have a steady-state error that approaches zero. Zooming in on the graphs you can generate a figure like the one shown below. Comparing the two graphs, the purple response belonging to the lead compensated system has a much smaller settle time and slightly larger, but similar, overshoot as compared to the yellow response produced by the lag compensated system.

It is generally preferred that a system respond to a command quickly. Why then might we prefer to use the lag compensator even though it is slower than the lead compensator? The advantage of the lag compensator in this case is that by responding more slowly it requires less control effort than the lead compensator. Less control effort means that less power is consumed and that the various components can be sized smaller since they do not have to supply as much energy or withstand the higher voltages and current required of the lead compensator. We will now modify our simulation to explicitly observe the control effort requirements of our two feedback systems. We will do this by sending our various signals to the workspace for plotting and further manipulation if desired. Specifically, delete the Scope and Mux blocks from your Simulink model. Then insert four To Workspace blocks from the Simulink\Sinks library. Double-click on each of the blocks and change their Save format from Structure to Array. Also provide a Variable name within each block that will make sense to you. You can then connect the blocks to the existing model and label them as shown below. You can download our version of this Simulink model here, Motor_Model_leadlag.mdl.

Then change the simulation stop time to 1 second and run the model. The act of running the simulation will send to the MATLAB workspace a series of arrays corresponding to the variables set-up in your model with the To Workspace blocks. Furthermore, the time vector used by that run of the simulation is stored in the default variable tout. You can now plot the results of your simulation from the workspace. Enter the following code to see how to specifically plot the control effort variables.
subplot(2,1,1) plot(tout,ulag); xlabel('time (seconds)') ylabel('control effort (volts)') title('Control Effort Under Lag Compensation') subplot(2,1,2) plot(tout,ulead); xlabel('time (seconds)') ylabel('control effort (volts)') title('Control Effort Under Lead Compensation')

Examination of the above shows that the control effort required by the lead compensator is above 150,000 Volts, which is well above anything that could be supplied or withstood by a typical DC motor. This exemplifies the tradeoff inherent between achieving small tracking error and keeping the amount of control effort required small. Optimal control techniques have been developed to achieve an optimal balance between competing goals. One such technique is explored in the Aircraft Pitch: State Space Methods for Controller Design page.

Published with MATLAB 7.14

Anda mungkin juga menyukai