2017-12-01 10 views
0

Simulink를 사용하기 시작했고 matlab for 루프를 사용하여 전달 함수를 변경하는 것에 대한 질문이 있습니다.loop - simulink의 전달 함수를 변경하십시오.

하자 나는 다음과 같은 문제를 가지고 말 : enter image description here

그리고 내 목표는 "시스템"과 같아야한다는 것입니다 :

enter image description here

는 기본적으로 나는 시간에서 5 Simulink의 시뮬레이션을 실행하려면 = 5 개의 다른 전달 함수에 대해 0에서 시간 = 10.

도움을 주시면 감사하겠습니다. 감사합니다.

+0

...'i' 시뮬레이션 번호는, 예를 들면, 'I = 1 : 5' 첫 번째 반복이 0이 아닌 출력을 제공? –

+2

'(1 + s * 5/i)^i'는 순환 반복 전달 함수 또는 반복'i'에 대한 "system"전달 함수입니다. 또한, 나는 S-Function을 사용하지 않을 것입니다. 그런 식으로 불필요하게 복잡합니다. – am304

+0

시스템의 방정식은 비 인과 관계입니다. 그것이 틀림 없다고 확신합니까? (권력이 나 대신에 있어야합니까?) –

답변

0

질문을 오해하지 않는 한, 당신은 이와 같은 것을 위해 Simulink를 사용할 필요가 없다고 생각합니다. 다음은 당신이 뭘하려는 건지에 대한 이해, 그것은 일반 MATLAB에서합니다 (control system toolbox으로) 수행 할 수 있습니다 : (옥타브) 다음과 같은 플롯을 생산

t = 0:1e-3:10; 
u = ones(size(t)); 
y = zeros(5,length(t)); 
for k=1:5 
    H = (1 + tf('s')*5/k)^k; % system transfer function 
    CL = 1/((tf('s'))^2*(1-H)); % closed-loop transfer function 
    y(k,:) = (lsim(CL,u,t))'; 
end 
plot(t,y) 
legend('#1','#2','#3','#4','#5','Location','NorthWest') 
grid on 
xlabel('Time [s]') 
ylabel('Output') 

.

enter image description here