Mengukur waktu suatu peristiwa di Modelica

Apakah ada cara untuk mengukur waktu terjadinya suatu peristiwa (tanpa menggunakan sampel atau sejenisnya) di Modelica? sesuatu seperti perintah tic toc di MATLAB? yang ingin saya lihat adalah perbedaan waktu ketika berbagai peristiwa terjadi. Misalnya, pada contoh kode berikut, apakah ada cara untuk melihat waktu yang telah berlalu menggunakan test_time1 dan test_time2?

when event1 then 
 a:=2;
 event2:= true;
 test_time1 := time;
end when;
when event2 then 
a:= 5;
test_time2 := time;
end when;

person Shaga    schedule 03.03.2016    source sumber


Jawaban (1)


abs(test_time2-test_time1) harus melakukannya jika Anda tidak tahu mana yang terjadi lebih dulu. Perhatikan bahwa ini adalah waktu simulasi, bukan waktu (dinding) sebenarnya. Jika Anda ingin mengukur waktu nyata yang diperlukan simulasi untuk memicu dua peristiwa, Anda perlu menggunakan fungsi C eksternal yang memanggil tic dan toc Anda sendiri.

person sjoelund.se    schedule 04.03.2016
comment
Terima kasih atas balasan @sjoelund.se. Saya mengedit kode sampel sedikit. event1 memicu event2 dan dalam hal ini saya selalu mendapatkan nilai yang sama di test_time1 dan test_time2. Apa yang saya sadari adalah bahwa saya selalu melihat variabel time sebagai waktu nyata (dengan mempertimbangkan banyak jenis logika pemrograman MATLAB). - person Shaga; 04.03.2016
comment
Berkat komentar Anda, saya membaca lebih banyak dan menyadari bahwa saya salah melihat masalahnya dan waktu simulasi benar-benar berhenti ketika suatu peristiwa terjadi hingga kondisi pre(var) == var terpenuhi. - person Shaga; 17.03.2016