Форум программистов, компьютерный форум, киберфорум
Simulink
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/37: Рейтинг темы: голосов - 37, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 08.11.2021
Сообщений: 32
10.11.2021, 14:56  [ТС]
Студворк — интернет-сервис помощи студентам
Начал осваивать Matlab, yt не судите строго. Нужно сделать или найти и замоделировать математическую модель продольного полета самолета. Я нашел модель в книге Моисеев_Динамика полета БПЛА. Там же в книге были значения входных воздействий и начальные условия состояний модели. Замоделировал в matlab simulink, со всеми данными, результаты схожи с теми, что приведены в книге. Но чтобы проверить адекватность модели, начал изменять входные воздействия и получился полный хаос на графиках. Может кто сможет объяснить, я не так что-то делаю либо модель действительно нерабочая и адекватна только при определённых параметрах?
Миниатюры
Линеаризация модели в Matlab Simulink   Линеаризация модели в Matlab Simulink  
Вложения
Тип файла: zip LAST.zip (28.4 Кб, 5 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.11.2021, 14:56
Ответы с готовыми решениями:

Matlab Simulink 2013a. Нерабочие модели анализатора спектра
Дано: Simulink-модель анализатора спектра выполненная в Matlab 2013a. В этом же файле (*.mdl) идентичная модель, но импортированная...

MAtlab simulink
нужно выполнить это задание. кто может? оно простое

Matlab Simulink
Делаю работу в симулинк(MATLAB) и необходима воспроизвести в нем функцию: f =-250*heaviside(t - 425)*(exp(425/7 - t/7) - 1) ...

49
416 / 200 / 69
Регистрация: 20.01.2019
Сообщений: 714
10.11.2021, 18:13
Цитата Сообщение от nikostud Посмотреть сообщение
Так у меня заданы эти условия в интеграторах, начальные значения
Насколько я понимаю, в процедуре линеаризации симулинка точка линеаризации не задается НУ на интеграторах. Ее надо определить и ввести отдельно. См. видео выше
0
0 / 0 / 0
Регистрация: 08.11.2021
Сообщений: 32
10.11.2021, 18:52  [ТС]
AlMih, посмотрел видео, но matlab ругается, после нажатия start trimming
Миниатюры
Линеаризация модели в Matlab Simulink  
0
416 / 200 / 69
Регистрация: 20.01.2019
Сообщений: 714
10.11.2021, 18:56
Сделай через символьную математику - система у тебя простейшая, работы максимум на полчаса
0
0 / 0 / 0
Регистрация: 08.11.2021
Сообщений: 32
10.11.2021, 19:07  [ТС]
AlMih, это вы про код, который скидывали?

Добавлено через 5 минут
И я так понимаю, что просто модель неверная, так как даже при небольшом изменении входных параметров с графиками получается хаос.
0
416 / 200 / 69
Регистрация: 20.01.2019
Сообщений: 714
10.11.2021, 19:34
Добрый вечер!

Линеаризация не зависит от того, верная модель или нет - ты линеаризуешь ту модель, которую сам написал.
И вообще - начни с простого. Возьми линейную модель с парой интеграторов и научись ее линеаризовать через симулинк, если лень код в матлабе писать.
Цитата Сообщение от nikostud
Добрый вечер. Я попробовал линеаризовать, как было на видео, еще несколько раз проверил схему, делал встроенный линеаризатором, проверял все интеграторы, что там стоят начальные условия. У меня все равно не сходятся графики, чтобы я не делал. Очень прошу, подскажите, как сделать правильную линеаризацию, чтобы графики были похожи (ну допустимой погрешностью)
Возможно вы не учитываете то, что линеаризованная система, это система "в отклонениях". В вашем случае это будут отклонения от НУ и от величин входных воздействий, которые задавались при линеаризации.
Вам надо сделать все в программе символьной математики, по моему образцу, чтобы просто понять процесс линеаризации и результаты.

Другой момент такой - эти вот уравнения ЛА не линеаризуют! Это уже упрощенные кинематические уравнения. Их, кстати, можно свести к линейным, в виде трех двойных интеграторов, просто нелинейным преобразованием координат (теория плоских систем).

nikostud, Вот такой вопрос - в какой точке ты собираешься линеаризовать эту систему уравнений?
Какие значения д.б. у вектора [x y teta V alpha P]?

Цитата Сообщение от nikostud
Ну вектор управления у меня u=(P, alpha) и я модедирую при значение P=292,782, alpha=0,101 рад. И начальные условия которые я поставил в интегратор - это тета=0, у=2000, х=1000, V=97,5. Но когда я линеаризую, я беру два этих входа и один выход, по координате х.
1. Ну и какая точка линеаризации системы?
2. Зачем берутся такие значения P=292,782, alpha=0,101?
Мне известен ответ, но я хочу увидеть твой
0
0 / 0 / 0
Регистрация: 08.11.2021
Сообщений: 32
17.11.2021, 11:36  [ТС]
AlMih, Ну поскольку это вертикальный полет на определённой высоте в моем случае 2000, с постоянной скоростью и углом teta, то я думаю что можно делеать линеаризацию в любой момент времени.
А именно эти значения, как я понял были высчитаны с учётом параметров бпла и чтобы соблбдались условия постоянной высоты 200 метров и постоянной скорости, так как я их менял и получалось что при увеличении P и alpha, получалась другая постоянная скорость и постоянная координата y, ну координата x, конечно увеличивалась
0
416 / 200 / 69
Регистрация: 20.01.2019
Сообщений: 714
17.11.2021, 11:50
Время не при чем. Какая точка линеаризации? Если ты не понимаешь этого вопроса, то надо сначала разобраться с тем, что такое процедура линеаризации и как она делается. А также понять, что ты получаешь после линеаризации.
Не понимая этих базовых вещей бессмысленно пытаться применить процедуру линеаризации из симулинка - она не работает автоматически!
Почитай стр.12-16 здесь http://i373.spb.ru/file/AndrLectTAU.pdf
0
0 / 0 / 0
Регистрация: 08.11.2021
Сообщений: 32
17.11.2021, 12:16  [ТС]
AlMih, Ну точка линеразиции, это точка в окрестностях которой мы будет линеарнизовывать систему, то есть упрощать её, принебрегать малыми коэффициента и и так далее. У меня эта точка как я понял соответствует начальном условиям, то есть без вектора управления, а только начальные условия.
0
416 / 200 / 69
Регистрация: 20.01.2019
Сообщений: 714
17.11.2021, 12:28
Неверный ответ

nikostud, В общем так - попробовал линеаризовать модель PVTOL (это та модель, что я выкладывал с линеаризацией в скрипте, сообщение 10). Не вышло ничего!!!
Похоже, что если по входу идет постоянный сигнал, то они не могут разрешить систему, чтобы найти точку линеаризации.
Также у них не определены входы и выходы, даже если ты их задаешь через точки линеаризации. Ответ на подобную ситуацию уклончивый https://www.mathworks.com/matl... n-simulink
Систему (PVTOL) они в итоге линеаризуют, но неправильно!

В общем мой совет - делать все через скрипт с использованием символьной математики остается в силе.
0
0 / 0 / 0
Регистрация: 08.11.2021
Сообщений: 32
23.11.2021, 12:49  [ТС]
AlMih, На счет рабочей точки - это значения всех состояний нелинейной функции F в конкретный момент времени, который выбран. У меня это к примеру [97.5 0 1000 2000] при t=0.
Не совсем понял, на счет модель PVTOL. Вы попытались ее линеаризовать не через скрипт в коде, а через встроенный линеаризатор? И в итоге ее не получится сделать в симулинке, чтобы графики были похожи?
Получается самым верным решением будет, сделать скрипт по вашему примеру, для своей модели, чтобы ее линеаризовать?
0
416 / 200 / 69
Регистрация: 20.01.2019
Сообщений: 714
23.11.2021, 13:01
nikostud,
1. Рабочая точка должна включать еще и управление, а не только состояние(см. лекции Андриевского)
2. Твоя модель не линеаризуется по той же причине, что и модель PVTOL, как я понимаю, это проблема симулинка.
Видимо симулинк не может линеаризовывать неаффинные системы, но это моя догадка.

Ты уже давно мог бы сделать линеаризацию в скрипте и закрыть вопрос.
Потом, ты так и не понял, что получаешь после линеаризации - читай лекции и думай.
0
0 / 0 / 0
Регистрация: 08.11.2021
Сообщений: 32
23.11.2021, 13:06  [ТС]
AlMih, Да я пытался сделать через скрипт, но у меня при выводе матриц, в workspace, элементы выводятся в виде функции, а не значения
0
416 / 200 / 69
Регистрация: 20.01.2019
Сообщений: 714
23.11.2021, 13:08
Выложи скрипт - я посмотрю
0
0 / 0 / 0
Регистрация: 08.11.2021
Сообщений: 32
23.11.2021, 13:13  [ТС]
AlMih,
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PVTOL
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;
clear
syms P alfa V  teta x y g
% syms dV dteta dy dx 
syms x1_st y1_st
 
%Cистема диф. уравнений PVTOL
%Сигналы управления P alfa
% lambda = 1
dV     =  0.00286*(P - 0.5*((0.017+0.025*V/(340.192-0.004*y))+(1.188+0.356*V/(340.192-0.004*y))^2 * (alfa+0.007)^2)*1.715*exp(-0.0001*y)*V^2)-g*sin(teta);
dteta  =  0.00286/V*(P*(alfa+0.061)+0.5*(4.312+1.291*V/(340.192-0.004*y))*(alfa+0.007)*1.715*exp(-0.0001*y)*V^2)-g*cos(teta)/V;
dx     =  V*cos(teta);
dy     =  V*sin(teta);
 
% Записываем как систему уравнений (правые части)
Syst = [dV; dteta; dx; dy]; 
 
% Точка равновесия X0 и U0 для линеаризации
X0 = [x1_st; 0; y1_st; 0];
U0 = [g; 0];
 
% Подставляем в систему точку равновесия
Syst_st = subs(Syst,[V; teta; x; y; P; alfa],[X0; U0]);
 
% Дифференцируем систему по переменным x1 x2 y1 y2 phi1 phi2
JA=jacobian(Syst, [V teta x y]);
0
416 / 200 / 69
Регистрация: 20.01.2019
Сообщений: 714
23.11.2021, 19:03
Не разобрался ты в процедуре - читай лекции.
Попробую поправить.

Добавлено через 5 часов 46 минут
Как-то так получается
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% LA
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;
clear
syms P alfa V  teta x y g 
syms t % время
 
%Cистема диф. уравнений LA
%Сигналы управления P alfa
dV    = 0.00286*(P - 0.5*((0.017+0.025*V/(340.192-0.004*y)) + ...
         (1.188+0.356*V/(340.192-0.004*y))^2 * ...
         (alfa+0.007)^2)*1.715*exp(-0.0001*y)*V^2) - g*sin(teta);
dteta = 0.00286/V*(P*(alfa+0.061) + 0.5*(4.312+1.291*V/(340.192-0.004*y))* ...
         (alfa+0.007)*1.715*exp(-0.0001*y)*V^2) - g*cos(teta)/V;
dx    = V*cos(teta);
dy    = V*sin(teta);
 
% Записываем как систему уравнений (правые части)
Syst = [dV; dteta; dx; dy]; 
 
% Точка равновесия X01 и U01 для линеаризации
X01 = [97.5; 0; 1000+97.5*t; 2000];
U01 = [292.782; 0.101];
 
% Подставляем в систему точку равновесия X01 U01
Syst_st1 = subs(Syst,[V; teta; x; y; P; alfa; g],[X01; U01; 9.81]);
eval(Syst_st1)
%Первое значение вектора не равно нулю, возможно надо подобрать лучше
%значения входов 
%Третье значение 97.5 - скорость изменения x
 
% Дифференцируем систему по переменным V teta x y
JA=jacobian(Syst, [V teta x y]);
% Подставляем точку равновесия
A_Syst = subs(JA,[V; teta; x; y; P; alfa; g],[X01; U01; 9.81]);
A=eval(A_Syst)
 
% Дифференцируем систему по переменным P alfa
JB=jacobian(Syst, [P alfa]);
% Подставляем точку равновесия
B_Syst = subs(JB,[V; teta; x; y; P; alfa; g],[X01; U01; 9.81]);
B=eval(B_Syst)
 
% Задаем матрицы С и D
% Выходы берем x и y
C = [0 0 1 0 ;
     0 0 0 1 ]
% Входы на выходы напрямую не действуют
D = [0 0;
     0 0]   
 
% Получили систему в отклонениях dX = A*X + B*U, Y = C*X + D*U
% где X = [ V-97.5;  teta;  x - 1000-97.5*t;  y - 2000]
%     U = [ P-292.782; alfa-0.101 ]
0
0 / 0 / 0
Регистрация: 08.11.2021
Сообщений: 32
28.11.2021, 12:48  [ТС]
AlMih Спасибо большое за код, не совсем понял почему начальное условие по х записывается в виде 1000+97.5*t. В результате кода этого, получаются точно такие же матрицы, что и при встроенном линеаризаторе в симулинке (Model Linearizer). Ну и в конечном итоге в блоке state-space такой же график. Ну он не совпадает
0
416 / 200 / 69
Регистрация: 20.01.2019
Сообщений: 714
28.11.2021, 12:52
Цитата Сообщение от nikostud Посмотреть сообщение
Ну он не совпадает
С чем не совпадает? Если с нелинейной моделью, то он и не должен совпадать, поскольку модель в отклонениях
0
0 / 0 / 0
Регистрация: 08.11.2021
Сообщений: 32
28.11.2021, 13:03  [ТС]
AlMih, просто я вначале темы спрашивал, по идее же он не должен совпадать, но должен быть похожим на график нелинейной модели, но с погрешностью. А тут получается что график исходной модели растет, а график линейной функции наоборот уходит в минус
0
416 / 200 / 69
Регистрация: 20.01.2019
Сообщений: 714
28.11.2021, 13:09
Нельзя сравнивать бульдога с носорогом! Разберись, что означает "модель в отклонениях".

Добавлено через 2 минуты
Речь идет о том, что ты подаешь на нелинейную систему ненулевые сигналы управления, а на линейную их подавать не нужно, поскольку они учтены (поданы) при линеаризации
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.11.2021, 13:09
Помогаю со студенческими работами здесь

Настройка модели Simulink
Здравствуйте. Вот по-тихоньку осваиваю Симулинк. Помогите, пожалуйста, настроить модель. При изменении частоты блока Sine Wave, например,...

Simulink Matlab - не могу открыть файл 3д-модели. Любой
В моей старой версии 2014б все открывает, но в ней не хватает библиотек. Скачал триальную 2020б. Какое только название файла я не...

Импорт модели Свинцово-кислотной батареи из Matlab (simulink) в Mathcad
Нужно на основе модели, которая входит в Matlab R2013b "Lead acid battery" сделать математическую модель для Mathcad. Возможно ли такое?...

"Построение" мат. модели в Matlab (Simulink)
Добрый день товарищи! Для курсовой работы мне необходимо смоделировать систему в Симулинке. Рабочая мат. модель системы присутствует...

Линеаризация модели
Для одного из состояний динамической системы найти линеаризованную модель. Знаю метод линеаризации, но туговат в математике. на практике...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru