Форум программистов, компьютерный форум, киберфорум
Simulink
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 14.07.2020
Сообщений: 12
1

Нелинейное дифференциальное уравнение первого порядка

15.10.2021, 21:25. Показов 1217. Ответов 5

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Дано дифференциальное уравнение с начальным условием:
https://www.cyberforum.ru/cgi-bin/latex.cgi?y' = -5*sin(y)+t^3
https://www.cyberforum.ru/cgi-bin/latex.cgi?y(0) = 0, x \epsilon [0,10]
В матлабе с помощью ode45 решил дифур, график привожу. В симулинке попытался собрать схему, график выдает немного другой - на порядок выше.
Что я делаю не так? Файл со схемой Simulink прилагаю.
Миниатюры
Нелинейное дифференциальное уравнение первого порядка   Нелинейное дифференциальное уравнение первого порядка   Нелинейное дифференциальное уравнение первого порядка  

Вложения
Тип файла: zip simulinkFunc.zip (23.4 Кб, 2 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2021, 21:25
Ответы с готовыми решениями:

Дифференциальное уравнение 1-го порядка
Здравствуйте. Постигаю азы симулинка. Решил диф. уравнение в матлабе, график во вложениях y' =...

Нелинейное дифференциальное уравнение второго порядка
Привет всем! Помогите пожалуйста решить это уравнение. Из-за нелинейности ничего не получается(...

Линейное дифференциальное уравнение первого порядка
Добрый день! В Matlab необходимо решить уравнение данного типа: y'+a(x)y=f(x)

Нелинейное дифференциальное уравнение - метод Рунге-Кутта
Здравствуйте! Пожалуйста подскажите тут где может быт ощипка? Вот это уравнения \large...

5
5242 / 3570 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
15.10.2021, 21:54 2
Patay54, не думаю, что это сильно повлияет на характер решения, но по твоей схеме y умножается на 5 и затем идет в синус, то есть получаем sin(5*y), а чтобы получить как в уравнении, нужно y пустить прямо на синус, а блок Gain поставить после выхода синуса!
1
0 / 0 / 0
Регистрация: 14.07.2020
Сообщений: 12
15.10.2021, 22:13  [ТС] 3
Спасибо за ответ.
Тем не менее, переставив gain и sin, график не изменился.
Есть ли какой-либо способ сразу записать всю функцию, как это делается в Matlab, а не собирать ее по кусочкам?
Миниатюры
Нелинейное дифференциальное уравнение первого порядка   Нелинейное дифференциальное уравнение первого порядка  
0
416 / 200 / 69
Регистрация: 20.01.2019
Сообщений: 713
16.10.2021, 13:35 4
Лучший ответ Сообщение было отмечено Patay54 как решение

Решение

Patay54, Неправильно заданы входы в блок Math Function - pow
У тебя получается не t в степени 3, а 3 в степени t
Пример на картинке это объясняет. Надо поменять входы местами.
Чтобы в симулинке задавать функции как в матлабе, можно использовать блок MATLAB Function, но это не рекомендуется, желательно избегать, если возможно.
Миниатюры
Нелинейное дифференциальное уравнение первого порядка  
1
Зосима
17.10.2021, 19:14
  #5

Не по теме:

Цитата Сообщение от AlMih Посмотреть сообщение
Чтобы в симулинке задавать функции как в матлабе, можно использовать блок MATLAB Function
По-моему с дифурами так не получится.

0
416 / 200 / 69
Регистрация: 20.01.2019
Сообщений: 713
17.10.2021, 20:04 6
Цитата Сообщение от Зосима Посмотреть сообщение
По-моему с дифурами так не получится.
Все получается, нам ведь надо просто подать правые части системы ДУ на интеграторы, а как ты их вычисляешь неважно.
Вот смотри на схеме симулинка фрагмент реально работающей программы. Там, в блоке MATLAB Function, стоит такой код:
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
function [ dR, dteta_L, dphi_L, dteta_M, dphi_M,     ...
           dteta_T, dphi_T, dlambda_Y, dlambda_Z, AyL, AzL ] = ...
      fcn(Vm, ro, R, teta_L, teta_M, phi_M, teta_T, phi_T,...
          aym, azm, ayt, azt)
 
  c_tL   = cos(teta_L);
  
  c_tM   = cos(teta_M);
  c_pM   = cos(phi_M);
  s_tM   = sin(teta_M);
  s_pM   = sin(phi_M);
  
  c_tT   = cos(teta_T);
  c_pT   = cos(phi_T);
  s_tT   = sin(teta_T);
  s_pT   = sin(phi_T);
  
  dR      = Vm * (ro*c_tT*c_pT - c_tM*c_pM);
  
  dlambda_Y = Vm/R * (s_tM - ro*s_tT);
  dlambda_Z = Vm/R * (ro*c_tT*s_pT - c_tM*s_pM);
  
  %From equation (4)!
  dteta_L  = - dlambda_Y;
  lambda_Y = - teta_L;
  t_lamY   =   tan(lambda_Y);
  dphi_L   =   dlambda_Z/c_tL;
  
  
  dteta_M = azm/Vm + Vm*t_lamY*s_pM *(ro*c_tT*s_pT  - c_tM*s_pM)/R ...
            - Vm*c_pM*(ro*s_tT - s_tM)/R;
  
  dphi_M  = aym/(Vm*c_tM) - Vm*s_tM*s_pM * ...
            (ro*s_tT - s_tM)/(R*c_tM) - ...
            Vm*(ro*c_tT*s_pT  - c_tM*s_pM)/R - ...        
            Vm*s_tM*c_pM*t_lamY*(ro*c_tT*s_pT  - c_tM*s_pM)/(R*c_tM);
  
  if  ro > 0.000001
    dteta_T = azt/(ro*Vm) + Vm*t_lamY*s_pT *(ro*c_tT*s_pT  - c_tM*s_pM)/R ...
              - Vm*c_pT*(ro*s_tT - s_tM)/R;
  
    dphi_T  = ayt/(ro*Vm*c_tT) - Vm*s_tT*s_pT * ...
              (ro*s_tT - s_tM)/(R*c_tT) - ...
              Vm*(ro*c_tT*s_pT  - c_tM*s_pM)/R - ...        
              Vm*s_tT*c_pT*t_lamY*(ro*c_tT*s_pT  - c_tM*s_pM)/(R*c_tT);  
    
    AyL     = - azt*s_tT*s_pT + ayt*c_pT;
    AzL     = - azt*c_tT;
  else
    dteta_T = 0;  
    dphi_T  = 0;
    AyL     = 0;
    AzL     = 0;
  end      
end
Это система уравнений 7-го порядка, описывающая кинематику движения цели и ЛА при наведении в 3D. Выходы этой функции подаются на входы интеграторов. Результат работы программы при использовании чистого (true) 3D закона
пропорционального наведения также на картинке.
Миниатюры
Нелинейное дифференциальное уравнение первого порядка   Нелинейное дифференциальное уравнение первого порядка  
1
17.10.2021, 20:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2021, 20:04
Помогаю со студенческими работами здесь

Дифференциальное уравнение 2-го порядка
Доброго времени суток. Столкнулась с проблемой при решении дифура 2-го порядка. А именно с...

Дифференциальное уравнение второго порядка
Помогите пожалуйста с уравнением. x^2×(x^2-1) y^"-(x^2-2)(xy^' )-y=0 y(2)=12 y'(2)=13 Написал...

Дифференциальное уравнение второго порядка
Уравнение (y(x)): y''+y(1-y^2)=0; Краевые условия: y(0)=1; y'(0)=0; Интервал иксов: Ну и там...

Дифференциальное уравнение второго порядка
Помогите пожалуйста с заданием. Нужно найти на отрезке с шагом h решение дифференциального...

Линейное дифференциальное уравнения первого порядка
Всем доброго вечера, запарился уже с этим уравнением. Нужно решить с испльзованием ode45....

Решить дифференциальное уравнение второго порядка
Всем доброго дня. Помогите пожалуйста решить дифференциальное уравнение через MatLab, читал...

И опять дифференциальное уравнение второго порядка
Есть дифференциальное уравнение второго порядка (прикрепил его вид во вложение)....


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru