реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Simulink подменяет уравнение
Diusha
сообщение Jul 24 2013, 08:49
Сообщение #1


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



Моделирую в Simulink; MATLAB R2008a.
Cоздал редактор дифуров. Запускаю – говорит, ошибка в ур-нии

-(kP+kI*u(1))*u(2)+k_I*(D0-u(2)-u(3))+(k_P+kR)*DP

Но я такого уравнения не писал! Я писал

-(kP+kI*u(1))*x(1)+k_I*(D0-x(1)-x(2))+(k_P+kR)*DP

(это первое ур-ние)
Т. е. x(1) он при запуске почему-то меняет на u(2), x(2) – на u(3).

На всякий случай константы:
D0=0.001; kI=1; k_I=1; kP=0.1; k_P=1; kR=1; wR=1; kRX=1; k30=1; k_30=1; k50=1; k_50=1; kQ=1; wQ=1; kQX=1;

Прикрепленные файлы
Прикрепленный файл  k02.rar ( 6.92 килобайт ) Кол-во скачиваний: 7
 
Go to the top of the page
 
+Quote Post
RHnd
сообщение Jul 24 2013, 11:31
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



DP определите. А матлаб все правильно делает.
Go to the top of the page
 
+Quote Post
Diusha
сообщение Jul 24 2013, 12:54
Сообщение #3


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



Спасибо, RHnd! Проблема решена!
Но по поводу "все правильно делает" все же интересно (спортивный интерес). Мне кажется правильным выдать сообщение о неизвестном идентификаторе (как делают обычно все компиляторы). Ну на худой конец, показать строку с ошибкой, но только не переделывать ее. Думаю, что в последнем случае я бы быстро нашел, что дело в DP.
Хочется просто идеологию понять, чтобы меньше на грабли наступать
Go to the top of the page
 
+Quote Post
RHnd
сообщение Jul 24 2013, 13:16
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Когда матлаб расшифровывает ваши уравнения в симулинке, то он создает модель, где есть набор интеграторов, функций и т.п. Все сигналы в этой модели заводятся на один мультиплексор и, соответственно, все они становяться u(какой-то номер). Разумеется, сохраняется однозначное соответствие исходным сигналам, но его надо руками смотреть. Так что это не подмена формулы, а переименование сигналов.

Почему такая ошибка называется ошибкой синтаксиса -загадка, скрытая где-то в недрах того, как движок симулинка обрабатывает блок Fcn, так как именно на этих блоках реализуются ваши функции. Мне тоже такая ошибка кажется странной, но что поделать. sm.gif
Go to the top of the page
 
+Quote Post
Diusha
сообщение Jul 24 2013, 14:53
Сообщение #5


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



По ходу дела еще вопросы вылезают (первые шаги в Симулинке).
Если не очень затруднит…
Во-первых (чтобы не выкладывать файл по новой), вместо того самого DP должно быть x(2).
А во-вторых, собственно вопрос. Увеличиваю константу kI. Где-то до 180 все нормально. Если больше 200, то начинаются какие-то глюки. График в окне Scope появляется только во время расчетов, а по окончании пропадает. При нажатии Ctrl (случайно обнаружил) появляется его кусок (чем больше kI, тем кусок меньше).
Кроме того, время обсчета, похоже, пропорционально этой kI. При 1е6 уже не дождаться, а мне надо до 1е12.
Предполагаю, что в Configuration parameters надо что-то порулить. У Черных ответ не нашел, да и описан там явно более старый матлаб
Go to the top of the page
 
+Quote Post
RHnd
сообщение Jul 24 2013, 16:22
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



В параметрах скопа на второй, кажется, вкладке, надо снять галочку, ограничиваующую число точек, которые сохраняет скоп. По умолчанию там стоит 5000, кажется. Так же желательно задать в настройках скопа в явном виде время семплирования, чтоб огранчиить потребление им памяти.

Что касается моделирования - надо возтиться с настройками. Поиграть с точностью, например. Хотя вряд ли это ускорит моделирование. Можно поменять решатель. Так, если при 1e10 дифура становится жесткой (stif), то и решатель нужен соответсвующий. Еще можно попробовать поставить fixed step и поискать такой компромисный фиксированный шаг, что и точность хорошая, и моделируется на приемлимое время. Не факт, что эта задача имеет решение. Может придется моделятор на ночь оставлять sm.gif
Go to the top of the page
 
+Quote Post
Diusha
сообщение Jul 24 2013, 17:35
Сообщение #7


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



Спасибо, галочка скопу помогла.
С остальным попробую поиграть. Если поделитесь ссылочкой (если имеется), с которой эта игра станет для меня более осознанной, будет совсем здорово
Go to the top of the page
 
+Quote Post
RHnd
сообщение Jul 24 2013, 17:36
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(Diusha @ Jul 24 2013, 21:35) *
Спасибо, галочка скопу помогла.
С остальным попробую поиграть. Если поделитесь ссылочкой (если имеется), с которой эта игра станет для меня более осознанной, будет совсем здорово

Увы, не поделюсь. Читайте хелп матлаба, экспериментируйте.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 23:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01415 секунд с 7
ELECTRONIX ©2004-2016