Simulink matlab örnekleri. IV Chernykh. "Simulink: Dinamik Sistem Modelleme Aracı"

  • 28.06.2019

Bilgisayarlar, demiryolu araçları ekiplerini içeren dinamik sistemlerin davranışını simüle etmek için kullanılır. Bir sorunu çözmek için kullanılabilecek çok sayıda algoritmik dil vardır. Bu veya bu programlama dilinin seçimi birçok koşula bağlıdır. Programlamanın kolaylığı, kanıtlanmış matematiksel yöntemlerin mevcudiyeti ve simülasyon sonuçlarının sunum kolaylığı genellikle belirleyici bir rol oynamaktadır. Bu özellikler, SIMULINK görsel modelleme aracını içeren MATLAB paketine sahiptir.

SIMULINK, analog makinelerin görünürlüğünü dijital bilgisayarların hassasiyetiyle birleştirir. SIMULINK, kullanıcıya geniş bir sayısal yöntemler kitaplığı da dahil olmak üzere MATLAB paketinin tüm özelliklerine erişim sağlar.

SIMULINK'te modelleme görevinin hazırlanması aşağıdaki sırayla gerçekleştirilir:

Tasarım şemasının seçimi.
İncelenen süreci açıklayan bir denklem sistemi hazırlamak.
Sistemi çözüme uygun bir forma getirmek (daha yüksek türevlere göre çözünürlük).
Başlangıç ​​koşullarının belirlenmesi.
Yapısal bir diyagramın çizilmesi.
Pertürbasyon fonksiyonlarının modellenmesi.
İlk verilerin belirlenmesi.
SIMULINK ortamında bir model çizimi.
Oluşturucuları etkinleştirme.
Test yapmak.
Çözüm.
Sonuçların analizi.
Rapor.

Aşağıda basit örnekler kullanılarak SIMULINK ortamında modelleme örnekleri verilmiştir.

ERS ekibinin dikey titreşimleri

İki kütleli bir sistemin zorunlu salınımlarının matematiksel modeli

Mürettebatın ana parametrelerinin dikey titreşimler üzerindeki etkisini incelemek için, iki kütlenin elastik ve enerji tüketen bağlarla bağlandığı iki serbestlik dereceli basitleştirilmiş bir model kullanılır (Şekil 1). Bu model, ana hat lokomotifleri (elektrikli ve dizel lokomotifler) ve binek otomobiller olmak üzere iki kademeli süspansiyona sahip raylı araçların dikey titreşimlerini açıklar.

1. Hesaplama şeması

Yolun kenarından bir bozulmanın varlığında söz konusu sistemin hareket denklemleri, aşağıdaki diferansiyel denklemlerle açıklanır:

Aşağıdaki gösterim denklem (1)'de sunulmuştur:

m 1 - bojinin yaylı kütlesi;

m 2 - bir bojiye indirgenmiş vücut kütlesi;

ile birlikte 1 , B 1 - ilk süspansiyon kademesinde sertlik ve sönümleme;

ile birlikte 2 , B 2 - ikinci süspansiyon kademesinde sertlik ve sönümleme;

H(T) - yolun kenarından öfke;

- genelleştirilmiş koordinatlar ve bunların zaman türevleri:

Hareket denklemlerini forma dönüştürüyoruz:

Öfke olarak, Prof. N.N. Kudryavtseva. Pürüzlülük, ray bağlantısı boyunca sapmadaki değişikliği iyi tanımlar. Pürüzlülük modeli, frekansa sahip bir sinüzoidin yarım dalgasının toplamıdır. w ve frekansı 3 olan bir sinüzoidin üç yarım dalgası w demiryolu bağlantısının uzunluğu boyunca döşenmiş L... pürüzlülük genlikleri A 1 A Parçanın türüne ve durumuna bağlı olarak 2 seçilir.

Pertürbasyon frekansı;

V- Hareket hızı.

Yukarıda anlatılan modeli SIMULINK ortamında oluşturalım.

