खैर मैं इसे कैसे एक साधारण समारोह से ऐसा करने के लिए पता नहीं है, लेकिन यह एक वर्ग समारोह (विधि) के अंदर से यह करने के लिए वास्तव में आसान है। यह संस्करण 200 बी के साथ ठीक काम करता है।
प्लेस फ़ाइल Test.m में कोड:
classdef Test < handle
properties
mdl
% Default input signal
t = [0 1 1 2]'
u = [0 0 1 1]'
end
methods
function this = Test(mdl) % Constructor
this.mdl = mdl;
end
function sim(this)
% Load model
load_system(this.mdl);
% Prepare model configuration
conf = getActiveConfigSet(this.mdl);
cs = conf.copy();
set_param(cs, 'StopTime', '4');
set_param(cs, 'LoadExternalInput', 'on');
set_param(cs, 'ExternalInput', '[test.t test.u]'); % <-- 1
% Run simulation
simout = sim(this.mdl, cs);
% Plot results
tout = simout.find('tout');
yout = simout.find('yout');
plot(tout, yout(:,1), 'b--');
end
end
end
तो बस:
>> test = Test('TestSim');
>> test.sim();
क्या होता है? आप ऑब्जेक्ट टेस्ट बनाते हैं, जिसने फ़ील्ड टी और यू परिभाषित किया है। फिर विधि सिम() में आप इनपुट '[test.t test.u]' इनपुट देखने के लिए सिमुलिंक से कहते हैं। सिमुलिंक और विधि सिम() दोनों में इस चर के लिए उपयोग है (मुझे विश्वास है कि यह सबसे महत्वपूर्ण बात है)।
ठीक है, फिर भी यह एक बड़ी कमी है जो नंबर 1 के साथ चिह्नित है। आपको स्पष्ट रूप से पता होना चाहिए कि वर्कस्पेस (इस मामले में 'परीक्षण') में क्लास इंस्टेंस का संदर्भ कैसे दिया जाएगा। आप इसे किसी कन्स्ट्रक्टर में नाम पास करके काम कर सकते हैं, या आप स्थैतिक चर और विधियों का उपयोग कर सकते हैं, लेकिन इस तरह से आप गतिशील रूप से इनपुट सिग्नल को बदलने की अनुमति नहीं देंगे।
क्या यह विधि मॉडल संदर्भों और आरटीडब्ल्यू के साथ संकलन के लिए काम करेगी? – Miebster
कि आपको Mathworks में लोगों से पूछना होगा; मैंने आरटीडब्लू का कभी भी उपयोग नहीं किया है, या एम-फाइल से सिमुलेशन चलाने के अलावा सिमुलिंक में गहराई से प्राप्त किया है। –
पहला विकल्प 200 9 में काम करता है ... इसलिए जब तक यह मुझे काटता है तब तक मैं उसके साथ रहना चाहता हूं। धन्यवाद! – JnBrymn