1 คะแนน โดย GN⁺ 2024-12-18 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Modelica เป็น ภาษาเชิงวัตถุ สำหรับสร้างแบบจำลองระบบไซเบอร์-กายภาพที่ซับซ้อนได้อย่างมีประสิทธิภาพยิ่งขึ้น
  • สามารถประกอบคอมโพเนนต์ที่นำกลับมาใช้ซ้ำได้ผ่าน การเชื่อมต่อแบบไม่ระบุเหตุและผล และสร้างแบบจำลองที่อิงสมการทางคณิตศาสตร์ได้
  • ออกแบบมาเพื่อให้การสร้างแบบจำลองตาม หลักการพื้นฐาน (first principles) ทำได้ง่ายขึ้น โดยมุ่งเน้นการแสดงโครงสร้างและพฤติกรรมของระบบทางกายภาพโดยตรง
  • เว็บไซต์ทางการรวบรวมข้อมูลเกี่ยวกับภาษา Modelica, ไลบรารี, เครื่องมือ และ Modelica Association ไว้ในที่เดียว
  • ยังสามารถดูเอกสารเกี่ยวกับ Association, สมาชิกองค์กร, ร้านขายสินค้า, ช่องทางติดต่อทางอีเมลและจดหมายข่าวได้ด้วย

แนวทางการสร้างแบบจำลองของภาษา Modelica

  • Modelica เป็นภาษาเชิงวัตถุสำหรับสร้างแบบจำลองระบบไซเบอร์-กายภาพ
  • สามารถประกอบคอมโพเนนต์ที่นำกลับมาใช้ซ้ำได้ด้วยวิธี การเชื่อมต่อแบบไม่ระบุเหตุและผล
  • คอมโพเนนต์ถูกแสดงเป็นแบบจำลองที่ถูกกำกับด้วย สมการทางคณิตศาสตร์
  • โครงสร้างลักษณะนี้ใกล้เคียงกับการออกแบบเพื่อให้การสร้างแบบจำลองตามหลักการพื้นฐานทำได้ง่ายขึ้น

ข้อมูลที่มีให้บนเว็บไซต์ทางการ

  • ภาษา ไลบรารี และเครื่องมือ

  • Association และช่องทางติดต่อ

    • Modelica Association มี สมาชิกองค์กร และสามารถดูสมาชิกเพิ่มเติมได้มากกว่า 21 แห่งบนเว็บไซต์
    • สามารถไปยังร้านขายสินค้าได้ผ่าน Modelica merchandising shop
    • ช่องทางติดต่อคืออีเมล board@modelica.org และ Modelica Association Newsletter

1 ความคิดเห็น

 
GN⁺ 2024-12-18
ความคิดเห็นจาก Hacker News
  • ตามคำอธิบายบนเว็บไซต์ Modelica เป็น ภาษาเชิงประกาศระดับสูง สำหรับอธิบายพฤติกรรมทางคณิตศาสตร์ และมักนำไปใช้กับระบบวิศวกรรม
    ในอุตสาหกรรม HVAC ใช้กันค่อนข้างมาก และในกรณีของผมในฐานะวิศวกรควบคุม ผมสามารถขอ FMU ของคอมโพเนนต์หลาย ๆ ตัวจากวิศวกรระบบเพื่อทำงานด้านการปรับให้เหมาะสมได้
    FMU (Functional Mockup Unit) คือไบนารีแบบสแตนด์อโลนที่แทนระบบพลวัตซึ่งแอปพลิเคชันอื่นสามารถรันได้
    พื้นหลังของผมอยู่ฝั่ง reinforcement learning, model predictive control และ Python การที่สามารถฝังโมเดลอิงฟิสิกส์ที่เขียนด้วยภาษาเฉพาะโดเมนเข้าไปในเวิร์กโฟลว์ Python ได้จึงสะดวกมาก
    Modelica มีมุมมองต่างจากการเขียนโปรแกรมเชิงคำสั่งทั่วไปอย่าง Python/MATLAB
    เมื่อกำหนดสมการ ตัวแปร และข้อจำกัดโดยไม่ขึ้นกับลำดับ คอมไพเลอร์จะตัดสินใจเองว่าจะจำลองอย่างไร เช่น ควรแก้ตัวแปรใดก่อน
    OpenModelica พัฒนาไปมากในฐานะ implementation แบบโอเพนซอร์สของมาตรฐานภาษา แต่ในภาคอุตสาหกรรม แอปพลิเคชันกรรมสิทธิ์อย่าง Dymola ยังเหนือกว่าอยู่
    https://fmi-standard.org/
    https://fmpy.readthedocs.io/en/latest/
    https://openmodelica.org/

    • อีกทางออกหนึ่งที่กำลังมาแรงคือ ระบบนิเวศการจำลอง ของ Julia
      องค์กรเชิงพาณิชย์ที่อยู่เบื้องหลังภาษา Julia ได้รับทุนจาก DARPA เพื่อสร้างเครื่องมือเหล่านี้ และกำลังรวมกลุ่มนักวิจัยด้านการวิเคราะห์เชิงตัวเลข การคำนวณที่ขยายขนาดได้ และผู้เชี่ยวชาญโดเมนด้านการสร้างโมเดลระบบวิศวกรรมอย่างไฟฟ้าและเครื่องกลเข้าด้วยกัน
      ผมคิดว่าอนาคตของการจำลองน่าจะไปทางนี้
      https://juliahub.com/products/juliasim
      https://news.ycombinator.com/item?id=26425659
      https://docs.sciml.ai/DiffEqDocs/stable/
    • MATLAB ก็แข่งในสายงานเดียวกันนี้ด้วยไหม?
  • เป็น ภาษาแบบไม่กำหนดเหตุและผล ที่ค่อนข้างเฉพาะทาง และใช้กันอย่างแพร่หลายในมอเตอร์สปอร์ต (F1, NASCAR) สำหรับการจำลองแบบเรียลไทม์ใน driver simulator
    สเปกของภาษาเป็นโอเพนซอร์ส แต่มีคอมไพเลอร์เชิงพาณิชย์อยู่หลายตัว โดย Dymola เป็นตัวที่มีชื่อเสียงที่สุด
    ผมเขียนโค้ดด้วยภาษานี้เยอะ และความไม่กำหนดเหตุและผลของมันทรงพลังมาก
    มันทำให้โมเดลประกอบกันได้ดีมาก จนสามารถประกอบระบบกลไกเหมือนบล็อกเลโก้ แล้วสมการจะออกมาเองโดยอัตโนมัติ
    การกลับด้านโมเดลก็ทำได้ง่าย
    ถ้าเทียบในโลกโปรแกรมมิง สิ่งที่ใกล้เคียงที่สุดคือ Haskell

    • แนวทางนี้ดูน่าสนใจมาก ผมเลยเคยลองใช้มันทำโมเดล ระบบของไหล ที่ค่อนข้างซับซ้อน มีท่อ วาล์ว ถัง ฯลฯ
      แต่สุดท้ายตัวแก้สมการรับสมการที่สร้างขึ้นมาไม่ไหว และมันดูเหมือนกล่องดำที่ดีบักไม่ได้ เลยยอมแพ้
      ยังไม่ชัดเจนว่าเป็นเพราะเราทำผิดเอง หรือเพราะทางเลือกโอเพนซอร์สยังรับมือไม่ไหว
    • เห็นด้วยทั้งหมด และเดาว่าคุณน่าจะกำลังทำงานที่น่าสนใจอยู่
      ผมรู้สึกว่าสภาพแวดล้อมการสร้างโมเดลแบบไม่กำหนดเหตุและผลก็คล้ายกับระบบคำนวณเชิงสัญลักษณ์มาก
      เพราะโดยเนื้อแท้แล้วมันคือระบบพีชคณิตคอมพิวเตอร์ที่นำมาประยุกต์ใช้นั่นเอง
  • จากการดูคำอธิบายในหน้า landing page ในฐานะคนนอกวงการนี้ ผมอยากให้หน้าแรกมี ตัวอย่าง หรือลิงก์ไปยังตัวอย่าง
    ลองคลิกอยู่ราว 30 วินาที แต่ไม่เจออะไรที่ดึงดูดใจ

    • ในฐานะคนนอกที่สนใจ Modelica เมื่อหลายปีก่อนผมเริ่มสนใจภาษานี้หลังจากรู้ว่ามันสามารถเขียนสมการได้โดยตรงกว่าภาษาโปรแกรมส่วนใหญ่
      เช่น กฎแก๊สอุดมคติ PV = nRT มีตัวระบุ 5 ตัว
      ในภาษาโปรแกรมส่วนใหญ่ ฝั่งซ้ายของการกำหนดค่าต้องมีตัวแปรเพียงตัวเดียว จึงต้องเขียนประมาณ T=PV/nR และถ้าจะหาตัวแปรอื่นก็ต้องสร้างชุดสมการคล้าย ๆ กันแยกต่างหาก
      ใน Modelica คุณเขียนสมการเดียวกันด้วยสัญกรณ์คณิตศาสตร์ตามธรรมชาติได้เลย แล้วมันจะหาค่าที่ไม่รู้จากค่าที่รู้ให้
      https://mbe.modelica.university/behavior/equations/electrical/
      มากกว่านี้ผมก็ไม่ค่อยรู้แล้ว
    • ตัวอย่างอยู่ที่นี่
      ดูเหมือนเป็นเฟรมเวิร์กที่ทำให้ง่ายขึ้นสำหรับเขียนการจำลองระบบฟิสิกส์และไฟฟ้า
      https://mbe.modelica.university/
    • ลิงก์แรก “Modelica Language” มี tutorial และตัวอย่างอยู่
      ผมคลิกประมาณ 5 วินาทีก็ไปถึงส่วนนี้

      ลองพิจารณาสมการเชิงอนุพันธ์ที่ง่ายมาก:
      x = (1-X)
      เมื่อดูสมการนี้จะเห็นว่ามีตัวแปรเพียงตัวเดียวคือ x
      สมการนี้สามารถแสดงใน Modelica ได้ดังนี้:
      model FirstOrder
      Real x;
      equation
      der(x) = 1-x;
      end FirstOrder;
      โค้ดนี้เริ่มด้วยคีย์เวิร์ด model ซึ่งบ่งบอกจุดเริ่มต้นของนิยามโมเดล
      หลังคีย์เวิร์ด model จะตามด้วยชื่อโมเดล FirstOrder จากนั้นเป็นการประกาศตัวแปรทั้งหมดที่เราสนใจ
      และอื่น ๆ

    • Modelica Language -> Modelica By Example -> https://mbe.modelica.university/
      ใช้เวลาไม่ถึง 5 วินาทีก็หาเจอ
    • ดูเหมือนว่าจะขายของที่ระลึกแบรนด์ตัวเองด้วย
  • ไม่รู้ว่ามันคืออะไร
    ใน หน้าแลนดิ้งเพจ ไม่มีตัวอย่างเลยสักอัน และในลิงก์หลัก ๆ บนหน้าแลนดิ้งเพจก็ไม่มีตัวอย่างเลยสักอัน
    แต่กลับมีร้านขายของที่ระลึกที่ซื้อแก้วมัคกับฮู้ดดี้ได้ และมีโลโก้บริษัทขนาดใหญ่จำนวนมากในส่วน “organizational members”
    ถ้าสร้างอะไรขึ้นมา ก็ควรแสดงให้เห็นว่าสร้างอะไร
    ถ้าไม่ได้รู้อยู่แล้วว่าต้องใช้มัน ก็คงไม่ใช้เวลาเกิน 30 วินาทีเพื่อพยายามหาว่ามันคืออะไร
    ทำไมถึงทำให้ยากขนาดนี้นะ?

    • เห็นด้วย
      ต้องคลิกอยู่หลายครั้งกว่าจะมาถึงตรงนี้
      https://mbe.modelica.university/behavior/equations/first_order/
    • จริง ๆ แล้วคิดว่าเป็นไซต์ที่ค่อนข้างทันสมัยทีเดียว
      ลองเทียบกับ USB Consortium ดูก็ได้
      https://www.usb.org
      หรือ PCI-SIG:
      https://pcisig.com
      บางทีภาษาในการออกแบบอาจจะทันสมัยเกินไปก็ได้
      คุณอาจเข้าใจผิดว่าเป็นโปรเจกต์สตาร์ทอัพ แทนที่จะเป็นมาตรฐานอุตสาหกรรมที่มีอายุกว่า 25 ปีหรือเปล่า?
      เป็นประเด็นที่น่าคิดว่า การดูทันสมัยเกินไปอาจส่งผลเสียต่อการรับรู้และความคาดหวังได้
      ถ้าเป็นดีไซน์ไซต์ราวปี 2018 ปฏิกิริยาจะเป็นอย่างไรนะ?
      http://web.archive.org/web/20180214180117/https://www.modelica.org/
    • เพราะมันไม่ได้ทำมาสำหรับคุณ
      มันทำมาสำหรับคนที่ต้องจำลองระบบซับซ้อนแบบสหสาขา และต้องการวิธีอธิบาย·บรรจุ·แลกเปลี่ยนพฤติกรรมของระบบ
    • “Modelica is an object oriented language to model cyber-physical systems.”
      นี่คือประโยคแรกตามตัวอักษรเลย
  • ตอนนี้ที่ทำงาน ผมใช้ Modelica ร่วมกับ OpenModelica เพื่ออธิบาย ระบบแม่เหล็กไฟฟ้า อยู่ ภาษาเองก็ยอดเยี่ยม และสภาพแวดล้อมผู้ใช้แบบกราฟิกของ OpenModelica ก็ยอดเยี่ยมเช่นกัน
    บางครั้งผมมองว่ามันคล้าย SPICE สำหรับระบบหลายฟิสิกส์
    ไลบรารี Modelica ค่อนข้างเติบโตและสมบูรณ์แล้ว และตัวแก้ปัญหาเชิงตัวเลขที่รวมมากับ OpenModelica ก็แข็งแกร่งและมีประสิทธิภาพดี
    ใช้เวลาศึกษาอยู่พอสมควร แต่ตอนนี้เริ่มเห็นผลตอบแทนแล้ว
    นอกจากนี้ การที่ Modelica เป็นมาตรฐานที่มีผู้ให้บริการหลายรายนำไป implement และยังมีแอปพลิเคชันโอเพนซอร์สด้วย ก็ช่วยหลีกเลี่ยงการถูกผูกติดกับผู้ขายได้ดี
    ในมุมของวิศวกรและบริษัท ผมมองว่าเป็นเทคโนโลยีที่ลงทุนได้อย่างปลอดภัย

    • Modelica เป็นวิธีที่ยอดเยี่ยมในการทำซิมูเลชันแบบนี้
      การที่ การส่งออก FMU ตามมาตรฐาน FMI เป็นฟังก์ชันระดับ first-class ก็มีคุณค่ามาก โดยเฉพาะสำหรับผู้บูรณาการระบบ
      สามารถส่งต่อโมเดลระบบที่ถูกทำให้เข้าใจยากในระดับสมเหตุสมผลให้ฝ่ายที่ไม่น่าไว้วางใจได้ ขณะเดียวกันพวกเขาก็ยังได้รับประโยชน์จากโมเดลระบบอย่างเต็มที่
      ในด้านนี้ OpenModelica นำหน้าคู่แข่งอย่าง ModelingToolkit.jl แบบโอเพนซอร์ส รวมถึงไลบรารีที่เกี่ยวข้องอย่าง FMIExport.jl
      https://openmodelica.org/doc/OpenModelicaUsersGuide/v1.11.0/fmi.html
      https://docs.sciml.ai/ModelingToolkit/stable/
      https://github.com/ThummeTo/FMIExport.jl
    • ตอนทำงานเป็นนักศึกษาที่ Siemens ผมจำได้ว่าเคย export โครงข่ายประสาทเทียมเป็น ONNX แล้วทดสอบ FMU ที่แนบ ONNX runtime DLL ด้วย OpenModelica จากนั้นเชื่อมต่อเข้ากับ Simcenter Amesim
      เมื่อเทียบกับ API ของซอฟต์แวร์วิศวกรรมที่เก่าและแข็งทื่อแล้ว มันเป็นมาตรฐานที่ค่อนข้างดี
  • ผมเรียนจบมหาวิทยาลัยมา 4 ปีแล้ว แต่เพิ่งตอนนี้ถึงได้ลงไปในโพรงกระต่ายของ การสร้างโมเดลแบบ bond graph และกำลังศึกษาด้วยตัวเองจากโน้ตการบรรยาย MIT ของ Henry M. Paynter ขณะเดียวกันที่ทำงานก็ใช้ Simscape สร้างโมเดลระบบยานยนต์อยู่
    ผมเข้าใจว่า Modelica และ Simscape ใช้ bond graph เป็นกลไกพื้นฐาน ไม่รู้ว่าเข้าใจถูกไหม
    ถ้ามีผู้เชี่ยวชาญในสาขานี้ช่วยชี้ทางให้หน่อยก็คงดี
    ตอนนี้ผมเชื่อว่าถ้าเข้าใจทฤษฎี bond graph แล้ว จะเข้าใจแทบทุกระบบที่ผมทำงานด้วยได้อย่างเป็นสัญชาตญาณ
    น่าสนใจด้วยที่สาขานี้กลับค่อนข้างเฉพาะกลุ่ม
    เพื่อนร่วมงานรอบตัวส่วนใหญ่ไม่ได้ใส่ใจเป็นพิเศษ แต่พอผมได้รู้จักมัน มันดูเหมือนกระสุนวิเศษสำหรับทุกปัญหาของผม
    https://dirac.ruc.dk/~heine/paynter/analysis_and_design_of_engineering_systems_henry_m_paynter.pdf

    • ผมไม่เห็นด้วยว่า bond graph เป็น “กลไกพื้นฐาน” ของ Modelica
      จริง ๆ แล้วคอมมูนิตี้ Modelica กับคอมมูนิตี้ bond graph มีแง่ที่ค่อนข้างขัดแย้งกันอยู่บ้าง
      จุดยืนของผมในเรื่องนี้อยู่ใน [1] และ [2]
      ผมไม่เห็นด้วยเช่นกันกับแนวคิดที่ว่า bond graph จะทำให้เข้าใจแทบทุกระบบได้อย่างเป็นสัญชาตญาณ
      สิ่งที่คุณจะได้คือความซาบซึ้งในความสง่างามของการจัดรูปแบบแบบ bond graph
      แต่จากประสบการณ์สร้างโมเดลในอุตสาหกรรม 30 ปี อุปมาที่ดึงออกมาจากตรงนั้นนั้นผิวเผินมาก
      พอเกินกว่าองค์ประกอบแบบพาสซีฟและเชิงเส้น อุปมาทั้งหมดก็พังลง
      ตัวอย่างเช่น จะเกิดคำถามอย่างทำไมระบบความร้อนจึงไม่มีโมเมนตัม, ถ้ามีของไหลอัดตัวได้จะเป็นอย่างไร, หรือสิ่งที่เทียบเท่ากับคลัตช์ในระบบไฟฟ้าคืออะไร
      bond graph ไม่ได้เป็นแบบไร้สาเหตุจริง ๆ และเป็นเพียงการจัดรูปแบบเชิงสาเหตุอีกแบบหนึ่งที่ใกล้กับฟิสิกส์มากกว่าเท่านั้น
      แฟน ๆ bond graph คงไม่เห็นด้วยแน่นอน แต่นี่เป็นการแบ่งปันมุมมองส่วนตัวและเชิงอัตวิสัยของผม
      https://www.linkedin.com/feed/update/urn:li:ugcPost:7272516319944589312?commentUrn=urn%3Ali%3Acomment%3A%28ugcPost%3A7272516319944589312%2C7272661328605900801%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287272661328605900801%2Curn%3Ali%3AugcPost%3A7272516319944589312%29
      https://mbe.modelica.university/components/connectors/simple_domains/
  • บทความที่เกี่ยวข้อง:
    All about Modelica: An equation-based language for modeling physical systems - https://news.ycombinator.com/item?id=23690788 - มิถุนายน 2020, 44 ความคิดเห็น
    Modelica - https://news.ycombinator.com/item?id=16013179 - ธันวาคม 2017, 12 ความคิดเห็น

  • +1 ให้ ModelingToolkit.jl
    มันนำสิ่งที่เรียนรู้จาก Modelica มาใช้ และทำงานด้วยแล้วสนุก

  • ตามที่ผมเข้าใจ นี่เป็นภาษาที่ใช้อธิบาย “ระบบ” ในลักษณะที่ค่อนข้างทั่วไป และระบบสามารถถูกสร้างโมเดลด้วย สมการเชิงอนุพันธ์ หรือสมการแบบไม่ต่อเนื่อง (if/then/else) ได้
    ถ้าทั่วไปได้เพียงพอก็ยอดเยี่ยมมาก
    แต่ส่วนที่น่าสนใจกว่านั้นคือระเบียบวิธีทั่วไปในการรันการจำลองระบบแบบอิงเวลาเหล่านั้นจริง ๆ
    โดยเฉพาะอย่างยิ่งถ้าเราสามารถอธิบายสมการเชิงอนุพันธ์ที่ซับซ้อนตามอำเภอใจได้ ไม่ใช่แค่การอินทิเกรตหรือการสุ่มตัวอย่างแบบ Monte Carlo อย่างหว่านแห

    • คำตอบเชิงตัวเลข ของสมการเชิงอนุพันธ์สามัญและสมการเชิงอนุพันธ์-พีชคณิตเป็นสาขาที่มีวิธีการดี ๆ อยู่มากมาย
  • จะขาด OpenModelica ซึ่งเป็นการใช้งานแบบโอเพนซอร์สที่อิงภาษา Modelica ไปไม่ได้เช่นกัน
    ยังไม่เคยลองใช้ แต่ตั้งใจจะดูฟีเจอร์บางอย่างในวันหยุดนี้
    https://openmodelica.org/

    • ถ้าคิดจะลองดู OpenModelica ก็อาจชอบ ModelingToolkit.jl ด้วย
      https://docs.sciml.ai/ModelingToolkit/dev/
      ยังมีโปรเจกต์ของ Hilding Elmqvist ผู้เคยทำงานกับ Dassault ใน Dymola ซึ่งเป็น implementation เชิงพาณิชย์ตัวแทนของ Modelica
      โปรเจกต์ของเขาคือ Modia.jl
      https://github.com/ModiaSim/Modia.jl
      โดยส่วนตัวรู้สึกว่าชุมชน Julia กำลังไปรวมกันที่ MTK แต่ในช่วงแรก ๆ ของการจำลองระบบพลวัตใน Julia นั้น Modia นำหน้าอยู่ และมองว่า MTK ได้แรงบันดาลใจมามากทั้งจาก Modia และ Modelica
      Modia ใช้งานได้ลื่นกว่าเล็กน้อย และรวมสิ่งอย่าง 3D viewer กับแพ็กเกจ multibody แบบครบถ้วนไว้ก่อนหลายปี ส่วน Julia Computing เพิ่งกำลังไล่ตามทัน
      MTK รองรับ backend solver ได้ดีกว่า และมีโอกาสแซง Modia ได้มาก
      โดยเฉพาะเพราะดูเหมือนความถี่ในการออกรุ่นของ Modia จะช้าลง
      https://github.com/JuliaComputing/Multibody.jl

    • จากมุมมองที่เคยใช้ในที่ทำงาน ความเห็นสั้น ๆ ของผมต่อเวอร์ชันเสียเงินคือ: อยู่ให้ห่าง หนีไปให้ไกล
      ทำอะไรได้ไม่มากไปกว่า SPICE ฟรีสักเท่าไร ไลเซนส์ก็ซับซ้อน และบั๊กเยอะ
      เหมือน LabVIEW แห่งวงการ simulation
      ส่วนเวอร์ชันฟรีไม่เคยลองใช้

    • ผมกับเพื่อนร่วมงานได้พัฒนาภาษาแบบจำลองระบบพลวัตสำหรับระบบพลวัตไฮบริดชื่อ NESTML
      ในที่นี้ ระบบพลวัตไฮบริดหมายถึงระบบที่มีทั้งพลวัตเวลาอย่างต่อเนื่องซึ่งแสดงด้วยสมการอนุพันธ์สามัญ และการรับส่งเหตุการณ์แบบไม่ต่อเนื่องที่เกิดขึ้นทันทีตามเวลา
      เราพยายามลดไวยากรณ์ให้เหลือน้อยที่สุด จึงเขียนโมเดลได้กระชับมาก
      ตัวอย่างเช่น:
      model lorenz_attractor:

      state:
      x real = 1
      y real = 1
      z real = 1

      equations:
      x' = sigma * (y - x) / s
      y' = (x * (rho - z) - y) / s
      z' = (x * y - beta * z) / s

      update:
      integrate_odes()

      parameters:
      sigma real = 10
      beta real = 8/3
      rho real = 28

      สำหรับ event มีไวยากรณ์อย่าง "onReceive(in_port_name)" และ "emit_spike()"
      แนวการตั้งชื่อได้รับอิทธิพลค่อนข้างมากจากโดเมนการประยุกต์ใช้ด้านประสาทวิทยาศาสตร์
      แม้ยังอยู่ระหว่างพัฒนา แต่ก็มีแอปพลิเคชันเจ๋ง ๆ แล้ว เช่น spiking neural network ที่เรียนรู้แล้วเล่นลำดับซ้ำ
      https://nestml.readthedocs.io/en/latest/tutorials/sequence_learning/sequence_learning.html
      พูดตรง ๆ ว่าตอนเริ่มพัฒนา NESTML ผมแปลกใจที่ยังไม่มีของแบบนี้อยู่ก่อนแล้ว
      Modelica คล้ายกัน แต่ดูเหมือนจะไม่รองรับเหตุการณ์แบบไม่ต่อเนื่อง
      รู้ว่าเป็นการโปรโมตอย่างโจ่งแจ้ง แต่จริง ๆ แล้วยินดีรับคอมเมนต์และฟีดแบ็กมาก
      การพัฒนาทั้งหมดทำแบบเปิดบน GitHub และใช้ไลเซนส์ GPL
      ถ้าใครรู้จักภาษาเฉพาะโดเมนที่คล้ายกัน ก็อยากอ่านคอมเมนต์ครับ