Simulink sisteminde iki kütleli bir sistemin zorunlu salınımlarının modeli

SIMULINK'i başlattığınızda iki pencere açılır:

Boş bir çalışma penceresi, yeni bir model oluşturmak için boş bir penceredir ( isimsiz);

Ana bölüm kümelerini içeren SIMULINK kitaplığının penceresi ( Kütüphane:simulink).

Pirinç. 2. SIMULINK'te çalışmaya başlama örneği

Modellenen sistem oldukça basit olduğundan, tek seviyeli bir modelin (iç içe alt sistemler olmadan) uygulamasını gösteriyoruz.

Bir Simulink sisteminde bir model oluşturma süreci, ilgili kitaplıklardan gerekli blokların seçilmesi ve bunların bağlantılarla bağlanması dizisidir.

Genellikle, dinamik bir sistemi simüle etmek için (2) şeklinde hareket denklemleri kullanılır.

Her denklemin modelini, denklemin sağ tarafındaki üye sayısı kadar girdisi olan bir toplayıcı ile oluşturmaya başlıyoruz. İlk denklem için, bu toplayıcı toplam 1(Şekil 3). Toplayıcı girişleri hem pozitif hem de negatif değerlere sahip olabilir (Şekil 4). Sonraki doğrulama ve analizleri kolaylaştırmak için kullanılan blokları adlandırmanız önerilir.

Pirinç. 11. Birinci cismin titreşimlerini açıklayan alt sistem

Pirinç. 12. İkinci cismin titreşimlerini açıklayan alt sistem

Pirinç. 13. Başlangıç ​​programını yapılandırma

İlk değerleri ayarlamak için alt program normal bir m dosyasıdır. Dosyadaki bu örnek için MDYN 21.m aşağıdaki değerler ayarlanır:

% MDYN21
% Programı başlat
%
yankılanmak
A1 = 0,005;
A2 = 0,002;
L = 25;
p = pi / L;
M1 = 8.82;
C1 = 7000;
B1 = 60;
M2 = 25.8;
C2 = 2600;
B2 = 125;
Eko kapalı
x0 =;
= sim ("mdyn21", 10, simset ("InitialState", x0));

Alt programın yukarıdaki metninde, satırın sonundaki noktalı virgül, değişken değerlerin çıktısını yasaklar.

Girilen verileri görüntülemek için operatörler “ Ekoüzerinde -Ekokapalı". Alt rutinin seçilen parçası MATLAB kontrol penceresinde görüntülenir (Şekil 14).

Orijinal verileri değiştirmek için bir metin düzenleyici kullanılır.

Bu örnekteki simülatör, bloğa çift tıklanarak başlatılır. BAŞLAT.


Pirinç. 14. MATLAB kontrol programı penceresindeki çıktı

Modele, modelin kısa bir açıklamasını içeren bir bilgi bloğu ekleyin - bir blok Bilgi" sembolü ile gösterilir ? ". Bloğun içeriği Şekil 2'de gösterilmektedir. 15.

Pirinç. 15. Bilgi bloğu

Faz diyagramını görüntülemek için ekran ünitesini tanıtıyoruz. XY _grafik blok şemada belirtilmiştir " faz diyagramıÇıktı sonuçları Şekil 16'da gösterilmektedir.

Pirinç. 16. Simülasyon sonuçları - faz diyagramı

Kullanıcı rutinlerini kullanma

SIMULINK ortamında modelleme olanaklarını genişletmek için MATLAB dilinde yazılmış kullanıcı alt programlarını bağlamak mümkündür. Önceki modelde, pürüzlülük fonksiyonlarını " ile değiştirin. MATLABİşlev" - "eşitsizlik". Model, yol çarpma fonksiyonunu ve türevini açıklayan bir kullanıcı alt rutinine bir referans tanımlar (Şekil 17). Bu yaklaşım, hem MATLAB paketinde programlama yaparken hem de SIMULINK ortamında simülasyon yaparken kanıtlanmış modüllerin kullanımına izin verir.

