2017-01-31 4 views
1

У меня есть M-скрипт, который принимает значения параметров от пользователя через графический интерфейс пользователя, а затем имитирует модель simulink с обновленным значением параметра. Я хочу преобразовать его в автономный exe-файл, который может работать без Matlab & Simulink (т. Е. Только с Matlab Runtime Compiler). Я использую MATLAB 2010b 32bit.simulink matlab автономный исполняемый файл не может получить выход

Мой подход:
Как компилятор Matlab не может преобразовать функцию сим, я сначала конвертируются мою модель Simulink к EXE-файл, используя цель быстрого моделирования, а затем называется исполняемый файл из моего MatLab скрипта.

[Gain1, Gain2]= InputDataGUI; 
load Par.mat %contains parameter structure of the model 
param_struct.parameters.values(1:2) = [Gain1 Gain2]; %update 
save Par.mat param_struct; 

!SimulinkModelName.exe -p Par.mat 
save results.mat 

Этот скрипт работает в Matlab без ошибок. Наконец, я упаковал M-файл вместе со всеми другими необходимыми файлами в exe, используя deploytool. Этот окончательный exe-файл запускает графический интерфейс и сохраняет обновленный файл Par.mat, но не дает файл результатов моделирования. Я также попробовал в файл блоки для сохранения результатов. Я думаю, что сценарий не может запустить симуляцию.

Является ли мой подход к проблеме правильным?
Должен ли я сделать файл simulink mex?
Заранее благодарю вас за помощь.

ответ

2

Ваш общий подход правильный. Тем не менее, есть, возможно, несколько вещей, которые вы не сделали,

  1. В Simulink, модель должна быть настроена на использование From File блоков для своих входов и To File блоков для своих выходов
  2. В MATLAB, код должен быть настроен для генерации файла .mat не только для параметров, но и для входных сигналов.
  3. При запуске моделирования используйте -p, чтобы указать параметры, -f, чтобы указать входной файл (если вы хотите переопределить тот, который указан в самой модели) и -o, чтобы указать имя выходного файла, который вы хотите записать в (если вы хотите переопределить значение, указанное в самой модели).
  4. В вашем (развернутом) коде MATLAB вам необходимо прочитать файл .mat, сгенерированный для хранения вывода, и обработать его (т. Е. Заговорить) соответствующим образом.
+0

Hi Phil. Спасибо за ваш ответ. – Aastha

+0

Я проверил, и я слежу за всеми этими моментами. В настоящее время я просто тестирую с помощью входа Sine. Таким образом, нет необходимости в входном файле. И я использую «To File» для хранения выходов. Я также просто тестирую с именем выходного файла по умолчанию. После некоторого тестирования я думаю, что невозможно упаковать exe-файл в другой exe-файл. Сегодня я обнаружил, что когда я запускаю окончательный файл exe (сделанный из deploytool) в Matlab, он не может получить доступ к Simulink Model exe. Я получаю сообщение об ошибке «Команда SimulinkModelName.exe либо неправильно написана, либо не может быть найдена» – Aastha

Смежные вопросы