การวัดเวลาของเหตุการณ์ใน Modelica

มีวิธีวัดเวลาที่เหตุการณ์เกิดขึ้น (โดยไม่ต้องใช้ตัวอย่างหรืออะไรที่คล้ายกัน) ใน Modelica หรือไม่? บางอย่างเช่นคำสั่ง tic toc ใน MATLAB? สิ่งที่ผมอยากเห็นคือความแตกต่างของเวลาที่เหตุการณ์ต่างๆ เกิดขึ้น ตัวอย่างเช่น ในโค้ดตัวอย่างต่อไปนี้ มีวิธีดูเวลาที่ผ่านไปโดยใช้ test_time1 และ 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 แหล่งที่มา


คำตอบ (1)


abs(test_time2-test_time1) ควรทำหากคุณไม่รู้ว่าอันไหนเกิดขึ้นก่อน โปรดทราบว่านี่จะเป็นเวลาจำลอง ไม่ใช่เวลาจริง (บนกำแพง) หากคุณต้องการวัดเวลาจริงที่ใช้ในการจำลองเพื่อกระตุ้นเหตุการณ์ทั้งสอง คุณต้องใช้ฟังก์ชัน C ภายนอกที่เรียก tic และ toc ของคุณเอง

person sjoelund.se    schedule 04.03.2016
comment
ขอบคุณสำหรับคำตอบ @sjoelund.se ฉันแก้ไขโค้ดตัวอย่างเล็กน้อย event1 ทริกเกอร์ event2 และในกรณีนี้ ฉันจะได้รับค่าเดียวกันใน test_time1 และ test_time2 เสมอ สิ่งที่ฉันรู้คือฉันดูตัวแปร time แบบเรียลไทม์เสมอ (โดยคำนึงถึงตรรกะการเขียนโปรแกรมประเภท MATLAB จำนวนมาก) - person Shaga; 04.03.2016
comment
ขอบคุณสำหรับความคิดเห็นของคุณ ฉันอ่านเพิ่มเติมอีกเล็กน้อยและพบว่าฉันกำลังดูปัญหาผิดทั้งหมด และเวลาจำลองจะหยุดลงเมื่อมีเหตุการณ์เกิดขึ้นจนกว่าเงื่อนไข pre(var) == var จะเป็นที่พอใจ - person Shaga; 17.03.2016