Pirinç. 17. MATLAB fonksiyon bloğunun modeli ve kurulumu

Ele alınan örnekler, MATLAB paketinin ve SIMULINK görsel modelleme ortamının yeteneklerinin tam bir açıklaması gibi görünmemektedir. Çalışma için özel literatür ve bir kullanım kılavuzu öneriyoruz.

Ruban V.G. © 2000

Alt sistem - alt sistemler.

Alt sistem bir snippet'tir simulink-Modeller, ayrı bir blok olarak tasarlanmıştır. Bir modelin derlenmesinde alt sistemlerin kullanılması aşağıdaki olumlu yönlere sahiptir:

  1. Ekranda aynı anda görüntülenen blokların sayısını azaltır, bu da modeli algılamayı kolaylaştırır (ideal olarak, model monitör ekranında tam olarak görüntülenmelidir).
  2. Modelin parçalarını ayrı ayrı oluşturmanıza ve hatalarını ayıklamanıza olanak tanır, bu da bir model oluşturmanın üretilebilirliğini artırır.
  3. Kendi kitaplıklarınızı oluşturmanıza izin verir.
  4. Paralel alt sistemlerin senkronizasyonunu sağlar.
  5. Modele kendi referans araçlarınızı eklemenizi sağlar.
  6. Herhangi bir alt sistemi ilişkilendirmenize izin verir. m-file, alt sistem açıldığında bu dosyanın başlatılmasını sağlamak (standart olmayan alt sistem açma).

Alt sistemlerin kullanımı ve bloklarının mekanizması, tasarımlarında standart olanlardan daha düşük olmayan bloklar oluşturmanıza izin verir (kendi blok parametreleri penceresi, simge, yardım vb.).

Modeldeki alt sistem sayısı sınırlı değildir, ayrıca alt sistemler diğer alt sistemleri de içerebilir. Alt sistemlerin iç içe geçme düzeyi de sınırlı değildir.

Bir alt sistemin bir modelle (veya hiyerarşinin üst seviyesinin bir alt sistemiyle) bağlantısı, giriş (blok) kullanılarak gerçekleştirilir. içe aktar kütüphaneler Kaynaklar) ve hafta sonları (blok Dış liman kütüphaneler lavabolar) bağlantı noktaları. Bir alt sisteme bir giriş veya çıkış bağlantı noktası eklemek, alt sistem görüntüsünde, alt sisteme harici sinyallerin iletildiği veya ana modele çıkışın geçtiği bir bağlantı noktası etiketinin görünmesine neden olur. Blokları yeniden adlandırma içe aktar veya Dış liman alt sistem simgesinde görüntülenen bağlantı noktası etiketlerini standarttan ( İçinde ve Dışarı) kullanıcının ihtiyacı olanlara.

Alt sistemler sanal olabilir ( alt sistem) ve monolitik ( Atomik Alt Sistem). Bu tür alt sistemler arasındaki fark, hesaplama sırasında blokların yürütüldüğü sırada yatmaktadır. Alt sistem sanal ise, o zaman simulink blokların sırasını belirlerken böyle bir alt sistemi modelden ayıran sınırların varlığını yok sayar. Yani sanal bir sistemde, önce birkaç bloğun çıkış sinyalleri hesaplanabilir, daha sonra ana modelde bloklar hesaplanır ve daha sonra alt sisteme dahil olan bloklar tekrar hesaplanır. Monolitik bir alt sistem, tek (bölünemez) bir blok olarak kabul edilir ve simulink ana modeldeki diğer blokların hesaplamalarına geçmeden böyle bir alt sistemdeki tüm blokların hesaplamasını yapar. Monolitik alt sistem, sanal alt sistemden daha kalın bir sınıra sahiptir.

