С Новым годом! Форум программистов, компьютерный форум, киберфорум
Simulink
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/34: Рейтинг темы: голосов - 34, средняя оценка - 4.71
15 / 15 / 1
Регистрация: 11.12.2011
Сообщений: 124
1

Создать Simulink модель функции f(t), используя подсистемы.

10.01.2013, 19:02. Показов 6406. Ответов 5

Author24 — интернет-сервис помощи студентам
Ребят начал изучать симулинк...Правильно ли я все сделал?
Вот такое задание у меня:
Создать Simulink модель функции f(t), провести моделирование t ∈ [0, 2pi], построить график. Использовать подсистемы.
Создать Simulink модель функции f(t), используя подсистемы.

Получилось вот что:
Создать Simulink модель функции f(t), используя подсистемы.

Сама модель в прикрепленном архиве.
Вложения
Тип файла: zip fddf.zip (8.5 Кб, 71 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2013, 19:02
Ответы с готовыми решениями:

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

Модель simulink в c++
Добрый день. Есть функция, вызывающая модель. function y = f(a,b) //. . . sim("mymodel");...

Модель в simulink
Нужен пример любой модели в simulink с электро двигателем, с наблюдателем, и фильтром калмана...

Модель сервопривода в Simulink
Всем доброго времени суток! подскажите знающие люди, вот например есть сервопривод( плк, инвертор,...

5
262 / 61 / 5
Регистрация: 29.06.2012
Сообщений: 109
11.01.2013, 09:55 2
Под подсистемами понимаю блоки Subsystem из Simulink/Ports&Subsystems, на схеме их нет...
2
262 / 61 / 5
Регистрация: 29.06.2012
Сообщений: 109
11.01.2013, 11:49 3
Подсистему можно сделать самому, в больших проектах это очень удобно, т.к. лучше видна логика работы. Приведу следующий пример.
Во-первых, приведенную Вами схему можно заменить следующей, поскольку все-таки имеем дело с "матричной лабораторией" (и работать логичнее с матрицами):
Создать Simulink модель функции f(t), используя подсистемы.

Блоки 'demux' и 'sum' (при перетаскивании их в проект они не подписываются) можно заменить блоком MATLAB Fcn из Simulink/User-Defined Functions и прописать в поле MATLAB function следующее:
Matlab M
1
sum(u)
Результат будет тот же.
Далее выделяем блоки, которые хотим замаскировать и нажимаем Create Subsystem. Я выбрала их так, чтобы скрыть операции и выдать на выход массив слагаемых функции.
Создать Simulink модель функции f(t), используя подсистемы.

Саму подсистему и входы с выходом можно обозвать как Вашей душе угодно.
На выходе получаем следующее:
Создать Simulink модель функции f(t), используя подсистемы.
.

Если нужно использовать уже готовые шаблоны подсистем, можно выбрать пустую подсистему. Еще 1 вариант - можно организовать завершение моделирование с помощью If Action Subsystem. Внутри ее не меняем, выход if (если пропишем в соответствующем поле настроек блока u<2*pi) соединится с основной схемой, выход else - с блоком STOP.

PS: кстати, если использовать вместо Clock блок Ramp, то нужно уменьшить шаг моделирования, иначе уж очень угловатый график получается... И еще: в Вашей схеме не ограничено время моделирования, вверху в окошке Simulation Stop Time (оно НЕ подписано, название высвечивается при наведении) указать
Matlab M
1
2*pi
2
Зосима
11.01.2013, 12:35
  #4

Не по теме:

N_J, Жень, это просто ВАУ!!! :bravo: :senor:

0
262 / 61 / 5
Регистрация: 29.06.2012
Сообщений: 109
11.01.2013, 13:14 5
Цитата Сообщение от Зосима Посмотреть сообщение

Не по теме:

N_J, Жень, это просто ВАУ!!! :bravo: :senor:

Не по теме:

Благодарю:-[

0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 3
27.03.2017, 08:30 6
подскажите пожалуйста выше приведена блок схема там в самом начале первый блок константа (? ? ?) как ее сделать??
блок используется тот же что и на фото ниже?

нужно сделать лабу по книге лазарева может где есть уже готовый вариант? так же нужна помошь с кодом

8.1.6. Примеры создания S-функций

пишет нет аргумента t




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
56
57
58
59
60
61
62
63
64
function [sys,x0,str,ts] = S_DUE(t,x,M,flag,J,UgSk0) 
% S-функция S_DUE Динамических Уравнений Ейлера 
% Реализует динамику вращательного движения твердого тела, 
% отыскивая вектор абсолютной угловой скорости тела 
% по заданному вектору моментов внешних сил, 
% действующих на тело 
% ВХОД блока: 
% M - вектор проекций момента внешних сил на оси 
% X, Y i Z связанной с телом системы координат 
% ВЫХОД блока: 
% y - вектор из шести элементов: первые три - проекции 
% абсолютной угловой скорости om тела на указанные оси, 
% последние три - проекции на те же оси 
% углового ускорения тела 
% Входные ПАРАМЕТРЫ S-функции: 
% J - матрица моментов инерции тела в указанных осях; 
% UgSk0 - вектор начальных значений проекций 
% угловой скорости тела 
% Лазарев Ю.Ф., Украина, 18-12-2001 
IJ=inv(J); % вычисление обратной матрицы моментов инерции 
switch flag, 
case 0 
[sys,x0,str,ts] = mdlInitializeSizes(UgSk0); 
case 1, 
sys = mdlDerivatives(t,x,M,J,IJ); 
case 3, 
sys = mdlOutputs(x,M,J,IJ); 
case 9 
sys = [0]; 
end 
% Конец процедуры 
%======================================================= 
function [sys,x0,str,ts] = mdlInitializeSizes(UgSk0,Ug0) 
sizes = simsizes; 
sizes.NumContStates = 3; 
sizes.NumDiscStates = 0; 
sizes.NumOutputs = 6; 
sizes.NumInputs = 3; 
sizes.DirFeedthrough = 1; 
sizes.NumSampleTimes = 1; 
sys = simsizes(sizes); 
x0 = UgSk0; 
str = []; 
ts = [0 0]; 
% Конец процедуры mdlInitializeSizes 
%========================================== 
function z = mdlDerivatives(t,x,M,J,IJ) 
% ВХОДНОЙ вектор M является вектором проекций моментов внешних сил, 
% действующих на космический аппарат соответственно по осям X Y Z 
% х(1)=om(1); х(2)=om(2); х(3)=om(3); 
% z(1)=d(om(1))/dt; z(2)=d(om(2))/dt; z(3)=d(om(3))/dt; 
% |Jx Jxy Jxz| 
% J = |Jxy Jy Jyz| - матрица моментов инерции КА 
% |Jxz Jyz Jz | 
om=x(1:3); 
z=IJ*(M-cross(om,J*om)); % ДИНАМИЧЕСКИЕ уравнения Ейлера 
% Конец процедуры mdlDerivatives 
%================================= 
function y = mdlOutputs(x,M,J,IJ) 
y(1:3)=x; 
om=x(1:3); 
zom=IJ*(M-cross(om,J*om)) ; % Определения УСКОРЕНИЙ 
y(4:6)=zom; 
% Конец процедуры mdlOutputs
Миниатюры
Создать Simulink модель функции f(t), используя подсистемы.  
0
27.03.2017, 08:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2017, 08:30
Помогаю со студенческими работами здесь

Доделать модель в Simulink
Подскажите пожалуйста, как можно реализовать такую систему - нужно подать на ПИД регулятор сигнал,...

Реализовать модель в пакете Simulink
Доброго времени суток уважаемые форумчане. Есть вот такая задача: &quot;На участке термической обработки...

Построить модель Simulink нагреватель-холодильник
Добрый день, прошу помощи со своей моделью в симулинке. В системе два ПИД регулятора, один...

Как правильно из Matlab-скрипта вызвать Simulink-модель?
Имеется Simulink-модель, которая решает дифференциальные уравнения колебаний 2-массовой модели...


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

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