ฉันเป็นคนใหม่ของ Simulink ฉันต้องการจะทำค่าเฉลี่ยของข้อมูลขาเข้า (ซึ่งจะมาหลังจากช่วงเวลาหนึ่ง) จากบล็อกหนึ่ง ตัวอย่างเช่นข้อมูลแบบกรอบ 42 ตัวอย่างจากกรอบเดียว พร้อมกับข้อมูลที่มีกรอบจะมีเอาต์พุตอื่น ๆ (แท็ก) ซึ่งบอกว่า framesamples เหล่านี้อยู่ในหมวดหมู่ใด แท็กคือตัวเลขตั้งแต่ 1-6 เอาต์พุตเป็นแบบสุ่ม ฉันต้องการเฉลี่ยข้อมูลประเภทเดียวกัน เช่นเดียวกับเฟรมแรกคือ cat1 หลังจากเฟรม cat1 อีก 4 เฟรมมาอีกครั้ง ตอนนี้ฉันควรจะเฉลี่ยเฟรมใหม่นี้อย่างไรกับก่อนหน้านี้ที่ฉันต้องการทำเช่นนี้สำหรับทุกหมวดหมู่ กรุณาช่วยฉันในเรื่องนี้ ถาม 26 มีนาคม 14 เวลา 13:35 วิธีแก้ไขปัญหาที่รวดเร็วและสกปรกน่าจะเป็นการใช้ arraylist สำหรับแต่ละประเภท เริ่มต้นรายการด้วย NaN และเก็บข้อมูลตัวนับสำหรับตัวอย่างล่าสุดจากแต่ละหมวด การใช้ฟังก์ชัน Mean คุณจะได้ค่าเฉลี่ยของการวัดทั้งหมด ถ้าคุณเพียงแค่ต้องการค่าเฉลี่ยของเฟรมปัจจุบันและเฟรมก่อนหน้านี้คุณสามารถทำค่าเฉลี่ย (cat1 (n1) cat1 (n11)) โดยที่ cat1 เป็น arraylist สำหรับเฟรมจากหมวด 1 และ n1 เป็นดัชนีของเฟรมก่อนหน้าใน cat1 . หากคุณต้องการค่าเฉลี่ยเคลื่อนที่ที่ถ่วงน้ำหนักสำหรับการใช้งานแบบเรียลไทม์ให้สร้างตัวแปรเฉลี่ยสำหรับแต่ละหมวดหมู่ (เรียกว่า av1, av2 ฯลฯ ) และคำนวณ av1 alphaav1 (1-alpha) cat1 (n11) (โดยที่ alpha เป็นน้ำหนักที่กำหนด (alphalt1) และ cat1 (n11) เป็นค่าวัดใหม่) เมื่อใดก็ตามที่มีเฟรม cat1 เข้ามา ตอบ 26 มีนาคมที่ 17: 39 ค่าเฉลี่ยเคลื่อนที่ที่ถ่วงน้ำหนัก (ล้าสมัย) หมายเหตุ: บล็อกน้ำหนักถ่วงน้ำหนักที่ล้าสมัย บล็อกนี้ถูกลบออกจากไลบรารี Discrete ใน R2008a และแทนที่ด้วยบล็อก Discrete FIR Filter อย่างไรก็ตามโมเดลที่มีอยู่ซึ่งมีบล็อก Weighted Moving Average ยังคงทำงานต่อไปได้สำหรับความเข้ากันได้ย้อนหลัง ใช้แผ่นกรอง Discrete FIR Filter ในรุ่นใหม่ พิจารณาใช้ฟังก์ชัน slupdate เพื่อแทนที่ Average Weighted Moving Average กับ Discrete FIR Filter ในโมเดลที่มีอยู่ ตัวอย่างบล็อกน้ำหนักเฉลี่ยถ่วงน้ำหนักและเก็บข้อมูลอินพุต N ล่าสุดให้คูณการป้อนข้อมูลแต่ละครั้งตามค่าที่ระบุ (กำหนดโดยพารามิเตอร์ Weights) และวางไว้ในเวกเตอร์ บล็อกนี้รองรับทั้งโหมดป้อนข้อมูลเดี่ยว (SISO) และ single-inputmulti-output (SIMO) สำหรับโหมด SISO พารามิเตอร์ Weights จะถูกระบุเป็นเวกเตอร์แถว สำหรับโหมด SIMO น้ำหนักจะถูกระบุเป็นเมทริกซ์ที่แต่ละแถวสอดคล้องกับเอาต์พุตที่แยกออกมา คุณสามารถเลือกว่าจะระบุชนิดข้อมูลและการปรับขนาดของน้ำหนักในไดอะล็อกพร้อมกับพารามิเตอร์ชนิดข้อมูลรับ พารามิเตอร์เงื่อนไขเริ่มต้นจะแสดงค่าเริ่มต้นสำหรับทุกครั้งก่อนเวลาเริ่มต้น คุณระบุช่วงเวลาระหว่างตัวอย่างที่มีพารามิเตอร์เวลาตัวอย่าง บล็อก Weighted Moving Average จะคูณอินพุทโดยใช้พารามิเตอร์ Weights ซึ่งจะแปลงผลลัพธ์เหล่านี้ให้เป็นชนิดข้อมูลขาออกโดยใช้โหมดการปัดเศษและการไหลล้นที่ระบุและดำเนินการบวก การสนับสนุนประเภทข้อมูลบล็อกการถ่วงน้ำหนักที่ถ่วงน้ำหนักรองรับประเภทข้อมูลที่เป็นตัวเลขทั้งหมดที่สนับสนุน Simulink x00AE รวมถึงประเภทข้อมูลจุดคงที่ พารามิเตอร์ระบุน้ำหนักของค่าเฉลี่ยเคลื่อนที่หนึ่งแถวต่อหนึ่งเอาท์พุท พารามิเตอร์ Weights ถูกแปลงจากคู่เป็นประเภทข้อมูลที่ระบุแบบออฟไลน์โดยใช้ความใกล้เคียงและความอิ่มตัว ระบุค่าเริ่มต้นสำหรับทุกครั้งก่อนเวลาเริ่มต้น พารามิเตอร์สภาวะเริ่มต้นจะถูกแปลงจากข้อมูลคู่ผสมเป็นประเภทข้อมูลอินพุทแบบออฟไลน์โดยใช้ความใกล้เคียงและความอิ่มตัว ระบุช่วงเวลาระหว่างตัวอย่าง เมื่อต้องการสืบทอดเวลาตัวอย่างให้ตั้งค่าพารามิเตอร์นี้เป็น -1 ดูระบุเวลาในเอกสารออนไลน์สำหรับข้อมูลเพิ่มเติม ชนิดข้อมูลเอาต์พุตระบุชนิดข้อมูลขาออก คุณสามารถตั้งค่าให้เป็น: กฎที่สืบทอดชนิดข้อมูลตัวอย่างเช่นสืบทอด: สืบทอดผ่านการเผยแพร่กลับชื่อของอ็อบเจ็กต์ชนิดข้อมูลเช่นอ็อบเจ็กต์ Simulink. NumericType นิพจน์ที่ประเมินถึงชนิดข้อมูลเช่น , fixdt (1,16,0) คลิกที่ปุ่มแสดงข้อมูลผู้ช่วยประเภทเพื่อแสดงข้อมูลผู้ช่วยประเภทข้อมูล ซึ่งช่วยให้คุณสามารถตั้งค่าพารามิเตอร์ชนิดข้อมูลผลลัพธ์ ล็อคการปรับมาตราส่วนเอาท์พุทกับการเปลี่ยนแปลงโดยใช้เครื่องมือการปรับเทียบอัตโนมัติเลือกเพื่อล็อคการปรับขนาดของเอาต์พุตกับการเปลี่ยนแปลงโดยใช้เครื่องมือ Fixed-Point Tool โหมดการปัดเศษเป็นจำนวนเต็มสำหรับเอาต์พุตแบบกำหนดจุด สำหรับข้อมูลเพิ่มเติมให้ดูที่การปัดเศษ อิ่มตัวสูงสุดหรือต่ำสุดเมื่อเกิดล้นถ้าเลือกล้นล้นจุดคงที่อิ่มตัว มิฉะนั้นพวกเขาห่อ ระบุชนิดข้อมูลของพารามิเตอร์ Weights คุณสามารถตั้งค่าให้เป็น: กฎที่สืบทอดชนิดข้อมูลตัวอย่างเช่นสืบทอด: สืบทอดผ่านกฎภายในชื่อของอ็อบเจ็กต์ชนิดข้อมูลเช่นอ็อบเจ็กต์ Simulink. NumericType นิพจน์ที่ประเมินถึงชนิดข้อมูลตัวอย่างเช่น , fixdt (1,16,0) คลิกที่ปุ่มแสดงข้อมูลผู้ช่วยประเภทเพื่อแสดงข้อมูลผู้ช่วยประเภทข้อมูล ซึ่งช่วยให้คุณสามารถตั้งค่าพารามิเตอร์ชนิดข้อมูลรับได้ สมมติว่าคุณต้องการกำหนดค่าบล็อคนี้สำหรับเอาท์พุทสองรายการ (โหมด SIMO) โดยที่ผลลัพธ์แรกจะได้จาก y 1 (k) a 1 x22C5 u (k) b 1 x22C5 (ดูระบุประเภทข้อมูลโดยใช้ Data Type Assistant สำหรับข้อมูลเพิ่มเติม) (k x2212 1) c 1 x22C5 u (k x2212 2) เอาท์พุทที่สองให้โดย y 2 (k) a 2 x22C5 u (k) b 2 x22C5 u (k x2212 1) และค่าเริ่มต้นของ u (k - 1) และ u (k - 2) ให้โดย ic1 และ ic2 ตามลำดับ ในการกำหนดค่าบล็อก Weighted Moving Average สำหรับกรณีนี้คุณต้องระบุพารามิเตอร์ Weights เป็น a1 b1 c1 a2 b2 c2 โดย c2 0 และพารามิเตอร์เงื่อนไขเริ่มต้นเป็น ic1 ic2 คุณสมบัติ 8212 วิธีการเฉลี่ยวิธีการเลื่อนลอยหน้าต่างเลื่อน (ค่าเริ่มต้น) การถ่วงน้ำหนักที่ชี้แจงหน้าต่างบานเลื่อน 8212 หน้าต่างความยาวความยาวของหน้าต่างจะเลื่อนไปตามข้อมูลการป้อนข้อมูลตามแต่ละช่อง สำหรับทุกตัวอย่างหน้าต่างจะเคลื่อนที่โดยบล็อกจะคำนวณค่าเฉลี่ยของข้อมูลในหน้าต่าง การแจกแจงแบบยกกำลัง 8212 ตัวคูณจะคูณตัวอย่างด้วยชุดของปัจจัยการถ่วงน้ำหนัก ความสำคัญของปัจจัยการถ่วงน้ำหนักลดลงอย่างมากเมื่ออายุของข้อมูลเพิ่มขึ้นไม่ถึงศูนย์ ในการคำนวณค่าเฉลี่ยอัลกอริทึมจะสรุปข้อมูลที่ถ่วงน้ำหนัก ระบุความยาวของหน้าต่าง 8212 แฟล็กเพื่อระบุความยาวของหน้าต่างที่ (ค่าดีฟอลต์) ปิดเมื่อคุณเลือกกล่องกาเครื่องหมายนี้ความยาวของหน้าต่างเลื่อนเท่ากับค่าที่คุณระบุในความยาวของหน้าต่าง เมื่อคุณล้างกล่องกาเครื่องหมายนี้ความยาวของหน้าต่างเลื่อนจะไม่มีที่สิ้นสุด ในโหมดนี้บล็อกคำนวณค่าเฉลี่ยของตัวอย่างปัจจุบันและตัวอย่างก่อนหน้าทั้งหมดในช่อง ความยาวของหน้าต่าง 8212 ความยาวของหน้าต่างบานเลื่อน 4 (ค่าเริ่มต้น) จำนวนเต็มบวกที่เป็นบวกความยาวของหน้าต่างระบุความยาวของหน้าต่างบานเลื่อน พารามิเตอร์นี้จะปรากฏขึ้นเมื่อคุณเลือกกล่องกาเครื่องหมายระบุความยาวของหน้าต่าง ตัวนับลืม 8212 ปัจจัยการถ่วงน้ำหนักแบบอาร์กิวเมนต์ 0.9 (ค่าเริ่มต้น) บวกจริงในช่วง (0.1 พารามิเตอร์นี้ใช้เมื่อคุณตั้งค่าวิธีการให้น้ำหนักถ่วงน้ำหนักปัจจัยการลืม 0.9 ให้น้ำหนักมากกว่าข้อมูลเก่ากว่าปัจจัยการลืม 0.1 ปัจจัยการลืมของ 1.0 แสดงถึงหน่วยความจำแบบไม่มีที่สิ้นสุดตัวอย่างก่อนหน้าทั้งหมดจะได้รับน้ำหนักเท่ากันพารามิเตอร์นี้สามารถปรับได้คุณสามารถเปลี่ยนค่าได้แม้ในระหว่างการจำลองการจำลองโดยใช้ 8212 ประเภทของการจำลองเพื่อเรียกใช้การสร้างโค้ด (ดีฟอลต์) การตีความการดำเนินการจำลอง โดยใช้รหัส C ที่สร้างขึ้นครั้งแรกที่คุณเรียกใช้การจำลอง Simulink x00AE สร้างโค้ด C สำหรับบล็อกโค้ด C จะถูกนำมาใช้ซ้ำสำหรับการจำลองตามมาตราบใดที่โมเดลไม่เปลี่ยนแปลงตัวเลือกนี้ต้องการเวลาเริ่มต้นเพิ่มเติม แต่ให้เร็วขึ้น ความเร็วในการจำลองมากกว่าการแปลผลจำลองโดยใช้ตัวแปลล่าม x00AE ของ MATLAB ตัวเลือกนี้จะลดเวลาในการเริ่มต้น แต่มีความเร็วในการจำลองช้ากว่ารหัส รุ่น ข้อมูลเพิ่มเติมเกี่ยวกับอัลกอริทึมการเลื่อนหน้าต่างวิธีการในวิธีการของหน้าต่างแบบเลื่อนออกผลลัพธ์สำหรับแต่ละอินพุทคือค่าเฉลี่ยของตัวอย่างปัจจุบันและตัวอย่างก่อนหน้า Len-1 Len คือความยาวของหน้าต่าง ในการคำนวณผลลัพท์แรกของ Len - 1 เมื่อหน้าต่างไม่มีข้อมูลเพียงพอขั้นตอนวิธีจะเติมหน้าต่างด้วยศูนย์ ตัวอย่างเช่นในการคำนวณค่าเฉลี่ยเมื่อป้อนข้อมูลตัวอย่างที่สองเข้ามาอัลกอริทึมจะเติมหน้าต่างด้วยค่า Len-2 zeros เวกเตอร์ข้อมูล x เป็นตัวอย่างข้อมูลสองชุดตามด้วย Len - 2 zeros เมื่อคุณตั้งค่าคุณสมบัติ SpecifyWindowLength เป็น false อัลกอริทึมจะเลือกความยาวของหน้าต่างที่ไม่มีที่สิ้นสุด ในโหมดนี้ผลลัพธ์คือค่าเฉลี่ยเคลื่อนที่ของตัวอย่างปัจจุบันและตัวอย่างก่อนหน้าทั้งหมดในช่อง วิธีการถ่วงน้ำหนักแบบเสวนา (Exponential Weighting Method) ในวิธีการถ่วงน้ำหนักแบบเสวนาค่าเฉลี่ยเคลื่อนที่จะคำนวณโดยใช้สูตรดังต่อไปนี้: w N. x03BB x03BB ใน N x2212 1. x03BB 1. x x00AF N. x03BB (1 x2212 1 w N. x03BB) x x00AF N x2212 1. x03BB (1 n N. x03BB) x N x x00AF N. x03BB 8212 ค่าเฉลี่ยเคลื่อนที่ที่ตัวอย่างปัจจุบัน x N 8212 ตัวอย่างข้อมูลปัจจุบัน x x00AF N x2212 1. x03BB 8212 ค่าเฉลี่ยเคลื่อนที่ที่ตัวอย่างก่อนหน้า 955 8212 การลืมค่า w N. x03BB 8212 ปัจจัยการถ่วงน้ำหนักที่ใช้กับตัวอย่างข้อมูลปัจจุบัน (1 x2212 1 w N. x03BB) x x00AF N x2212 1. x03BB 8212 ผลของข้อมูลก่อนหน้านี้โดยเฉลี่ยสำหรับตัวอย่างแรกที่ N 1 ขั้นตอนวิธีเลือก w N. x03BB 1. สำหรับตัวอย่างถัดไปจะมีการปรับปรุงข้อมูลและใช้ค่าน้ำหนักถ่วงน้ำหนักตามสมการ recursive เมื่ออายุของข้อมูลเพิ่มขึ้นขนาดของปัจจัยการถ่วงน้ำหนักลดลงอย่างมากและไม่ถึงศูนย์ กล่าวอีกนัยหนึ่งข้อมูลล่าสุดมีอิทธิพลต่อค่าเฉลี่ยปัจจุบันมากกว่าข้อมูลที่เก่ากว่า ค่าของปัจจัยการลืมกำหนดอัตราการเปลี่ยนแปลงของปัจจัยการถ่วงน้ำหนัก ปัจจัยที่ทำให้ลืม 0.9 จะให้น้ำหนักแก่ข้อมูลเก่ามากกว่าปัจจัยที่ลืม 0.1 ปัจจัยที่ลืม 1.0 แสดงถึงหน่วยความจำแบบไม่มีที่สิ้นสุด ตัวอย่างทั้งหมดก่อนหน้านี้มีน้ำหนักเท่ากัน วัตถุระบบเลือก Countrysimulink MATLAB ของคุณ S - ฟังก์ชั่นแอมป์เป็นเอกสาร Hi - ฉันมีการจำลองเวลาอย่างต่อเนื่องที่ฉันใช้ห่วงสำหรับ ฉันต้องการเรียกใช้ฟังก์ชัน S-MATLAB สำหรับการวนซ้ำของลูปสำหรับแต่ละรอบและลูปสำหรับตัวเรียกเองถูกเรียกใช้สำหรับแต่ละขั้นตอนเวลาของโมเดล ฉันจำเป็นต้องกำหนดพารามิเตอร์ block. SampleTimes และถ้าเป็นเช่นนั้นควรตั้งค่าอะไรเป็น Secondly ฉันได้อ่านเอกสารเกี่ยวกับฟังก์ชัน S-level ของ Level 2 และพบว่ามันไม่ได้อธิบายถึงตัวเลือกและการใช้โครงสร้างข้อมูลทั้งหมดเช่น 39block39 ตัวอย่างเช่นในไฟล์ตัวอย่าง msfcnvs. m, บล็อกเอาท์พุทมีลอจิกต่อไปนี้: block. NextTimeHit block. Curre ความช่วยเหลือเกี่ยวกับ M-file S-Functions (level2) หรือ Matlab ฝังตัวฟังก์ชันใน Simulink สวัสดีมีคำแนะนำใด ๆ เกี่ยวกับในเว็บไซต์ใด ๆ (ฉันลาดเทหา mathworks) 1) Building S - ฟังก์ชัน (Simulink บล็อก) โดยระดับ 2 m ไฟล์ 2) การสร้าง Matlab Embedded function หากมีข้อมูลใด ๆ ที่เกี่ยวข้องกรุณาส่งมาที่ shahzafiyahoo ขอบคุณถ้าคุณมี MATLAB ติดตั้งให้ลองเรียกใช้ sfundemos On Sun, 30 March 2008 02:58:13 -0400 Syed Shah Sindhi ltshahzafiyahoogt เขียน : gt สวัสดีมีคำแนะนำใด ๆ เกี่ยวกับในเว็บไซต์ใด ๆ (I cant gt ค้นหา mathworks) gt gt 1) Building S-functions (Simu S-Function ใน MatlabSimulink สวัสดีทุกคนมี experinec usinghad คนใดคนหนึ่งด้วย: S-Function ใน MatlabSimulink ถ้าเป็นเช่นนั้น .. ฉันต้องการความช่วยเหลือมากกว่าที่นี่โดยทั่วไปสิ่งที่ฉัน tryinmg ทำคือการเปลี่ยนระบบควบคุมการบินที่มีอยู่ (ของเครื่องบินใน simulinkMatlab envirement) โดยใหม่ (bit ซับซ้อนมากขึ้น.) ระบบควบคุมการบินที่ได้รับการออกแบบโดย Simulink Blocks S-fun ทั้งสองแบบ ctions รอความช่วยเหลือจากพวกคุณขอแสดงความนับถือ Mimi บล็อก S-Function ใน Simulink ช่วยให้ modelers สามารถนำเข้าฟังก์ชันการทำงานที่กำหนดเองลงในแบบจำลองของพวกเขาได้และฟังก์ชันของ SIMULINK-MATLAB s-functions ฉันเป็นสามเณรฉันสร้างรูปแบบ SIMULINK ที่ฉันต้องการมีไฟล์ MATLAB เป็น subsytems (เพื่อให้ง่ายต่อการคำนวณของฉัน) I39m บอกฉันต้องใช้ s-filesM2 MATLAB ไฟล์ฉันจะทำอย่างไร นี้ยังฉันอ่านในบล็อกอ้างอิงห้องสมุด - นี้เป็นสิ่งเดียวกับตัวแปรทั่วโลกใน C นอกจากนี้ฉันจะทำให้ทุกตัวแปรของฉันยาว (ตลอดทั้งระบบ) - ฉัน don39t ต้องการกำหนดตัวแปรแต่ละตัวเป็นเวลานาน ขอขอบคุณ S-function ใน SimulinkMatlab สวัสดี S-function ใน SimulinkMatlab ไม่มีใครแก้ ODE ใน S ฟังก์ชันในบล็อก Simulink C แทน matlab m-files ขอบคุณ Moving Average ใน S-functions สวัสดีทุก I39m ทำงานกับ Simulink และฉันมีรถรุ่นที่เข้ารหัสด้วย S-functions bloc ks. The บล็อกประกอบด้วยไฟล์ c-mex ดังนั้นเราจึงไม่สามารถใช้ฟังก์ชัน Matlab เช่น (mean, length, sum ฯลฯ ) เช่นเดียวกับที่เราสามารถทำใน Matlab ฝัง Function เอาท์พุทที่ได้รับ i39m ซึ่งเป็นประเภทสเกลารเปนฟงกชันที่เปลี่ยนแปลงไปตามเวลา ดังนั้นเมื่อฉันเชื่อมโยงผลเหล่านี้ไป Scopes, i39m ได้รับเส้นโค้งตลอดเวลาจำลอง. ปัญหาคือฉันต้องค่าเฉลี่ยของผลลัพธ์เหล่านี้ในรูปแบบของฉันดังนั้นฉันต้องสามารถค่าเฉลี่ยของผลลัพธ์เหล่านี้ ตัวอย่างเช่นฉันมีเอาท์พุท แปลง C-Mex S-Function เพื่อ Matlab S-function สวัสดีทุกคนทราบว่าเป็นไปได้ในการแปลง s-function เขียน C เพื่อ Matlab Thanks Regards Matlab-Simulink: mfile ไปยัง s-function สวัสดีฉันได้ใช้ MATLAB เพื่อ writte programm (m-file) ฉันจะใช้นี้ใน s-function กับ simulink m-file ของฉันมี 2 พารามิเตอร์เข้า และฉันมีเมทริกซ์ในการส่งออกวิธีการรวมถึง m39y m-file ใน s - ฟังก์ชันเมื่อฉันพยายามที่จะทำมันฉันมีข้อผิดพลาดข้อความขอบคุณสำหรับความช่วยเหลือและ 39scuse ของคุณสำหรับภาษาอังกฤษของฉัน Phil Hi Phil แทนการใช้ S - บางทีคุณอาจใช้ MATLAB Embedded Function block ได้ Titus quotophildeleauquot ltophildeleaunetscapegt schrieb im Newsbeitrag news: 1129020696.388035.101440g47g2000cwa. googlegroups gt ฉันใช้ gt ฉัน สวัสดีฉันใช้ matalb และ simulink. ตอนนี้ฉันต้องการเขียนฟังก์ชันใน simulink ฉันเพิ่มบล็อคฟังก์ชัน matalb ในโมเดลของฉัน ตอนนี้ฉันต้องการใช้ค่าจาก input และหา pf เฉลี่ยหกค่ามาเป็น input. โปรดช่วยฉัน ขอบคุณล่วงหน้า. มีวัตถุประสงค์เพื่อเรียนรู้วิธีการรวมฟังก์ชัน MATLAB เข้ากับ Simulink หรือเพื่อคำนวณค่าเฉลี่ยหากอดีตดูที่เอกสารสำหรับบล็อกฟังก์ชัน MATLAB ที่ฝังอยู่ (โดยเฉพาะการอ้างอิงถึงบิตเกี่ยวกับตัวแปร quotpersistentquot) หรือดีกว่า ยังอ่านวิธีการเขียน S-Functions documentati เรียกฟังก์ชัน Matlab จาก mex (ป้อนข้อมูลของฟังก์ชัน MATLAB เป็นสตริง) นี่คือโค้ด mex ของฉัน: void mexFunction (int nlhs, pls mxArray, int nrhs, const mxArray prhs) สร้างตัวชี้ mxArray mxArray mxerr สำเนา errBuff เพื่อ mxArray mxerr mxCreateString (errBuff) initialize mxArray กับอาร์เรย์ char errBuff กลับไปยังฟังก์ชั่น MATLAB เรียกเมทเลต์ฟังก์ชัน mexCallMATLAB (0, NULL, 1, mxerr, quoterrorCatcherquot) ทำลาย mxArray mxDestroyArray (mxerr) ทำลาย mxArray printf (quotdestroyed mex arraynquot) end of myxFunction errorCatcher ยอมรับสตริงอินพุต Simulink s-function: มีวิธีการรู้ลำดับการดำเนินการภายใน s-function ฉันมีข้อสงสัยว่าเมื่อ simulink ตรวจสอบการดำเนินการสั่งซื้อจะไม่สามารถเข้าถึงได้จาก s-functions ฉันแค่อยากรู้ว่าฉันผิดไหม หวังว่าอย่างนั้น. - juha ps คำสั่งในการดำเนินการ (หรือเรียงลำดับ) จะถูกตรวจสอบในตอนต้นของการจำลองถ้าเลือกรูปแบบรายการเมนู simulink-gtexecution Order Simulink, S-functions เรียกไลบรารี Lapack จากไลบรารีเรียกว่า S-function สวัสดีเพื่อนผู้ใช้ Simulink ฉันกำลังพัฒนา C-S บางฟังก์ชันซึ่งเรียกใช้ไลบรารี C ภายนอกเพื่อคำนวณทางกายภาพ การส่งออกของไลบรารีตรงกับวิธีการหลักที่ใช้โดยสภาพแวดล้อมรันไทม์ (excerpt จากไฟล์ส่วนหัวของไลบรารี) declspec (dllexport) static MyPhisicalBlock create (void) declspec (dllexport) void setparameters (double foo, double bar) declspec (dllexport) ผลเป็นโมฆะ (const double const in1, double out1, double out2r) declspec (dllexport) เป็นโมฆะตราสารอนุพันธ์ (c. Simulink quotS-functionquots แบบไดนามิกเชื่อมโยงกับฟังก์ชัน C สามัญสวัสดีมันเป็นไปได้ที่จะเขียนฟังก์ชัน C - ทั่วไปรวบรวมไว้ในห้องสมุด (บางที 39dll39 ใน Windows) แล้วเชื่อมโยงไปยัง S ฟังก์ชัน (เขียนใน C) ที่รันไทม์ตัวอย่างเช่นมีตัวกรอง FIR แบบพิเศษที่ใช้เป็นฟังก์ชันมาตรฐาน C ซึ่งจะถูกใช้โดยวิธีการเรียกกลับ 39mdlOutput39 ของฟังก์ชัน S ที่แตกต่างกันโดยใช้บล็อก Simulink ที่ต่างกันมีอยู่หรือไม่ วิธีการใด ๆ เพื่อให้ฟังก์ชั่นนี้สามารถใช้ร่วมกันโดยทั้งหมดเหล่านี้ S-functions Simulink 39Moving เฉลี่ย 39 รหัสเทียบเท่าใน Matlab เรียนทั้งหมดฉันได้เขียนรหัส 39Moving เฉลี่ย 39 ใน MATLAB บล็อกฝังตัวบล็อก แต่ฉันพยายามที่จะทำ e เดียวกัน แต่มีขนาดบัฟเฟอร์แบบไดนามิก ตรรกะที่ต้องการของค่าเฉลี่ยเคลื่อนที่คือ: (นี่ไม่ใช่รหัส แต่เป็นเพียงเหตุผลของรหัส MATLAB เท่านั้น) n (ความยาวของบัฟเฟอร์) รอบ (fsf0) fs 1KHz ไม่ต้องเป็น gt มากกว่า fs10 จากนั้น n รอบ ( 100090) 11 n2 gt n แต่ n2 คือพลังของ 2. Array xn2, yn2 ล้างอาร์เรย์ x X01 unit pulse สำหรับ (i0, i lt ni) yiBufferSum (xi) หน่วย pulse response end สิ่งที่ฉัน S ฟังก์ชันหรือบล็อกฟังก์ชัน Matlab สวัสดีฉันเป็นวิศวกรอิเล็กทรอนิกส์ สนใจที่จะใช้ simulink ฉันพยายามทำ FFT ภายในบล็อกฟังก์ชัน S (ฉันใหม่เพื่อ simulink แต่มีประสบการณ์กับ matlab บาง). Somone โปรดแนะนำฉันในเรื่องนี้ Aravind มีบล็อก FFT ในการประมวลผลสัญญาณ Blockset คือคุณสามารถเข้าถึงได้ มิฉะนั้นคุณสามารถใช้บล็อก MATLAB Fcn หรือ S-Function ได้ สมมติว่าสัญญาณอินพุทเป็นตัวอย่างตาม (เช่น scalar ในแต่ละขั้นตอน) จากนั้นสิ่งแรกที่คุณต้องทำคือบัฟเฟอร์สัญญาณลงในเวกเตอร์ความยาวที่เหมาะสมก่อนที่จะทำ FFT ภายใน S-funct ปัญหาเกี่ยวกับพอร์ต S-function ของ MatlabSimulink 64 บิตการเรียนรู้ s-function และการเขียนโค้ด TLC สำหรับ simulink และผมสังเกตเห็นว่า MATLAB 64 บิตสร้างพอร์ตอินพุทแตกต่างกันอย่างไม่ถูกต้องในสภาพแวดล้อมแบบ 64 บิต เมื่อฉันโหลด s-function จากตัวอย่างที่มาจาก MATLAB ใน MATLAB 2009b สภาพแวดล้อม 32 บิตดังต่อไปนี้ 1 edit (matlabroot, 39toolboxsimulinksimdemossimfeaturestlccsfunmultiport. tlc39) edit (matlabroot, 39toolboxsimulinksimdemossimfeaturessrcsfunmultiport. c39) มันทำให้ฉันบล็อกด้วย 3 พอร์ตอินพุท . อย่างไรก็ตามถ้าฉันลองโหลดอัพบล็อกฟังก์ชัน s ใน MATLAB 64 บิต 2009b Hi all, ฉันถูกสงสัยว่าถ้าหนึ่งในผู้เชี่ยวชาญออกมีสามารถหลั่งน้ำตาแสงบางส่วนในคำถามต่อไปนี้สำหรับฉัน: ฉันมีขั้นตอนการรวมตัวเลขโดยละเอียดใน MATLAB ที่จำลองพฤติกรรมมอเตอร์เหนี่ยวนำ. นี่คือโมเดลทางคณิตศาสตร์แบบไฟฟ้าที่ค่อนข้างสูงซึ่งสามารถแก้ไขสมการเชิงอนุพันธ์ที่อธิบายถึงพฤติกรรมของเครื่องในขั้นตอนการก้าวซ้ำ (ขึ้นอยู่กับสายการเข้ารหัสของขั้นตอนการแก้ปัญหาสำหรับสมการเชิงอนุพันธ์แต่ละอันที่ใช้กฎของออยเลอร์และก้าวไปในลูปสำหรับ tiem progression) ฉันต้องการรวมโมเดลนี้ การจัดทำดัชนีเวกเตอร์ด้วยฟังก์ชัน Simulink ของ MATLAB บล็อก Hello again I39m พยายามทำดัชนีเวกเตอร์โดยใช้หนึ่งในปัจจัยการผลิตของ 39 Simulink 39MATLAB Function39 block ฟังก์ชัน MATLAB ของฉันมีดังต่อไปนี้: ฟังก์ชัน y fcn (นิกาย sect0, vdc), reg, vdc, vr, vvr) codegen ถ้า sect sect0 h รับ (gcf, 39UserData39) set (h (sect), 39Visible 39,39on39) end yvdc end ข้อผิดพลาดที่ฉันได้รับสำหรับการพยายามใช้การป้อนข้อมูลบล็อก 39sect39 ไปที่ดัชนี 39h39 มีดังนี้: การ subscripting ลงใน mxArray ไม่ได้รับการสนับสนุน ฟังก์ชั่น 39Space Vector PWM เครื่องกำเนิดไฟฟ้ากระแสสลับ VSI DriveSVM generatorMATLAB Functi. SMA (Simple Moving Average) ภายใน gnuplot, TYLY AS LAST resort สวัสดีฉันคิดว่าจะโพสต์เรื่องนี้หรือไม่ก็ได้ แต่ฉันตัดสินใจที่จะทำ โดยทั่วไปการปฏิบัติที่ไม่เหมาะสมเป็นการละเมิดเครื่องมือในสิ่งที่พวกเขาไม่ได้หมายถึงให้ใช้เฉพาะในการหยิก เป็นความคิดที่ดีกว่าเสมอในการคำนวณ SMA ในบางอย่างเช่น Perl ก่อนป้อนข้อมูลของคุณไปยัง gnuplot เชื่อฉัน ฉันแค่เปลี่ยนไปใช้งานตัวเอง -) แต่ถ้าคุณชอบแฮ็กและรหัสยุ่งอินไลน์นี่เป็นสคริปต์ bash ที่จะสร้างรหัส gnuplot สำหรับ SMA มี 2 ถึง 53 ถัง (เนื่องจากข้อ จำกัด ของตัวอักษรอาจขยาย) githubthinropefixedsensor การแปลงสมการใน Matlab เพื่อ Simulink บล็อกโดยใช้ S-Function สวัสดีทุกคนที่คุณรู้ Simulink เป็น capbale ของสมการเชิงอนุพันธ์ที่สอง solvinf ตัวเลข ตัวอย่างเช่น xquotf (x, x39) สามารถแก้ไขได้โดยการวาดแผนภาพบล็อกซึ่งสัมพันธ์กับ x และ x39 ถึง xquot จากนั้นเราสามารถแก้ปัญหาได้ ฉันมีพวงของ ODE ซึ่งยาวมากและทำให้บล็อกใช้เวลามาก (เกือบเป็นไปไม่ได้) เนื่องจากการแสดงออกมากฉันมี คุณรู้วิธีการแปลงสมการใด ๆ ใน Matlab เพื่อ 39Simulink Blocks39 ใช้เช่นฟังก์ชั่น S - ฉันหมายถึงสามารถ S - ฟังก์ชันแปลงสมการเพื่อป้องกันฉันขอบคุณมากการตอบสนองของคุณ สวัสดี ฉันพยายามที่จะสร้าง exe จากฟังก์ชัน MATLAB ซึ่งคู่หมายเลขที่คุณให้มัน ฟังก์ชั่น MATLAB: test. m function output test (number) return double input input number output 2number disp (output) รันคอมไพเลอร์ MATLAB ที่บรรทัดคำสั่งด้วย: mcc - mv test. m กับ exe ที่เกิดขึ้น: test. exe แต่เมื่อฉันเรียกใช้ ที่ DOS prompt: test 1 ฉันจะคืนค่า 98 ฉันคิดว่าบางทีนี่อาจเป็นคำอธิบายเกี่ยวกับ octal ของผลลัพธ์ แต่ 98 oct ไม่ใช่ 2 decimal ผลลัพธ์อื่น ๆ ที่ส่งคืน: C: Documents and SettingsalexDesktoplighttransFrank Work test ฉันมีระบบที่อธิบายไว้ในสมการเชิงอนุพันธ์และฉันได้รวมตัวเลือกในการแก้สมการเชิงอนุพันธ์และฉันรวมไว้ใน s - บล็อกฟังก์ชันและวางไว้ใน Simulink. นี่คือตัวเลือกและตัวเลือกการแก้ปัญหาเกี่ยวกับการหยั่งรู้ของฉัน (39Mass39, xumass, 39MassSingular39,39yes39,39MStateDependence39,39strong39) odeset (39MaxStep39,391e-339) odeset (39RelTol39,1e-3,39AbsTol39,1e-3) โดเมน 0: 1e-4 : 8 t, yode23 (xueq, domain, 0zeros (7,1), ตัวเลือก) อย่างไรก็ตามฉันไม่รู้ว่าจะเพิ่มตัวเลือกในการจำลองนี้ไปที่ใด Pl การแปลงสมการใน Matlab กับ Simulink Blocks โดยใช้ S-Function 4 สวัสดีครับทุกคนที่คุณรู้ว่า Simulink คือ capbale ของสมการเชิงอนุพันธ์ของ solvinf ลำดับที่สอง ตัวอย่างเช่น xquotf (x, x39) สามารถแก้ไขได้โดยการวาดแผนภาพบล็อกซึ่งสัมพันธ์กับ x และ x39 ถึง xquot จากนั้นเราสามารถแก้ปัญหาได้ ฉันมีพวงของ ODE ซึ่งยาวมากและทำให้บล็อกใช้เวลามาก (เกือบเป็นไปไม่ได้) เนื่องจากการแสดงออกมากฉันมี คุณรู้วิธีการแปลงสมการใด ๆ ใน Matlab เพื่อ 39Simulink Blocks39 ใช้เช่นฟังก์ชั่น S ฉันหมายถึงสามารถ S - ฟังก์ชันแปลงสมการเพื่อป้องกันฉันขอบคุณสูงของคุณ. การแปลงสมการใน Matlab เพื่อ Simulink Blocks โดยใช้ S-Function 2 สวัสดีครับทุกท่านทราบว่า Simulink คือ capbale ของสมการเชิงอนุพันธ์ของ solvinf ลำดับที่สอง ตัวอย่างเช่น xquotf (x, x39) สามารถแก้ไขได้โดยการวาดแผนภาพบล็อกซึ่งสัมพันธ์กับ x และ x39 ถึง xquot จากนั้นเราสามารถแก้ปัญหาได้ ฉันมีพวงของ ODE ซึ่งยาวมากและทำให้บล็อกใช้เวลามาก (เกือบเป็นไปไม่ได้) เนื่องจากการแสดงออกมากฉันมี คุณรู้วิธีการแปลงสมการใด ๆ ใน Matlab เพื่อ 39Simulink Blocks39 ใช้เช่นฟังก์ชัน S - ฉันหมายถึงสามารถ S - ฟังก์ชันแปลงสมการเพื่อป้องกันฉันขอบคุณสูงของคุณ.
No comments:
Post a Comment