Alt sistemler ayrıca yönetilebilir veya yönetilemez. Yönetilen alt sistemler her zaman monolitiktir. Kontrollü alt sistemler, bu alt sistemi aktive eden sinyalleri alan ek (kontrol) girişlerine sahiptir. Kontrol girişleri, alt sistemin üstünde veya altında bulunur. Yönetilen alt sistem aktif olduğunda hesaplamalar yapar. Kontrol edilen alt sistemin pasif olması durumunda hesaplama yapmaz ve çıkışlarındaki sinyallerin değerleri çıkış portlarının ayarları ile belirlenir.

Bir modelde alt sistem oluşturmanın iki yolu vardır:

  1. Gerekli alt sistemi kitaplıktan kopyalayın alt sistem modelin içine.
  2. Modelin istenen parçasını fare ile seçin ve komutu yürütün Alt Sistem Oluştur menüden Düzenlemek pencere modeli. Seçim alt sisteme yerleştirilecek ve alt sistemin giriş ve çıkışları ilgili portlarla sağlanacaktır. Bu yöntem, sanal bir yönetilmeyen alt sistem oluşturmanıza olanak tanır. Gelecekte, gerekirse, alt sistemi parametrelerini değiştirerek monolitik veya kütüphanede bulunan gerekli alt sistemden bir kontrol elemanı ekleyerek yönetilebilir hale getirebilirsiniz. Komutuyla blokların bir alt sistemde gruplandırılmasını iptal edebilirsiniz. Geri alma.

Pirinç. 9.9.1, ikinci şekilde bir alt sistem oluşturma sürecini gösterir. İncirde. 9.9.2, bu işlemin sonucunu gösterir. Örnek, kontrollü bir fonksiyon üretecinin bir modelini kullanır.

Pirinç. 9.9.1 Bir alt sistem oluşturma

Pirinç. 9.9.2 Bir alt sistem kullanan model

Şek. 9.9.4, önceki blok ayarından farklıdır Olanak vermek alt sistemler. Bu örnekte, parametre etkinleştirildiğinde eyaletler engellemek Olanak vermek anlamı var Sıfırla... Zamanlama diyagramları, alt sistem kapatıldığında, ilk durumuna sıfırlandığını gösterir.

Pirinç. 9.9.4 Kullanan model E-alt sistem

4. Model oluşturma

Ortamda bir model oluşturmak için SIMULINK sırayla bir dizi eylemi gerçekleştirmek gerekir:

4.1. Komutu kullanarak yeni bir model dosyası oluşturun Dosya / Yeni / Model, veya araç çubuğundaki düğmeyi kullanarak (bundan sonra “/” sembolü kullanılarak, belirtilen eylemi gerçekleştirmek için sırayla seçilmesi gereken program menü öğeleri belirtilir). Yeni oluşturulan model penceresi Şekil 2'de gösterilmektedir. 4.1.

Şekil 4.1. Boş model penceresi

4.2. Model penceresinde blokları düzenleyin. Bunu yapmak için kütüphanenin uygun bölümünü açmanız gerekir (Örneğin, Kaynaklar - Kaynaklar). Ayrıca, imleci gerekli bloğa işaret ederek ve farenin sol düğmesine tıklayarak - bloğu oluşturulan pencereye "sürükleyin". Fare düğmesini basılı tutun ... Şekil 4.2, blokları içeren bir model penceresini göstermektedir.

Şekil 4.2. Blokları içeren model penceresi

Bir bloğu silmek için bir blok seçin (imleçle görüntüsünün üzerine gelin ve farenin sol düğmesine basın) ve ardından düğmesine basın. Silmek klavyede.

Bir bloğun boyutunu değiştirmek için bir blok seçin, imleci bloğun köşelerinden birine yerleştirin ve farenin sol düğmesine basarak bloğun boyutunu değiştirin (imleç çift taraflı bir oka dönüşecektir) .

