首次提交

This commit is contained in:
那使你充满决心
2026-08-29 21:32:48 +08:00
commit 63cc919e78
43 changed files with 162157 additions and 0 deletions
+58
View File
@@ -0,0 +1,58 @@
% Configure the installed Ansys Electronics Desktop MATLAB coupling interface.
lemModelDir = fileparts(mfilename('fullpath'));
lemProjectFile = fullfile(fileparts(lemModelDir), 'LinearSimulink.aedt');
assert(isfile(lemProjectFile), ...
'LEM:MissingAedtProject', ...
'The coupled AEDT project does not exist: %s', lemProjectFile);
lemAnsysRoot = getenv('ANSYSEM_ROOT252');
assert(~isempty(lemAnsysRoot) && isfolder(lemAnsysRoot), ...
'LEM:MissingAnsysInstallation', ...
'ANSYSEM_ROOT252 is not configured or does not point to an Ansys installation.');
lemInterfaceRoot = fullfile(lemAnsysRoot, 'cpl', 'matlab');
lemInterfaceFolders = dir(fullfile(lemInterfaceRoot, 'r20*'));
lemInterfaceFolders = lemInterfaceFolders([lemInterfaceFolders.isdir]);
assert(~isempty(lemInterfaceFolders), ...
'LEM:MissingAnsysMatlabInterface', ...
'No Ansys MATLAB coupling interface was found below: %s', lemInterfaceRoot);
lemCurrentRelease = regexp(lower(version('-release')), ...
'^(\d{4})([ab])$', 'tokens', 'once');
assert(~isempty(lemCurrentRelease), ...
'LEM:UnsupportedMatlabRelease', ...
'Unable to parse the current MATLAB release: %s', version('-release'));
lemCurrentScore = str2double(lemCurrentRelease{1}) * 2 + ...
double(lemCurrentRelease{2} == 'b');
lemCandidateScores = -inf(1, numel(lemInterfaceFolders));
for lemIndex = 1:numel(lemInterfaceFolders)
lemTokens = regexp(lower(lemInterfaceFolders(lemIndex).name), ...
'^r(\d{4})([ab])$', 'tokens', 'once');
if ~isempty(lemTokens)
lemScore = str2double(lemTokens{1}) * 2 + double(lemTokens{2} == 'b');
if lemScore <= lemCurrentScore
lemCandidateScores(lemIndex) = lemScore;
end
end
end
[lemSelectedScore, lemSelectedIndex] = max(lemCandidateScores);
assert(isfinite(lemSelectedScore), ...
'LEM:NoCompatibleAnsysMatlabInterface', ...
'No Ansys MATLAB interface compatible with MATLAB %s was found.', ...
version('-release'));
lemAnsysMatlabDir = fullfile(lemInterfaceFolders(lemSelectedIndex).folder, ...
lemInterfaceFolders(lemSelectedIndex).name);
addpath(lemAnsysMatlabDir, '-begin');
rehash;
assert(exist('AnsoftSFunction', 'file') == 3, ...
'LEM:MissingAnsoftSFunction', ...
'AnsoftSFunction could not be loaded from: %s', lemAnsysMatlabDir);
clear lemModelDir lemProjectFile lemAnsysRoot lemInterfaceRoot ...
lemInterfaceFolders lemCurrentRelease lemCurrentScore lemCandidateScores ...
lemIndex lemTokens lemScore lemSelectedScore lemSelectedIndex ...
lemAnsysMatlabDir