Hi,

Я использую simulink для расчета баллистических полетов. До сих пор используется:

[время, состояние, результат]=sim(‘ballistic_flight_3’,15); внутри m-файла. В этом m-файле входные данные для моделирования были заданы обычным образом:

nameVar=значениеVar

теперь на следующем шаге мне пришлось изменить этот m-файл на функцию, функция обычно идентична m-файлу, все те же переменные используются и им присваиваются одинаковые значения внутри функции

function [FlightDistMat,FlightDistSim]=CompareBallisticFu(LaunchAngleDeg,HorLaunchSpeedMps,DiamM, UseSimulink)

Для ….. Cr=0,44; ХорСтартПос=0; ХорВертПос=1; …. [время, состояние, результат]=sim(‘ballistic_flight_3’,15); …

конец

Теперь я получаю ошибку в строке, где я вызываю: [time, state, output]=sim(‘ballistic_flight_3’,15);

Ошибка при оценке параметра «Значение» в «ballistic_flight_3/Cr»: ошибка при использовании ==› sim Неопределенной функции или переменной «Cr».

Это странно: если я сначала запускаю m-файл, а затем снова пытаюсь вызвать функцию, она работает,

Итак, я обнаружил, что если я сначала загружу вары в рабочую область, он будет работать, в то время как те же самые вары определены в функции ???

В поисках решений в Интернете я просмотрел «Инициализацию переменных параметров модели Simulink с использованием обратных вызовов», но я не смог решить свою проблему, также попытался настроить рабочее пространство модели через проводник модели, но я думаю, что это неправильный путь, потому что некоторые значения изменяются в моей функции каждый раз, когда я вызываю симуляцию

ПРИМЕЧАНИЕ. 

Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech , ME, M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.

Ответ эксперта

Кшитий Сингх ответил. 2021–10–21 07:42:46

Хорошо, я думаю, что у меня есть проблема.

По умолчанию исходное рабочее пространство для модели simulink является базовым рабочим пространством. Поэтому, когда вы моделируете модель, она разрешает параметры из базовой рабочей области.

Поскольку ваши параметры находятся в рабочей области функций, ваша модель не принимает эти параметры.

Таким образом, вы можете решить это двумя способами…

1. Экспортирует параметры из функции в базовую рабочую область с помощью команд assignin() или evalin() перед моделированием модели.

СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ



Ошибка оценки параметра «Значение в simulink
время, состояние, вывод]=sim('ballistic_flight_3',15); в m-файле. В этом m-файле входными данными для моделирования были…www.matlabsolutions.com»





Ошибка оценки параметра «Значение в simulink
время, состояние, вывод]=sim('ballistic_flight_3',15); в m-файле. В этом m-файле входными данными для моделирования были…matlabarticlesworld.blogspot.com»