4.3. Ayrıca, gerekirse "varsayılan" program tarafından ayarlanan blok parametrelerini değiştirmeniz gerekir. Bunu yapmak için, farenin sol tuşuna çift tıklayarak blok resmin üzerine gelin. Bu bloğun parametrelerini düzenlemek için bir pencere açılacaktır. Sayısal parametreleri belirtirken, ondalık ayırıcının virgül değil nokta olması gerektiğini unutmayın. Değişiklikleri yaptıktan sonra butonu ile pencereyi kapatmanız gerekmektedir. Tamam... Şekil 4.3, örnek olarak transfer fonksiyonunu simüle eden bir bloğu ve bu bloğun parametrelerini düzenleme penceresini göstermektedir.

Şekil 4.3. Transfer fonksiyonunu ve blok parametrelerini düzenleme penceresini simüle eden blok

4.4. Gerekli kitaplıklardan tüm blokları şema üzerinde kurduktan sonra devre elemanlarını bağlamanız gerekir. Blokları bağlamak için, imleç bloğun “çıkış”ına işaret etmek ve ardından sol fare düğmesini bırakmadan ve düğmesine basmak ve başka bir bloğun girişine bir çizgi çizmek gerekir. Ardından anahtarı bırakın. Doğru bağlantı olması durumunda blok girişindeki okun görüntüsü renk değiştirir. Bağlantı hattında bir dal noktası oluşturmak için, imleci istenen düğüme hareket ettirin ve tuşuna basarak sağ fare düğmesi, bir çizgi çizin. Bir satırı silmek için satırı seçin (bir blok için yapıldığı gibi) ve ardından tuşuna basın. Silmek klavyede. Bloklar arası bağlantıların yapıldığı modelin şeması aşağıda gösterilmiştir. Pirinç. 4.4.

Şekil 4.4. Model diyagramı

4.5. Tasarım modelini çizdikten sonra menü öğesini seçerek diske dosya olarak kaydetmelisiniz. Dosya / Farklı Kaydet ...şematik pencerede ve klasör ve dosya adını belirterek. Dosya adının 32 karakteri geçmemesi, bir harfle başlaması ve Kiril ve özel karakterler içermemesi gerektiği unutulmamalıdır. Aynı gereksinim dosya yolu için de geçerlidir (dosyanın kaydedildiği klasörler için). Devreyi daha sonra düzenlerken menü öğesini kullanabilirsiniz. Doldur / Kaydet... Programın tekrarlanan başlatmalarında SIMULINKşemanın yüklenmesi menü kullanılarak gerçekleştirilir Dosya / Aç ... kütüphane tarayıcı penceresinde veya ana pencereden MATLAB.

Bir pakette mekanik sistemlerin simülasyonu

MATLAB, üst düzey bir teknik hesaplama dili, etkileşimli bir algoritma geliştirme ortamı ve modern bir veri analiz aracıdır.

Simulink, kesikli, sürekli ve hibrit, doğrusal olmayan ve süreksiz sistemler dahil olmak üzere dinamik modeller oluşturmak için yönlendirilmiş grafikler biçiminde blok diyagramların kullanılmasına izin veren bir grafik simülasyon ortamıdır.

Simscape, çeşitli fiziksel yapıdaki nesneleri modellemek için ana Simulink kütüphanesidir. Ölçüm birimlerini dikkate alarak şematik diyagramlar, öğeler ve bağlantılar, gerçek fiziksel miktarlar şeklinde hibrit çok alanlı nesne modelleri oluşturmanıza olanak tanır.

Simscape, elektrik, mekanik ve hidrolik nesnelerin Simulink simülasyonunun temeli olarak hizmet eder. Kitaplık, SimMechanics, SimDriveline, SimHidrolik ve özel paketlerle genişletildi.

dijital kontrol sistemlerinin geliştirilmesi de dahil olmak üzere çeşitli analiz görevleri için karmaşık hibrit çok alanlı nesnelerin modellerini oluşturmanıza olanak tanır.

Simulink'e Başlarken

MATLAB'ı başlatırken aşağıdaki pencereye benzer bir şey görüyoruz:

