What is the added value of simscape physical signals compared to normal simulink signals? As far as I can see, from a functional perspective there is no difference between the two types of signals: I can add units to both types, they both have a direction of flow, and they both have similar function blocks like adding, substracting... Only for physical signals the available types of blocks is very limited. Why didn't the matlab guys just use normal simulink lines instead of the physical signals?
4 Answers
Physical signals, unlike Simulink signals, have units associated with them. This means that they follow a number of rules, for example to ensure that the right unit is used (e.g. you can't add kg
and m/s
). From the documentation:
Using the Physical Signal Ports
The following rules apply to Physical Signal ports:
You can connect Physical Signal ports to other Physical Signal ports with regular connection lines, similar to Simulink signal connections. These connection lines carry physical signals between Simscape blocks.
You can connect Physical Signal ports to Simulink ports through special converter blocks. Use the Simulink-PS Converter block to connect Simulink outports to Physical Signal inports. Use the PS-Simulink Converter block to connect Physical Signal outports to Simulink inports.
Physical Signals can have units associated with them. Simscape block dialogs let you specify the units along with the parameter values, where appropriate. Use the converter blocks to associate units with an input signal and to specify the desired output signal units.
Any sensor block in Simscape (in whatever physical domain) will output a physical signal. You can then convert it into a normal Simulink for feed to your controller. Similarly, any source block in Simscape (in whatever physical domain) will take a physical signal as input.

