How to assign a signal to the block parameter of simscape electric block(resistor)?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Bohan Liu
el 15 de Ag. de 2018
Comentada: ADragon
el 17 de Ag. de 2018
Hi, there! I would like to pass the output signal of a subsystem as the block parameter to the resistor block of simscape electric. I did some googling about this topic and it is said that this can be realized for block other than those in Simscape electric/mechanic so on and so forth. Can someone help confirm this or in the best case scenario, come up with a feasible solution for my purpose. Or if this is not possible, I would be interested in how to realize this, say for a simple block. Thanks in advance!
0 comentarios
Respuesta aceptada
ADragon
el 15 de Ag. de 2018
Hi Bohan, I think you will want to look at creating custom Simscape blocks using the Simscape programming language. If you have not done this before, you will need to spend some time in the Matlab help and try some examples. For your specific question, you can create a custom block that has and input. I attached an inertia block (2015a) which has inertia as an input. The original library inertia block had the inertia value as a block parameter. I think you can adapt this solution quite easily to the resistor. Check out "Model Linear Resistor in Simscape Language" in the Matlab help.
Sorry, can't attach *.ssc files. Here it is below.
AD
component inertia_custom
% Inertia_Custom
% The block represents an ideal mechanical rotational inertia.
%
% The block has one mechanical rotational conserving port.
% The block positive direction is from its port to the reference point.
% This means that the inertia torque is positive if the inertia is
% accelerated in the positive direction.
inputs
inertia = { 0.01, 'kg*m^2' }; % :bottom
end
nodes
I = foundation.mechanical.rotational.rotational; % :top
end
parameters
initial_velocity = { 0, 'rad/s' }; % Initial velocity
end
variables
t = { 0, 'N*m' };
end
function setup
through( t, I.t, [] );
% if inertia <= 0
% pm_error('simscape:GreaterThanZero','Inertia' )
% end
I.w = initial_velocity;
end
equations
t == inertia * I.w.der;
end
end
Copyright 2005-2008 The MathWorks, Inc.
2 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Simscape Electrical en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!