Burada bir şeyi nasıl yapabileceğiniz henüz belli değil ama bu çok kullanışlı bir pencere. Kesinlikle biraz sonra döneceğiz, ama şimdilik hemen işe başlayalım. Ve ilk adım, çalışacağımız klasörü seçmek.

"Geçerli Klasör" penceresinin sağındaki üç noktaya tıklayın ve beğendiğiniz ilk klasörü seçin (oluşturun). Mutlaka C:\Vasya\geçici11\123\... gibi bir şey olacaktır.

Hemen belirtmek isterim ki Matlab ve Simulinka'daki en ilginç şey hataları aramaktır. Onunla bir ay, hatta bir yıl geçiremezsiniz. Ancak, hatalar ve hatalar farklıdır ... Bazı karmaşık modelleri uzun süre ve ısrarla toplayabilir, bir araya getirebilir, kaydetmeye çalışabilir ve hatanın içeriğinin birkaç cümleyle açıklandığı ve hatta daha ayrıntılı bir rapora bağlantının verildiği bir pencere elde edebilirsiniz. verilen ... Bu durumda, devreyi birkaç kez yeniden inşa edebilir, Matlab'ı yeniden yükleyebilir, Windows'u yıkabilirsiniz, ancak her şey işe yaramaz olacaktır ... Ama gerçekte Simulinka penceresinin bir yerine bir Rus harfi koyduğunuz veya kelime.

Bu nedenle, ana kuralı hemen öğreneceğiz -

MATLAB, Rusfobik bir programdır. Kiril alfabesini hiçbir biçimde sindirmez. Adreste değil, pencerelerde değil, değişkenlerde değil, HER YERDE!

Bu nedenle, projelerimizi "C:\Vasya\geçici11\123\" adresinde saklamayı hemen unutuyoruz ve şöyle bir klasör seçiyoruz.

"C: \ Vasya \ Temp11 \ 123 \".

Harika, şimdi çalışmaya başlayabilirsiniz.

"Dosya-Yeni-Model"e tıklayın. Aşağıdaki pencere görünür:

Harika, şimdiden Matlab komut satırından daha dostça bir şey. Bunun bir şeyler çizmeniz gereken bir alan olduğu sezgisel olarak açıktır ... Fareyle çizmek imkansız, kırmızı-mavi-yeşil "Kütüphane Tarayıcısı" düğmesine basıyoruz. Simulinka eleman kitaplığı açılacaktır:

Gözlerim hala sunulan kitaplıkların bolluğu karşısında kamaşıyor. Birçoğunun amacı benim için hala geçerli.

Bir bilmece. En basitinden başlayacağız. Salınım bağlantı şemasını bir araya getirelim, bir "adıma" maruz kaldığında ve hatta LFH ile LAH'dayken geçici sürece bakalım.

Bunun için "adım"ın kaynağına, transfer fonksiyonunun kendisine ve geçici sürece bakacağımız pencereye ihtiyacımız var.

Bunun gibi bir şey elde etmek için tüm bu öğeleri Simulink kitaplığında bulmanızı öneririm:

Umarım kütüphanede salınan bir bağlantı aramamışsınızdır? Simulinka'da, herhangi bir katsayıyı payda ve paya sürebileceğiniz bir transfer işlevi vardır (asıl mesele, payın sırasının paydanın sırasından daha az olmasıdır). Ama daha fazlası aşağıda.

Şimdi tüm bu bağlantıları birbirine bağlamaya çalışacağız. Bunu basitçe fareyi bir oktan diğerine sürükleyerek yapabilirsiniz ve bundan sıkılırsanız sol tuşla bir blok seçip Ctrl tuşunu basılı tutup başka bir bloğa tıklayabilirsiniz.

İyi. Şimdi bu blokları tek tek yapılandırmanız gerekiyor... Adımla ilgili söylenecek bir şey yok, orada her şey açık, her şeyi varsayılan olarak bırakalım: başlangıç ​​zamanı 1 s, başlangıç ​​değeri 0, son değer 1.

