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

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

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

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Дано дифференциальное уравнение с начальным условием:
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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.10.2021, 21:25
Ответы с готовыми решениями:

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

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

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

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

Решение

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

Не по теме:

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

0
416 / 200 / 69
Регистрация: 20.01.2019
Сообщений: 714
17.10.2021, 20:04
Цитата Сообщение от Зосима Посмотреть сообщение
По-моему с дифурами так не получится.
Все получается, нам ведь надо просто подать правые части системы ДУ на интеграторы, а как ты их вычисляешь неважно.
Вот смотри на схеме симулинка фрагмент реально работающей программы. Там, в блоке 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.10.2021, 20:04
Помогаю со студенческими работами здесь

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

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

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

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

Дифференциальное уравнение второго порядка
Помогите пожалуйста с заданием. Нужно найти на отрезке с шагом h решение дифференциального уравнения y''+9*y=0, проходящее через точку...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru