Использовать значение из входного порта в параметре блока — Simulink

У меня есть модель Simulink, которую я планирую конвертировать в C-код и использовать в другом месте. Я определил «входные порты», чтобы установить переменные в модели Simulink.

Я пытаюсь найти способ использовать входные переменные как часть блока State Space, но перепробовал все и не уверен, как еще это сделать.

Как уже упоминалось, это будет преобразовано в код C / C ++, поэтому нет никакой возможности использовать matlab в любом случае.

Скажем, я использую матрицу A в параметре блока пространства состояний. Матрица A определена так: A = [Input1 0; Input2 0; 0 Input3]

Я хочу иметь возможность изменять значения входов через код, устанавливая значения Input1 2 3 и т. Д.

-2

Решение

В Simulink есть очень четкое различие между параметрами и сигналами. Параметр — это что-то, введенное в диалог, в то время как сигнал — это то, что подается в блок или выходит из него.

Матрицы в блоке State-Space определяются как параметры, и, следовательно, вы никогда не сможете передавать свои сигналы в них.

У вас есть два варианта.

  1. Не используйте блок State-Space. Скорее разработайте модель пространства состояний самостоятельно, используя более фундаментальные блоки (то есть интеграторы, суммы и блоки продуктов). Это возможно для небольших моделей, но не очень рекомендуется.

  2. Обратите внимание, что параметры блока обычно настраиваются. Когда вы генерируете код, один из файлов будет model_name_data.c и это будет содержать структуру параметров, позволяющую вам изменять параметры.

Обратите внимание, что в любом случае, просто с точки зрения проектирования модели, вы должны убедиться, что изменения в модели имеют смысл (например, не делать циклов и т. Д. Нестабильными).

3

Другие решения

Вы не можете настроить параметр после генерации кода, потому что он встроен в постоянное значение, это обычно делается, потому что это приводит к самому быстрому коду. Чтобы иметь полный контроль над поведением, вы должны использовать настраиваемые параметры. Существует таблица с различными версиями кода, в зависимости от того, что вы хотите, вы можете выбрать правильный тип параметра.

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

1

По вопросам рекламы [email protected]