Transfer fonksiyonu ile daha ilginç. Size bir salınımlı bağlantı kuracağımızı hatırlatmama izin verin. Ben şahsen onu şu şekilde görmeye alışkınım:

simulink bizden payda ve payın katsayılarını aynı anda ister. Elbette, bir kağıt parçası üzerinde hızla çoğaltabilirsiniz.

zaman sabiti ve sönüm katsayısı bu ciddi değil ama... Değişkenleri nasıl kullanacağınızı daha iyi öğrenin.

Bir simulinkte değişkenleri değiştirmenin en az 2 yolu vardır. Onları en başta gördüğümüz Matlab komut satırına sürüyordum. Sonra şöyle bir şey elde edersiniz:

Gördüğünüz gibi, değerler hemen Workspace'e girildi ve şimdi onları herhangi bir simulink penceresine özgürce yönlendirebilir ve onlarla herhangi bir işlemi gerçekleştirebiliriz. Ardından bunları tek bir dosyaya kaydedebilir (Çalışma Alanını Farklı Kaydet ...) ve gerekirse yükleyebilirsiniz.

Başka bir seçenek de aynısını Model Gezgini aracılığıyla yapmaktır. "Kütüphane Tarayıcısı" düğmesinin yanında büyüteç bulunan düğmeye tıklayın ve aşağıdaki pencereyi alıyoruz:

Gördüğünüz gibi, yalnızca genel bir Çalışma Alanı değil, aynı zamanda modelin kendisinin bir Çalışma Alanı da var. Genel olarak, tüm değişkenleri orada ayarlayabilirsiniz ve daha sonra modelle birlikte otomatik olarak yüklenirler, ancak yine de ayrı bir dosyada saklanan global değişkenlerin daha doğru olduğuna inanmaya meyilliyim. Beni bir delikanlı olarak görebilirsin

Bu nedenle, T = 0.1 (salınımlı bağlantının zaman sabiti) ve d = 0.3 (sönümleme katsayısı) değerlerini herhangi bir şekilde kullanıyoruz.

Şimdi, transfer fonksiyonu penceresinde geriye kalan her şeyi gerektiği gibi çarpmak:

İşte bu, şimdi nihayet hesaplamaya başlayabilirsiniz. "Oynat"a, ardından Kapsam penceresine, ardından "atomik ölçek"e (dürbün) tıklayın. Sonucu analiz etme zamanı. Yaklaşık 3 saniye içinde sona eren salınım sürecine benzer bir şey ortaya çıktı, ancak bir tür açısal. Öncelikle simülasyon süresini 10 saniyeden 3 saniyeye düşürelim ("oynat" ve "durdur" butonlarının sağında) ve yakından bakalım:

Özellikle tepe bölgesinde olmak üzere yüzde bazı açısallıklar var. Matlab komut satırında "Varsayılan maksimum adım çok fazla seçilmiş, aslında her şey yolundaysa, oraya tıklayarak beni kapatabilirsiniz" diyerek bir şikayet yayınladı. Bizim için her şey yolunda değil.

Simulink çözücülerle tanışmanın zamanı geldi. İtmek

"Simülasyon - Yapılandırma Parametreleri ...":

Yine her türlü menü ve alanın bolluğundan gözler yukarıya doğru koşuyor. Anlamaya çalışalım. Şimdi öncelikle çözücü ile ilgileniyoruz. Burada diferansiyel denklemleri hangi yöntemle çözeceğimizi seçiyoruz (evet, simulink alanına koyduğumuz bloklar aslında diffüz ). Öncelikle nasıl bir yöntem olacağını belirliyoruz - sabit bir adım veya değişkenle. Herhangi bir karmaşıklığın difüzyon sisteminin, adımı azaltarak Euler yöntemiyle çözüldüğüne dair bir görüş var ), hidrolik silindir 0.1 milisaniyelik artışlarla sakince hareket ettiğinde kalan 4,9 saniyeyi hesaplamak zorunda kalacağız. Bu durumda hesaplama süresi birçok kez artar ve ciddi görevler için birkaç saate dönüşebilir. Bu nedenle, iyi matematikçiler değişken adımlı algoritmalar geliştirdiler. Onlar. Kritik anlarda çözücü, difüzyonu çözerek adımı gerektiği kadar azaltır ve her şey “sakin” olduğunda adımı artırarak zamandan tasarruf sağlar.

