2015-09-15 4 views
1

Я подаю сигнал q в функциональный блок MATLAB - например, синусоиду (это может быть что-то еще). Мой функциональный блок MATLAB также нуждается в производной по времени от сигнала. В Simulink я могу сделать что-то вроде этого:Simulink: вычислить производный сигнал в функциональном блоке MATLAB без дополнительных блоков?

enter image description here

Однако я хотел бы отказаться от Производная блок (для экономии места, моя текущая модель намного больше, чем выше), и каким-то образом получить производную непосредственно внутри функция MATLAB. Для этого мне нужно было знать предыдущее значение q, вероятно ... которое я не могу знать без добавления блока памяти.

Вопрос: Как получить qdot внутри MATLAB Function без использования каких-либо дополнительных блоков (и удаление Производная блок выше, очевидно)?

Благодарим за помощь!

+1

Вы хотите, чтобы вы «вручную» вычисляли числовые производные внутри блока Matlab на основе отложенных значений q? Плохая идея. –

+0

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

+0

Вы можете использовать мультиплексор и поместить производную и генератор сигналов в подсистему, чтобы сэкономить место. –

ответ

0

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

OldQ with delay.

Я не знаю, если это решит вашу проблему, но это стоит попробовать. Если вы используете его таким образом, вам может понадобиться немного проверить всю модель (относительно синхронизации времени выборки и задержек и подобных вещей).

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