- 13,758
- 2
- 22
- 40
-
Thank you for your reply. It doesn't really answer my question though. You see, I know how to use the physical signals. Just not why they are there in the first place. Why didn't matlab just have a normal simulink signal as an ouput of a sensor block? I cannot see the added value of creating a new physical domain, which is basically identical to what the normal simulink lines can do... – Joren Sips Jan 19 '18 at 13:22
-
Because Simulink signals are unitless. A signal whose current value is 10 could be 10 apples, 10V, 10m/s, 10A, 10Pa, 10 whatever you want it to be. Simulink doesn't know and doesn't care. It's up to the user to make sure his/her signal is in the correct unit. However, for Simscape, units do matter and so Simulink signals are not appropriate to represent physical signals. – am304 Jan 19 '18 at 13:34
-
I understand that, but I can also add units to normal simulink lines at the boundaries of model components as described here: [link](https://nl.mathworks.com/help/simulink/units.html). Why not use this functionality instead of the PS domain? – Joren Sips Jan 19 '18 at 13:49
-
I don't think the units for Simulink signals are quite as enforced and meaningful as those of the Simscape signals. It's also worth pointing out that the equations implemented with physical signals get included in the network of DAEs (differential algebraic equations) of the Simscape model, whereas the rest of the Simulink model does not. Simulink (without Simscape) is really only suited for ODEs, not DAEs. – am304 Jan 19 '18 at 15:16
I suggest you just read the Simscape product page
In particular,
Simscape components represent physical elements, such as pumps, motors, and op-amps. Lines in your model that connect these components correspond to physical connections in the real system that transmit power.
Accompanying that description is the following image, which shows how Simscape models can be far more intuitive to build than a model which uses standard signal. This means models are far more maintainable and clearer to, for example, engineers who may not have a comp-sci background.
Let's delve into what a "physical connection" is somewhat.
[Simscape] employs the Physical Network approach, which differs from the standard Simulink modeling approach and is particularly suited to simulating systems that consist of real physical components.
[ ... ]
Each system is represented as consisting of functional elements that interact with each other by exchanging energy through their ports.
You stated in your question that both methods have a flow direction. This is wrong!
Simscape blocks try and balance the energy between the inlet(s) and outlet(s). For instance a fixed orifice in a fluid system may have high pressure on one side. Simscape will try and solve the pressure balance each iteration. You would need some custom Simulink subsystem to achieve this if not for Simscape.

- 27,562
- 7
- 28
- 55
-
I agree with your explanation on how simscape works in general. My question however was on physical signals (in simscape abbreviated as PS signals). These are one particular type of connection within simscape which do have a flow direction. My question was not about the regular physical domains like rotational, translational, electrical etc... – Joren Sips Jan 19 '18 at 15:41
-
-
1I'm talking about the brown lines, the outputs of simulink-PS converter blocks. They are not physical domains. – Joren Sips Jan 21 '18 at 14:43
-
They have units, which means they can be ussd to drive blocks in the physical domain. I think in all these comments, your point has been lost. If you want to avoid Simscape then do so, otherwise take advantage of the attributes described in the answers you have. Alternatively try and articulate why you don't think there is any point, because I think in the end the answer will be "because this is a to robust way to implement Simscape, and the guys at MathWorks chose to do it this way" – Wolfie Jan 21 '18 at 14:52
What is the added value of simscape physical signals compared to normal simulink signals?
What is it that you think Simscape physical signals provide? Is it one number? How do you solve a mass-spring-damper system with just position? It's position AND it's speed AND it's acceleration.
I can add units to both types
No you can't. You put whatever you want in Simulink. You don't get to choose anything about what's in the physical signal in Simscape. You can specify units in the blocks that the signals connect, but you don't get to pick what the pipe itself is carrying.
they both have a direction of flow
No they don't. Your head and your torso are connected. There's no directionality to this. They're just connected. The physical signal is likewise just showing that (things) are physically connected. Again, the mass-spring-damper system: If the damper points to the mass, and the spring points to the mass, then is there any possibility that the damper could affect the spring? Yes, of course. The damper affects the spring because the damper affects the mass and the mass affects the spring.
The spring affects the mass, and the mass affects the spring. The signal is bidirectional. You're confusing signal directionality with kinematic chains.
they both have similar function blocks like adding, substracting
If you're on a train that's going 30 mph, and you're walking forward at 3 mph, how fast are you going relative to the world frame? What if you're walking backward? There is a physical meaning in adding and subtracting physical signals.
[For] physical signals the available types of [function blocks are] very limited
What is it that you're thinking they're missing? Can you also provide a description of what the physical meaning of that function block would be?
Why didn't the matlab guys just use normal simulink lines instead of the physical signals?
Because they're not the same. The biggest point is probably that Simscape is signal + derivative + second derivative, but again they're just conceptually different. Simulink is an easy way to write code - do this step, move along the arrow, do the next step, etc. Simscape is a pictorial representation of a physical system. The physical signal lines just show that things are connected. The system gets solved simultaneously.

- 1,977
- 1
- 17
- 23
-
My question was not about the regular physical domains like rotational, translational, electrical etc, but specifically the physical signal lines, denoted as PS. For the PS lines, your answer is just plain wrong. They do have direction, and they represent just a number with a unit connected to it, which is free to chose. – Joren Sips Aug 16 '18 at 11:16
-
@JorenSips - Prove it. Link some documentation that shows what you describe. – Chuck Aug 16 '18 at 12:40
-
@JorenSips - This doesn't show any of the behavior you described. The simscape to physical signal block is directional, but the physical signal itself is not directional. The units that you can pick "must be commensurate with the expected default units of the destination block input" - you can't pick arbitrary units. You should read the "Input handling" section and see what the block is actually doing to get to a physical signal. – Chuck Aug 20 '18 at 12:54
-
You should also [read the documentation on modeling physical networks](https://www.mathworks.com/help/physmod/simscape/ug/basic-principles-of-modeling-physical-networks.html#bq89sba-7) that says, in part, "You connect conserving ports with physical connection lines, distinct from normal Simulink lines. **Physical connection lines have no inherent directionality and represent the exchange of energy flows**, according to the Physical Network approach." Under that section, "The physical connection lines... carry physical variables rather than signals. – Chuck Aug 20 '18 at 12:57
I don't think it's mainly about the enforcement of physical signal units, nice though this is. I think it's about the solver - and before it gets to the solver, about the choice of states and equation causality - rearranging the equations ready to be solved.
Simulink doesn't have any truck with this and just gets straight on with integrating signals as a succession of samples. I know it gets complicated with variable step solvers, but they are only doing extra fancy numerical analysis with the sampled data. Integration and the here-and-now is what it's all about!
Simscape just starts with a bucket of variables and a bucket of equations that variously depend on said variables. A 'bipartite graph', I believe they call it. Just as we have to navigate a route through simultaneous equations to pick off the simple ones and substitute (or the matrix equivalents of this) Simscape has to do likewise in software so wants to keep alive augmented info on signals like which equations they are in and whether it knows or can easily obtain their derivatives, what they are, etc. Physical signals behave for us users just like Simulink signals, but I reckon they are there to provide the valuable service to Simscape of keeping this augmented info alive and linked between blocks so that one massive matrix equation can be formed for the whole system, not separate ones that get sampled as Simulink systems between Simulink blocks.
This rearrangement of equations ready for the more conventional solver getting stuck in is a black art indeed! We learn very little of how Simscape does it from the MathWorks docs, but you can install OpenModelica for free and see how that does it.

- 21
- 3