Yayılmaları sabit bir perde ile çözmenin gerekli olduğu zamanlar vardır, ancak çoğu durumda değişken bir perde çok daha iyidir.

Bir sonraki menü çözücünün kendisidir. Genel olarak, bu derin bir matandır, özellikle onu incelemeyeceğiz, kısaca gidelim. Yardım Matlaba çok

ode45 çözücüyü önerir. Orada verilen tablolardan bunun en doğru olduğu anlaşılmaktadır. Tek bir uyarı ile. Eğer işimiz zor değilse. Sertlik, durumdaki inanılmaz kalay içeriği olarak değil, matımızın difüzyonunun sertliği veya sert olmaması olarak anlaşılmaktadır. modeller. Ve aralarında, sırayla, çizgi oldukça belirsizdir. Bir ve aynı difüzyon, katsayılara bağlı olarak ya zor olabilir ya da zor olmayabilir. Bizim durumumuzda bunlar sistemin çeşitli elemanlarının zaman sabitleridir. Birkaç büyüklük sırasına göre farklılık gösterirlerse (örneğin, iyi bir ESP'nin ve kötü bir hidrolik silindirin zaman sabiti), o zaman büyük olasılıkla ode45 gibi katı olmayan bir çözücü çılgına dönecek ve bize mega-farklı bir geçici olay verecektir. Bu durumda, s (sert) harfi ile işaretlenmiş katı çözücüleri kullanmanız gerekir. Buradaki en doğru çözücü ode15s'dir.

Özetlemek. Önemsiz sorunları ode45 ile çözüyoruz, sistem elemanlarıyla ilgili sorunları açıkça farklı zaman sabitleriyle (doğal hidrolik tahriklerimiz gibi), ode15'lerle çözüyoruz. Her şey başarısız olursa, 0.1 μs'lik bir adımla 4. derecenin (ode4) Runge-Kutta yöntemini ayarlayın ve bilgisayarı gece boyunca saymaya bırakın

Daha ileri gidelim. Ve sonra her şey çok daha kolay ... Sadece maksimum, minimum ve ilk adımları seçmeniz gerekiyor. Matlabın maksimum adımdan şikayet ettiğini hatırlayın, güvenli tarafta olmak için değeri 0.001 s olarak ayarlayın. Şimdi, çözücü yolda zor bir şey olmadığına karar verse bile, yine de 1 ms'den fazla olmayan segmentler olarak sayılacaktır.

Tamam'ı tıklayın ve ardından oynayın. Sonucu görelim:

Başka bir şey. Her şey yolunda ve matlab artık şikayet etmiyor. Hatta şimdi birinin DZ'sine ekleyebilirsiniz

Bu arada, grafikler hakkında sadece birkaç kelime. Yazıcı düğmesinin yanında, örneğin eksen sayısını yapılandırabileceğiniz bir "Parametreler" düğmesi vardır. Bu durumda, Kapsam penceresinde birkaç giriş görünecek ve grafikler alt alta yerleştirilecektir. Birden fazla grafiği tek bir grafikte düzenlemek için Mux bloğunu kullanmanız gerekir.

Bu durumda, birkaç sinyal bir Kapsama sığdırılabilir ve bunlar pencerede farklı renklerde gösterilecektir.

Şimdi logaritmik genlik ve faz özelliklerinin nasıl oluşturulacağını bulalım. Bu, simulinka'da aynı yerde "Kontrol Tasarımı" uzantısı kullanılarak yapılır.